Uvod v arduino

http://www.arduino.cc/

Osnova za platformo arduino je 8-bitni mikroračunalnik (običajno imenovan mikrokontroler) podjetja Atmel.  Vezje nosi oznako AVR, kar v bistvu pomeni da gre za mikrokontroler, ki ima vse funkcijske bloke združene na eni silicijevi rezini. Zasnovano je bilo leta 1996, razvoj pa že vedno poteka. Na splošno velja, da so AVR kratice za oba glavna razvijalca: “Alf (Egil Bogen) in Vegard (Wollan) – Risc processor (Risc -“reduced instruction set computing”).

Predvideno je veliko načinov zajemanja podatkov (digitalni in analogni –   s pomočjo najrazličnejših senzorjev), vsebovana so nekatera dodatna vezja (analogno-digitalni pretvornik, komparator) za beleženje sprememb – in na drugi strani: razlilčni načini odzivanja, sprožanja dogodkov. Vse je namenjeno čim bolj optimalni mikroračunalnikovi povezavi s fizičnim okoljem, zato se to področje tudi imenuje fizično računalništvo (“physical computing”). Število zunanjih elementov ali vezij je ponavadi možno zreducirati na minimum.

Za platformo arduino  je uporabno kar veliko število vezij Atmel: ATMega (8, 16, 88, 168, 328) in še nekatera druga. Cene teh različnih vezij so lahko precej različne, zato so vsa uporabna. Med seboj so tudi dokaj kompatibilna in ni potrebnih večjih sprememb programčkov.

Uvedba platforme arduino je uporabnost mikrokontrolerjev približala izjemno široki populaciji. Bistvene prednosti so enostavnost in cenovna dostopnost osnovnega prototipskega vezja in razmeroma enostavna programska podpora. Tako se je platforma izjemno hitro razširila med ne-specialisti: umetniki, oblikovalci, samograditelji in vsemi, ki jih zanimajo interaktivno avtomatizirani objekti in naprave. Osnovno vezje AVR je zasnovano izjemno odprto in univerzalno, zato podobno filozofijo ohranja tudi platforma arduino. Ker pa programska platforma uporablja človeku bližji (višji) programski jezik, je bilo potrebno kar nekaj kompromisov, ki pri nekaterih uporabah niso optimalne.  Tedaj posežemo po bolj bazični (nižji) programski razvojni platformi AVR, kar pa ni ravno pogosto primer.

Programsko okolje in jezik Arduino je nastal na osnovi odprtokodnih razvojnih orodij – na platformi za programiranje mikrokontrolerjev Wiring, osnova za razvojno okolje pa je bil Processing.

http://wiring.org.co/
http://www.processing.org/

Osnovna paradigma je odprtokodnost, kar pomeni da se vseskozi ohranja filozofija dostopnosti izvorne programske kode in tudi samega hardverja – samoizgradnje naprav. Razširjenost platforme je pripomogla, da je nastalo veliko število razvojnih centrov, ki nudijo dodatne sestavne dele in širijo filozofijo prostega dostopa do znanja. Tudi mi bomo seveda to paradigmo ohranjali.

Za začetek potrebujemo nameščeno programsko opremo, ki jo dobimo na osnovnem naslovu:

http://arduino.cc/en/Main/Software

Za uporabo arduina kot MIDI sekvencer (Musical Instrument Digital Interface) bomo potrebovali še nekatere programčke:

– MIDI Yoke je softverski prenosnik MIDI podatkov med računalniškimi programi – http://www.midiox.com/myoke.htm
– Serial MIDI je programček, ki pretvori MIDI podatke iz USB serijskega priključka iz arduina za uporabo za MIDI programe –  http://spikenzielabs.com/SpikenzieLabs/Serial_MIDI.html
– ali pa Hairless MIDI je softverski pretvornik MIDI podatkov iz USB priključka – http://projectgus.github.com/hairless-midiserial/

Za druge uporabe – na primer branje podatkov iz arduina – lahko uporabimo že nekatere druge programe, ki so namenjeni interaktivni multimediji:

– Pure Data (in 3D grafično okolje GEM)
– Max/ MSP
– itd.

Hiter pogled na razvojno ploščico arduino

Razvojna ploščica arduino je le funkcionalno razširjena oblika mikrokontrolerjev AVR ATmega. Dodanih je nekaj vezij, ki zagotavljajo potrebno napetost, omogočajo USB serijsko komunikacijo z računalnikom: za programiranje, prenos podatkov v računalnik in iz njega. Ploščica omogoča tudi pripravo dodatnih mikrokontrolerjev za arduino.

ArduinoDiecimilaComponents

Hiter pogled v AVR mikrokontroler

Razvrstitev nožic in funkcionalnosti se ohranjajo preko več generacij teh integriranih vezij…

S črno barvo so opisane kode multifunkcionalnih priključkov za AVR, z rdečo barvo pa poimenovanje za platformo arduino. Pri razvojni ploščici arduino so oznake odtisnjene na zgornji strani.

Mikroračunalniško vezje sestavlja določeno število “portov” (vrat). Pri prikazanem 28-pinskem AtMega vezjih so to trije porti: PD, PC, PB – vsi imajo po več vhodov-izhodov. Vsi lahko delujejo v osnovnem načinu digitalnega vhoda ali izhoda.

Porti se med  seboj do neke mere  ločijo po dodanih funkcionalnostih – dodatnih vezjih. To so specialnosti posameznih portov.

Šest PC vhodov-izhodov si tako deli AD-pretvornik in ustrezni analogni de/multiplekser, ki v hitrem zaporedju meri analogne vrednosti na izbranih analognih vhodih.

 Novejša generacija: Atmega 48, 88, 168, 328

Atmega48_88_168_Pinmap

Starejša serija vezij: Atmega8 – ima podobno zgradbo, nekaj manj možnosti, vendar je precej cenejša.

Atmega8_Pinmap

Vezje AVR postane arduino, ko se mu določi za arduino tipična osnovna konfiguracija. To storimo  z namestitvijo t.i. “bootloader-ja” v flash pomnilnik mikrokontrolerja. Za različne tipe AVR mikrokontrolerjev so potrebni različni “bootloaderji”, ki so v glavnem na voljo v osnovnem razvojnem okolju Arduino.