A Digispark ATtiny85 egy pici, de nagyon sokoldalú mikrokontroller, amit könnyedén programozhatsz USB-n keresztül. Különösen jól jön, ha kisméretű projekteken dolgozol. Az Arduino IDE-ben való használata kicsit más, mint a hagyományos Arduino boardoké, ezért ebben a cikkben lépésről lépésre megmutatom, hogyan állítsd be, és hogyan tölts fel egy egyszerű LED villogtató programot úgy, hogy az USB bootloader megmaradjon a jövőbeli frissítésekhez.
Az Arduino és a Digispark ATtiny85 – step-by-step
A Digispark ATtiny85 egy apró, de rendkívül sokoldalú mikrokontroller, amelyet különösen kis helyigényű projektekhez terveztek. Kompakt mérete és az egyszerű USB-s programozhatóság miatt egyre népszerűbb a hobbi elektronikai körökben. Az Arduino IDE alatti programozása azonban néhány eltérést igényel a hagyományos Arduino boardokkal szemben, ezért ebben az útmutatóban részletesen végigvezetlek a szükséges lépéseken. A célunk egy LED villogtató program feltöltése úgy, hogy az USB bootloader is megmaradjon, így a jövőben is könnyedén tudjuk újraprogramozni az eszközt.
A Digispark ATtiny85 hardverének áttekintése
A Digispark ATtiny85 egy apró board, amely egy 8 bites ATtiny85 mikrokontroller köré épül. A lapka számos be- és kimeneti lábbal rendelkezik, és 16,5 MHz-es sebességen fut, ami elég erős ahhoz, hogy egyszerűbb feladatokat, mint például szenzorok kezelése, LED-ek vezérlése vagy akár egyszerűbb kommunikációs protokollok futtatása, gond nélkül elvégezzen. A legnagyobb előnye a mérete, amely mindössze néhány centiméter, így kis helyigényű projektekhez ideális választás.
A Digispark ATtiny85 egyik legkülönlegesebb tulajdonsága a beépített USB bootloader, amely lehetővé teszi, hogy az eszközt közvetlenül egy USB porton keresztül programozzuk, anélkül, hogy bármilyen külső programozót használni kellene. Ez rendkívül kényelmes, különösen kezdők számára, mivel nincs szükség extra hardverre.
Az Arduino IDE telepítése és konfigurálása és a Digispark ATtiny85 támogatás hozzáadása
A telepítés a lapkatámogatás bővítése két helyen már korábban leírásra került. A stabil és kiegyensúlyozott működéshez a hordozható Arduino használata javasolt. A Digispark ATtiny85 esetén pedig kiegészítő alaplap-támogatás telepítése szükséges. Ezekről bővebben:
A Digispark / ATtiny85 beállítása az Arduino IDE-ben
Miután hozzáadtuk a →Digispark ATtiny85 támogatását a Digistump maintained alaplap-támogatáson keresztül az Arduino IDE-hez, néhány beállítást kell elvégeznünk, mielőtt elkezdenénk a tényleges programozást.
– A megfelelő alaplap kiválasztása
Az Arduino IDE-ben menj az Eszközök → Alaplap menübe, és válaszd ki a Digistump AVR Boards alatt a Digispark lehetőséget. A DigiSpark Pro lapka az újabb áramköröket jelenti – A Digispark az ATtiny85 chipre épülő, míg a Digispark Pro az ATtiny167 chip köré készült.
– Alaplap paraméterek beállítása
Az Arduino keretrendszerben az Eszközök alatt az Alaplap:”Digispark” paraméterei részen számos lehetőséget találhatunk a finombeállításra. Ezek egy része az alaplap kiválasztásakor kerül meghatározásra, egy része itt, külön menüben állítható:
- Clock
Az eszköz órajelének meghatározása itt lehetséges. Itt a 16.5MHz alapórajel esetén van mód a Bootloader további megtartására is: “16.5MHz – For V-USB“. A többi lehetőség esetén 1-8-16MHz órajel – a bootloader megszűnik! Ekkor külső ISP programozással lehet újra bootloaderes módot beállítani! A programozás után a következő programozások már csak ISP vagy HVSP módban lehet a chipet programozni!
- Micronucleus variant
A kisméretű processzorok esetén az erőforrások véglegesek. És a bootloader processzor natív szinten sem támogatott – pláne natív USB eszközként. Így a szoftverből történik meg az emulációja a teljes USB protokollnak. A kód méretet is minél kisebbre kell venni – a korlátozott flash memória méret miatt. Az egyes variciók korlátozásokkal rendelkeznek – hiszen a főprogramból is működik a látszólagos bootloader kódja! A Default és a Recommended a javasolt – a Default az eredeti, kompatibilis kiadású; míg a Recommended az újabb, optimalizált kiadás. - Burn bootloader method
A bootloader az eszközre hogyan kerüljön rá? Ennek a megoldása választható itt ki. Ezek a lehetőségek:- Upgrade (via USB) a meglevő bootloaderen keresztül frissüljön a rendszer bootloadere;
- Fresh install via ISP külső standard programozóval történik a bootloader/flash frissítése (Fontos! Az ISP használatához a programozót az Eszközök → Programozó menüpont alatt be kell állítani!);
- Bootloader informations a feltöltési képernyőn a bootloader verzióját adja vissza – tényleges programfeltöltés nélkül!
Fontos! Ha a korábbi feltöltés esetén a bootloadert nem tartottuk meg, akkor csak az ISP-n át lehetséges a visszaállítása.
– Port kiválasztása
A Digispark ATtiny85 eltérően működik a hagyományos Arduino boardoktól – nem kell előre kiválasztanod a kommunikációs portot, mivel a Digispark automatikusan csatlakoztatandó az USB porthoz, amikor a programozás megkezdődik. Ezért a Port opció maradhat üresen (vagy az itt beállított paraméter figyelmen kívül lesz hagyva).
Ezekkel a beállításokkal az Arduino IDE készen áll arra, hogy programokat töltsünk fel a Digispark ATtiny85-re.
Azaz csak majdnem…
USB illesztő telepítése
A Digispark ATtiny85 használatához Windows alatt szükséges egy speciális driver telepítése, hogy a rendszer felismerje és megfelelően kezelje az eszközt. Ehhez az alábbi út szükséges:
1. Driver letöltése
Látogass el a Digistump hivatalos weboldalára →http://digistump.com/wiki/digispark/tutorials/connecting és innen a weboldalon keresd meg a Digispark Windows Driver részt, és töltsd le a szükséges meghajtóprogramot. (Tipp, ha az oldal megszűnt: →A Digistump.com WayBack machine (archív) elérhetősége.)
Tipp: a cikk írásakor az eredeti gyártói meghajtóprogram nem érhető el – így az alábbi szükséges: →LilyGo ATtiny85 driver.
2. Driver telepítése
A letöltött zip kibontandó, majd innen futtasd az Install Drivers fájlt rendszergazdai jogosultságokkal (jobb kattintás a fájlra, majd Futtatás rendszergazdaként). A telepítő elindul és automatikusan feltelepíti a szükséges meghajtókat. A folyamat során megjelenhet egy figyelmeztetés, hogy az illesztőprogram nem rendelkezik digitális aláírással – ezt hagyd jóvá az Engedélyezés gombra kattintva.
3. Digispark csatlakoztatása
Miután a driver telepítése sikeresen befejeződött, csatlakoztasd a Digispark-ot az egyik szabad USB porthoz. Ekkor a Windowsnak már automatikusan felismeri az eszközt, és telepíti az illesztőprogramot.
Tippek: a driver telepítése után lehet, hogy szükséges a Windows újraindítása. Az eszköznek a bootloadert/USB illesztést tartalmaznia kell már, hogy a rendszer felismerje!
Egyszerű LED villogtató program írása
Most, hogy az Arduino keretrendszer megfelelően konfigurálva van, – jöhet az alap LED-villogtató program. Ez az egyik legegyszerűbb program, amelyet bármelyik mikrokontrollerrel megvalósíthatunk, de kiváló kiindulópont a Digispark ATtiny85 működésének megértéséhez.
A gyári mintaprogram elérhető a Fájl → Példák → 01.Basic → Blink alól közvetlenül, vagy az alábbi kód is közel azonos:
1 2 3 4 5 6 7 8 9 10 | void setup() { pinMode(0, OUTPUT); // A 0-s lábat kimenetként állítjuk be } void loop() { digitalWrite(0, HIGH); // LED bekapcsolása delay(500); // 500msec várakozás digitalWrite(0, LOW); // LED kikapcsolása delay(500); // 500msec várakozás } |
vagy akár Új skicc (Sketch) létrehozásával is: nyiss egy új programot az Arduino-ban. Ezt megteheted a Fájl → Új menüpont alatt. És ide másold be az előző programkódot.
A kód feltöltése a Digispark ATtiny85-re
Most, hogy elkészítettük a programot, itt az ideje, hogy feltöltsük azt a Digispark ATtiny85-re. Azonban a feltöltési folyamat némileg eltér a szokásos Arduino boardoknál megszokottól, mivel a Digispark ATtiny85 saját USB bootloadert használ (Fontos! A bootloaderes Digispark ATtiny85-t használjuk és a Windows driver telepítve legyen!).
– Feltöltési folyamat
Az Arduino-ban kattintsunk a Vázlat → Feltöltés menüre – ezzel a programkód fordítása, majd programozását indítjuk el.
A feltöltési folyamat kezdetén az IDE egy üzenetet jelenít meg: „Please plug in the device…” vagy a “Waiting for Digispark…”. Amint ezt az üzenetet látjuk, csatlakoztassuk a Digispark ATtiny85-ot az USB porthoz.
A csatlakoztatás után a bootloader elindul és a kapcsolat felépül és az égetés megtörténik. A folyamat során a mikrokontroller újraindul, és végül el kezdi végrehajtani a feltöltött programot.
Közben a feltöltés nyomon követhető:
Ha a feltöltés sikeres volt, a LED elkezd villogni a Digispark ATtiny85-ön, jelezve, hogy a program megfelelően működik.
Hibaelhárítás
- Ha a program feltöltése során hibaüzenetet kapsz, először ellenőrizd, hogy a Digispark megfelelően csatlakozik-e az USB porthoz.
- Ha a problémák továbbra is fennállnak, próbáld meg újraindítani az Arduino IDE-t, vagy válaszd le és csatlakoztasd újra a Digisparkot.
- Győződj meg arról is, hogy a megfelelő board van kiválasztva az Arduino-ban és a lapka paraméterei is megfelelőek.
- A LED kivezetése a Digispark ATtiny85-n a P0 a gyakori, néha azonban a P1 kivezetésen van.
Felhasználási lehetőségek
Miután sikeresen feltöltöttük az első programunkat a Digispark ATtiny85-re, érdemes kísérletezni további funkciókkal, hogy jobban megismerjük a mikrokontroller lehetőségeit. A Digispark ATtiny85 rugalmas és hatékony eszköz, amelyet számos projektben felhasználhatunk, legyen szó egyszerű beágyazott rendszerekről vagy komplexebb megoldásokról. Az ATtiny85-öt számos hasznos funkcióval, perifériával és könyvtárral bővíthetjük, hogy növeljük a hatékonyságot és a funkcionalitást.
USB interfész és billentyűzet emuláció
– DigiKeyboard könyvtár: Ez a funkció lehetővé teszi, hogy az ATtiny85 egy USB-s billentyűzetként működjön, amivel karaktereket vagy billentyűparancsokat tud küldeni egy csatlakoztatott számítógépnek. Ez automatizált adatbevitelre használható, például különböző eszközök vezérlésére, parancsok végrehajtására, vagy akár olyan projektekre, amelyek kapcsolatba lépnek a felhasználói felülettel.
– DigiMouse könyvtár: Ezzel az ATtiny85 USB-s egérként használható. Ez lehetővé teszi az egér mozgásának szimulálását és kattintási műveletek végrehajtását. Különösen hasznos makrókhoz vagy egyszerűbb grafikai interfészek automatizálásához.
Kommunikációs protokollok
– I2C támogatás (TinyWireM): Ez a kifejezetten az ATtiny85-höz készült könyvtár a hagyományos Wire könyvtárhoz hasonlóan lehetővé teszi az I2C (Inter-Integrated Circuit) protokoll használatát. Ezzel különböző I2C-eszközök, például szenzorok vagy LCD kijelzők csatlakoztathatók és vezérelhetők. Az egyik gyakori példa az I2C LCD kijelzők vezérlése a LiquidCrystal_I2C könyvtáron keresztül.
– SPI támogatás: Az ATtiny85 a USI (Universal Serial Interface) modult használja az SPI kommunikációra, amely lehetővé teszi nagysebességű adatátvitelt, például EEPROM memóriák vagy más SPI eszközök számára. Ez a hardveres SPI interfész gyorsabb kommunikációt biztosít, mint a szoftveres SPI.
PWM, analóg és I/O vezérlés
A Digispark ATtiny85 mindössze 6 I/O lábbal rendelkezik, de ezek mindegyike többféle módon használható, ezáltal növelve a rendelkezésre álló funkcionalitást. Az egyes lábak digitális bemenetként vagy kimenetként konfigurálhatók, de akár analóg bemeneti adatokat is képesek fogadni. A PWM (Pulse Width Modulation) kimenetek segítségével például motorokat vezérelhetünk, LED-ek fényerejét szabályozhatjuk vagy más, finomhangolást igénylő feladatokat valósíthatunk meg.
– Analóg bemenetek: Az ATtiny85-ben található ADC (Analóg-Digitál Átalakító) segítségével könnyen mérhetünk analóg jeleket, például szenzorok kimenetét. Ehhez elegendő a analogRead()
függvényt használni az Arduino környezetben.
– PWM kimenetek: A analogWrite()
függvény segítségével vezérelhetjük a PWM kimeneteket. Ez különösen hasznos LED-ek fényerejének szabályozására vagy motorok sebességének finomhangolására.
Energiagazdálkodási módok
Az ATtiny85 egyik nagy előnye az alacsony energiafogyasztás, ami különösen hasznos akkumulátoros eszközök esetén. Az ATtiny85 különféle energiatakarékos üzemmódokat támogat, amelyekkel csökkenthetjük az áramfelvételt, amikor az eszköz nincs aktív használatban.
– Alvó üzemmódok: Az ATtiny85 többféle alvó módot is támogat, amelyekkel drámai módon csökkenthetjük az áramfelvételt, amikor a mikrokontroller nem végez aktív munkát. Az avr/sleep.h
könyvtár használatával programozhatjuk az eszközt úgy, hogy alvó üzemmódba kapcsoljon, amikor nincs szükség folyamatos működésre.
– Watchdog timer: Az energiatakarékosság másik lehetősége a watchdog timer használata, amely lehetővé teszi az ATtiny85 számára, hogy rendszeresen felébredjen bizonyos feladatok elvégzésére, majd visszatérjen az alvó üzemmódba.
Példaprogramok
A Digispark ATtiny85-hoz számos példaprogram települ az Arduino IDE-vel, amelyek segítenek megérteni és gyorsan alkalmazni az áramkör képességeit:
- Blink: Egy egyszerű LED villogtatás, amely bemutatja a digitális kimenetek használatát.
- DigiKeyboard Examples: Példák a DigiKeyboard könyvtár használatára, ahol az ATtiny85 billentyűparancsokat küld egy számítógépnek.
- DigiMouse Examples: USB-s egérvezérlési példák, amelyekkel az ATtiny85 egérként funkcionál.
- I2C Scanner: Ez a példaprogram beolvassa az összes csatlakoztatott I2C-eszközt és kiírja az eszköz címét, segítve az I2C hálózat diagnosztikáját.
De az összes (1.7.5 alaplap-kiegészítővel települő) minta listája is elég beszédes:
Összefoglalás és kitekintés
A Digispark ATtiny85 sokoldalú eszköz, amely kicsi mérete és USB programozhatósága révén különösen hasznos a kisebb, helytakarékos projekteknél. A beépített funkciók és könyvtárak segítségével az ATtiny85 a legegyszerűbb alkalmazásoktól kezdve a komplex, kommunikációt és szenzorokat igénylő rendszerekig sokféle feladat megvalósítására alkalmas.
Az ATtiny85-re jellemző, hogy mindössze 8 KB flash memóriával rendelkezik, de a programokat úgy optimalizálhatjuk, hogy hatékonyan használjuk ki ezt a kis memóriát. A Micronucleus USB Bootloader lehetővé teszi az egyszerű és gyors újraprogramozást USB-n keresztül, miközben minimalizálja a memóriahasználatot. A további alaplap-kiegészítők, mint a TinyCore és ATTinyCore tovább bővítik a platform által támogatott mikrokontrollerek funkcióit, ideértve az időzítőket, megszakításokat és alacsony szintű hardveres vezérlést. A Digispark alaplap-támogatás telepítésével számos kiegészítő könyvtár is elérhető – a könnyebb használathoz.
Források
– Digispark HID keyboard
– I2C LCD és az ATtiny85
– Digispark Tutorial
– DIY Programmable 6-Key Keyboard (DigiSpark) – Instructables
– Digistump Wiki: Digispark Tutorials – A Digispark ATtiny85-hez kapcsolódó alapismeretek és példák
– Micronucleus GitHub Repository – Információ a Micronucleus USB bootloaderről és a programozási eszközről
– ATTinyCore GitHub Repository – Specifikus ATTiny könyvtárak
– Arduino Project Hub – Az (ATtiny85) projektek és példakódok gyűjtőhelye
– Hackaday: Micronucleus T85 USB Dev – További fejlesztési lehetőségek a Digispark ATtiny85-tel