Áramkörök

Robot építése - 3. lecke: Egy vonalkövető robot építése: 16 lépés

Demjén Ferenc - Hogyan tudnék élni nélküled (HQ)

Demjén Ferenc - Hogyan tudnék élni nélküled (HQ)

Tartalomjegyzék:

Anonim

Miután befejeztük az alapvető funkciókat, most már készen állunk az Arduino robot fejlesztésére - Line-tracking!

Ebben a bemutatóban lépésről lépésre megtanulja, hogy egy Arduino robotvonalat követjen. Ahhoz, hogy ez a bemutató könnyen követhető legyen, példaként egy Arduino robotkészletet (Pirate: 4WD Arduino Mobile Robot Kit, Bluetooth 4.0) használunk.

Lessons menü:

1. lecke: Bevezetés

2. lecke: Alapvető Arduino robot létrehozása

3. lecke: Vonal nyomon követése Arduino robot

4. lecke: Építsen egy Arduino robotot, amely elkerülheti az akadályokat

5. lecke: Arduino robot létrehozása fény- és hanghatásokkal

6. lecke: Építsen egy Arduino robotot, amely figyeli a környezetet

7. lecke: Bluetooth-vezérelt Arduino robot építése

Szükséges hardver alkatrészek:

Line Tracking (követő) érzékelő Arduino × 3-hoz

kellékek:

1. lépés:

Szélesség 2.5CM Fekete Elektromos szalag × 1

2. lépés:

1M * 1M fehér tábla × 1

3. lépés:

M3 * 30MM nylon tartó (csavarok, anyák) × 3

4. lépés:

összeszerelési útmutató

Az Arduino robot összeállítása nem nehéz. Kérjük, kövesse az alábbi utasításokat.

1. lépés:

Először 3 nylon támasztékra és csatolt csavarokra és anyákra van szükség.

5. lépés:

2. lépés: A nylon tartók rögzítése

Csavarja be a nylon támaszokat a Mini érzékelők tetejére. A támaszok rögzítésekor ügyeljen az irányukra: az anyáknak és a szondáknak egy irányban kell lenniük.

6. lépés:

3. lépés: Az érzékelőlemez összeszerelése

Távolítsa el a felső lemezt a robotplatformról. Ezután csatlakoztassa az érzékelőt a platform elejéhez.

7. lépés:

4. lépés: A vonalkövető érzékelő összeszerelése

Először csatlakoztassa az érzékelőt az adatátvitelhez kijelölt vezetékhez. Ezután az M3 csavarokkal rögzítse az érzékelőket a platform elülső részéből kiálló tágulási táblára.

8. lépés:

A hardver csatlakoztatása

Az érzékelők összeszerelése után ne próbálja meg újra a platform felső lemezét helyezni, mielőtt először csatlakoztatná az érzékelőket a Romeo BLE-hez.

A bal oldali kép a szenzorok helyes ABC elhelyezését mutatja az érzékelőtáblán, amely megfelel a Romeo BLE 10, 9 és 8 csapjának. Az érzékelők csatlakoztatásakor ellenőrizze, hogy a megfelelő sorrendben csatlakoztatta-e őket. Az érzékelők csatlakoztatása után helyezze vissza a platform felső lemezét az alaplap tetejére.

9. lépés:

Az érzékelők beállítása

A kód letöltése előtt be kell állítanunk érzékelőinket. Először csatlakoztasson egy USB kábelt a Romeo BLE-hez (Arduino Robot Control Board Bluetooth 4.0-al) ahhoz, hogy hatalmat kapjon. Amint az alábbi képen látható, az alábbi érzékelő egy Philips csavarfejet tartalmaz; ez a csavarfej a szenzor érzékelésének beállítására használható. Vegyünk egy fehér papírlapot, és helyezzük az érzékelő szonda alá (a papír színe kalibrálási célokra használható). Kapjon egy csavarhúzót, és húzza meg a Philips csavarfejét. Úgy érzi, hogy az érzékelő szonda fizikailag felfelé és lefelé mozog, attól függően, hogy szorosan húzza meg a csavarfejet. Azt is látni fogja, hogy a szenzor LED-je kigyullad, amint elkezdi a meghúzást. Húzza meg a csavarfejet, amíg a szonda pontja körülbelül 2 cm-rel a papírdarab felett van.

10. lépés:

Coding

Csatlakoztassa az USB-t. Töltse le a „HuntingLineBlack.ino” nevű Arduino kódot a GitHub-tól. Kattintson a Feltöltés gombra az Arduino IDE-ben, hogy feltöltse a kódot a BLE vezérlőpultjára.

11. lépés:

Az Arduino Robot útvonalának beállítása

Vegye ki a tábláját. Használja a 2,5 cm széles elektromos szalagot, hogy lefektesse az utat a táblára, az alábbi képen látható módon.

12. lépés:

A huzal szélessége körülbelül 2,5 cm, az A és C szenzorok közötti távolság kb. egy későbbi szakasz részletesebben magyarázza ezt az érvelést.

13. lépés:

Átadás: Hogyan működik

Hogyan lehet a robot maradni a pályán? Biztosítanunk kell, hogy a robot következetesen a pálya közepén helyezkedik el. A robot 3 átviteli érzékelőjével kalibrálja pozícióját a pályához képest - ha az oldalra esik, a robot önmagát állítja vissza középre.

Amikor robotunk mozog, három feltétel fog történni.

14. lépés:

(a) Amikor a robot először elkezd mozogni a pályán, csak a középső érzékelő (B) érzékeli a fekete vonalat - a bal és jobb érzékelők még nem játszottak le. Az autó középen marad a pálya mentén, és előre halad.

15. lépés:

(b) A pálya folytatását követően a robot elkezdhet a középponttól. Ilyen körülmények között a bal és jobb érzékelők megpróbálják felismerni a fekete vonalat, és önállóan irányítani a robotot a pálya felé. Például, ha a robot a pálya jobb oldala felé mozdul, a gépkocsinak vissza kell állítania magát a balra forgatással - a bal érzékelő beindul, és automatikusan elfordítja a robotot, amíg újra nem áll.

16. lépés:

(c) Ha viszont a robot a pálya bal oldala felé mozdul el, a jobb szenzor beindul, és beállítja a robot útját, amíg újra nem központosul.

Kódszinopszis

Nem szükséges megvitatni az alapkódot - nézzük csak meg az átvitelt.

int RightValue; // A jobb oldali traktor érzékelője a 8-as érintkezőn

int MiddleValue; // Középvonalú traktorérzékelő a 9-es csatlakozón

int LeftValue; // A bal oldali traktor érzékelő a 10-es érintkezőn

// 3 soros érték olvasása a vonalkövető érzékelőből

RightValue = digitalRead (8);

MiddleValue = digitalRead (9);

LeftValue = digitalRead (10);

Használjon három változót - RightValue, MiddleValue, LeftValue - a 3 érzékelő olvasási értékének rögzítéséhez.

A DigitalRead (pin) funkció a digitális bemeneti / kimeneti port értékének olvasására szolgál. Ha ez a rész még nem tisztázott, kérjük, nézze meg a Terminológia kézikönyvét vagy az Arduino honlapját.

Ha a középső átviteli érzékelő egy fekete vonalat (a műsorszámot) észlel, LOW energiát eredményez. Amikor fehér területet észlelnek, akkor nagy energiaforrást hoznak létre.

Az alábbi A példa az átviteli kód működési elveit mutatja be. Amikor a középső érzékelő fekete vonalat (a pályát) észlel, LOW energiát hoz létre. Ha a bal / jobb szenzorok fehér területet érzékelnek, akkor nagy teljesítményt kapnak.

ha (MiddleValue == LOW) {// vonal a középső Robot.Speed ​​(100,100); késleltetés (10);}

egyébként ha ((LeftValue == HIGH) && (RightValue == HIGH)) {Robot.Speed ​​(100,100); késleltetés (10);}

Ha az érzékelők a fekete vonalat / sávot balra mutatják, miközben jobb oldali területet érzékelnek, a robot balra fordul. Lásd az alábbi B. példát:

egyébként ha ((LeftValue == LOW) && (RightValue == HIGH)) {Robot.Speed ​​(-100,100); // balra késleltetés (10);}

Ezzel ellentétben, ha az érzékelők a fekete vonalat / sávot jobbra észlelik, miközben a bal oldalt is érzékelik, a robot jobbra fordul. Lásd az alábbi C példát:

egyébként ha ((LeftValue == HIGH) && (RightValue == LOW)) {Robot.Speed ​​(100, -100); // jobbra forduló késleltetés (10);}