Arduino – digitális Lego nagyoknak

  • (f)
  • (p)
Bemutató – Írta: | 2012-06-23 20:00

Kedvcsináló bemutató az Arduino platform-hoz amivel saját perifériákat is készíthetsz számítógépedhez.

Kulcsszavak: . arduinoelektronika

[ Új teszt ]

Bevezetés

Gyerekfejjel mindig is szerettem volna kapni egy Lego Mindstorms készletet. Ennek a setnek az a különlegessége hogy mindenféle aktív építőelemmel gazdagítja a hagyományos Lego elemek amúgy is végeláthatatlan tárházát.
Motorok, szenzorok, kapcsolók, programozható modulok és egyéb elektronikus elemek alkotják a kiegészítőt.

Az új építőelemeket természetesen össze lehet kapcsolni a hagyományos Lego elemekkel és gyakorlatilag csak a képzelet (és a pénztárcánk) szab határt annak, hogy milyen mozgásra, érzékelésre és a környezettel való interakcióra képes objektumokat valósítunk meg segítségükkel.
Ráadásul a kreatív építkezés mellett oktató képessége sem lebecsülendő, hiszen megtanítja a játékost programozni.
A számítógéphez kapcsolható modulra (“Brick”) különböző vezérlő rutinokat írhatunk amelyek aztán az egyes elemek mozgatását és szinkronizálását végzik el.

A készletből többek között az MIT Média laborja is berendelt oktatási célra, a közösség pedig számos módosítást készített hozzá amivel a népszerű C és Java programozási nyelveken is írhatunk a központi modulra szoftvereket.

Sajnos ez a vágyálmom a kiegészítők ára miatt végül beteljesületlen maradt. Arról nem is beszélve, hogy ekkor még csak egy Commodore 64-esem volt, a programozáshoz pedig egy PC-re lett volna szükség.

Plotter Lego Mindstormmal

Alig két éve ismerkedtem meg írásom tárgyával amely sok szempontból hasonlóságot mutat a korábban bemutatott építő készlettel. Az Arduino (leánykori nevén Wiring) egy közösségi nyílt forrású hardware platform ami segítségével hobbisták, elektronikához minimálisan értő designerek de akár profit orientált vállalkozások is készíthetnek hardver prototípusokat és intelligens tárgyakat.

Habár technológiai újdonságnak számító komponenst nem sorakoztat fel, a már elérhető megoldásokat a területtel ismerkedők számára könnyedén értelmezhető formában teszi elérhetővé. Mégpedig kedvező áron.
Mivel nyílt forrású megoldásról beszélünk, a hardware külön licencelés nélkül gyártható bárki által és a kapcsolódó szoftverek is szabadon felhasználhatóak. Nem csoda hogy a platform köré óriási közösség gyülekezett fel.

A legismertebb Arduino Uno fejlesztői lap

Mi az az Arduino?

Ha nagyon le akarjuk egyszerűsíteni akkor az Arduino nem más mint megálmodott objektumunk agya. Futtatja a PC-n elkészített programunkat és a lapon található csatlakozók (portok) segítségével vezérli a köré csatolt eszközöket vagy kommunikál más rendszerekkel.

Hogy ezt a képességét mire használjuk fel az csak kreativitásunktól függ, legyen az egy egyszerű futó fény, spektrum analizátor, infravörös távirányító, fényre menő robot, kopogási minta érzékelős ajtó nyitó, lakásban elhelyezett adat gyűjtő vagy akár fűtés rendszer szabályzó Google Calendar alapján.

LCD kijelző vezérlése Arduinoval és egy marék kábellel

Egyszerű robot bútorlapból ultrahangos távolság érzékelővel

NES kontroller interfészelése PC-hez [link]

Univerzális infravörös távirányító készítése [link]

Ventilátor sebességszabályzás hőmérséklet alapján [link]

Arduinonkat számos változatban vehetjük meg. A legnépszerűbb Uno verziótól kezdve a miniatűr Nanon át a csatlakozó rengeteggel megáldott Megaig, a ruhába varrható Butterfly változattal bezárólag nagyon sok mindent megtalálhatunk.

Ha a hivatalos oldalon elérhető választék nem lenne elegendő, akkor a neten más gyártók olyan variánsait is megtalálhatjuk amelyek gyakran csomó kiegészítő lehetőséget adnak, ugyanakkor az alap változattal visszafelé kompatibilisek is maradnak.

Amennyiben már nem ismeretlen számunkra az elektronika világa, a referencia lapot saját magunk is megépíthetjük.

A legkisebb Nanot akár közvetlenül a próba NYÁK-ra is szúrhatjuk

Ruhába varrható Arduino Lilypad

Bármelyik lapot is választjuk, az Atmel cég által gyártott ATmega mikrokontrollert mindegyiken garantáltan megtaláljuk.
Ez a chip külön is megvásárolható a kereskedelemben, és önmagában is programozható az Arduino keretrendszer használata nélkül, viszont a platform egy olyan környezetet ad köré amely elrejti előlünk a kezdeti nehézségeket mind hardveres mind programozói szemszögből.

A chipre tekinthetünk úgy is mint egy egy komplett 8 bites számítógépre, amely kimondottan a más perifériákkal való összekapcsolásra van kihegyezve. Rendelkezik saját Flash tárterülettel a rajta futó program permanens tárolására, SRAM-al a futás közbeni adatok kezelésére, EEPROM-al a program felhasználó adatainak tartós mentésére, egy tucat porttal a külvilággal történő kommunikációra, illetve számos kiegészítő hardveres támogatással úgymint soros port és megszakítás vezérlés, PWM jelmodulátor, időzítők, stb.

Ne zavarjon ha ezen kifejezések most még ismeretlenek számodra, a platform kiváló lehetőséget ad az elektronikával ismerkedni vágyóknak a tanuláshoz. A chip jellemzően 16 MHz-es órajellel működik amely kevésnek tűnhet gigahertz és magszám-hajhászó IT-világunkban, viszont ne felejtsük el hogy az általunk megírt programot operációs rendszer felügyelete nélkül közvetlenül futtatja a chip, ráadásul az AVR mikroprocesszorok a legtöbb gépi utasítást 1 órajelciklus alatt képesek végrehajtani.

Az ATmega chip a rendszer lelke, egy komplett 8 bites mikroszámítógép

Mennyire nehéz elkezdeni az ismerkedést?

Miután kezünkbe vettük a lapot, a mellékelt USB kábellel össze kell kötnünk a számítógépünkkel. A szükséges driver és a kimondottan kezdőbarát, mindhárom nagy platformon működő fejlesztői környezet feltelepítését követően meg is kezdhetjük ismerkedésünket újdonsült szerzeményünkkel.

A minden programozási nyelvben jelen lévő Hello World kezdő alkalmazás Arduino-s megfelelőjének futtatásához a lapon kívül másra nincs is szükségünk. Az IDE-ből kiválasztjuk az elérhető beépített példák közül a “Blink” nevezetűt, egy katinttással lefordítjuk és feltöltjük a lapra. Ezután már láthatjuk is amint az előre felforrasztott LED villogásával nyugtázza cselekedeteink sikerét.

Egyszerűbb prototípusok összeállításához sem kell egyből forrasztó pákáért nyúlnunk. Elég ha rendelkezünk egy bedugós próba NYÁK-kal, néhány hozzá való összekötő kábellel és azzal a maréknyi hardverrel amivel “beszélgetni” akarunk.
Egyszerű LED-eket, gombokat, LCD paneleket, léptető regisztereket, szenzorokat vagy szervo motrokat gyakorlatilag közvetlenül is rákapcsolhatunk az Arduinora. A NYÁK kialakítása olyan, hogy a szükséges vezetékeket könnyedén beledugaszolhatjuk.

A hivatalos oldalon a tutorial rész alatt több olyan szájbarágós példát is találunk ahol már ezzel az eszköz készlettel is egy csomó dolgot meg tudunk valósítani.

Egyszerű prototípus próba NYÁK-kal

Az alapértelmezett fejlesztői környezet

Ha ennél valamivel komplexebb dologra lenne szükségünk, akkor sem kell feltétlenül saját magunknak összeállítani a szükséges kiegészítőt "atomjaiból".
A neten számos ún. shield található, amelyet az alap Arduino NYÁK-unk tetejére dugva újabb tudással bővíthetjük kedvenc kütyünket. Ilyen lehet például az Ethernet, WiFi vagy Bluetooth hálózati kommunikáció, színes LCD és joystick egyszerű játékkonzol készítéséhez, VGA kimenet monitorhoz, MP3 lejátszó shield zene lejátszáshoz, stb.
Ezeket a “pajzsokat” gyakran úgy készítik el hogy továbbiakat szúrhassunk rájuk, így akár kombinálhatjuk is őket (néhány szabály betartásával).

Jelenleg több száz ilyen shield közül választhatunk, érdemes ellátogatni az shieldlist.org oldalra.

Ethernet shield a LAN vagy internet irányú kommunikációhoz és SD kártya kezeléséhez

A GPS Shield segítségével geolokációs adatokat is felhasználhatunk

Egyszerű TV-re köthető videó játékot is készíthetünk a Video Game Shield-el

Záró szavak

Ez tök jó! Hol tudok ilyet venni magamnak?

Mint korábban is írtam, az Arduino egy nyílt forrású hardver így számos gyártó készítette el belőle saját változatát, amelyek közül igényeink szerint választhatunk. A legkézenfekvőbb, ha a hivatalos oldalról vásárolunk, de ennél olcsóbb beszerzési forrást is találhatunk az interneten (javaslom a Deal Extreme kínálatának átböngészését).

A kezdőknek jó választás lehet az Uno modell!

- A hivatalos Arduino webshop
- TávIR-AVR féle magyar Arduino változat
- Arduino kütyük a Deal Extreme webshopjában

Többet szeretnék megtudni a platformról, hol nézelődjek?

Talán nem okozok meglepetést, ha azt mondom "ráguglizva" az Arduino szóra végeláthatalan mennyiségű információt találhatunk az interneten. Néhány kiinduló pontot azonban javasolnék a platformmal ismerkedőknek:

- Hivatalos Arduino oldal Learning szekciója (angol)
- Jeremy Blum oktató videó sorozata; érdemes időrendben nézni őket (angol)
- TávIR AVR oktató szekciója, regisztráció után magyar kézikönyvet is le tudunk tölteni.
- Hackaday.com Arduino-hacks címkéje ahol számos kreatív ötletet találhatunk (angol)

Remélhetőleg sikerült felkeltenem az érdeklődésedet ezután a rendkívül sokoldalú kütyü után. Nincs más hátra, mint hogy sok sikert és örömmel teli időtöltést kívánjak első Arduinodhoz! :)