Arduino

Allikas: Vikipeedia
Pilt Arduino IDEst, mis näitab LED-ide vilgutamise programmi
Arduino mikrokontrolleri suuruse võrdlus

Arduino on avatud lähtekoodiga ühe plaadi mikrokontroller, mis suudab tajuda ümbrust saades erinevatest sensoritest sisendinformatsiooni ning muuta oma ümbrust juhtides näiteks tulesid, mootoreid ja teisi ajureid. Arduino riistvara koosneb lihtsast vaba riistvara disainiga trükiplaadist, millel on Atmel AVR protsessor, ning mugavamaks kasutamiseks välja toodud erinevad sisend- ja väljundviigud. Tarkvara koosneb standardsest programmeerimiskeele kompilaatorist ja mikrokontrolleris olevast alglaadimise haldurist.

Arduinot programmeeritakse enamasti Wiring-keelel põhineva programmeerimiskeele abil, kasutades Processing-keskkonnal põhinevat integreeritud arenduskeskkonda. Arduino programmeerimiseks kasutatav keel on sarnane C++ keelega, mõne muudatuse ja lihtsustusega.

Arduino riistvarast on erinevaid versioone ja neid on võimalik osta eelnevalt kokkupandult. Neile, kes soovivad Arduino riistvara ise luua, on riistvara disaini informatsioon vabalt saadaval. Lisaks itaallaste loodud Arduinole on riistvarast olemas erinevate ühilduvuse tasemetega teiste tootjate variatsioone. Mõned neist on programmeeritavad tavapärase Arduino tarkvaraga.

Arduino projekt tõsteti esile 2006. aastal Prix Ars Electronica autasustamisel digitaalsete kogukondade kategoorias.

Ajalugu[muuda | redigeeri lähteteksti]

Projekt algas 2005. aastal Itaalia linnas nimega Ivrea (Olivetti nimelise arvutifirma poolt), et luua seade, millega oleks võimalik sel ajal saadaval olevate süsteemidega võrreldes odavamalt ja lihtsalt kontrollida õpilaste ehitatud disainiprojekte. 2010. aasta veebruariks oli müüdud enam kui 120 000 Arduino plaati. Arduino loojad Massimo Banzi ja David Cuartielles nimetasid projekti Ivrea Arduini järgi, kes oli Ivrea kuulus ajalooline tegelane. „Arduino“ on mehelik itaaliapärane eesnimi, mille tähendus on „tugev sõber“.

Arduino loojad võtsid alguses kasutusele avatud lähtekoodiga Wiring platvormi ning hakkasid seda edasi arendama, luues sellega täiesti iseseisva projekti. Wiring loodi Kolumbia programmeerija ja kunstniku Hernando Barragáni magistritööna. Wiring'u kaasloojaks oli Mehhikost pärit elektriinsener Diego Gonzalez Joven. Nende juhendajaks olid Massimo Banzi ja Casey Reas. Wiring põhineb Processing programmeerimiskeelel, selle integreeritud arenduskeskkond loodi Casey Reas'i ja Ben Fry poolt.

Platvorm[muuda | redigeeri lähteteksti]

Riistvara[muuda | redigeeri lähteteksti]

Arduino plaat koosneb 8-bitisest Atmel AVR mikrokontrollerist koos täiendavate komponentidega, et lihtsustada programmeerimist ja ühilduvust teiste kiipidega. Arduino tähtsaks eripäraks on see, et tema ühendusedviigud on kindlaksmääratud paigutusega, lubades mikrokontrolleriga plaati ühendada mitmesuguste vahetatavate lisandmoodulitega, mida nimetatakse kilpideks. Ametlikud Arduinod on kasutanud megaAVR seeria mikrokontrollereid, täpsemalt Atmega8, Atmega168, Atmega328, Atmega1280 ja Atmega2560. Lisaks on kasutatud üksikuid teise platvormiga mikrokontrollereid. Enamus plaate sisaldavad 5 voldist lineaarregulaatorit ja 16 MHz sagedusega kristall-ostsillaatorit, kuigi mõned disainid, nagu näiteks LilyPad, töötavad 8 MHz taktsagedusega ja ei sisalda plaadi disaini piirangute tõttu toitepinge regulaatorit. Arduino mikrokontrollerisse on eelprogrammeeritud alglaadimise haldur, mille tööks on lihtsustada programmide üleslaadimist mikrokontrolleris olevale flash-mälule. Väga paljude teiste mikrokontrollerite korral vajatakse selle jaoks tavaliselt välist programmerimisseadet.

Põhimõttelisel tasemel programmeeritakse kõik Arduino kontrollerid Arduino tarkvara kasutades RS-232 järjestikliidese kaudu, kuid konkreetne riistvaraline lahendus sõltub riistvara versioonist. Uuemad Arduino kontrollerid on programmeeritavad USB-siini vahendusel, kasutades plaatidele lisatud USB-järjestikliidese adapteri mikroskeeme (näiteks FTDI FT232). Mõned mudelid, nagu näiteks Arduino Mini ja mitteametlik Boarduino, kasutavad eemaldatavat USB-järjestikliidese plaati või kaablit, Bluetooth-ühendust või teisi meetodeid.

Suurem osa mikrokontrolleri sisend-väljundviikudest on Arduino kontrolleril eraldi välja toodud. Näiteks kontroller Diecimila ja uuem Duemilanove pakuvad 14 digitaalset sisend-väljundviiku, millest kuut saab kasutada pulsilaiuse modulatsiooniga signaalide genereerimiseks ja lisaks veel kuut analoogsisendit. Need viigud asuvad kontrolleriplaadi ülemisel poolel ning on esitatud standardsete 2,5 mm sammuga pesadena. Arduino Nano ning Arduinoga kokkusobivatel Bare Bones Board ja Boarduino kontrolleritel on plaadi alumisel küljel välja toodud 2,5 mm sammuga pistikud.

Arduino kontrollerite mudelid[muuda | redigeeri lähteteksti]

Arduino Protsessor Flash
KiB
EEPROM
KiB
SRAM
KiB
Digitaalne I/O
viik

PWMga viigud
Analoog sisend
viik
USB liidese
tüüp
Mõõtmed
tollides
Mõõtmed
mm
Diecimila ATmega168 16 0,5 1 14 6 6 FTDI 2,7 “ × 2,1 “ 68,6 mm × 53,3 mm
Due ATMEL SAM3U 256 0 50 54 4 16
Duemilanove ATmega168/328P 16/32 0,5/1 1/2 14 6 6 FTDI 2,7 “ × 2,1 “ 68,6 mm × 53,3 mm
Uno ATmega328P 32 1 2 14 6 6 ATmega8U2 2,7 “ × 2,1 “ 68,6 mm × 53,3 mm
Leonardo Atmega32u4 32 1 2 14 6 12 Atmega32u4 2,7 “ × 2,1 “ 68,6 mm × 53,3 mm
Mega ATmega1280 128 4 8 54 14 16 FTDI 4 “ × 2,1 “ 101,6 mm × 53,3 mm
Mega2560 ATmega2560 256 4 8 54 14 16 ATmega8U2 4 “ × 2,1 “ 101,6 mm × 53,3 mm
Fio ATmega328P 32 1 2 14 6 8 Puudub 1,6 “ × 1,1 “ 40,6 mm × 27,9 mm
Nano ATmega168 või ATmega328 16/32 0,5/1 1/2 14 6 8 FTDI 1,70 “ × 0,73 “ 43 mm × 18 mm
LilyPad ATmega168V või ATmega328V 16 0,5 1 14 6 6 Puudub 2 “ ⌀ 50 mm ⌀

Tarkvara[muuda | redigeeri lähteteksti]

Arduino integreeritud programmeerimiskeskkond on tarkvaraplatvormist sõltumatu Javas kirjutatud rakendus, mis on tuletatud Processing-programmeerimiskeele ja Wiring projekti integreeritud programmeerimiskeskkondadest. Integreeritud programmeerimiskeskkond on disainitud selliselt, et seda saaksid kasutada tarkvaraarenduses vähekogenud inimesed. Keskkond sisaldab koodiredigeerijat, mille iseärasusteks on näiteks süntaksi esiletoomine ja sulgude kokkuviimine. Ka koodi kompileerimine ja mikrokontrolleri programmeerimine toimuvad ühe hiireklikiga.

Arduino programmerimiskeskkonnaga on kaasas C/C++ teek nimega „Wiring“, mis muudab paljud tavalised sisend-väljundoperatsioonid palju lihtsamaks. Arduino programmid on kirjutatud C/C++-s, kuid kasutajad peavad töötava programmi jaoks defineerima ainult kaks funktsiooni:

  • setup() – funktsioon mis töötab korra programmi alguses ning seadistab mikrokontrolleri parameetrid
  • loop() – funktsioon mis kutsutakse korduvalt esile kuni plaat välja lülitatakse

Väga lihtne mikrokontrolleri programm võib lihtsalt vilgutada LED'i. Selline programm Arduino keskkonnas võib välja näha umbes niisugune:


#define LED_PIN 13   // defineeri
 
void setup () {
    pinMode (LED_PIN, OUTPUT);     // sea viik 13 digitaalseks väljundiks
}
 
void loop () {
    digitalWrite (LED_PIN, HIGH);  // pane LED põlema
    delay (1000);                  // oota üks sekund (1000 millisekundit)
    digitalWrite (LED_PIN, LOW);   // kustuta LED
    delay (1000);                  // oota üks sekund
}


Selle koodi töötamiseks on vaja, et LED'i positiivne viik pool oleks ühendatud 13 viiguga ja LED'i negatiivne viik elektrilise maaga. See programm ei oleks standardse C++ kompilaatori jaoks sobilik programm. Kui kasutaja vajutab arenduskeskkonnas nuppu „Lae I/O plaadile“, kirjutatakse koodi koopia ajutisse faili, lisatakse vajalikud päised ja väga lihtsa main()-funktsiooni lõppu, et muuta see C++ programmiks.

Arduino arenduskeskkond kasutab programmide kompileerimiseks GNU tööriistu ja AVR Libc teeke, programmide kirjutamiseks mikrokontrollerisse on kasutusel programm avrdude. Kuna Arduino platvorm kasutab Atmeli mikrokontrollereid, siis võib nende programmeerimiseks kasutada ka Atmeli arenduskeskkondi AVR Studio või Atmel Studio.

Hariduseesmärkideks on kasutatav teiste tootjate poolt toodetud graafiline avatud koodi litsensiga arenduskeskkond Minibloq.

Ametlik riistvara[muuda | redigeeri lähteteksti]

Arduino Lilypad

Originaalne Arduino riistvara toodetakse Itaalia firma Smart Projects poolt. Mõned Arduino tootemärgiga plaadid on disainitud Ameerika firma SparkFun Electronics poolt. Tänase päevani on toodetud tööstuslikult kolmteist Arduino riistvara versiooni.

  1. Serial Arduino - programmeeritud kasudates DE-9 jadaühendust ja sisaldab ATmega8 mikrokontrollerit.
  2. Arduino Extreme - USB liidesega programmeerimiseks ja ATmega8 mikrokontrolleriga.
  3. Arduino Mini - miniatuurne Arduino versioon, mis kasutab pindmonteeritult paigutatud ATmega168 mikrokontrollerit.
  4. Arduino Nano - veel väiksem versioon kui Arduino Mini. USB toitega Arduino, mis kasutab pindmonteeritult paigutatud Atmega168 (uuematel versioonidel ka ATmega328) mikrokontrollerit.
  5. Lilypad Ardunio - minimaalse disainiga kaasaskantav rakendus, mis kasutab pindmonteeritult paigutatud ATmega168 mikrokontrollerit.
  6. Arduino NG - USB liides programmeerimiseks ja ATmega8 mikrokontroller.
  7. Ardunio NG plus - USB liides programmeerimiseks ja ATmega168 mikrokontroller.
  8. Arduino Bluetooth - Bluetooth liides programmeerimiseks ja ATmega168 mikrokontroller.
  9. Arduino Diecimila - USB liides ja kasutab ATmega168 mikrokontrollerit DIL28 pakendis.
  10. Arduino Duemilanove – kasutab ATmega168 (ATmega328 uuemates versioonides) mikrokontrollerit ja on automaatselt valitava USB- või välise alalistoitega.
  11. Ardunio Mega – kasutab pindmonteeritult paigutatud ATmega1280 mikorokontrollerit lisasisendite ja -väljundite ning suurema mälu jaoks.
  12. Arduino Uno – kasutab Atmega328 ning ATmega8U2 seeria muundurina.
  13. Arduino Mega2560 – kasutab pindmonteeritult paigutatud ATmega2560 ning ATmega8U2 mikrokontrollereid USB liidesega.

Arduinoga ühilduvad kontrollerid[muuda | redigeeri lähteteksti]

On olemas palju erinevaid Ardunio-ühilduvuse ja Arduinost tuletatud plaate. Mõned on funktsioonaalselt Arduinoga samaväärsed ja neid saab kasutada samades olukordades. Paljud neist on lihtsad Arduinod mõne igapäevase väljund-draiveriga, mida kasutatakse tihti koolitasemel hariduses, et lihtsustada väikeste robotite ehitamist. Mõned variatsioonid aga kasutavad täiesti teisi mikrokontrollereid erinevate ühilduvuse tasemetega.

Kuigi Arduino riistvara ja tarkvara disainid on tasuta saadaval ja kaetud copylefti litsentsidega, siis Arduino arendajad on palunud, et nimi „Arduino“ oleks ainuõiguslik ametlikule tootele ning seda ei kasutataks tuletatud tööde puhul ilma loata.

Arendusmeeskond[muuda | redigeeri lähteteksti]

Arduino arendusmeeskonnas on Massimo Banze, David Cuartielles, Tom Igoe, GInaluca Martino, David Mellis ja Nicholas Zambetti.

Vaata ka[muuda | redigeeri lähteteksti]

Välislingid[muuda | redigeeri lähteteksti]