Szeretnéd megtanulni saját robot készítését? Sokféle robot létezik, amelyeket saját maga készíthet. A legtöbb ember azt akarja látni, hogy egy robot könnyedén elmozdul A pontból B -be. Teljesen felépíthet robotot analóg alkatrészekből, vagy vásárolhat kezdő készletet. Saját robot készítése nagyszerű módja az elektronika és a számítógépes programozás elsajátításának.
Lépés
1. rész az 5 -ből: A robot összeszerelése
1. lépés Szerelje össze az alkatrészeket
Egy alapvető robot építéséhez néhány egyszerű alkatrészre lesz szüksége. Ezen alkatrészek nagy részét vagy mindegyikét megtalálhatja a helyi elektronikai hobbiboltban, vagy néhány online kiskereskedőnél. Néhány készlet ezeket az alkatrészeket tartalmazza. Ez a robot nem igényel forrasztást:
- Arduino Uno (vagy más mikrokontroller)
- 2 szervó 360 fok
- 2 kerekű szervó
- 1 szabad kerék
- 1 tesztlap (kenyérlap vagy projekt tábla), amelyet nem forrasztottak (keressen egy tesztlapot, amelynek mindkét oldalán két pozitív és negatív sor található)
- 1 közelségérzékelő (négy érintkezős csatlakozó kábellel)
- 1 nyomógombos kapcsoló
- 1 ellenállás 10 kΩ
- 1 USB A -B kábel
- 1 darab törhető fejléc
- 1 6 x AA elemtartó 9V egyenáramú hálózati aljzattal
- 1 csomag 22. áthidaló kábel vagy egyetlen kábel
- Szigetelés oda -vissza (dupla szalag) vagy ragasztópisztoly
Lépés 2. Fordítsa el az elemtartó rekeszet úgy, hogy lapos hátulja felfelé nézzen
A robot testét az elemtartó rekesz alapjaként fogja felépíteni.
3. lépés. Az akkumulátorrekesz végén helyezzen el két, azonos irányba mutató szervót
Ez a vég az a vég, ahol a kábel kijön az akkumulátorból. A szervóknak meg kell érniük az alját, és minden szervó forgó mechanizmusának kifelé kell néznie az elemtartó oldaláról. Fontos, hogy ezek a szervók megfelelően legyenek elrendezve, hogy a kerekek egyenesek legyenek. A szervo kábeleinek az elemtartó hátsó részéből kell kijönniük.
4. lépés: Ragassza fel a szervókat szigetelésével vagy ragasztójával
Győződjön meg arról, hogy a szervo szilárdan rögzítve van az elemtartóhoz. A szervó hátoldalának igazodnia kell az elemtartó hátuljához.
Most a szervóknak el kell foglalniuk az akkumulátorrekesz hátsó részének felét
5. lépés: Ragassza a tesztlapot merőlegesen az elemtartó rekesz maradék helyére
Ez a tesztlap kissé lógni fog az elemtartó elején, és mindkét oldalra kiterjed. Mielőtt folytatná, győződjön meg arról, hogy a tesztlap feszes. Az „A” sornak a szervóhoz kell a legközelebb lennie.
6. lépés. Csatlakoztassa az Arduino mikrokontrollert a szervó tetejéhez
Ha helyesen rögzíti a szervót, akkor a két szervó lapos részének érintkeznie kell egymással. Ragassza az Arduino kártyát erre a lapos helyre úgy, hogy az USB- és Arduino -tápcsatlakozók lefelé nézzenek (távol a tesztlaptól). Az Arduino eleje átfedésben lesz a tesztlappal.
7. lépés. Szerelje fel a kerekeket a szervókra
Határozottan nyomja a kerekeket a forgó szervomechanizmusra. Ez jelentős erőt igényelhet, mivel a kerekeket úgy tervezték, hogy lyukak legyenek, amelyek pontosan illeszkednek a szervohegy alakjához.
8. lépés. Szerelje be a szabad kereket a tesztlap aljára
Ha fejjel lefelé fordítja a robotot, látni fogja, hogy egy kis tesztlap lóg az elemtartóból. Rögzítse a szabad kereket ehhez a függő részhez. Ha szükséges, használjon éket. A szabad kerék első kerékként szolgál, amely lehetővé teszi a robot számára, hogy könnyedén bármilyen irányba forduljon.
Ha készletet vásárolt, a szabad keréknek lehetnek ékjei, amelyekkel biztosíthatja, hogy a kerék szabadon érintse a talajt
2. rész az 5 -ből: A robot bekötése
1. lépés Vágjon le két 3 tűs fejlécet
Ezzel fogja összekapcsolni a szervót a tesztpanellel. Nyomja le a csapokat a fejrészeken keresztül, így mindkét oldalon egyenlő távolságra kerülnek ki.
2. lépés Helyezze be a két fejlécet a tesztpanel E sorának 1-3. És 6-8
Győződjön meg arról, hogy szilárdan vagy szilárdan vannak behelyezve.
3. lépés: Csatlakoztassa a szervo vezetékeket a fejléccel, a fekete vezetékkel a bal oldalon (1. és 6. csap)
Ez összeköti a szervót a tesztlappal. Győződjön meg arról, hogy a bal szervó csatlakozik a bal oldali fejléchez, a jobb szervó pedig a jobb oldali fejléchez.
4. lépés Csatlakoztassa a piros áthidaló vezetéket a C2 és C7 csapokból a piros síncsaphoz (pozitív)
Győződjön meg arról, hogy a piros sávot használja a tesztlap hátoldalán (közelebb a robot többi testéhez).
5. lépés Csatlakoztassa a fekete áthidaló vezetéket a B1 és B6 csapokból a kék síncsaphoz (földelt)
Győződjön meg arról, hogy a tesztkártya hátoldalán lévő kék sínt használja. Ne csatlakoztassa a kábelt a piros síncsaphoz.
6. lépés Csatlakoztassa a fehér jumper vezetékeket az Arduino 12 -es és 13 -as csapjaiból az A3 -hoz és A8 -hoz
Ez lehetővé teszi, hogy az Arduino vezérelje a szervót és forgassa a kormányt.
7. lépés. Csatlakoztassa az érzékelőt a tesztlap elejéhez
Az érzékelőt nem a teszt tábla külső tápcsövéhez, hanem az első két sor tűhöz rögzítik (J). Ügyeljen arra, hogy a közepére helyezze, mindkét oldalon azonos számú üres csapszeggel.
8. lépés Csatlakoztassa a fekete áthidaló vezetéket az I14 érintkezőtől az első kék síncsaphoz az érzékelő bal oldalán
Ez földelni fogja az érzékelőt.
9. lépés Csatlakoztassa a piros áthidaló vezetéket az I17 érintkezőtől az első piros síncsapra az érzékelő jobb oldalán
Ez áramot biztosít az érzékelőnek.
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 információt szolgáltat az érzékelőtől a mikrokontrollernek.
Rész 3 /5: A tápkábel felszerelése
1. lépés Fordítsa meg a robotot, hogy láthassa a benne lévő elemtartót
Úgy helyezze el az elemtartót, hogy a kábel a bal alsó részen keresztül távozzon.
2. lépés: Csatlakoztassa a piros vezetéket a második rugóval balról alul
Győződjön meg arról, hogy az elemtartó megfelelően van beállítva vagy a megfelelő irányba néz.
3. lépés Csatlakoztassa a fekete vezetéket az utolsó rugóval a jobb alsó sarokban
Ez a két vezeték segíti a megfelelő feszültség biztosítását az Arduino számára.
Lépés 4. Csatlakoztassa a piros és fekete vezetékeket a piros és kék csapokhoz, amelyek a tesztlap hátoldalán találhatóak
A fekete huzalnak a 30. tű kék síncsapjához kell mennie. A piros vezetéknek a 30. tű piros síncsapjához kell mennie.
5. lépés Csatlakoztassa a fekete vezetéket az Arduino GND csapjától a kék sín hátuljához
Csatlakoztassa a vezetéket a kék sín 28. tűjéhez.
6. lépés: Csatlakoztassa a fekete vezetéket a kék sín hátuljától a kék sín elejéhez a 29 -es tűn mindkét sínhez
Ne csatlakoztassa a piros sínt, mert megsérülhet az Arduino.
Lépés 7. Csatlakoztassa a piros vezetéket a 30. tű piros sínjének elejétől az Arduino 5V -os csatlakozójához
Ez áramot biztosít az Arduino számára.
8. lépés Helyezze be a nyomógombos kapcsolót a 24-26. Csapok közötti térbe
Ezzel a kapcsolóval kikapcsolhatja a robotot anélkül, hogy ki kellene kapcsolnia a készüléket.
9. lépés: Csatlakoztassa a H24 -ből származó piros vezetéket az érzékelő jobb oldalán lévő következő üres tű piros sínjéhez
Ez biztosítja a gomb áramellátását.
10. lépés: Ellenállással csatlakoztassa a H26 -ot a kék sínhez
Csatlakoztassa a tűhöz közvetlenül a fekete vezeték mellett, amelyet az előző lépésekben csatlakoztatott.
11. lépés: Csatlakoztassa a G26 fehér vezetéket az Arduino 2. tűjéhez
Ez lehetővé teszi az Arduino számára a nyomógombok észlelését.
4. rész az 5 -ből: Az Arduino szoftver telepítése
1. lépés: Töltse le és bontsa ki az Arduino IDE -t
Itt fejlesztették ki az Arduino -t, és lehetővé teszi az utasítások programozását, amelyeket aztán feltölthet az Arduino mikrokontrollerére. Ingyenesen letöltheti az arduino.cc/en/main/software webhelyről. Csomagolja ki a letöltött fájlt úgy, hogy duplán rákattint a fájlra, és áthelyezi a benne található mappát egy könnyen hozzáférhető helyre. Valójában nem telepíti a programot, hanem csak egy mappából futtatja, amelyet az arduino.exe fájlra duplán kattintva vontak ki.
2. lépés Csatlakoztassa az elemtartót az Arduino -hoz
Helyezze be az akkumulátor hátsó foglalatát az Arduino csatlakozójába az áramellátáshoz.
3. lépés Helyezze be az Arduino -t a számítógépbe USB -n keresztül
Valószínű, hogy a Windows nem ismeri fel az eszközt.
4. lépés. Nyomja meg a gombot
Win+R és írja be devmgmt.msc.
Ez a parancs megnyitja az Eszközkezelőt.
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ése lehetőséget
Ha nem látja ezt a lehetőséget, kattintson a Tulajdonságok elemre, válassza az Illesztőprogram fület, majd kattintson az Illesztőprogram frissítése elemre.
6. lépés Válassza a Tallózás a számítógépen illesztőprogram -szoftvert lehetőséget
Ez lehetővé teszi az Arduino IDE-vel kapott beépített illesztőprogramok kiválasztását.
Lépés 7. Kattintson a Tallózás gombra, majd nyissa meg a korábban kibontott mappát
Megtalálja benne az illesztőprogramok mappáját.
8. lépés. Válassza ki az illesztőprogramok mappáját, majd kattintson az OK gombra
Erősítse meg, hogy folytatni szeretné, ha figyelmeztetést kap az ismeretlen szoftverre.
5. rész az 5 -ből: Robotok programozása
1. lépés: Nyissa meg az Arduino IDE-t dupla kattintással az arduino.exe fájlra az IDE mappában
Önt üres projekt fogadja.
2. lépés: Illessze be vagy illessze be a következő kódot, hogy a robot haladjon
Az alábbi kód megtartja Arduino -ját.
#include // ez hozzáadja a „Servo” könyvtárat a programhoz // a következő parancs két szervo objektumot hoz létre Servo leftMotor; Szervo jobbMotor; void setup () {leftMotor.attach (12); // ha véletlenül kicserélted a pin számokat a szervódra, itt kicserélheted a számokat rightMotor.attach (13); } void loop () {leftMotor.write (180); // 360 fokos forgatással (folyamatos forgatás) a 180 -as szám arra utasítja a szervót, hogy teljes sebességgel haladjon előre. rightMotor.write (0); // ha mindkét érték 180, akkor a robot körben forog, mert a szervó megfordul. A „0” jelzi a robotnak, hogy teljes sebességgel „hátrafelé” mozogjon. }
3. lépés: Hozza létre és töltse fel a programot
Kattintson a jobbra mutató nyílgombra a bal felső sarokban egy program létrehozásához és feltöltéséhez a csatlakoztatott Arduino -ba.
Érdemes felemelni a robotot a felszínről, mivel a robot a program feltöltése után is tovább fog lépni
4. lépés. Adjon hozzá stop stop funkciót (kill switch)
Adja hozzá a következő kódot a kód "void loop ()" szakaszához, hogy egy stop stop funkciót adjon hozzá az "write ()" függvényhez.
if (digitalRead (2) == HIGH) // ez a parancs akkor fut, ha a gombot megnyomják a 2. tűn Arduino {while (1) {leftMotor.write (90); // "90" a szervo semleges helyzete, amely azt mondja a szervónak, hogy hagyja abba a jobbra fordulástMotor.write (90); }}
5. lépés. Töltse fel és ellenőrizze a kódot
Ha már hozzáadta a stop kapcsoló kódját, feltöltheti a kódot és tesztelheti a robotot. A robotnak addig kell előre haladnia, amíg meg nem nyomja a stop gombot, ami a robot leállását eredményezi. A teljes kód így fog kinézni:
#include // a következő parancs két Servo leftMotor szervo objektumot hoz létre; 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); }
Példa
A következő kód a robotra telepített érzékelőket használja, hogy balra forduljon, amikor a robot akadályba ütközik. Tekintse meg a kód megjegyzéseit az egyes részek használatának részleteiről. Az alábbi kód az egész program.
#include szervo leftMotor; Szervo jobbMotor; const int serialPeriod = 250; // ez a kód megadja, hogy a konzol kimeneti késleltetése minden 1/4 másodpercben (250 ms) előjel nélküli hosszú idő legyenSerialDelay = 0; const int loopPeriod = 20; // ez a kód az érzékelő olvasási frekvenciáját 20 ms -ra állítja, ami 50 Hz előjel nélküli long timeLoopDelay = 0; // ez a kód hozzárendeli a TRIG és ECHO funkciókat az Arduino csapjaihoz. Állítsa be a számokat itt, ha más módon kapcsolja össze őket. Konst int ultrasonic2TrigPin = 8; const int ultrahangos2EchoPin = 9; int ultrahangos2Távolság; int ultrahangos2Duration; // ez a kód két lehetséges robotállapotot határoz meg: folytassa előre vagy forduljon balra #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = folytatás előre (DEFAULT), 1 = balra fordulás void setup () {Serial.begin (9600); // ez az érzékelő határozza meg a pin konfigurációt a pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrahangos2EchoPin, INPUT); // ez hozzárendeli a motort az Arduino csapokhoz leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // ez a kód "stop" -ot észlel {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // ez a kód hibakeresési üzeneteket nyomtat a soros konzolra, ha (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // ez a kód utasítja az érzékelőt, hogy olvassa és tárolja a mért távolság állapotára vonatkozó adatokatMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // ha nem észlel akadályt {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // ha semmi nincs a robot előtt. ultrasonicDistance negatív lesz egyes ultrahangosoknál, ha nincsenek akadályok {// 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; // körülbelül 0,5 másodpercbe telik a 90 fokos fordulat. Lehet, hogy módosítania kell ezt az értéket, ha a kerekek mérete eltér a példában szereplő, alá nem írt hosszú turnStartTime = millis () méretétől. // tartsa meg azt az állapotot, amikor a robot elkezd forogni, miközben ((millis ()-turnStartTime) <timeToTurnLeft) // tartsa meg ezt a ciklust, amíg a timeToTurnLeft (500) túllép {// forduljon balra, ne feledje, hogy amikor mindkettő "180", a robot megfordul. rightMotor.write (180); leftMotor.write (180); } állapot = DRIVE_FORWARD; }} void readUltrasonicSensors () {// ez az ultrahangos 2 -re vonatkozik. Előfordulhat, hogy módosítania kell ezt a parancsot, ha másik érzékelőt használ. digitalWrite (ultrahangos2TrigPin, HIGH); delayMikroszekundumok (10); // húzza magasra a TRIG csapot 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 (); }}