Arduino
Arduino yra fizinė signalų apdorojimo/kontroliavimo platforma veikianti ant paprastos įėjimo/išėjimo kortos. Ši platforma yra platinama su atvirojo kodo programavimo įrankiu. Arduino galima naudoti kaip savarankišką interaktyvų kontrolerį arba gali dirbti su programine įranga kompiuteryje. Galimos prijungimų yra jungtys: USB, Bluetooth ir serijinis. Bet kuri programinė įranga turinti sąsaja su serijine jungtimi gali būti suderinama su Arduino platforma. Šiuo metu rinkoje yra siūloma surinkta Arduino platforma, bei detali specifikacija tiems, kas nori susirinkti platforma nuo nulio.
Arduino savybės
- nedidelė kaina ~50$
- nepriklausoma nuo operacinės sistemos: MS Windows, Macintosh OSX ir Linux.
- paprasta programavimo aplinka. Laisvai platinama programavimo aplinka yra pakankamai paprasta pradedančiam programuotojui, bet ir su pakankamai galimybių atlikti ir pakankamai sudėtingus užduotis
- Atvirojo kodo ir plečiama programinė ir techninė įranga
Techninė įranga
Arduino Board DiecimilaPlačiausiai naudojama Arduino Diecimila modifikacija:
- mikrokontroleris ATmega168
- Darbinė įtampa 5V
- Įėjimo įtampa(rekomenduojama) 7-12 V
- Įėjimo įtampa(galima) 6-20 V
- Skaitmeninių įėjimų/išėjimų skaičius: 14
- Analoginių įėjimų skaičius: 6
- Nuolatinė srovė vienam įėjimui/išėjimui 40 mA
- Nuolatinė atmintis 16 KB (iš kurių 2 KB yra naudojami infrastruktūrai)
- SRAM 1 KB
- EEPROM 512 bytes
- Taktinis dažnis 16 MHz
Programinė įranga
Arduino programavimo aplinka yra parašyta su Java programavimo kalbos, kuri yra nepriklausoma nuo operacinės sistemos. Ši aplinka leidžia rašyto kodą, jį kompiliuoti, taip pat ji gali persiusti vykdomąjį kodą į Arduino. Arduino programavimui naudojama panaši kalba į Processing.
Integravimas per USB:const int ledPin = 13; // the pin that the LED is attached to int incomingByte; // a variable to read incoming serial data into void setup() { // initialize serial communication: Serial.begin(9600); // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); } void loop() { // see if there's incoming serial data: if (Serial.available() > 0) { // read the oldest byte in the serial buffer: incomingByte = Serial.read(); // if it's a capital 1 (one), turn on the LED: if (incomingByte == '1') { digitalWrite(ledPin, HIGH); } // if it's an 0 (zero) turn off the LED: if (incomingByte == '0') { digitalWrite(ledPin, LOW); } } }
Komandas arduino galima siuntinėti naudojant Linux teikiama patogia sąsają. Ubuntu arduino plokščiai sukuria papildomą failą į kurį rašant duoemnis automatiškai laidu jos į persiunčiamos ir plokščiai. viršuje pateiktam pavizdžiui valdyti linux bash komandos:
# uždega diodą ant 13 išėjimo echo "1">/dev/ttyUSB0 # užgesina diodą ant 13 išėjimo echo "0">/dev/ttyUSB0
Įdomu
Audio signalų apdorojimas realiu laiku: http://interface.khm.de/index.php/lab/experiments/arduino-realtime-audio-processing/
Spalvų maišymas su šviesos diodais: http://www.youtube.com/watch?v=b0K0ps4ja48 http://www.ladyada.net/learn/arduino/lesson3.html
Įdomi Arduino taikymo sritis: http://blip.tv/file/843294
Unitazo vandens bako kontroleris: http://blog.makezine.com/archive/2008/05/a_microcontrolled_toilet.html