Tartalomjegyzék:

Arduino vezérelt szervo robot (SERB): 7 lépés (képekkel)
Arduino vezérelt szervo robot (SERB): 7 lépés (képekkel)

Videó: Arduino vezérelt szervo robot (SERB): 7 lépés (képekkel)

Videó: Arduino vezérelt szervo robot (SERB): 7 lépés (képekkel)
Videó: Single servo robot 2024, Július
Anonim
Arduino vezérelt szervo robot (SERB)
Arduino vezérelt szervo robot (SERB)
Arduino vezérelt szervo robot (SERB)
Arduino vezérelt szervo robot (SERB)
Arduino vezérelt szervo robot (SERB)
Arduino vezérelt szervo robot (SERB)
Arduino vezérelt szervo robot (SERB)
Arduino vezérelt szervo robot (SERB)

Mi a jobb módja annak, hogy elkezdjen kísérletezni nyílt forráskódú mikrovezérlőkkel (Arduino), majd saját nyílt forráskódú robotja (CC (SA -BY)) építésével? Mit tegyen a SERB -vel?

  • (itt) - Hogyan csatlakoztassa a SERB -t az internethez és vezesse Skype videohíváson keresztül.
  • (itt) - A SERB vezérlése Wii nunchuck gyorsulásmérőinek használatával
  • (itt) - Hogyan adhat hozzá akadályokat észlelő bajuszt a robotjához
  • (itt) - Hogyan készítsünk 30 készletet (nyílt gyártás)

Jellemzők:

  • Teljesen programozható egy Arduino Duemilanove mikrovezérlővel (vagy egy másik választott mikrovezérlővel).
  • Nem kell forrasztani.
  • Vágási lehetőségek választása akril darabokhoz. (görgetőfűrész, hozzáférés lézervágóhoz, előre vágott darabok vásárlása)
  • Könnyen bővíthető és módosítható extra csavarfuratokkal és a mellékelt kenyértáblával.
  • Kettős golyóscsapágyas hátsó kerék.
  • 1-2 óra alatt üzembe helyezhető. (a készletből)
  • Nyílt forráskódú tervezés (készítsen tetszés szerint)

(Shameless Plug) Az Egyesült Királyságban, és mint az Arduino cucc? nézze meg újonnan megnyitott webáruházunkat oomlout.co.uk Gyors videó egy elkészült Arduino vezérelt szervobotról - (SERB), amely a mellékelt tesztprogramot futtatja (6. lépés) Megjegyzés: A forrásfájlok párhuzamos Instructable (Source Files For) fájlban érhetők el - Hogyan készítsünk Arduino vezérelt szervo robotot - (SERB)

1. lépés: Alkatrészek és eszközök

Alkatrészek és eszközök
Alkatrészek és eszközök

Minden csavar megtalálható a helyi Home Depotban. A többi rész megtalálható az interneten (mindegyikhez csatoltam egy linket a kedvenc forrásomhoz). Alkatrészlista: Az összes hardver elemet tartalmazó csomag megvásárolható az oomlout.com boltjában (itt) ($ 120) Anyák és csavarok:

  • 3mm x 15mm csavar (x20)
  • 3mm x 10mm csavar (x12)
  • 3 mm -es anya (x34)
  • 3 mm -es alátét (x12)
  • 8mm x 25mm csavar (x2)
  • 8 mm -es anya (x2)
  • Gördeszkacsapágyak (x2) (VXB) (ezek szabványos gördeszkacsapágyak, így egy görgős pengéről vagy gördeszkáról menthetők)

Gumiabroncsok

  • Nagy O-gyűrű (4,5 "ID 3/16" gyöngyvágó #349) (x2) (McMaster-Carr termék #9452K407)
  • Kis O-gyűrű (3/4 "ID 3/16" gyöngyvágó #314) (x1) (McMaster-Carr termék #9452K387)

Elektronika

  • Arduino Duemilanove (x1) (Maker Shed)
  • Folyamatos forgás szervo (x2) (Parallax)
  • 400 Kontakt kenyértábla (x1) (minden elektronika))
  • Négy AA elemtartó (x1) (minden elektronika)
  • 9 V -os elemcsipesz (x1) (minden elektronika)
  • 2,1 mm -es dugó (x1) (minden elektronika)
  • 3 tűs fejléc (x2) (minden elektronika)
  • A -B USB -kábel - Nyomtató stílus (x1) (minden elektronika) (a készlet nem tartalmazza)

Akkumulátorok:

  • AA elem (x4) (nem tartozék)
  • 9V elem (x1) (nem tartozék a készlethez)

Vezeték: (minden vezeték 22 AWG szilárd, az enyémet a McMaster-Carr-on keresztül vásárolom)

  • 15 cm lila (x2)
  • 15 cm fekete (x1)
  • 5 cm fekete (x2)
  • 5 cm piros (x2)

Eszközök

  • Csavarhúzó (x1) (Philips)
  • Tű-orr fogó (x1)

2. lépés: Darabok vágása

Darabok vágása
Darabok vágása
Darabok vágása
Darabok vágása
Darabok vágása
Darabok vágása
Darabok vágása
Darabok vágása

Kérjük, válassza ki a követendő lépéseket a választott vágási lehetőség alapján. 1. lehetőség (Előre vágott alkatrészek vásárlása)

Vásároljon előre vágott alvázat az oomlout.com boltjából (itt) (60 USD, beleértve az USA-ba és Kanadába történő szállítást)

2. lehetőség (Digitális gyártás (pl. Ponoko) / Hozzáférés lézervágóhoz)

  • Töltse le a lézervágó elrendezést ("03 SERB Ponoko Cutting Layout P2.eps" vagy "03- (SERB) -Ponoko Cutting Layout (P2).cdr")
  • Vágja le a fájlokat Ponoko használatával vagy saját lézervágójával (3 mm -es,.118 "akril segítségével (néha.125" -ként értékesítve))

3. lehetőség (görgetőfűrész és fúró)

  • Töltse le és nyomtassa ki a PDF mintát (válassza ki a papírméretnek megfelelő fájlt) 03- (SERB) -ScrollSaw Pattern (levél).pdf 03- (SERB) -ScrollSaw Pattern (A4).pdf (fontos, hogy ne méretezze rajz nyomtatás közben)
  • Mérje meg a nyomaton lévő vonalzót egy megbízható vonalzóval, ha nem egyezik a mintával, és a méretarányos, és meg kell vizsgálnia a nyomtató beállításait az újbóli nyomtatás előtt. Ha egyeznek, akkor tovább.
  • Ragassza a mintát az akril lapra (3 mm,.118 "(néha.125" néven értékesítik).
  • Fúrjon lyukakat.
  • Vágja ki a darabokat görgőfűrész segítségével

3. lépés: Összeszerelés

Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés

Gratulálunk, hogy a folyamat eddig 90% -a befejeződött, csak töltse le az összeszerelési utasításokat ebben a lépésben (04- (SERB)-Összeszerelési útmutató.pdf), és egy kis lego/mechano stílusú összeszerelés után készen áll a huzalozásra. Hogy szórakoztassam Önt ezen az úton, a gyűlésem időzítése:

4. lépés: huzalozás

Vezeték
Vezeték
Vezeték
Vezeték

A nagy darabok együttes ideje, hogy hozzáadja a kis elektromos ereket, amelyek lehetővé teszik robotunk irányítását. Ehhez töltse le és nyomtassa ki a kapcsolási rajzot (05- (SERB) -kapcsolási rajz.pdf). Első pillantásra elég ijesztőnek tűnhet, de ha minden egyes kapcsolatot sorba köt, és időt szán rá, akkor rendkívül gyorsan összeáll. A kábelezés meglehetősen egyszerű, és nem okozhat kárt az áramkörben, amíg elemeket nem ad hozzá. Tehát vezetékezzen be mindent, ellenőrizze, majd adjon hozzá áramot.

5. lépés: Tesztelés és hibaelhárítás

Tesztelés és hibaelhárítás
Tesztelés és hibaelhárítás

Ha egy készletet rendelt, az Arduino -t tesztprogrammal töltötték fel. Csak helyezzen be 4 AA elemet, és csatlakoztassa a 9 voltos elemet az Arduino -hoz. És ha mindent helyesen csinált, akkor a robot elkezd mozogni (0,1-1 másodpercig véletlenszerű irányba fog fordulni, mielőtt 1-2 másodpercig véletlenszerűen előre megy, majd 2 másodperc szünetet tart, mielőtt újrakezdi). Ha még nem vásárolt készletet, akkor további lépésekre van szükség. Töltse le a mellékelt zip fájlt (07- (SERB)-SERB-Test Arduino Program.zip). Ezután bontsa ki az Arduino vázlatkönyvtárában (alapértelmezett "My Documents / Arduino \"), és töltse le az arduino táblájára. (ha még nem ismeri az Arduino -t, ugorjon előre egy lépést, ahol megtalálhatók a kezdő oktatóanyagok.) Gyakori problémák: A SERB lassan mozog, amikor le kell állítani. Ennek az az oka, hogy a szervókat nem megfelelően kalibrálták, a szervók kalibrálásához várjon, amíg a program leáll, majd egy kis csavarhúzóval forgassa el a potenciométert a szervó belsejében (a szervóház kis nyílása a vezetékek felett). Forgassa balra vagy jobbra, amíg a szervó valóban le nem áll. A dolgok nem működnek rendesen. Küldjön nekünk egy e-mailt a tüneteivel, és megpróbálunk segíteni, amíg Ön válaszra vár, ellenőrizze az összes vezetéket a 4. lépés kapcsolási rajzával. Ha bármilyen probléma merül fel, kérjük, írjon megjegyzést erre az utasításra, vagy küldjön egy e-mailt a [email protected] címre, és mindent megteszünk, hogy segítsünk a SERB működésében

6. lépés: Programozás

Programozás
Programozás

A fizikai robotnak eljött az ideje, hogy elkezdjen agyat adni. Mielőtt belekezdenénk az Arduino által vezérelt szervorobot - (SERB) programozásának részleteibe, néhány link az interneten található kiváló Arduino programozási forrásokhoz. Arduino kezdő útmutató - útmutató hogy segítsen az Arduinos használatában, a programozási környezet letöltésétől az első program megírásáig. Arduino programozási referencia - Egy teljes, könnyen áttekinthető útmutató az Arduino programozási nyelvhez. - Hogyan működik az Arduino Servo könyvtár (hogyan irányítjuk a szervóinkat). Rendben, ha a tanulás félreáll, lehetővé teszi a programozást. Az Arduino által vezérelt szervorobot programozásának három módja van - (SERB). 1. lehetőség: (A SERB_Test.pde módosítása) Néha a programozás során a legegyszerűbb dolog az, ha vesz egy munkaprogramot, és hozzá kezdi hozzáadni saját kódját. Ehhez töltse le a SERB_Test zip programot (07- (SERB)-SERB-Test Arduino Program.zip). Folytassa a kicsomagolást az Arduino vázlatmappájában (alapértelmezett "Saját dokumentumok / Arduino \"). Végül nyissa meg az Arduino programozási környezetet, és töltse le az Arduino -ra. A kódot jól megjegyzik. (Vagy másolja ki és illessze be a kódot az ebben a lépésben található függelékből egy új Arduino vázlatba) 2. lehetőség: (SERB rutinok hozzáadása a programhoz) Adjon hozzá néhány egyszerű rutint a meglévő programjához (például goForward (), setSpeed (int) stb.). Ehhez töltse le a rutinokat a szöveges fájlban (07- (SERB)- Egyszerű rutinok Text.txt). 1. Másolja ki és illessze be a bevezető részt a program elejére.2. Másolja ki és illessze be a rutin részt a program törzsébe.3. Hívás hozzáadása a serbSetup (); a beállítási () rutinhoz. 3. lehetőség: (Saját program létrehozása a semmiből) Ez nem túl nehéz. Mindössze annyit kell tennie, hogy megismerkedjen az Arduino Servo Libraryvel. Ezután a jobb oldali szervo csatlakozik a 9 -es tűhöz, a bal szervo pedig a 10 -es érintkezőhöz. vagy ha kifejleszt valamit, és szeretné, ha bemutatná, küldjön nekem privát üzenetet, és hozzáadható. Függelék: (SERB_Test.pde kód)

/ * * Arduino vezérelt szervórobot (SERB) - Tesztprogram * További részletekért látogasson el a következő oldalra: https://www.oomlout.com/serb * * Viselkedés: Egy egyszerű tesztprogram, amely miatt a SERB * véletlenszerűen balra vagy jobbra fordul * véletlenszerű időtartamra 0,1 és 1 másodperc között. * A SERB ezután véletlenszerűen * 1-2 másodpercig halad előre. Végül * szünet 2 másodpercig, mielőtt újrakezdené. * * Kábelezés: jobboldali szervojel - 9. érintkező * bal oldali szervojel - 10. tű * * Licenc: Ez a mű a Creative Commons * Attribution -Share Alike 3.0 Unported License alatt licencelt. A licenc egy példányának * megtekintéséhez látogasson el a * https://creativecommons.org/licenses/by-sa/3.0/ * címre, vagy küldjön levelet a Creative Commons, 171 Second * Street, Suite 300, San Francisco, California 94105 címre, * USA. * */// --------------------------------------------- ----------------------------- // ARDUINO VEZÉRLETT SZERVO ROBOT (SZERB) PREAMBLE #START OF #define LEFTSERVOPIN 10 #define RIGHTSERVOPIN 9Servo balraServo; Szervo jobbServo; int sebesség = 100; // beállítja a robot sebességét (mindkét szervó) // 0 és 100 közötti százalékban // ARDUINO VEZÉRLETT SZERVO ROBOT (SZERB) PREAMBULA VÉGE // ---------------- -------------------------------------------------- --------/ * * a csapokat a megfelelő állapotba állítja, és szervókat csatlakoztat. Ezután szünetel * 1 másodpercig, mielőtt a program elindul */ void setup () {serbSetup (); // beállítja az összes szükséges // csap állapotát, és szervókat ad hozzá a vázlathoz randomSeed (analogRead (0)); // beállítja a véletlenszámú magot // valami enyhén véletlenszerű késleltetéssel (1000);}/ * * elfordítja a robotot balra vagy jobbra (véletlenszerűen) * 0,1 és 1 másodperc közötti időszakra. Mielőtt véletlenszerű időtartamra haladna előre 1 és 4 másodperc között. Mielőtt két másodperc szünetet tart, majd újrakezdi a * -ot. */Void loop () {turnRandom (100, 1000); // Véletlenszerűen balra vagy jobbra kanyarodik // véletlenszerű időtartamra.1 másodperc // és egy másodperc között goForwardRandom (1000, 2000); // Előre megy véletlenszerű időtartamra // 1-2 másodperc között goStop (); // Megállítja a robot késését (2000); // 2 másodperc szünet (megállás közben)}/ * * a robotot véletlenszerűen balra vagy jobbra fordítja egy véletlenszerű időtartamra a * minTime (ezredmásodperc) és a maxTime (ezredmásodperc) között */void turnRandom (int minTime, int maxTime) {int választás = véletlen (2); // Véletlen szám dönteni // bal (1) és jobb (0) között int turnTime = random (minTime, maxTime); // Véletlen szám a szünethez // idő if (choice == 1) {goLeft ();} // Ha véletlen szám = 1, akkor forduljon // balra {goRight ();} // Ha véletlen szám = 0, akkor turn // jobb késleltetés (turnTime); // késleltetés véletlenszerű időre}/ * * előre halad egy véletlenszerű időtartamra a minTime (ezredmásodperc) * és a maxTime (ezredmásodperc) között */void goForwardRandom (int minTime, int maxTime) {int forwardTime = random (minTime, maxTime); // véletlenszerű idő meghatározása az előrehaladáshoz // goForward (); // beállítja a SERB előre késleltetését (forwardTime); // késések véletlenszerű időtartamra} // ---------------------------------------- -------------------------------- // ARDUINO VEZÉRLETT SZERVO ROBOT (SZERB) RUTINOK KEZDÉSE/ * * beállítja a arduino a SERB -hez való hozzáfűzéshez a mellékelt rutinok használatával*/void serbSetup () {setSpeed (speed); pinMode (LEFTSERVOPIN, OUTPUT); // beállítja a bal szervo jel tűjét // kimeneti pinMode (RIGHTSERVOPIN, OUTPUT); // beállítja a jobb szervo jelcsapot // a leftServo.attach (LEFTSERVOPIN) kimenetre; // bal szervo jobbra csatoljaServo.attach (RIGHTSERVOPIN); // a jobb oldali szervót rögzítiStop ();}/ * * beállítja a robot sebességét 0- (leállított) és 100- (teljes sebesség) között * MEGJEGYZÉS: a sebesség nem változtatja meg az aktuális sebességet, módosítani kell a sebességet *, majd a go metódusok közül a változások előtt.*/void setSpeed (int newSpeed) {if (newSpeed> = 100) {newSpeed = 100;} // ha a sebesség nagyobb 100 -nál // akkor 100 -ra állítsa (newSpeed <= 0) {newSpeed = 0;} // ha a sebesség kisebb, mint 0, akkor // it 0 speed = newSpeed * 0,9; // méretezi a sebességet // 0 és 90 közé}/ * * elküldi a robotot előre */void goForward () {leftServo.write (90 + sebesség); rightServo.write (90 sebesség);}/ * * hátra küldi a robotot */void goBackward () {leftServo.write (90 sebesség); rightServo.write (90 + sebesség);} / * * jobbra küldi a robotot * /void goRight () {leftServo.write (90 + sebesség); rightServo.write (90 + sebesség);}/ * * balra küldi a robotot */void goLeft () {leftServo.write (90 - sebesség); rightServo.write (90 - sebesség);}/ * * leállítja a robotot */void goStop () {leftServo.write (90); rightServo.write (90);} // ARDUINO VEZÉRLETT SZERVO ROBOT (SZERB) RUTINOK VÉGE // ---------------------------- -----------------------------------------------

7. lépés: Kész, mások, akik befejezték és a jövő

Kész, mások, akik befejezték és a jövő
Kész, mások, akik befejezték és a jövő
Kész, mások, akik befejezték és a jövő
Kész, mások, akik befejezték és a jövő
Kész, mások, akik befejezték és a jövő
Kész, mások, akik befejezték és a jövő
Kész, mások, akik befejezték és a jövő
Kész, mások, akik befejezték és a jövő

Gratulálunk, hogy idáig eljutott, és remélem, jól érzi magát az Arduino vezérelt szervórobotjával - (SERB). Michael Beck SERB -Michael megtalálta a SERB terveit a Thingiverse.com webhelyen, és kivágta a sárga és piros akrilból. Szerintem remekül néz ki. Mike SERB - Mike (a St. Louis Area ROBOMO robotklub tagja) egy barátjának lézerrel vágta le a SERB alvázát, és saját robotikus tudását használta fel a működéshez. Szerintem fantasztikusan néz ki kék színben. (nézze meg a weboldalát a részletekről, valamint a többi robotjáról is (itt)) Ez a rész a jövőbeli fejleményekről és a mellékletekről tartalmaz részleteket (ezeket itt fogjuk bemutatni, mielőtt megfelelően dokumentálják). De szeretnék képeket is bemutatni más népek SERB -jeiből. Tehát, ha befejezte, küldjön nekem privát üzenetet egy fotóval és néhány szóval (legyen az leírás vagy link a webhelyére), és itt hozzáadom. (Shameless Plug) Ha tetszett ezt az oktatható útmutatót az oomlout.com webhelyen találja, ahol más szórakoztató nyílt forráskódú projekteket találhat.

Első díj a SANYO eneloop akkumulátoros versenyen

Ajánlott: