Transformators.lv


 
 
 
 
 
 
 
Transformators.lv » Arduino un Processing komunikācija | Arduino/Wiring | Forums
Jums jāielogojas lai rakstītu
Meklēt Forumus:


 






Wildcard Usage:
*    apzīmē jebkuru skaitli
%    apzīmē tieši vienu rakstzīmi

Ieraksts
Member

ATmega0

08:46 06.07.2011

ieraksti12
Rakstu skaits 2

1

Arduino ir atvērtā koda elektronikas prototipēšanas platforma, kas balstīta uz elastīgu, viegli izmantojamu aparatūru un programmatūru. Tā ir paredzēta māksliniekiem, dizaineriem, amatieriem un visiem, kas interesējas radīt interaktīvu objektu vai vidi. (Google tulkotājs)

Processing ir programma, kurā var radīt attēlus, animācijas, un pat spēles. Arduino programma ir bāzēta uz Processing.

— Parasts teksts

— Brīdinājums! / Atgādinājums

— Lejupielāde

— Kods

— (Paskaidrojums)

— Virsraksts

Ir divi veidi kā kontrolēt Arduino caur Processing.

1. Arduino bibliotēka (Arduino Library)

Šoreiz es par to nestāstīšu, bet informācija par to ir atrodama šajā mājaslapā:

http://www.arduino.cc/playgrou…..Processing

2. Serial komunikācija

http://www.processing.org/refe…..index.html

Lai varētu savienot Arduino ar Processing caur Serial portu, ir vajadzīgs:

1) Lai Arduino Serial vai USB savienojums ar datoru strādā;

2) Lai ir ielādēta jaunākā Arduino un Processing programma. (adreses apakšā)

3) LED indikators

4) Spiedpoga

5) 10K Rezistors

6) Konstruktors un vadiņi

7) Un pats galvenais – Arduino (jebkāds)

Es esmu uztaisījis nelielu shēmu, kura sastāv no Arduino Megas, 10k rezistora, pogas un diožu cipara.

Shēmas nav domātas Arduino Mega!

(Zīmētas ar Fritzing. Adrese Apakšā)

Iesaku taisīt tādu pašu. Man ir Arduino Mega 2560, tāpēc programma var nedaudz atšķirties.

Te būs daži faili, kurus esmu taisījis pats:

1) Programma piekš Processing: SerialProcessing

2) Programma piekš Arduino: SerialArduino

Processing Daļa

Programmas sastādīšana.

Tātad, pirmkārt atveriet Processing.exe un uztaisiet jaunu projektu ArduinoSerial.

Uzmanību! Nelietojiet atstarpes un failu nenosauciet par Serial vai Arduino, jo tie ir bibliotēku nosaukumi, un Processing var nesaprast atšķirību!

Pirmkārt, pašā augšā uzrakstiet: import.processing.serial.*;

Tas nozīmē, ka programmā tiks iekļauta Serial bibliotēka. Pēc tam nākamajā rindā rakstiet Serial port; Tas nozīme, ka tiek radīts Serial ports ar nosaukumu " port ".

Pēc tam uzrakstiet uzstādījumos ( void setup() ) kas ir port.

void setup()

{

port = new Serial(this, "COM5", 9600);

}

(porta vārds) = new Serial(this), (ports), (programmēšanas ātrums));

Porta vārds ir tas ko jau definēja rakstot Serial port;

Ports ir tas ports kurš ir jūsu Arduino. (noklusējums ir "COM1" )Piemēram manam Arduino uz mana datora ports ir "COM5". Var būt arī rakstīts šādi: Serial.list()[0] No portu saraksta tiek paņemts pirmais ports, kas ir pieejams. COM1 ir ports, kas pārsvarā ir mājas datoriem kastes aizmugurē. (0 elektronikā ir pirmais skaitlis)

Programmēšanas ātrums (Baud Rate) ir ātrums ar kādu programmē. (9600 ir noklusējuma ātrums)

Ja vēlaties vispirms apskatīties, kāds ir jūsu Arduino ports, tad rakstiet:

void setup()

{

println(Serial.list());

}

Arduino jābūt pieslēgtam datoram, pirms palaižat programmu!

Palaižot programmu apakšā, melnajā joslā būtu jāparādās portu sarakstam. Manam datoram standartā ir divi porti (COM1 un COM2), tāpēc mans Arduino ir "COM5".

Es papildu uzstādījumos uzrakstīju

size(255, 255);   //Loga izmēri (x, y)

background(0);   //Fons (melns)

lai programma neizskatās pēc kaut kādas kļūdas. :D

Tagad pats galvenais:

1) Sūtīsim datus!

Uzmanību! Nekādā gadījumā nepārraujiet saikni ar Arduino kāmēr programma ir atrvērta!

Lai nosūtītu vienkāršus datus ir jāraksta:

port.write((dati));

Dati ir dati (int, byte, byte[], char, String…) kurus nosūtīt pa Serial portu.

Es uzrakstīju vienkāršojumu šai funkcijai:

void send(int code)

{

port.write(code);

}

Tagad nav katru reizi jāraksta port.write(53); , bet var vienkārši rakstīt send(65);

Lai nosutitu datus uzspiežot taustiņu ENTER nosutitu datus, kuri ieslegtu un izslēgtu visu ciparu jaraksta šādi:

int statuss = 0;

void keyPressed()

{

switch(keyCode)

{

case ENTER:

if(statuss == 0)

{

send(0);

}

else if(statuss == 1)

{

send(1);

}

else

{

statuss = 0;

}

statuss++;

break;

}

}

Vārds "statuss" ir speciāli nepareizi uzrakstīts, jo "status" ir atslēgvārds, un programma nesaprastu, kāpēc tas tiek lietots nepareizi.


2) Saņemsim datus!

Lai saņemtu datus ir jāraksta:

void draw()

background(0); //Fons ir melns

{

int data = port.read();

if(data == 16)

{

(darbība);

}

Darbība ir tas, kas notiks, ja ports saņems datus no Arduino. Tā var būt fona nomaiņa, kāda objekta parādīšanās u.c.

background(255); //Fons paliek balts

Arduino Daļa

Atveriet Arduino.exe . Pie Tools > Board  izvēlaties sava Arduino modeli un pie Tools > Serial Port izvēlaties sava Arduino portu.

Arduino programmā nav nepieciešams iekļaut jebkādu bibliotēku, jo tā jau ir "iebūvēta" pašā programmā.

vispirms uzstādījumos ierakstam Serial porta ātrumu:

void setup()

{

Serial.begin(9600);

}

Ātrumam jāsakrīt ar ātrumu Processing!


Valoda starp Processing un Arduino nedaudz atšķiras. Tāpēc nebrīnieties, ja kāda funkcija no Processing nestrādā Arduino un otrādi.

1) Sūtisim datus!

Tagad uzrakstam vienkāršojumu datu sūtīšanai:

void send(int code)

{

Serial.print(code, BYTE);

}

Tagad kodu, kur nospiežot pogu sūta 16:

void loop()

{

int button = digitalRead(7);

if(button == 1)

{

send(16);

}

}

2) Saņemsim datus!

Kods, kur saņemot 1 diode cipara augšā (A) iedegas, bet saņemot 0 izslēdzas:

void loop()

{

if(Serial.read() == 0)

{

digitalWrite(13, 0);

}

else if(Serial.read() == 1)

{

digitalWrite(13, 1);

}

}

Tad tas arī īsumā (baigi īsi, es teikšu) ir viss.

Ceru, ka jūs kaut ko iemācījāties un pārāk negarlaikojāties!

Izmantotās mājaslapas:

http://www.processing.org/

http://www.arduino.cc/

http://fritzing.org/welcome/

http://www.processing.org/refe…..index.html

http://www.arduino.cc/playgrou…..Processing

http://web.argus.lv/home/hwind…..amp;cc=LV1


Aplūkot oriģinālo rakstu



Sākums | Visi Raksti | DIY Raksti | Pasākumi | Noteikumi | Forums
© 2010 Argus Radiodetaļu Tirdzniecība SIA | Web izstrāde Kārlis Baumanis