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);}