ROBOTAUTÓ - SUMO ROBOT

2016\12\01

Előre programozott mozgás

A tanulók most először kaptak önállóan megoldandó feladatot. Az eddig elkészült kódokat együtt raktuk össze, és a tesztelésnél is sok segítséget kaptak.

cikk.jpgA feladat:

A telefonon egy gomb lenyomására a robotautó menjen előre, majd 3x ismételje meg a balra-jobbra kanyarodó hullámzó mozgást. Először egy rajzos vázlatot kértem a probléma megoldására, majd önállóan kellet a kódolást is megoldaniuk, a meglévő eljárások felhasználásával.

 

A következő eljárásokat lehet használni:

motor(x)  

A hátsó motor vezérlésére használható. Ha az x pozitív, akkor előre megy, ha negatív, akkor hátra megy, illetve 0 esetén áll. A sebesség minden autónál más, mivel nem egyforma a három autó. A telefonról beállítható a sebesség értéke, így lehet próbálkozni különböző értékekkel.

kormány(’x’)

Az első kormány vezérlésére használható eljárás. Csak a következő karaktereket fogadja el paraméterként:

’e’ egyenesbe állítja a kormányt
’b’ balra állítja a kormányt
’j’ jobbra állítja a kormányt

Az RGB ledeket vezérlik a következő eljárások:

fekete()
feher()
piros()
zold()
kek()
lila()

A feladatot hatékonyan egy ciklus alkalmazásával lehetett megoldani.

Tamás, és Vencel programja:

motor(MOTOR_seb);
     delay(1000);
     zold();
     kormany('b');
     delay(ido_y/2);

     for (int i=0; i < 3; i++){  

      kormany('j');
      lila();
      delay(ido_y);

      kormany('b');
      feher();
      delay(ido_y);

   }

kormany('e');
motor(0);
piros();

 

A kód két változót is használ: A MOTOR_seb nevű változót a telefonon egy csúszka segítségével tutják állítani. Az ido_y nevű változót eredetileg egy Y alakú megforduláshoz raktuk fel a telefon kijelzőjére, de itt most a fordulások közötti időre használtuk.

Először az ido_y idő felével balra fordul az autó, majd 3x ismételve megcsinálja a jobbra, balra fordulást ido_y idővel.

 Itt az eredmény:

Az algoritmusok:
cikk-cakk_algoritmus.jpg

2016\11\18

RoboRemo

roboicon.pngA bluetooth egységet bármilyen androidos szoftverrel lehet kezelni. Számos ingyenes alkalmazást kipróbáltunk, és a roboremofree mellet döntöttünk. Előnye, hogy szinte minden kommunikációs csatornát kezel, és az interface szabadon alakítható. Vagyis tetszőlegesen rendezhetjük el a képernyőn a komponenseket, amiből rengeteg van. A FREE verzióban csak a komponensek száma van 5-re korlátozva. Az alkalmazás fizetős változata sem drága, érdemes megvenni, ha valaki nagyobb projecteket is épít.

A rendszer lényege, hogy a roboremo soros szöveges parancsokat küld, és fogad a HC-06-on keresztül az ARDUINO-hoz. A parancsok tetszőlegesek lehetnek, de a feldolgozásukat az ARDUINO-ban nekünk kell megoldani.

Számos példa, és oktató videó van a gyártó oldalán: http://www.roboremo.com

More:

2016\11\18

Bluetooth hardver

A robotautó mozgását nagyon sok tényező befolyásolja. Egy Y megfordulásnál a motor sebessége, a mozgások ideje lényeges, és nehezen beállítható. Ezért úgy döntöttünk, hogy felrakunk egy HC-06 bluetooth egységet, amit androidos telefonról tudunk vezérelni. Így a telefonon könnyen állíthatók a sebesség, és az idő adatok, és mellesleg távirányítónak is megfelel.

hc06.jpg

A HC-06 bekötése nagyon egyszerű, csak arra kell figyelni, hogy az RxD, és a TxD lábai 3,3V-os jelet kezelnek. A tápfeszültség viszont 3,3-6V között lehet, így az 5V-os tápfeszültség megfelel.

Az ARDUINO TxD kimenetének 5V-os feszültsége károsítaná a HC-06 RxD bemenetét, ezért ott egy feszültségosztót alkalmazunk. Az ajánlott 1K - 2,2K feszültségosztó helyett 3 db 10K ellenállást építettünk be, és tökéletesen működik.

Az ARDUINO 0-ás, és 1-es portja egy hardveres soros port, amivel a legegyszerűbb a soros kommunikáció a HC-06-al.

 

A képen (kinagyítható) látható a teljes kapcsolás.

kapcsolas_x.jpg

 

süti beállítások módosítása