Szeretnéd megtanulni saját robot építését? Sokféle robot létezik, amelyeket egyedül készíthet. A legtöbb ember azt szeretné látni, hogy egy robot elvégzi az A -ból B -be való áthelyezés egyszerű feladatait. Készíthet robotot teljesen analóg alkatrészekből, vagy kezdő készletet vásárolhat a semmiből! A saját robot építése nagyszerű módja annak, hogy megtanítsa önmagát mind az elektronika, mind a számítógépes programozás területén.
Lépések
1. rész a 6 -ból: A robot összeszerelése
1. lépés Gyűjtse össze az alkatrészeket
Egy alapvető robot építéséhez több egyszerű alkatrészre lesz szüksége. Ezen alkatrészek többségét, ha nem mindegyikét megtalálhatja a helyi elektronikai hobbiboltban vagy több online kiskereskedőben. Néhány alapvető készlet tartalmazhatja ezeket az összetevőket is. Ez a robot nem igényel forrasztást:
- Arduino Uno (vagy más mikrokontroller)
- 2 folyamatosan forgó szervó
- 2 kerék, amelyek illeszkednek a szervókhoz
- 1 görgő görgő
- 1 kisméretű, forrasztás nélküli kenyértábla (keressen olyan kenyérlapot, amelynek mindkét oldalán két pozitív és negatív vonal található)
- 1 távolságérzékelő (négytűs csatlakozó kábellel)
- 1 mini nyomógombos kapcsoló
- 1 10 kΩ -os ellenállás
- 1 USB A -B kábel
- 1 db leválasztható fejléc
- 1 db 6 x AA elemtartó 9V DC tápcsatlakozóval
- 1 csomag áthidaló vezeték vagy 22-es bekötőhuzal
- Erős kétoldalas szalag vagy forró ragasztó
2. lépés Fordítsa meg az akkumulátort úgy, hogy a lapos hátlap felfelé nézzen
A robot testét fogja építeni az akkumulátor segítségével.
3. lépés Állítsa be a két szervót az akkumulátor végén
Ez lesz a vége annak, hogy az akkumulátor huzalja kijöjjön. A szervóknak meg kell érniük az aljukat, és mindegyik forgó mechanizmusának ki kell néznie az akkumulátor oldalára. A szervókat megfelelően kell igazítani, hogy a kerekek egyenesen haladjanak. A szervók vezetékeinek le kell válniuk az akkumulátor hátuljáról.
4. lépés. Rögzítse a szervókat szalaggal vagy ragasztóval
Győződjön meg arról, hogy szilárdan rögzítve vannak az akkumulátorhoz. A szervók hátulját egy síkban kell elhelyezni az akkumulátor hátoldalával.
A szervóknak most fel kell venniük az akkumulátor hátsó felét
5. lépés. Rögzítse a kenyértáblát merőlegesen az akkumulátor szabad helyére
Kicsit lógnia kell az akkumulátor elején, és túlnyúlik mindkét oldalán. A folytatás előtt győződjön meg arról, hogy biztonságosan rögzítve van. Az "A" sor legyen a szervókhoz legközelebb.
6. lépés: Csatlakoztassa az Arduino mikrokontrollert a szervók tetejéhez
Ha megfelelően csatlakoztatta a szervókat, akkor lapos helyet kell hagyni, amelyek érintik őket. Ragassza az Arduino táblát erre a lapos helyre úgy, hogy az Arduino USB- és tápcsatlakozói a hátlap felé nézzenek (távol a kenyértáblától). Az Arduino elejének alig kell átfednie a kenyértáblát.
7. lépés Helyezze a kerekeket a szervókra
Erősen nyomja a kerekeket a szervó forgó mechanizmusára. Ez jelentős erőt igényelhet, mivel a kerekeket úgy tervezték, hogy a lehető legjobban illeszkedjenek a legjobb tapadáshoz.
8. lépés. Csatlakoztassa a görgőt a kenyértábla aljához
Ha megfordítja a házat, látnia kell egy kis kenyeretáblát az akkumulátor mellett. Csatlakoztassa a görgőt ehhez a kiterjesztett darabhoz, szükség esetén emelők segítségével. A görgő első kerékként működik, lehetővé téve a robot számára, hogy könnyen bármilyen irányba forduljon.
Ha készletet vásárolt, előfordulhat, hogy a görgőhöz néhány felszálló elem tartozik, amelyekkel biztosíthatja, hogy a görgő elérje a talajt. én
2. rész a 6 -ból: A robot bekötése
1. lépés Törjön le két 3 tűs fejlécet
Ezeket fogja használni a szervók csatlakoztatásához a kenyértáblához. Nyomja le a csapokat a fejrészen keresztül, hogy a csapok mindkét oldalon egyenlő távolságra kerüljenek ki.
2. lépés Helyezze be a két fejlécet az 1-3. És 6-8. Csapokba a kenyértábla E sorában
Győződjön meg arról, hogy szilárdan vannak behelyezve.
3. lépés: Csatlakoztassa a szervokábeleket a fejrészekhez, a fekete kábellel a bal oldalon (1. és 6. láb)
Ez összeköti a szervókat a kenyértáblával. Győződjön meg arról, hogy a bal szervó csatlakozik a bal oldali fejrészhez, a jobb szervó pedig a jobb oldali fejléchez.
4. lépés Csatlakoztassa a piros áthidaló vezetékeket a C2 és C7 csapokból a piros (pozitív) síncsapokhoz
Győződjön meg róla, hogy a kenyérsütő lap hátoldalán lévő piros sávot használja (közelebb az alváz többi részéhez).
5. lépés Csatlakoztassa a fekete áthidaló vezetékeket a B1 és B6 csapokból a kék (földelt) síncsapokhoz
Győződjön meg arról, hogy a kenyértábla hátoldalán lévő kék sínnel rendelkezik. Ne csatlakoztassa őket a piros síncsapokhoz.
6. lépés Csatlakoztassa az Arduino 12. és 13. csapja fehér áthidaló vezetékét az A3 és A8 -hoz
Ez lehetővé teszi, hogy az Arduino vezérelje a szervókat és forgassa a kerekeket.
Lépés 7. Csatlakoztassa az érzékelőt a kenyértábla elejéhez
Nem a kenyértábla külső tápcsöveihez csatlakozik, hanem a betűs csapok első sorához (J). Győződjön meg arról, hogy pontosan a középpontba helyezi, és mindkét oldalon azonos számú csap található.
8. lépés Csatlakoztasson egy fekete áthidaló vezetéket az I14 tűtől az első elérhető kék síncsapra az érzékelő bal oldalán
Ez földelni fogja az érzékelőt.
9. lépés Csatlakoztasson egy piros áthidaló vezetéket az I17 érintkezőtől az első rendelkezésre álló piros síncsapra az érzékelő jobb oldalán
Ez táplálja az érzékelőt.
10. lépés Csatlakoztassa a fehér áthidaló vezetékeket az I15 -ös tűtől a 9 -es tűig az Arduino -n, és az I16 -tól a 8 -as tűig
Ez az információt az érzékelőtől a mikrokontrollerhez továbbítja.
3. rész a 6 -ból: Az áram bekötése
1. lépés Fordítsa oldalra a robotot, hogy láthassa a csomagban lévő elemeket
Irányítsa úgy, hogy az akkumulátor kábele alul balra jöjjön ki.
2. lépés Csatlakoztasson egy piros vezetéket a második rugóhoz balról az alján
Győződjön meg arról, hogy az akkumulátor megfelelően van beállítva.
3. lépés Csatlakoztasson egy fekete vezetéket a jobb alsó sarokban lévő utolsó rugóhoz
Ez a két kábel segít biztosítani a megfelelő feszültséget az Arduino számára.
4. lépés. Csatlakoztassa a piros és a fekete vezetékeket a jobb szélső piros és kék csapokhoz a kenyérsütő panel hátoldalán
A fekete kábelt a 30. tűn lévő kék síncsapra kell bedugni. A piros kábelt a 30. tűn lévő piros síncsapra kell bedugni.
5. lépés: Csatlakoztasson egy fekete vezetéket az Arduino GND csapjából a hátsó kék sínhez
Csatlakoztassa a kék sín 28. tűjéhez.
6. lépés Csatlakoztasson egy fekete vezetéket a hátsó kék sínből az elülső kék sínhez a 29 -es tűnél
Ne csatlakoztassa a piros síneket, mert valószínűleg megsérül az Arduino.
Lépés 7. Csatlakoztasson egy piros vezetéket az elülső piros sínről a 30. tűnél az Arduino 5V -os tűjéhez
Ez áramot biztosít az Arduino számára.
8. lépés: Helyezze be a nyomógombos kapcsolót a 24-26. Csapok sorok közötti résébe
Ezzel a kapcsolóval kikapcsolhatja a robotot anélkül, hogy ki kellene húznia az áramellátást.
9. lépés. Csatlakoztasson egy piros vezetéket a H24 -ből az érzékelő jobb oldalán található következő tűn lévő piros sínhez
Ez fogja működtetni a gombot.
10. lépés: Az ellenállás segítségével csatlakoztassa a H26 -ot a kék sínhez
Csatlakoztassa a tűhöz közvetlenül a néhány lépéssel ezelőtt csatlakoztatott fekete vezeték mellett.
11. lépés: Csatlakoztasson egy fehér vezetéket a G26 -tól az Arduino 2. tűjéhez
Ez lehetővé teszi az Arduino számára, hogy regisztrálja a nyomógombot.
4. rész a 6 -ból: Az Arduino szoftver telepítése
1. lépés: Töltse le és bontsa ki az Arduino IDE -t
Ez az Arduino fejlesztői környezet, és lehetővé teszi, hogy programozási utasításokat töltsön fel az Arduino mikrokontrollerére. Ingyenesen letöltheti az arduino.cc/en/main/software webhelyről. Csomagolja ki a letöltött fájlt dupla kattintással, és helyezze át a mappát egy könnyen hozzáférhető helyre. Valójában nem telepíti a programot. Ehelyett csak a kibontott mappából futtathatja, ha duplán kattint az arduino.exe fájlra.
2. lépés Csatlakoztassa az akkumulátort az Arduino -hoz
Csatlakoztassa az akkumulátor csatlakozóját az Arduino csatlakozójához, hogy áramot kapjon.
3. lépés Csatlakoztassa az Arduino -t a számítógéphez USB -n keresztül
A Windows valószínűleg nem ismeri fel az eszközt.
4. lépés. Nyomja meg a gombot
⊞ Win+R és írja be devmgmt.msc.
Ezzel elindul az Eszközkezelő.
5. lépés: Kattintson a jobb gombbal az "Ismeretlen eszköz" elemre az "Egyéb eszközök" részben, és válassza az "Illesztőprogram-frissítés" lehetőséget
" Ha nem látja ezt a lehetőséget, kattintson a "Tulajdonságok" gombra, válassza az "Illesztőprogram" fület, majd kattintson az "Illesztőprogram frissítése" gombra.
6. lépés. Válassza a "Tallózás a számítógépen az illesztőprogramok keresése" lehetőséget
" Ez lehetővé teszi az Arduino IDE -vel kapott illesztőprogram kiválasztását.
7. lépés: Kattintson a "Tallózás" gombra, majd keresse meg a korábban kibontott mappát
Belül talál egy "illesztőprogramok" mappát.
Lépés 8. Válassza ki az "illesztőprogramok" mappát, majd kattintson az "OK" gombra
" Ha ismeretlen szoftverre figyelmeztet, erősítse meg, hogy folytatni kívánja.
5. rész a 6 -ból: A robot programozása
1. lépés Indítsa el az Arduino IDE-t úgy, hogy duplán kattint az arduino.exe fájlra az IDE mappában
Önt üres projekt fogadja.
2. lépés: Illessze be a következő kódot, hogy a robot egyenesen menjen
Az alábbi kód arra készteti az Arduino -t, hogy folyamatosan haladjon előre.
#include // ez hozzáadja a "Servo" könyvtárat a programhoz // a következő két szervo objektumot hoz létre Servo leftMotor; Szervo jobbMotor; void setup () {leftMotor.attach (12); // ha véletlenül megváltoztatta a szervók PIN -kódjait, itt kicserélheti a számokat rightMotor.attach (13); } void loop () {leftMotor.write (180); // folyamatos forgással 180 azt mondja a szervónak, hogy teljes sebességgel haladjon "előre". jobb motor. írni (0); // ha mindkettő 180 -nál van, a robot körbe megy, mert a szervók fel vannak fordítva. A "0" azt jelzi, hogy teljes sebességgel "hátra" kell haladnia. }
3. lépés: Készítse el és töltse fel a programot
Kattintson a jobbra mutató nyíl gombra a bal felső sarokban a program létrehozásához és feltöltéséhez a csatlakoztatott Arduino-hoz.
Érdemes leszedni a robotot a felületről, mivel a program feltöltése után csak tovább fog haladni
4. lépés: Adja hozzá a kill switch funkciót
Adja hozzá a következő kódot a kód "void loop ()" szakaszához, hogy engedélyezze a kill kapcsolót az "write ()" funkciók felett.
if (digitalRead (2) == HIGH) // ez regisztrál, amikor megnyomják a gombot az Arduino 2. tűjén {while (1) {leftMotor.write (90); // A "90" a szervók semleges helyzete, amely azt mondja, hogy hagyják abba a jobbra fordulástMotor.write (90); }}
5. lépés. Töltse fel és tesztelje kódját
A kill switch kód hozzáadásával feltöltheti és tesztelheti a robotot. Tovább kell haladnia előre, amíg meg nem nyomja a kapcsolót, ekkor leáll. A teljes kódnak így kell kinéznie:
#include // a következő két szervo objektumot hoz létre Servo leftMotor; Szervo jobbMotor; void setup () {leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) {while (1) {leftMotor.write (90); rightMotor.write (90); }} leftMotor.write (180); rightMotor.write (0); }
6. rész 6. rész: Példa
1. lépés. Kövessen egy példát
A következő kód a robothoz csatlakoztatott érzékelőt használja, hogy balra forduljon, amikor akadályba ütközik. Tekintse meg a kódban található megjegyzéseket az egyes részek működésének részleteiről. Az alábbi kód a teljes programot tartalmazza.
#include szervo leftMotor; Szervo jobbMotor; const int serialPeriod = 250; // ez a kimenetet a konzolra korlátozza 1/4 másodpercenként egyszer alá nem írt hosszú időreSerialDelay = 0; const int loopPeriod = 20; // ez beállítja, hogy az érzékelő milyen gyakran vegyen leolvasást 20 ms -ra, ami 50 Hz -es előjel nélküli hosszú timeLoopDelay = 0; // ez hozzárendeli a TRIG és ECHO funkciókat az Arduino csapjaihoz. Végezze el a számok módosítását itt, ha másképp csatlakoztatta a const int ultrahangos2TrigPin = 8; const int ultrahangos2EchoPin = 9; int ultrahangos2Távolság; int ultrahangos2Duration; // ez határozza meg a robot két lehetséges állapotát: előrehaladás vagy balra fordulás #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = előrehajtás (DEFAULT), 1 = balra fordulás void setup () {Serial.begin (9600); // ezek az érzékelőcsap konfigurációk pinMode (ultrahangos2TrigPin, OUTPUT); pinMode (ultrahangos2EchoPin, INPUT); // ez hozzárendeli a motorokat az Arduino csapokhoz leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // ez észleli a kill kapcsolót {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // ez hibakeresési üzeneteket nyomtat a soros konzolra, ha (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // ez utasítja az érzékelőt, hogy olvassa és tárolja a mért távolságokat stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // ha nem észlel akadályt {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // ha nincs semmi a robot előtt. ultrasonicTávolság negatív lesz egyes ultrahangosoknál, ha nincs akadály {// haladjon előre rightMotor.write (180); leftMotor.write (0); } else // ha van előttünk egy objektum {state = TURN_LEFT; }} else if (state == TURN_LEFT) // ha akadályt észlel, forduljon balra {unsigned long timeToTurnLeft = 500; // kb.5 másodpercbe telik a 90 fokos elfordulás. Lehet, hogy ezt módosítania kell, ha a kerekei eltérnek a példától, mint az aláírás nélküli hosszú turnStartTime = millis (); // mentse el az időt, amikor elkezdtük forgatni, miközben ((millis ()-turnStartTime) <timeToTurnLeft) // maradjon ebben a ciklusban, amíg a timeToTurnLeft le nem telik {// forduljon balra, ne feledje, hogy ha mindkettő "180" -ra van állítva. rightMotor.write (180); leftMotor.write (180); } állapot = DRIVE_FORWARD; }} void readUltrasonicSensors () {// ez az ultrahangos 2 -re vonatkozik. Előfordulhat, hogy módosítania kell ezeket a parancsokat, ha másik érzékelőt használ. digitalWrite (ultrahangos2TrigPin, HIGH); delayMikroszekundumok (10); // a triggeszt magasan tartja legalább 10 mikroszekundumig digitalWrite (ultrasonic2TrigPin, LOW); ultrahang2Duration = pulseIn (ultrahangos2EchoPin, HIGH); ultrahang2Távolság = (ultrahang2Duration/2)/29; } // az alábbiakban a konzol hibakeresési hibáiról van szó. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Soros.nyomtatás (ultrahangos2Távolság); Soros.nyomat ("cm"); Sorozat.println (); timeSerialDelay = millis (); }}