Obsah:

Servo robot řízený Arduino (SERB): 7 kroků (s obrázky)
Servo robot řízený Arduino (SERB): 7 kroků (s obrázky)

Video: Servo robot řízený Arduino (SERB): 7 kroků (s obrázky)

Video: Servo robot řízený Arduino (SERB): 7 kroků (s obrázky)
Video: Autonomous robot RX1 2024, Červenec
Anonim
Servo robot řízený Arduino (SERB)
Servo robot řízený Arduino (SERB)
Servo robot řízený Arduino (SERB)
Servo robot řízený Arduino (SERB)
Servo robot řízený Arduino (SERB)
Servo robot řízený Arduino (SERB)
Servo robot řízený Arduino (SERB)
Servo robot řízený Arduino (SERB)

Jaký lepší způsob, jak začít experimentovat s mikrokontroléry s otevřeným zdrojovým kódem (Arduino), pak vybudováním vlastního robota s otevřeným zdrojovým kódem (CC (SA -BY))? Co dělat s vaším SERBem?

  • (zde) - Jak připojit SERB k internetu a řídit ho přes Skype videohovor.
  • (zde) - Jak ovládat SERB pomocí akcelerometrů Wii nunchuck
  • (zde) - Jak do svého robota přidat vousy s detekcí překážek
  • (zde) - Jak vyrobit 30 sad (otevřená výroba)

Funkce:

  • Plně programovatelné pomocí mikrokontroléru Arduino Duemilanove (nebo jiného mikrokontroléru dle vašeho výběru).
  • Není třeba pájet.
  • Výběr možností řezání akrylových kusů. (rolovací pila, přístup k laserové řezačce, nákup předem nařezaných kusů)
  • Snadno rozšiřitelné a upravitelné pomocí dalších otvorů pro šrouby a přiloženého prkénka.
  • Zadní kolo se dvěma kuličkovými ložisky.
  • Funguje za 1-2 hodiny. (ze stavebnice)
  • Open source design (postavte tolik, kolik chcete)

(Shameless Plug) Ve Velké Británii a máte rádi věci Arduino? podívejte se na náš nově otevřený internetový obchod oomlout.co.uk Rychlé video o dokončeném servo robotu ovládaném Arduino - (SERB) se spuštěným testovacím programem (krok 6) Poznámka: Zdrojové soubory jsou k dispozici na paralelním Instructable (Source Files For) - Jak vyrobit servo robot ovládaný Arduino - (SERB)

Krok 1: Díly a nástroje

Díly a nástroje
Díly a nástroje

Všechny šrouby najdete ve vašem místním Home Depot. Ostatní díly najdete online (u každého jsem přidal odkaz na svůj oblíbený zdroj). Seznam dílů: Balíček obsahující veškeré hardwarové položky lze zakoupit v obchodě oomlout.com (zde) (120 $) Ořechy a šrouby:

  • Šroub 3 mm x 15 mm (x20)
  • Šroub 3 mm x 10 mm (x12)
  • 3mm matice (x34)
  • 3mm podložka (x12)
  • Šroub 8 mm x 25 mm (x2)
  • 8mm matice (x2)
  • Skate ložiska (x2) (VXB) (jedná se o standardní ložiska pro brusle, takže je lze zachránit z dvojice kolečkových lopatek nebo skateboardu)

Pneumatiky

  • Velký O-kroužek (4,5 "ID 3/16" Bead Dash #349) (x2) (McMaster-Carr Product #9452K407)
  • Malý O-kroužek (3/4 "ID 3/16" Bead Dash #314) (x1) (McMaster-Carr Product #9452K387)

Elektronika

  • Arduino Duemilanove (x1) (Maker Shed)
  • Servo s nepřetržitým otáčením (x2) (paralaxa)
  • 400 Contact Breadboard (x1) (veškerá elektronika))
  • Box na baterie Quad AA (x1) (veškerá elektronika)
  • Spona na 9V baterii (x1) (veškerá elektronika)
  • 2,1 mm konektor (x1) (veškerá elektronika)
  • 3kolíkový konektor (x2) (veškerá elektronika)
  • Kabel USB A -B - Styl tiskárny (x1) (veškerá elektronika) (není součástí sady)

Baterie:

  • Baterie AA (x4) (není součástí sady)
  • 9v baterie (x1) (není součástí sady)

Drát: (veškerý drát je pevný 22 AWG kupuji důl přes McMaster-Carr)

  • 15 cm fialová (x2)
  • 15 cm černý (x1)
  • 5 cm černý (x2)
  • 5 cm červená (x2)

Nástroje

  • Šroubovák (x1) (Philips)
  • Kleště s jehlovým nosem (x1)

Krok 2: Řezání kusů

Řezání kusů
Řezání kusů
Řezání kusů
Řezání kusů
Řezání kusů
Řezání kusů
Řezání kusů
Řezání kusů

Podle zvolené možnosti řezání zvolte, které kroky budete následovat. Možnost 1 (Nákup předem nařezaných dílů)

Kupte si předem nařezaný podvozek v obchodě oomlout.com (zde) (60 USD včetně dopravy do USA a Kanady)

Možnost 2 (Digitální výroba (tj. Ponoko) / Přístup k laserové řezačce)

  • Stáhněte si rozložení laserové řezačky („03 SERB Ponoko Cutting Layout P2.eps“nebo „03- (SERB) -Ponoko Cutting Layout (P2).cdr“)
  • Ořízněte soubory pomocí Ponoko nebo na vlastní laserové řezačce (pomocí 3 mm, 0,118 "akrylu (někdy se prodává jako 0,125")

Možnost 3 (Scroll saw and Drill)

  • Stáhněte si a vytiskněte vzor PDF (vyberte prosím soubor odpovídající velikosti papíru) 03- (SERB) -ScrollSaw Pattern (letter).pdf 03- (SERB) -ScrollSaw Pattern (A4).pdf (je důležité, aby nedošlo ke změně měřítka kresba při tisku)
  • Změřte pravítko na výtisku proti pravítku, kterému důvěřujete, pokud se neshoduje, vzor byl zmenšen a před dotiskem se musíte podívat na nastavení tiskárny. Pokud se shodují, dále.
  • Nalepte vzor na akrylový list (3 mm, 0,118 "(někdy se prodává jako 0,125").
  • Vyvrtejte otvory.
  • Výřezy kusů pomocí rolovací pily

Krok 3: Sestavení

Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění

Blahopřejeme k tomu, že jsme se dostali tak daleko, 90% procesu je dokončeno, stačí si stáhnout montážní pokyny v tomto kroku (04- (SERB) -Assembly Guide.pdf) a po malé sestavě ve stylu lego/mechano budete připraveni zapojit. Abych vás po cestě pobavil, je časová prodleva mého shromáždění:

Krok 4: Zapojení

Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení

Se všemi velkými kusy dohromady je čas přidat malé elektrické žíly, které umožní ovládat našeho robota. Za tímto účelem si stáhněte a vytiskněte schéma zapojení (05- (SERB) -Wiring Diagram.pdf). První pohled na to může vypadat docela skličující, ale pokud provedete každé připojení postupně a uděláte si čas, spojí se pozoruhodně rychle. Zapojení je celkem jednoduché a do vašeho obvodu nemůže přijít žádná újma, dokud nepřidáte baterie. Všechno tedy zapojte, dvakrát zkontrolujte a poté připojte napájení.

Krok 5: Testování a odstraňování problémů

Testování a odstraňování problémů
Testování a odstraňování problémů

Pokud jste si objednali sadu, ve vašem Arduinu je předem nainstalován testovací program. Stačí vložit 4 baterie AA a 9v baterii zapojit do Arduina. A pokud bylo vše provedeno správně, váš robot se začne pohybovat (bude se otáčet v náhodném směru po dobu 0,1 až 1 sekundy, než půjde náhodně po dobu 1 až 2 sekund, poté se na 2 sekundy zastaví, než začne znovu). Pokud jste si sadu nezakoupili, je nutný další krok. Stáhněte si přiložený zip soubor (07- (SERB)-SERB-Test Arduino Program.zip). Poté jej rozbalte ve svém adresáři skic Arduino (výchozí „moje dokumenty / Arduino \“) a stáhněte si ho na desku arduino. (pokud jste v Arduinu noví, poskočte o krok vpřed, kde jsou odkazy na skvělé návody pro začátečníky) Běžné problémy: Můj SERB se pohybuje pomalu, když by měl být zastaven. To je důsledek toho, že vaše serva nejsou správně kalibrována. Chcete -li kalibrovat serva, počkejte, až se serva zastaví, a pak malým šroubovákem otočte potenciometr uvnitř serva (malý otvor v plášti serva těsně nad místem, kde jsou vodiče). Otáčejte jím doleva nebo doprava, dokud se servo skutečně nezastaví. Věci nefungují tak, jak by měly. Pošlete nám e-mail s vašimi příznaky a my se pokusíme vám pomoci, zatímco čekáte na odpověď, dvakrát zkontrolujte všechny své vodiče pomocí schématu zapojení z kroku 4. Pokud narazíte na nějaký problém, přidejte prosím komentář k tomuto Instructable nebo pošlete e-mail na [email protected] a my se pokusíme udělat vše pro to, aby vám SERB fungoval

Krok 6: Programování

Programování
Programování

Fyzický robot skončil, než mu začne dávat mozek. Než se dostaneme k podrobnostem o programování servo robota řízeného Arduino - (SERB) - několik odkazů na některé vynikající zdroje programování Arduino na internetu. Arduino Starter Guide - Průvodce aby vám pomohl začít s Arduinos, od stažení programovacího prostředí až po napsání prvního programu. Arduino Programming Reference - Kompletní snadno referenční příručka k programovacímu jazyku Arduino. Jak fungují serva - Rychlý základ toho, jak fungují servomotory. Arduino Servo Library - Jak funguje servo knihovna Arduino (jak ovládáme naše serva). Dobře, když se naučíte, jak se dostat z cesty, získáte programování. Existují tři způsoby, jak začít s programováním servo robota řízeného Arduino - (SERB). Možnost 1: (Úprava SERB_Test.pde) Někdy je při programování nejjednodušší vzít pracovní program a začít do něj přidávat vlastní kód. Chcete-li to provést, stáhněte si zazipovaný program SERB_Test (07- (SERB)-SERB-Test Arduino Program.zip). Pokračujte rozbalením ve složce skici Arduino (výchozí „Moje dokumenty / Arduino \“). Nakonec otevřete programovací prostředí Arduino a stáhněte si ho do svého Arduina. Kód je dobře okomentován. (Nebo zkopírujte a vložte kód z dodatku v tomto kroku do nového skici Arduino) Možnost 2: (Přidání rutin SERB do programu) Přidejte do svého stávajícího programu některé jednoduché rutiny (jako goForward (), setSpeed (int) atd.). Chcete-li to provést, stáhněte si rutiny do textového souboru (07- (SERB)- Simple Routines Text.txt). 1. Zkopírujte a vložte část preambule na začátek programu. Zkopírujte a vložte rutinní část do těla programu. Přidejte volání do serbSetup (); do vaší rutiny setup (). Možnost 3: (Vytvoření vlastního programu od začátku) To není příliš obtížné. Vše, co je požadováno, je seznámit se se servo knihovnou Arduino. Poté je pravé servo připojeno ke kolíku 9 a levé servo ke kolíku 10. poznámka: Zde budou přidávány další programy, jak jsou vyvíjeny; nebo pokud něco vyvinete a chcete, aby to obsahovalo, pošlete mi soukromou zprávu a lze ji přidat. Příloha: (kód SERB_Test.pde)

/ * * Servo robot řízený Arduino (SERB) - testovací program * Další podrobnosti naleznete na adrese: https://www.oomlout.com/serb * * Chování: Jednoduchý testovací program, který způsobí, že se SERB * náhodně otočí doleva nebo doprava po dobu * náhodného časového období mezi 0,1 a 1 sekundou. * SERB se poté rozjede vpřed po náhodnou * dobu mezi 1 a 2 sekundami. Nakonec * pozastavíte na 2 sekundy, než začnete znovu. * * Zapojení: Pravý servo signál - pin 9 * Levý servo signál - pin 10 * * Licence: Toto dílo je chráněno licencí Creative Commons * Uveďte autora - Sdílejte podobně 3.0 Unported License. Chcete-li * zobrazit kopii této licence, navštivte * https://creativecommons.org/licenses/by-sa/3.0/ * nebo pošlete dopis společnosti Creative Commons, 171 Second * Street, Suite 300, San Francisco, Kalifornie 94105, * USA. * */// --------------------------------------------- ----------------------------- // ZAČÁTEK ARDUINO ŘÍZENÉHO SERVO ROBOTA (SERB) PREAMBLE #include #define LEFTSERVOPIN 10 #define RIGHTSERVOPIN 9Servo vlevoServo; Servo vpravoServo; int rychlost = 100; // nastavuje rychlost robota (obě serva) // procento mezi 0 a 100 // KONEC ARDUINO ŘÍZENÉHO SERVO ROBOTA (SERB) PREAMBLE // ---------------- ---------------------------------------------------------- --------/ * * nastaví piny do příslušných stavů a připojí serva. Poté se na 1 sekundu pozastaví * před spuštěním programu */ void setup () {serbSetup (); // nastaví stav všech nezbytných // pinů a přidá serva do vaší skici randomSeed (analogRead (0)); // nastaví semeno náhodného čísla s // něčím mírně náhodným zpožděním (1000);}/ * * otočí robota doleva nebo doprava (náhodně) po dobu mezi * 0,1 a 1 sekundou. Před pokračováním v náhodném časovém období * mezi 1 a 4 sekundami. Před pauzou na dvě sekundy a opětovným spuštěním *. */Void loop () {turnRandom (100, 1000); // Otočí se náhodně doleva nebo doprava po // náhodné časové období mezi.1 sekundou // a jednou sekundou goForwardRandom (1000, 2000); // Přejde vpřed o náhodné časové období // mezi // 1 a 2 sekundami goStop (); // Zastaví zpoždění robota (2000); // pozastaví na 2 sekundy (když je zastaven)}/ * * otočí robota náhodně doleva nebo doprava o náhodné časové období mezi * minTime (milisekundy) a maxTime (milisekundy) */void turnRandom (int minTime, int maxTime) {int výběr = náhodný (2); // Náhodné číslo k rozhodnutí // mezi levým (1) a pravým (0) int turnTime = random (minTime, maxTime); // Náhodné číslo pro pauzu // čas if (volba == 1) {goLeft ();} // Pokud je náhodné číslo = 1, otočte // doleva {goRight ();} // Pokud náhodné číslo = 0, pak turn // zpoždění doprava (turnTime); // zpoždění pro náhodný čas}/ * * jde dopředu o náhodné časové období mezi minTime (milisekundy) * a maxTime (milisekundy) */void goForwardRandom (int minTime, int maxTime) {int forwardTime = random (minTime, maxTime); // určit náhodný čas // jít vpřed goForward (); // nastaví zpoždění vpřed SERB (forwardTime); // zpoždění pro náhodné časové období} // ---------------------------------------- -------------------------------- // ZAČÁTEK RUTIN SERVO ROBOT (SERB) ŘÍZENÝ ARDUINEM/ * * nastavuje váš arduino k oslovení vašeho SERB pomocí přiložených rutin*/void serbSetup () {setSpeed (speed); pinMode (LEFTSERVOPIN, OUTPUT); // nastaví levý signální pin servo // na výstupní pinMode (RIGHTSERVOPIN, OUTPUT); // nastaví pravý pin signálu serva // na výstup leftServo.attach (LEFTSERVOPIN); // připojí levé servo rightServo.attach (RIGHTSERVOPIN); // připojí pravé servo goStop ();}/ * * nastaví rychlost robota mezi 0- (zastaveno) a 100- (plná rychlost) * POZNÁMKA: rychlost nezmění aktuální rychlost, musíte změnit rychlost * pak zavolejte metod go, než dojde ke změnám.*/void setSpeed (int newSpeed) {if (newSpeed> = 100) {newSpeed = 100;} // if speed is greater than 100 // make it 100 if (newSpeed <= 0) {newSpeed = 0;} // pokud je rychlost menší než 0 make // it 0 speed = newSpeed * 0,9; // nastaví rychlost na // mezi 0 a 90}/ * * pošle robota dopředu */void goForward () {leftServo.write (90 + rychlost); rightServo.write (90 - rychlost);}/ * * posílá robota zpět */void goBackward () {leftServo.write (90 - rychlost); rightServo.write (90 + rychlost);} / * * posílá robota doprava * /void goRight () {leftServo.write (90 + rychlost); rightServo.write (90 + rychlost);}/ * * posílá robota doleva */void goLeft () {leftServo.write (90 - rychlost); rightServo.write (90 - rychlost);}/ * * zastaví robota */void goStop () {leftServo.write (90); rightServo.write (90);} // KONEC ARDUINO ŘÍZENÝCH SERVO ROBOT (SERB) RUTINY // ---------------------------- -----------------------------------------------

Krok 7: Dokončeno, ostatní, kteří skončili a budoucnost

Hotovo, ostatní, kteří skončili a budoucnost
Hotovo, ostatní, kteří skončili a budoucnost
Hotovo, ostatní, kteří skončili a budoucnost
Hotovo, ostatní, kteří skončili a budoucnost
Hotovo, ostatní, kteří skončili a budoucnost
Hotovo, ostatní, kteří skončili a budoucnost
Hotovo, ostatní, kteří skončili a budoucnost
Hotovo, ostatní, kteří skončili a budoucnost

Gratulujeme, že jste se dostali tak daleko, a doufám, že se bavíte se svým servo robotem Arduino Controlled - (SERB). Michael Beck's SERB - Michael našel plány pro SERB na webu Thingiverse.com a vystřihl ho ze žlutého a červeného akrylu. Myslím, že to vypadá skvěle. Mikeův SERB - Mike (robotický klub ROBOMO ze St. Louis Area) nechal přítele laserem vyříznout podvozek SERB a použil vlastní robotické know -how, aby jej uvedl do provozu. Myslím, že to vypadá úžasně provedené v modré barvě. (podívejte se na jeho webové stránky, kde najdete podrobnosti o tomto a dalších jeho robotech (zde) Tato část bude obsahovat podrobnosti o budoucím vývoji a přílohách (budou zde uvedeny dříve, než budou řádně zdokumentovány). Ale také bych se chtěl pochlubit obrázky jiných lidí SERB. Pokud jste tedy skončili, pošlete mi soukromou zprávu s fotografií a několika slovy (ať už jde o popis nebo odkaz na váš web) a já ji sem přidám. (Nestyda Plug) Pokud se vám líbí tento instruktážní program najdete na oomlout.com, kde najdete další zábavné open source projekty.

První cena v soutěži SANYO eneloop Battery Powered Contest

Doporučuje: