Inhoudsopgave:

Arduino gestuurde servorobot (SERB): 7 stappen (met afbeeldingen)
Arduino gestuurde servorobot (SERB): 7 stappen (met afbeeldingen)

Video: Arduino gestuurde servorobot (SERB): 7 stappen (met afbeeldingen)

Video: Arduino gestuurde servorobot (SERB): 7 stappen (met afbeeldingen)
Video: Single servo robot 2024, Juli-
Anonim
Arduino bestuurde servorobot (SERB)
Arduino bestuurde servorobot (SERB)
Arduino bestuurde servorobot (SERB)
Arduino bestuurde servorobot (SERB)
Arduino bestuurde servorobot (SERB)
Arduino bestuurde servorobot (SERB)
Arduino bestuurde servorobot (SERB)
Arduino bestuurde servorobot (SERB)

Wat is een betere manier om te beginnen met experimenteren met open source microcontrollers (Arduino) dan door je eigen open source robot (CC (SA -BY)) te bouwen? Wat te doen met je SERB?

  • (hier) - Hoe u uw SERB met internet kunt verbinden en via een Skype-videogesprek kunt rijden.
  • (hier) - Hoe je je SERB bestuurt met behulp van de versnellingsmeters van een Wii-nunchuck
  • (hier) - Hoe u snorharen voor het detecteren van obstakels aan uw robot kunt toevoegen
  • (hier) - Hoe maak je 30 kits (Open Manufacturing)

Functies:

  • Volledig programmeerbaar met behulp van een Arduino Duemilanove-microcontroller (of een andere microcontroller naar keuze).
  • Solderen is niet nodig.
  • Keuze uit snijopties voor acrylstukken. (rolzaag, toegang tot een lasersnijder, voorgesneden stukken kopen)
  • Gemakkelijk uitbreidbaar en aanpasbaar met extra boutgaten en inclusief breadboard.
  • Achterwiel met dubbele kogellagers.
  • Binnen 1-2 uur aan de slag. (uit set)
  • Open source-ontwerp (bouw er zoveel als je wilt)

(Shameless Plug) In het VK en zoals Arduino-dingen? bekijk onze nieuw geopende webwinkel oomlout.co.uk Een korte video van een voltooide Arduino-gestuurde servorobot - (SERB) met het meegeleverde testprogramma (stap 6) Opmerking: bronbestanden zijn beschikbaar op een parallelle Instructable (bronbestanden voor) - Hoe maak je een Arduino-gestuurde servo-robot - (SERB)

Stap 1: Onderdelen & Gereedschap

Onderdelen & Gereedschap
Onderdelen & Gereedschap

Alle bouten zijn te vinden bij uw plaatselijke Home Depot. De andere onderdelen zijn online te vinden (ik heb voor elk een link naar mijn favoriete bron toegevoegd). Onderdelenlijst: een bundel met alle hardware-items kan worden gekocht in de winkel van oomlout.com (hier) ($ 120) Moeren en bouten:

  • 3 mm x 15 mm bout (x20)
  • 3 mm x 10 mm bout (x12)
  • 3 mm moer (x34)
  • 3 mm sluitring (x12)
  • 8mm x 25mm bout (x2)
  • 8mm moer (x2)
  • Skate lagers (x2) (VXB) (dit zijn standaard skate lagers zodat ze kunnen worden geborgen uit een paar rolschaatsen of een skateboard)

Banden

  • Grote O-ring (4,5" ID 3/16" Bead Dash #349) (x2) (McMaster-Carr-product #9452K407)
  • Kleine O-ring (3/4" ID 3/16" Bead Dash #314) (x1) (McMaster-Carr-product #9452K387)

Elektronica

  • Arduino Duemilanove (x1) (Maker Schuur)
  • Continue Rotatie Servo (x2) (Parallax)
  • 400 Contact Breadboard (x1) (alle elektronica))
  • Quad AA-batterijdoos (x1) (alle elektronica)
  • 9V batterijclip (x1) (alle elektronica)
  • 2,1 mm stekker (x1) (alle elektronica)
  • 3-pins header (x2) (alle elektronica)
  • A-B USB-kabel - printerstijl (x1) (alle elektronica) (niet inbegrepen in kit)

Batterijen:

  • AA-batterij (x4) (niet inbegrepen in kit)
  • 9v batterij (x1) (niet inbegrepen in kit)

Draad: (alle draad is 22 AWG solide, ik koop de mijne via McMaster-Carr)

  • 15 cm Paars (x2)
  • 15cm Zwart (x1)
  • 5cm Zwart (x2)
  • 5 cm Rood (x2)

Gereedschap

  • Schroevendraaier (x1) (Philips)
  • Naaldtang (x1)

Stap 2: Stukken snijden

Stukken snijden
Stukken snijden
Stukken snijden
Stukken snijden
Stukken snijden
Stukken snijden
Stukken snijden
Stukken snijden

Kies welke stappen u wilt volgen op basis van de snijoptie die u hebt gekozen. Optie 1 (Voorgesneden onderdelen kopen)

Koop een voorgesneden chassis in de winkel van oomlout.com (hier) ($ 60 inclusief verzending naar de VS en Canada)

Optie 2 (digitale productie (bijv. Ponoko) / toegang tot een lasersnijder)

  • Download de lay-out van de lasersnijder ("03 SERB Ponoko Cutting Layout P2.eps" of "03-(SERB)-Ponoko Cutting Layout (P2).cdr")
  • Snijd de bestanden met Ponoko of op uw eigen lasersnijder (met 3 mm,.118" acryl (soms verkocht als.125")

Optie 3 (rolzaag en boormachine)

  • Download en print het PDF-patroon (kies het bestand dat overeenkomt met uw papierformaat) 03-(SERB)-ScrollSaw Pattern (letter).pdf 03-(SERB)-ScrollSaw Pattern (A4).pdf (het is belangrijk om niet te schalen de tekening tijdens het printen)
  • Meet de liniaal op de afdruk tegen een liniaal die u vertrouwt, als ze niet overeenkomen, is het patroon geschaald en moet u uw printerinstellingen bekijken voordat u opnieuw afdrukt. Als ze overeenkomen, verder.
  • Lijm het patroon op de acrylplaat (3 mm,.118 "(soms verkocht als.125").
  • Boorgaten.
  • Uitgesneden stukken met behulp van een figuurzaagmachine

Stap 3: Montage

samenkomst
samenkomst
samenkomst
samenkomst
samenkomst
samenkomst

Gefeliciteerd dat je zo ver bent gekomen, 90% van het proces is voltooid, download gewoon de montage-instructies in deze stap (04-(SERB)-Assembly Guide.pdf) en na een kleine montage in lego/mechano-stijl ben je klaar om te bedraden. Om jullie onderweg te vermaken is hier een time-lapse van mijn assemblage:

Stap 4: Bedrading

Bedrading
Bedrading
Bedrading
Bedrading

Met alle grote stukken bij elkaar is het tijd om de kleine elektrische aderen toe te voegen waarmee onze robot kan worden bestuurd. Download en print hiervoor het bedradingsschema (05-(SERB)-Wiring Diagram.pdf). Een eerste blik erop kan nogal ontmoedigend lijken, maar als je elke verbinding opeenvolgend maakt en de tijd neemt, komt het opmerkelijk snel samen. De bedrading is vrij eenvoudig en er kan geen schade aan je circuit ontstaan totdat je batterijen toevoegt. Dus sluit alles aan, controleer het en voeg vervolgens stroom toe.

Stap 5: Testen en probleemoplossing

Testen en probleemoplossing
Testen en probleemoplossing

Als je een kit hebt besteld, is je Arduino vooraf geladen met een testprogramma. Plaats gewoon 4 AA-batterijen en sluit de 9v-batterij aan op de Arduino. En als alles correct is gedaan, begint je robot te bewegen (hij zal een tijd tussen 0,1 en 1 seconde in een willekeurige richting draaien voordat hij een willekeurige tijd tussen 1 en 2 seconden vooruit gaat en dan 2 seconden pauzeren voordat hij opnieuw begint). Als u geen kit hebt gekocht, is een extra stap vereist. Download het bijgevoegde zip-bestand (07-(SERB)-SERB-Test Arduino Program.zip). Pak het vervolgens uit in uw Arduino-schetsmap (standaard "mijn documenten\Arduino\") en download het naar uw Arduino-bord. (als Arduino nieuw voor je is, ga dan een stap vooruit waar er links zijn naar geweldige tutorials om aan de slag te gaan) Veelvoorkomende problemen: Mijn SERB beweegt langzaam wanneer het moet worden gestopt. Dit is een gevolg van het feit dat uw servo's niet helemaal goed zijn gekalibreerd, om uw servo's te kalibreren, wacht u tot uw programma de servo's heeft gestopt en draait u vervolgens met een kleine schroevendraaier aan de potentiometer in de servo (de kleine opening in de servobehuizing net boven waar de draden zijn). Draai het naar links of rechts totdat de servo echt is gestopt. Dingen werken niet helemaal naar behoren. Stuur ons een e-mail met uw symptomen en we zullen proberen u te helpen, terwijl u op een antwoord wacht, controleer al uw draden met het bedradingsschema uit stap 4. Als u een probleem ondervindt, voeg dan een opmerking toe naar deze Instructable of stuur een e-mail naar [email protected] en we zullen ons uiterste best doen om u te helpen uw SERB werkend te krijgen

Stap 6: Programmeren

Programmeren
Programmeren

De fysieke robot is klaar om hem een brein te geven. Voordat we ingaan op de details van het programmeren van een Arduino Controlled Servo Robot - (SERB) - een paar links naar een aantal uitstekende Arduino-programmeerbronnen op internet. Arduino Starter Guide - Een gids om u te helpen starten met Arduinos, van het downloaden van de programmeeromgeving tot het schrijven van uw eerste programma. Arduino Programming Reference - Een complete, gemakkelijk te raadplegen gids voor de Arduino-programmeertaal. How Servo's werken - Een snelle inleiding over hoe servomotoren werken. Arduino Servo Library - Hoe de Arduino Servo-bibliotheek werkt (hoe we onze servo's besturen). Oké, met het leren uit de weg, laten we gaan programmeren. Er zijn drie manieren om aan de slag te gaan met het programmeren van uw Arduino Controlled Servo Robot - (SERB). Optie 1: (SERB_Test.pde wijzigen) Soms is het tijdens het programmeren het gemakkelijkst om een werkend programma te nemen en uw eigen code eraan toe te voegen. Download hiervoor het SERB_Test gezipte programma (07-(SERB)- SERB-Test Arduino Program.zip). Ga verder om dit uit te pakken in uw Arduino-schetsmap (standaard "Mijn documenten\Arduino\"). Open ten slotte de Arduino-programmeeromgeving en download deze naar uw Arduino. De code is goed becommentarieerd. (of kopieer en plak de code uit de bijlage bij deze stap naar een nieuwe Arduino Sketch) Optie 2: (SERB-routines toevoegen aan uw programma) Voeg enkele eenvoudige routines toe aan uw reeds bestaande programma (zoals goForward(), setSpeed(int) enz.). Download hiervoor de routines in het tekstbestand (07-(SERB)- Simple Routines Text.txt). 1. Kopieer en plak het preambulegedeelte aan het begin van uw programma.2. Kopieer en plak het routinegedeelte in de hoofdtekst van uw programma.3. Voeg een aanroep toe aan serbSetup(); naar uw setup() routine. Optie 3: (Uw eigen programma vanaf het begin maken)Dit is niet al te moeilijk. Het enige dat nodig is, is om vertrouwd te raken met de Arduino Servo-bibliotheek. Vervolgens wordt de rechter servo aangesloten op pin 9, en de linker servo op pin 10. Opmerking: Extra programma's zullen hier worden toegevoegd als ze worden ontwikkeld; of als je iets ontwikkelt en het zou willen, stuur me dan een privébericht en het kan worden toegevoegd. Bijlage: (SERB_Test.pde-code)

/* * Arduino Controlled Servo Robot (SERB) - Testprogramma * Ga voor meer informatie naar: https://www.oomlout.com/serb * * Gedrag: een eenvoudig testprogramma dat ervoor zorgt dat de SERB * willekeurig naar links of naar rechts draait voor een * willekeurige tijdsperiode tussen 0,1 en 1 seconde. * De SERB zal dan voor een willekeurige * tijdsperiode tussen 1 en 2 seconden vooruit rijden. Tot slot * 2 seconden pauzeren alvorens opnieuw te beginnen. * * Bedrading: Rechter servosignaal - pin 9 * Linker servosignaal - pin 10 * * Licentie: Dit werk is gelicentieerd onder de Creative Commons * Attribution-Share Alike 3.0 Unported-licentie. Om * een kopie van deze licentie te bekijken, gaat u naar * https://creativecommons.org/licenses/by-sa/3.0/ * of stuurt u een brief naar Creative Commons, 171 Second * Street, Suite 300, San Francisco, California 94105, * VS. * */ //--------------------------------------------- -----------------------------// BEGIN VAN ARDUINO GECONTROLEERDE SERVO ROBOT (SERB) INLEIDING#include #define LEFTSERVOPIN 10 #define RIGHTSERVOPIN 9Servo linksServo; Servo rechtsServo; int-snelheid = 100; // stelt de snelheid van de robot in (beide servo's) // een percentage tussen 0 en 100// EINDE ARDUINO GESTUURDE SERVO ROBOT (SERB) PREAMBLE//---------------- -------------------------------------------------- --------/* * stelt pinnen in op de juiste toestanden en bevestigt servo's. Pauzeer dan * gedurende 1 seconde voordat het programma start*/ void setup() { serbSetup(); // stelt de status van alle benodigde // pinnen in en voegt servo's toe aan je schets randomSeed (analogRead (0)); // stelt het willekeurige nummerzaad in met //iets licht willekeurige vertraging (1000);}/* * draait de robot naar links of rechts (willekeurig) voor een periode tussen * 0,1 en 1 seconde. Alvorens vooruit te gaan voor een willekeurige tijdsperiode * tussen 1 en 4 seconden. Voordat u twee seconden pauzeert en vervolgens * opnieuw start.*/void loop() { turnRandom(100, 1000); // Draait willekeurig naar links of rechts voor een // willekeurige tijdsperiode tussen 0,1 seconde // en één seconde goForwardRandom (1000, 2000); // Gaat een willekeurige tijd vooruit // tussen //1 en 2 seconden goStop(); // Stopt de robotvertraging (2000); // pauzeert 2 seconden (terwijl gestopt)}/* * draait de robot willekeurig naar links of rechts gedurende een willekeurige tijdsperiode tussen * minTime (milliseconden) en maxTime (milliseconden) */void turnRandom(int minTime, int maxTime){ int keuze = willekeurig (2); // Willekeurig aantal om te beslissen // tussen links (1) en rechts (0) int turnTime = willekeurig (minTime, maxTime); // Willekeurig getal voor de pauze //time if (choice == 1) {goLeft();} //Als willekeurig getal = 1 draai dan // left else {goRight();} //If willekeurig getal = 0 dan draai // rechts vertraging (turnTime); //vertraging voor willekeurige tijd }/* * gaat vooruit voor een willekeurige tijdsperiode tussen minTime (milliseconden) * en maxTime (milliseconden) */void goForwardRandom (int minTime, int maxTime) {int forwardTime = random (minTime, maxTime); // bepaal een willekeurige tijd om // vooruit te gaan goForward(); // stelt de SERB voorwaartse vertraging in (forwardTime); // vertragingen voor willekeurige tijdsperiode}//---------------------------------------- --------------------------------//BEGIN VAN ARDUINO GESTUURDE SERVO ROBOT (SERB) ROUTINES/* * stelt uw arduino om uw SERB aan te spreken met behulp van de meegeleverde routines*/void serbSetup(){ setSpeed(speed); pinMode (LINKERSERVOPIN, UITGANG); // stelt de linker servosignaalpin in // om pinMode uit te voeren (RIGHTSERVOPIN, OUTPUT); // stelt de rechter servosignaalpin in // om leftServo.attach uit te voeren (LEFTSERVOPIN); //bevestigt linker servo rightServo.attach (RIGHTSERVOPIN); //bevestigt rechter servo goStop();}/* * stelt de snelheid van de robot in tussen 0- (gestopt) en 100- (volledige snelheid) * OPMERKING: snelheid zal de huidige snelheid niet veranderen, u moet de snelheid veranderen * bel dan een van de go-methoden voordat er wijzigingen optreden.*/ void setSpeed(int newSpeed){ if(newSpeed >= 100) {newSpeed = 100;} //if speed is groter dan 100 //make it 100 if(newSpeed <= 0) {newSpeed = 0;} //als de snelheid lager is dan 0 maak //it 0 speed = newSpeed * 0.9; //schaalt de snelheid naar // tussen 0 en 90}/* * stuurt de robot naar voren */void goForward(){ leftServo.write(90 + speed); rightServo.write(90 - snelheid);}/* * stuurt de robot achteruit */void goBackward(){ leftServo.write(90 - snelheid); rightServo.write(90 + snelheid);} /* * stuurt de robot naar rechts */void goRight(){ leftServo.write(90 + snelheid); rightServo.write(90 + snelheid);}/* * stuurt de robot naar links */void goLeft(){ leftServo.write(90 - snelheid); rightServo.write(90 - snelheid);}/* * stopt de robot */void goStop(){ leftServo.write(90); rightServo.write (90);} // EINDE VAN ARDUINO GESTUURDE SERVO ROBOT (SERB) ROUTINES//---------------------------- -----------------------------------------------

Stap 7: klaar, anderen die klaar zijn en de toekomst

Voltooid, anderen die klaar zijn en de toekomst
Voltooid, anderen die klaar zijn en de toekomst
Voltooid, anderen die klaar zijn en de toekomst
Voltooid, anderen die klaar zijn en de toekomst
Voltooid, anderen die klaar zijn en de toekomst
Voltooid, anderen die klaar zijn en de toekomst
Voltooid, anderen die klaar zijn en de toekomst
Voltooid, anderen die klaar zijn en de toekomst

Gefeliciteerd dat je zo ver bent gekomen en ik hoop dat je veel plezier hebt met je Arduino Controlled Servo Robot - (SERB). Michael Beck's SERB -Michael vond de plannen voor de SERB op Thingiverse.com en sneed de zijne uit geel en rood acryl. Ik vind het er geweldig uitzien. Mike's SERB - Mike (van robotclub ROBOMO in St. Louis Area) liet een vriend een SERB-chassis lasersnijden en gebruikte zijn eigen robotkennis om het in gebruik te nemen. Ik vind het er geweldig uitzien in het blauw. (Bekijk zijn website voor details hierover evenals zijn andere robots (hier) Deze sectie zal details bevatten over toekomstige ontwikkelingen en bijlagen (ze zullen hier getoond worden voordat ze goed gedocumenteerd zijn). Maar ik zou ook graag foto's willen laten zien van andere SERB's van andere mensen. Dus als je klaar bent, stuur me dan een privébericht met een foto en een paar woorden (of het nu een beschrijving is of een link naar je website) en ik zal het hier toevoegen. (Shameless Plug)Als je het leuk vond deze instructable kijk op oomlout.com voor andere leuke open source-projecten.

Eerste prijs in de SANYO eneloop Battery Powered Contest

Aanbevolen: