Pár hónapja játszadozom az ESP8266 alapú fejlesztői eszközökkel, bevezetésnek az egyik első projektemet szeretném bemutatni. Reményeim szerint ezt a cikket hamarosan több másik is követni fogja, elkészültem ugyanis több mindennel, közben pedig szépen gyűlnek az ötletek is.
Ez a mostani projekt bizonyos szempontból hasonlít már korábbi munkámra, amennyiben itt is egy régi eszköz "felokosítása" történt meg. Csak most nem egy párologtató, hanem egy távirányítású játékautó volt a kiindulási alap, ami bár jó állapotban volt, de távirányító hiányában mégis használhatatlan.
A türelmetleneknek íme a végeredmény, a lentiekben pedig majd az átalakításról bővebben írok.
Az ESP8266 alapú fejlesztői környezetre idén év elején találtam rá, bár már 2014 óta piacon lévő termékről van szó. Eredetileg többek között az Arduino platform mellé szánták olcsó wifi modulnak, de a közösség hamarosan felfedezte, hogy önmagában is egy igen sokoldalú mikrovezérlőről van szó. A kínai gyártó pedig nem ült a babérjain, és folyamatosan hozta ki az újabb és újabb verziókat, jelenleg körülbelül 16 verziója létezik.
Mivel a népszerűbb ESP8266 modulok nehezen alkalmazhatóak breadboardon, és forrasztani is nehézkes ezért nemsokára elkészült a NodeMCU nevű környezet, mely leginkább az Arduino Micro-ra hasonlít, két nagyon fontos különbséggel:
- beépített wifivel rendelkezik
- akár 1800Ft alatt is megkapható (szállítással)
Reményeim szerint hamarosan egy részletesebb cikkel jelentkezhetek majd a platform történetéről, lehetőségeiről, de most térjünk rá a távirányítós autóra!
Miután leszedtem a borítást ezt láttam:
Igazi, klasszikus megoldás, furatszerelt alkatrészekkel, még a nyák lemezt is csavarok rögzítették, hogy kényelmesen lehessen kiszerelni, hogy a helyére a saját panelemet rögzíthessem.
A NodeMCU board mellé próbapanelre szereltem fel a motor vezérlő tranzisztorokat (ezeket ki tudtam menteni az eredeti áramkörből), valamint ide kerültek a szervó és led meghajtáshoz a MOSFET-ek is, valamint az előtét ellenállások. Mint látható, szeretem, ha minden bármikor szét és össze-szerelhető, ezért a külső komponensek tüskesorral csatlakoznak. Rengeteg helyet nyertem továbbá azzal, hogy a NodeMCU alá is be tudtam zsúfolni jópár alkatrészt.
Az új és a régi elektronika egymás mellett. Kedvencem, hogy a wifinek elegendő az áramkörre nyomtatott apró antenna is, így az autó megszabadult a hatalmas antennájától.
Saját elektronika az eredeti helyén. Lecseréltem az autó elejében az kormányzást is. A korábbi "teljesen balra-teljesen jobbra" mágneses megoldás helyére egy TowerPro szervót faragtam be. Ezzel már fokozatmentesen lehet a járművet kormányozni.
Mivel még ezek után is maradtak szabad lábai a vezérlőnek, ezért elláttam világítással is a járművet: a jobb-bal irányjelzők külön kapcsolhatóak, míg az első-hátsó világítást egy kimenet vezérel. Előre nagy fényerejű fehér ledek kerültek, így szerintem még vagányabb lett.
Némi fúrás-faragás-ragasztás után össze is állt az egész, amit már a fenti videón is láthattatok.
Távirányításra a RoboRemo alkalmazást használtam, ezzel az androidos appal percek alatt összerakhatunk egy távirányító felületet. Esetemben a telefon elforgatásával lehet kormányozni, a képernyő jobb oldalán az ujjunkkal tudjuk a gázt szabályozni, a hátramenet ésa világítás pedig külön gombokkal kapcsolható.
A középső grafikon az akkumulátor feszültséget mutatja, továbbá a lámpák is külön visszajelzőket kaptak.
A NodeMCU-n futó kódot a RoboRemo egyik példakódját felhasználva raktam össze, de aztán számos helyen módosítottam rajta. A legjelentősebb talán a szervók vezérlése volt: az eredeti kóddal az én szervóm ide-oda ugrált, nagyon pontatlan volt, ezért inkább átírtam a PWM modul felhasználásával. Ezután már szépen, egyenletesen fordulnak el a kerekek.
Ha valaki szeretne hasonlót építeni, a kódokat megosztottam githubon.
Végezetül a tapasztalatok: az irányítás kényelmes, de sajnos a wifinek még egy jó router esetében is jól érzékelhető késleltetése van. Gyors akciókra ne számítson tehát senki, de azért egy ilyen autóval jól el lehet szórakozni.
A másik fontos tapasztalat az volt, hogy az AA akkumulátorok nem tudnak elegendő áramot leadni a motorok, a wifi, és a többi fogyasztó meghajtására. Minden működött ugyan, de az autó messze nem volt olyan fürge, mint amit eredetileg elképzeltem. Ezért végül a 4db AA elem helyett 2db LiPO akkumulátort tettem be. Ezek bár névlegesen jóval kisebb kapacitásúak, mégis ugyanúgy nagyjából 20-30 perc játékot tetsznek lehetővé egyetlen töltéssel.