2011. június 17., péntek

Moonwalker III.

Íme, elkészült! Van rajta még mit csiszolni, de ennek ellenére elégedett vagyok az eredménnyel.

Az új konstrukció alumínium alvázat kapott, a hernyótalp műanyag kerekekre lett lecserélve, a meghajtásért most már 4 motor felel, és ami a legjobb, az irányítás már vezeték nélkül történik...
Az alumínium könnyebb a vasnál, ezért jobb választásnak bizonyult azt használni. A túl nagy súrlódás miatt kénytelen voltam inkább kerekeket használni, így már képes a járgány egy helyben megfordulni. Szükség volt továbbá +2 motor beépítésére, ennek hatására dinamikusabb lett a mozgás. Az egy oldalon lévő motorok kábelezésileg sorba vannak kötve, így hát közös a vezérlésük. Táplálásukat 8db tölthető akku biztosítja. A vezérlő elektronika 9V-os elemről működik. A piros LED világítása azt jelzi, hogy van vétel a távirányítótól.





A legnehezebb feladat a távvezérlés megvalósítása volt. Először is építeni kellett egy adó áramkört, ami bizonyos időközönként megvizsgálja a joystick állását, nyomógombjainak az állapotát. Ezeket az információkat ezután hibamentesen továbbítani kell a vevő felé, hogy az megfelelően vezérelhesse a motorokat. A hibamentességet a Manchester kódolás és az ellenőrzőösszeg használata teszi lehetővé, de ettől még egyáltalán nem biztos, hogy minden kiküldött csomag meg is érkezik.

Az adó
Az adón két LED-et helyeztem el, amelyek akkor világítanak, ha a joystick középállásban van. Ennek segítségével könnyen be lehet kalibrálni a botkormányt.

Átalakított joystick
A protokollt - ami alapján működik a távirányítás - az alábbi ábra szemlélteti:


Látható, hogy Msg Type mező adja meg, hogy milyen típusú az adott fogadott bájt. Az irányításhoz az első 3 típusra van szükség, ezek együtt alkotnak egy csomagot. Másodpercenként 20-30 alkalommal küld ilyen csomagot az adó a vevőnek az aktuális joystick-állásról. A 10 típusú bájt(ok) még nincs(enek) implementálva. A későbbiekben valószínűleg utasítások továbbítására lesznek használva. A joystick két nyomógombjának az állapota is el van küldve, ezeknek a megnyomásával blokkolhatóak a jobb ill. a baloldali motorok.
Ha csomag tartalma megsérül (pl. interferencia miatt), akkor a 00 és 01 típusú bájtból számított ellenőrzőösszeg nem fog megegyezni a 11 típusúból vett ellenőrzőösszeggel. Így nagy biztonsággal kizárható, hogy a járgány hamis vétel miatt rosszul reagáljon. Ha a joystick középállásban van, akkor az adó nem küld csomagokat arra vonatkozóan, hogy nulla a sebesség. Ebben az esetben ha a vevő észreveszi, hogy egy ideje nincs vétel, akkor kikapcsolja a motorokat.

Sajnos a motorok nagy zajt termelnek, ami bizony könnyen megzavarja a mikrovezérlőt működése közben. Próbálkoztam többféle tápfeszültség szűréssel és miegymással, de így is néha előfordul, hogy lefagy a processzor. Megpróbálok még azért megoldást találni erre a problémára, szóval rajta vagyok a témán. Hamarosan készítek majd egy videót a működésről, amit a következő bejegyzésemben be is mutatok.

Az előzőleg megépített szonárral szeretném még felszerelni a járgányt, így emberi irányítás nélkül is képes lesz közlekedni a gépezet.

Nincsenek megjegyzések:

Megjegyzés küldése