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

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

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ů

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í

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í

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ů

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í

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

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