Indholdsfortegnelse:

Arduino kontrolleret servobot (SERB): 7 trin (med billeder)
Arduino kontrolleret servobot (SERB): 7 trin (med billeder)

Video: Arduino kontrolleret servobot (SERB): 7 trin (med billeder)

Video: Arduino kontrolleret servobot (SERB): 7 trin (med billeder)
Video: An Arduino Controlled Servo Robot Running the SERB - Test Program 2024, Juli
Anonim
Arduino kontrolleret servobot (SERB)
Arduino kontrolleret servobot (SERB)
Arduino kontrolleret servobot (SERB)
Arduino kontrolleret servobot (SERB)
Arduino kontrolleret servobot (SERB)
Arduino kontrolleret servobot (SERB)
Arduino kontrolleret servobot (SERB)
Arduino kontrolleret servobot (SERB)

Hvilken bedre måde at begynde at eksperimentere med open source -mikrokontrollere (Arduino) og derefter bygge din helt egen open source -robot (CC (SA -BY)) Hvad skal du gøre med din SERB?

  • (her) - Sådan forbinder du din SERB til internettet og driver den via et Skype -videoopkald.
  • (her) - Sådan styrer du din SERB ved hjælp af en Wii nunchucks accelerometre
  • (her) - Sådan tilføjes forhindringsdetekterende whiskers til din robot
  • (her) - Sådan laver du 30 kits (åben produktion)

Funktioner:

  • Fuldt programmerbar ved hjælp af en Arduino Duemilanove mikro-controller (eller en anden mikro-controller efter eget valg).
  • Ingen grund til lodning.
  • Valg af skæremuligheder for akrylstykker. (rullesav, adgang til en laserskærer, køb af færdige stykker)
  • Kan let udvides og ændres med ekstra bolthuller og inkluderet brødbræt.
  • Dobbelt kugleleje baghjul.
  • Kører på 1-2 timer. (fra kit)
  • Open source -design (byg så mange du vil)

(Shameless Plug) I Storbritannien og kan du lide Arduino -ting? tjek vores nyåbnede webshop oomlout.co.uk En hurtig video af en færdig Arduino -styret servobot - (SERB), der kører det medfølgende testprogram (trin 6) Bemærk: Kildefiler er tilgængelige på en parallel Instructable (Source Files For) - Sådan laver du en Arduino -kontrolleret servo -robot - (SERB)

Trin 1: Dele og værktøjer

Dele og værktøjer
Dele og værktøjer

Alle bolte kan findes på dit lokale Home Depot. De andre dele kan findes online (jeg har inkluderet et link til min yndlingskilde for hver). Deleliste: Et bundt, der indeholder alle hardwareelementer, kan købes i oomlout.com's butik (her) ($ 120) Nuts and Bolts:

  • 3 mm x 15 mm bolt (x20)
  • 3 mm x 10 mm bolt (x12)
  • 3 mm møtrik (x34)
  • 3 mm skive (x12)
  • 8 mm x 25 mm bolt (x2)
  • 8 mm møtrik (x2)
  • Skate Lejer (x2) (VXB) (disse er standard skate lejer, så de kan reddes fra et par rulleskøjter eller et skateboard)

Dæk

  • Stor O-ring (4,5 "ID 3/16" Bead Dash #349) (x2) (McMaster-Carr-produktnr. 9452K407)
  • Lille O-ring (3/4 "ID 3/16" Bead Dash #314) (x1) (McMaster-Carr Product #9452K387)

Elektronik

  • Arduino Duemilanove (x1) (Maker Shed)
  • Kontinuerlig rotationsservo (x2) (Parallax)
  • 400 kontaktbrødbræt (x1) (al elektronik))
  • Quad AA batterikasse (x1) (alt elektronik)
  • 9V batteriklemme (x1) (al elektronik)
  • 2,1 mm stik (x1) (al elektronik)
  • 3 -benet header (x2) (All Electronics)
  • A -B USB -kabel - Printerstil (x1) (al elektronik) (ikke inkluderet i sættet)

Batterier:

  • AA -batteri (x4) (ikke inkluderet i sættet)
  • 9v batteri (x1) (ikke inkluderet i sættet)

Wire: (al ledning er 22 AWG solid jeg køber min gennem McMaster-Carr)

  • 15 cm Lilla (x2)
  • 15 cm Sort (x1)
  • 5 cm Sort (x2)
  • 5 cm Rød (x2)

Værktøjer

  • Skruetrækker (x1) (Philips)
  • Nålestang (x1)

Trin 2: Skærestykker

Skærestykker
Skærestykker
Skærestykker
Skærestykker
Skærestykker
Skærestykker
Skærestykker
Skærestykker

Vælg venligst, hvilke trin der skal følges, baseret på den skæremulighed, du har valgt. 1 (Indkøb af færdigskårne dele)

Køb et forudskåret chassis fra oomlout.com's butik (her) ($ 60 inklusive forsendelse til USA og Canada)

Mulighed 2 (digital fremstilling (dvs. Ponoko) / adgang til en laserskærer)

  • Download laser cutter layout ("03 SERB Ponoko Cutting Layout P2.eps" eller "03- (SERB) -Ponoko Cutting Layout (P2).cdr")
  • Klip filerne ved hjælp af Ponoko eller på din egen laserskærer (ved hjælp af 3 mm,.118 "akryl (undertiden sælges som.125")

Mulighed 3 (rullesav og boremaskine)

  • Download og udskriv PDF-mønsteret (vælg venligst den fil, der svarer til din papirstørrelse) 03- (SERB) -ScrollSaw Pattern (letter).pdf 03- (SERB) -ScrollSaw Pattern (A4).pdf (det er vigtigt ikke at skalere tegningen under udskrivning)
  • Mål linealen på udskriften mod en lineal, du har tillid til, hvis de ikke matcher mønsteret er blevet skaleret, og du skal se på dine printerindstillinger, før du udskriver igen. Hvis de stemmer overens, fremad.
  • Lim mønsteret til akrylpladen (3 mm,.118 "(undertiden sælges som.125").
  • Bor huller.
  • Udskæringsstykker ved hjælp af en rullesav

Trin 3: Montering

montage
montage
montage
montage
montage
montage

Tillykke med at nå så langt 90% af processen er fuldført, bare download samlevejledningen til dette trin (04- (SERB) -Monteringsguide.pdf), og efter en lille lego/mechano-stil samling er du klar til at koble. At underholde dig undervejs her er en time-lapse af min forsamling:

Trin 4: Ledningsføring

Ledninger
Ledninger
Ledninger
Ledninger

Med alle de store stykker sammen er det tid til at tilføje de små elektriske årer, som gør det muligt for vores robot at blive kontrolleret. For at gøre dette skal du downloade og udskrive ledningsdiagrammet (05- (SERB) -ledningsdiagram.pdf). Et første blik på det kan se ganske skræmmende ud, men hvis du foretager hver forbindelse i rækkefølge og tager dig god tid, kommer det bemærkelsesværdigt hurtigt sammen. Ledningerne er ganske enkle, og der kan ikke komme nogen skade på dit kredsløb, før du tilføjer batterier. Så led alt sammen, og tjek det, og tilføj derefter strøm.

Trin 5: Testning og fejlfinding

Test og fejlfinding
Test og fejlfinding

Hvis du har bestilt et kit, er din Arduino blevet forudindlæst med et testprogram. Sæt bare 4 AA -batterier i, og sæt 9v -batteriet i Arduino. Og hvis alt er blevet gjort korrekt, begynder din robot at bevæge sig (den vil dreje i en tilfældig retning i en tid mellem 0,1 og 1 sekund, før den går fremad i en tilfældig tid mellem 1 og 2 sekunder, og derefter pause i 2 sekunder, før den starter igen). Hvis du ikke har købt et kit, kræves et ekstra trin. Download den vedhæftede zip-fil (07- (SERB)-SERB-Test Arduino Program.zip). Pak derefter det ud i dit Arduino -skitsemappe (standard "mine dokumenter / Arduino \") og download det til dit arduino -bord. (hvis du er ny i Arduino, skal du springe et skridt fremad, hvor der er links til gode selvstudier) Almindelige problemer: Min SERB bevæger sig langsomt, når den skal stoppes. Dette er et resultat af, at dine servoer ikke er kalibreret helt rigtigt, for at kalibrere dine servoer, vent til dit program stopper servoerne, og drej derefter potentiometeret inde i servoen med en lille skruetrækker (den lille åbning i servohuset lige over, hvor ledningerne er). Drej den enten til venstre eller højre, indtil servoen virkelig stoppes. Tingene fungerer ikke helt korrekt. Send os en e-mail med dine symptomer, så prøver vi at hjælpe dig, mens du venter på et svar, skal du tjekke alle dine ledninger med ledningsdiagrammet fra trin 4. Hvis du støder på et problem, kan du enten tilføje en kommentar til denne instruks eller send en e-mail til [email protected], og vi vil gøre vores bedste for at hjælpe dig med at få din SERB til at fungere

Trin 6: Programmering

Programmering
Programmering

Den fysiske robot er færdig med at begynde at give den en hjerne. Inden vi går ind i detaljerne ved programmering af en Arduino Controlled Servo Robot - (SERB) - et par links til nogle fremragende Arduino -programmeringsressourcer på internettet. Arduino Starter Guide - En guide for at hjælpe dig med at starte med Arduinos, fra at downloade programmeringsmiljøet til at skrive dit første program. Arduino -programmeringsreference - En komplet let at henvise til Arduino -programmeringssprog. Sådan fungerer servoer - En hurtig primer til, hvordan servomotorer fungerer. Arduino Servobibliotek - Hvordan fungerer Arduino Servobiblioteket (hvordan vi styrer vores servoer). Okay med læringen ude af vejen lader os programmere. Der er tre måder at komme i gang med at programmere din Arduino Controlled Servo Robot - (SERB). Valg 1: (Ændring af SERB_Test.pde) Nogle gange, når du programmerer, er det nemmeste at tage et arbejdende program og begynde at tilføje din egen kode til det. For at gøre dette skal du downloade SERB_Test-zipprogrammet (07- (SERB)-SERB-Test Arduino Program.zip). Fortsæt med at pakke dette ud i din Arduino -skitsemappe (standard "Mine dokumenter / Arduino \"). Åbn endelig Arduino -programmeringsmiljøet, og download det til din Arduino. Koden er godt kommenteret. (Eller kopier og indsæt koden fra bilaget på dette trin til en ny Arduino Sketch) Mulighed 2: (Tilføjelse af SERB-rutiner til dit program) Tilføj nogle enkle rutiner til dit allerede eksisterende program (som goForward (), setSpeed (int) osv.). For at gøre dette skal du downloade rutinerne i tekstfilen (07- (SERB)- Simple Routines Text.txt). 1. Kopier og indsæt præambledelen til begyndelsen af dit program. Kopier og indsæt den rutinemæssige del i dit programs brødtekst. Tilføj et opkald til serbSetup (); til din setup () rutine. Valg 3: (Oprettelse af dit eget program fra bunden) Dette er ikke for svært. Det eneste, der kræves, er at sætte sig ind i Arduino Servo Library. Derefter tilsluttes den højre servo til pin 9, og den venstre servo til pin 10. Bemærk: Yderligere programmer tilføjes her, efterhånden som de udvikles; eller hvis du udvikler noget og gerne vil have det fremhævet, send mig en privat besked, og den kan tilføjes. Appendiks: (SERB_Test.pde -kode)

/ * * Arduino Controlled Servo Robot (SERB) - Testprogram * For flere detaljer besøg: https://www.oomlout.com/serb * * Adfærd: Et simpelt testprogram, der får SERB * til at dreje tilfældigt enten til venstre eller højre i en * tilfældig periode mellem 0,1 og 1 sekund. * SERB kører derefter fremad i en tilfældig * periode mellem 1 og 2 sekunder. Endelig * pause i 2 sekunder, før du starter igen. * * Ledninger: Højre Servosignal - pin 9 * Venstre Servosignal - pin 10 * * Licens: Dette værk er licenseret under Creative Commons * Attribution -Share Alike 3.0 Unported License. For at * se en kopi af denne licens skal du besøge * https://creativecommons.org/licenses/by-sa/3.0/ * eller sende et brev til Creative Commons, 171 Second * Street, Suite 300, San Francisco, California 94105, * USA. * */// ----------------------------------------------------- ----------------------------- // START AF ARDUINO STYRET SERVO ROBOT (SERB) PREAMBEL #inkluderer #define LEFTSERVOPIN 10 #define RIGHTSERVOPIN 9Servo forlodServo; Servo højreServo; int hastighed = 100; // indstiller robotens hastighed (begge servoer) // en procent mellem 0 og 100 // AFSLUTNING AF ARDUINO KONTROLLERET SERVO ROBOT (SERB) PREAMBEL // ---------------- -------------------------------------------------- --------/ * * sætter stifter til passende tilstande og fastgør servoer. Pauser derefter * i 1 sekund, før programmet starter */ void setup () {serbSetup (); // angiver tilstanden for alle nødvendige // pins og tilføjer servoer til din sketch randomSeed (analogRead (0)); // indstiller tilfældigt talfrø med // noget mildt tilfældigt forsinkelse (1000);}/ * * drejer robotten enten til venstre eller højre (tilfældigt) i en periode mellem * 0,1 og 1 sekund. Inden du går fremad i en tilfældig tidsperiode * mellem 1 og 4 sekunder. Inden du holder pause i to sekunder og derefter starter * igen. */Void loop () {turnRandom (100, 1000); // Drejer tilfældigt til venstre eller højre i en // tilfældig periode mellem.1 sekund // og et sekund goForwardRandom (1000, 2000); // Går frem i en tilfældig periode // mellem // 1 og 2 sekunder goStop (); // Stopper robotforsinkelsen (2000); // holder pause i 2 sekunder (mens den er standset)}/ * * drejer robotten tilfældigt til venstre eller højre i en tilfældig periode mellem * minTime (millisekunder) og maxTime (millisekunder) */void turnRandom (int minTime, int maxTime) {int valg = tilfældigt (2); // Tilfældigt tal, der skal afgøres // mellem venstre (1) og højre (0) int turnTime = random (minTime, maxTime); // Tilfældigt tal for pausen // tid hvis (valg == 1) {goLeft ();} // Hvis tilfældigt tal = 1, drej // til venstre ellers {goRight ();} // Hvis tilfældigt tal = 0 derefter drej // højre forsinkelse (turnTime); // forsinkelse for tilfældig tid}/ * * går fremad i en tilfældig periode mellem minTime (millisekunder) * og maxTime (millisekunder) */void goForwardRandom (int minTime, int maxTime) {int forwardTime = random (minTime, maxTime); // bestem en tilfældig tid til // gå fremad goForward (); // indstiller SERB -forsinkelsen (forwardTime); // forsinkelser i tilfældig periode} // ---------------------------------------- -------------------------------- // START AF ARDUINO KONTROLLERET SERVO ROBOT (SERB) RUTINER/ * * konfigurerer din arduino til at adressere din SERB ved hjælp af de medfølgende rutiner*/void serbSetup () {setSpeed (speed); pinMode (LEFTSERVOPIN, OUTPUT); // indstiller venstre servosignalstift // til output pinMode (RIGHTSERVOPIN, OUTPUT); // indstiller den højre servosignalstift // til at sende venstreServo.attach (LEFTSERVOPIN); // vedhæfter venstre servo rightServo.attach (RIGHTSERVOPIN); // fastgør højre servo goStop ();}/ * * indstiller robotens hastighed mellem 0- (stoppet) og 100- (fuld hastighed) * BEMÆRK: hastighed ændrer ikke den aktuelle hastighed, du skal ændre hastighed * ring derefter til en af go -metoderne, før der sker ændringer.*/void setSpeed (int newSpeed) {if (newSpeed> = 100) {newSpeed = 100;} // hvis hastigheden er større end 100 // gør det til 100 if (newSpeed <= 0) {newSpeed = 0;} // hvis hastigheden er mindre end 0 gør // det 0 speed = newSpeed * 0,9; // skalerer hastigheden til at være // mellem 0 og 90}/ * * sender robotten frem */void goForward () {leftServo.write (90 + hastighed); rightServo.write (90 - hastighed);}/ * * sender robotten baglæns */void goBackward () {leftServo.write (90 - speed); rightServo.write (90 + hastighed);} / * * sender robotten til højre * /void goRight () {leftServo.write (90 + hastighed); rightServo.write (90 + hastighed);}/ * * sender robotten til venstre */void goLeft () {leftServo.write (90 - speed); rightServo.write (90 - hastighed);}/ * * stopper robotten */void goStop () {leftServo.write (90); rightServo.write (90);} // END OF ARDUINO CONTROLLED SERVO ROBOT (SERB) ROUTINES // ---------------------------- ------------------------------------------------

Trin 7: Færdig, andre der er færdige og fremtiden

Færdig, andre der er færdige og fremtiden
Færdig, andre der er færdige og fremtiden
Færdig, andre der er færdige og fremtiden
Færdig, andre der er færdige og fremtiden
Færdig, andre der er færdige og fremtiden
Færdig, andre der er færdige og fremtiden
Færdig, andre der er færdige og fremtiden
Færdig, andre der er færdige og fremtiden

Tillykke med at du er nået så langt, og jeg håber, du har det sjovt med din Arduino Controlled Servo Robot - (SERB). Michael Becks SERB -Michael fandt planerne for SERB'en over på Thingiverse.com og skar hans ud af gul og rød akryl. Jeg synes, det ser godt ud. Mike's SERB - Mike (fra robotklubben ROBOMO i St. Louis Area) fik en ven til at laserskære et SERB -chassis og brugte sin egen robot -knowhow til at få det til at køre. Jeg synes det ser fantastisk ud i blå. (tjek hans websted for detaljer om dette såvel som hans andre robotter (her) Dette afsnit vil have detaljer om fremtidig udvikling og vedhæftede filer (de vil blive vist her, før de er korrekt dokumenteret). Men jeg vil også gerne vise billeder frem af andre folks SERB'er. Så hvis du er færdig, send mig en privat besked med et foto og et par ord (det være sig en beskrivelse eller et link til dit websted), og jeg tilføjer det her. (Shameless Plug) Hvis du kunne lide denne instruerbare tjek oomlout.com for andre sjove open source -projekter.

Første præmie i SANYO eneloop batteridrevet konkurrence

Anbefalede: