Taula de continguts:

Servo-robot controlat Arduino (SERB): 7 passos (amb imatges)
Servo-robot controlat Arduino (SERB): 7 passos (amb imatges)

Vídeo: Servo-robot controlat Arduino (SERB): 7 passos (amb imatges)

Vídeo: Servo-robot controlat Arduino (SERB): 7 passos (amb imatges)
Vídeo: New Servo Robot 2024, Desembre
Anonim
Servo-robot controlat Arduino (SERB)
Servo-robot controlat Arduino (SERB)
Servo-robot controlat Arduino (SERB)
Servo-robot controlat Arduino (SERB)
Servo-robot controlat Arduino (SERB)
Servo-robot controlat Arduino (SERB)
Servo-robot controlat Arduino (SERB)
Servo-robot controlat Arduino (SERB)

Quina millor manera de començar a experimentar amb microcontroladors de codi obert (Arduino) i, tot seguit, construint el vostre propi robot de codi obert (CC (SA -BY))? Què fer amb el vostre SERB?

  • (aquí): Com connectar el vostre SERB a Internet i conduir-lo mitjançant una videotrucada Skype.
  • (aquí): Com controlar el vostre SERB mitjançant els acceleròmetres de nunchuck de Wii
  • (aquí) - Com afegir bigotis de detecció d'obstacles al vostre robot
  • (aquí) - Com fer 30 kits (fabricació oberta)

Característiques:

  • Totalment programable mitjançant un microcontrolador Arduino Duemilanove (o un altre microcontrolador que trieu).
  • No cal soldar.
  • Elecció d’opcions de tall per a peces d’acrílic. (serra de desplaçament, accés a un tallador làser, compra de peces prèviament tallades)
  • Fàcilment ampliable i modificable amb forats de cargol addicionals i tauler inclòs.
  • Roda posterior de rodament de boles doble.
  • Funcionament en 1-2 hores. (del kit)
  • Disseny de codi obert (en creeu tants com vulgueu)

(Shameless Plug) Al Regne Unit i t'agraden les coses d'Arduino? Consulteu la nostra botiga web recentment oberta oomlout.co.uk Un vídeo ràpid d’un servo robot controlat per Arduino completat (SERB) que executa el programa de prova inclòs (pas 6) Nota: els fitxers font estan disponibles en format paral·lel. Com fer un robot servo controlat per Arduino - (SERB)

Pas 1: peces i eines

Peces i eines
Peces i eines

Tots els cargols es poden trobar al vostre Home Depot local. Les altres parts es poden trobar en línia (he inclòs un enllaç a la meva font preferida per a cadascuna). Llista de peces: es pot comprar un paquet que conté tots els articles de maquinari a la botiga d’oomlout.com (aquí) (120 dòlars).

  • Pern de 3 mm x 15 mm (x20)
  • Cargol de 3 mm x 10 mm (x12)
  • Femella de 3 mm (x34)
  • Rentadora de 3 mm (x12)
  • Cargol de 8 mm x 25 mm (x2)
  • Femella de 8 mm (x2)
  • Rodaments de patins (x2) (VXB) (són rodaments de patins estàndard perquè puguin ser recuperats d'un parell de paletes o d'un monopatí)

Pneumàtics

  • Junta tòrica gran (4,5 "ID 3/16" Bead Dash # 349) (x2) (producte McMaster-Carr núm. 9452K407)
  • Junta tòrica petita (3/4 "ID 3/16" Bead Dash # 314) (x1) (producte McMaster-Carr núm. 9452K387)

Electrònica

  • Arduino Duemilanove (x1) (Maker Shed)
  • Servo de rotació contínua (x2) (paral·lela)
  • Tauler de pa de 400 contactes (x1) (tots els aparells electrònics))
  • Quad Quad Box AA (x1) (tots els aparells electrònics)
  • Clip de bateria de 9V (x1) (tots els aparells electrònics)
  • Endoll de 2,1 mm (x1) (tots els aparells electrònics)
  • Capçalera de 3 pins (x2) (tota electrònica)
  • Cable USB A-B: estil de la impressora (x1) (tots els aparells electrònics) (no inclòs al kit)

Bateries:

  • Bateria AA (x4) (no inclosa al kit)
  • Bateria de 9 v (x1) (no inclosa al kit)

Filferro: (tot el filferro és sòlid de 22 AWG, compro el meu a través de McMaster-Carr)

  • 15 cm porpra (x2)
  • 15 cm negre (x1)
  • 5 cm negre (x2)
  • 5 cm vermell (x2)

Eines

  • Tornavís (x1) (Philips)
  • Alicates d'agulla (x1)

Pas 2: tall de peces

Tallar peces
Tallar peces
Tallar peces
Tallar peces
Tallar peces
Tallar peces
Tallar peces
Tallar peces

Seleccioneu quins passos heu de seguir en funció de l’opció de tall que trieu. Opció 1 (Compra de peces prèviament tallades)

Compra un xassís precortat a la botiga d’oomlout.com (aquí) (60 dòlars inclosos els enviaments als EUA i al Canadà)

Opció 2 (Fabricació digital (per exemple, Ponoko) / Accés a un tallador làser)

  • Descarregueu el disseny del tallador làser ("03 SERB Ponoko Cutting Layout P2.eps" o "03- (SERB) -Ponoko Cutting Layout (P2).cdr")
  • Retalleu els fitxers amb Ponoko o amb el vostre propi tallador làser (amb acrílic de 3 mm,.118 "(de vegades es ven com a.125")

Opció 3 (serra de desplaçament i trepant)

  • Descarregueu i imprimiu el patró PDF (trieu el fitxer corresponent a la mida del paper) 03- (SERB) -Patró ScrollSaw (carta).pdf 03- (SERB) -Patró ScrollSaw (A4).pdf (és important no escalar el dibuix mentre s’imprimeix)
  • Mesureu la regla de la impressió amb una regla de confiança, si no coincideixen amb el patró que s'ha escalat i heu de fixar-vos en la configuració de la impressora abans de tornar-la a imprimir. Si coincideixen, endavant.
  • Enganxeu el patró al full acrílic (3 mm, 0,118 "(de vegades es ven com a 0,125").
  • Practicar forats.
  • Retallar peces amb una serra de desplaçament

Pas 3: Muntatge

muntatge
muntatge
muntatge
muntatge
muntatge
muntatge

Enhorabona per haver arribat fins al 90% del procés. Només heu de descarregar les instruccions de muntatge d’aquest pas (04- (SERB) -Assembly Guide.pdf). Per entretenir-vos en el camí, aquí teniu un lapse de temps del meu muntatge:

Pas 4: cablejat

Cablejat
Cablejat
Cablejat
Cablejat

Amb totes les peces grans juntes, és hora d’afegir les petites venes elèctriques que permetran controlar el nostre robot. Per fer-ho, descarregueu i imprimiu el diagrama de cablejat (05- (SERB) -Wiring Diagram.pdf). Un primer cop d’ull pot semblar descoratjador, tot i que si feu cada connexió de manera seqüencial i us preneu el temps, es combina de manera molt ràpida. Per tant, connecteu-ho tot, torneu-ho a comprovar i, a continuació, afegiu-hi energia.

Pas 5: proves i resolució de problemes

Proves i resolució de problemes
Proves i resolució de problemes

Si heu demanat un kit, el vostre Arduino ha estat precarregat amb un programa de prova. Només cal que poseu 4 bateries AA i connecteu la bateria de 9 V a l’Arduino. I si tot s'ha fet correctament, el robot començarà a moure's (girarà en una direcció aleatòria durant un temps d'entre 0,1 i 1 segon abans d'anar endavant durant un temps aleatori d'entre 1 i 2 segons i, a continuació, feu una pausa durant 2 segons abans de tornar a començar). Si no heu comprat un kit, cal un pas addicional. Baixeu-vos el fitxer zip adjunt (07- (SERB) - SERB-Test Arduino Program.zip). A continuació, descomprimiu-lo al directori d'esbossos d'Arduino (per defecte "els meus documents / Arduino \") i descarregueu-lo a la vostra placa arduino. (si no sou nou a Arduino, feu un pas endavant on hi hagi enllaços a tutorials inicials fantàstics) Problemes comuns: el meu SERB es mou lentament quan s'hauria d'aturar. Això és el resultat que els vostres servos no es calibrin del tot bé, per calibrar-los espereu fins que el programa tingui els servos aturats i, a continuació, amb un petit tornavís gireu el potenciòmetre a l'interior del servo (la petita obertura de la carcassa del servo just a sobre dels cables)). Gireu-lo cap a l'esquerra o cap a la dreta fins que el servo estigui realment aturat. Les coses no funcionen del tot bé. Envieu-nos un correu electrònic amb els vostres símptomes i intentarem ajudar-vos, mentre espereu una resposta, reviseu tots els cables amb el diagrama de cablejat del pas 4. Si teniu algun problema, afegiu un comentari a aquest instructable o envieu un correu electrònic a [email protected] i farem tot el possible per ajudar-vos a fer funcionar el vostre SERB

Pas 6: Programació

Programació
Programació

El robot físic ha acabat el temps per començar a donar-li un cervell. Abans d’entrar en els detalls de la programació d’un robot servo controlat per Arduino (SERB), hi ha uns quants enllaços a uns excel·lents recursos de programació Arduino a Internet. Guia d’inici d’Arduino - Una guia per ajudar-vos a començar amb Arduinos, des de la descàrrega de l’entorn de programació fins a l’escriptura del vostre primer programa. Referència de programació d’Arduino: una guia completa fàcil de fer referència al llenguatge de programació Arduino. Com funcionen els servos: una introducció ràpida al funcionament dels servomotors. Biblioteca d’Arduino - Com funciona la biblioteca Arduino Servo (com controlem els nostres servos). Bé, amb l’aprenentatge fora del camí permet obtenir programació. Hi ha tres maneres de començar a programar el vostre Servo Robot Arduino - (SERB). Opció 1: (Modificació de SERB_Test.pde) De vegades, quan programeu el més senzill és agafar un programa de treball i començar a afegir-hi el vostre propi codi. Per fer-ho, descarregueu el programa comprimit SERB_Test (07- (SERB) - SERB-Test Arduino Program.zip). Procediu per descomprimir-lo a la carpeta d'esbossos d'Arduino (per defecte "Els meus documents / Arduino \"). Finalment, obriu l’entorn de programació Arduino i descarregueu-lo al vostre Arduino. El codi està ben comentat. (O copieu i enganxeu el codi de l'apèndix d'aquest pas a un nou Arduino Sketch) Opció 2: (Afegir rutines SERB al vostre programa) Afegiu algunes rutines simples al vostre programa preexistent (com ara GoForward (), setSpeed (int) etc.). Per fer-ho, descarregueu les rutines del fitxer de text (07- (SERB) - Text.txt de rutines simples). 1. Copieu i enganxeu la part del preàmbul al començament del programa. Copieu i enganxeu la part de rutina al cos del programa. Afegiu una trucada a serbSetup (); a la vostra rutina setup (). Opció 3: (Crear el vostre propi programa des de zero) Això no és massa difícil. Tot el que cal és familiaritzar-se amb la biblioteca de servos Arduino. A continuació, el servo dret es connecta al pin 9 i el servo esquerre al pin 10. Nota: aquí s’afegiran programes addicionals a mesura que es desenvolupin; o si desenvolupeu alguna cosa i voleu que aparegui, envieu-me un missatge privat i es pot afegir. Apèndix: (Codi SERB_Test.pde)

/ * * Servo Robot Arduino (SERB) - Programa de prova * Per obtenir més informació, visiteu: https://www.oomlout.com/serb * * Comportament: un programa de prova senzill que fa que el SERB * giri aleatòriament a l'esquerra o a la dreta durant un * període de temps aleatori entre 0,1 i 1 segon. * El SERB continuarà avançant durant un període aleatori * entre 1 i 2 segons. Finalment * fer una pausa durant 2 segons abans de tornar a començar. * * Cablejat: Servo Signal dret - pin 9 * Left Servo Signal - pin 10 * * Llicència: Aquesta obra està llicenciada sota la llicència Creative Commons * Reconeixement-Compartir igual 3.0 Unported. Per * visualitzar una còpia d'aquesta llicència, visiteu * https://creativecommons.org/licenses/by-sa/3.0/ * o envieu una carta a Creative Commons, 171 Second * Street, Suite 300, San Francisco, Califòrnia 94105, * EUA. * * / // -------------------------------------------- ----------------------------- // INICI DEL ROBOT SERVO CONTROLAT ARDUINO (SERB) PREÀMBUL # inclou #define LEFTSERVOPIN 10 #define RIGHTSERVOPIN 9Servo leftServo; Servo rightServo; velocitat int = 100; // estableix la velocitat del robot (ambdós servos) // un percentatge entre 0 i 100 // PREÀMBUL FINAL DEL SERVO ROBOT (SERB) CONTROLAT ARDUINO // ---------------- -------------------------------------------------- -------- / * * estableix els pins als estats adequats i adjunta servos. A continuació, fa una pausa * durant 1 segon abans que comenci el programa * / void setup () {serbSetup (); // estableix l'estat de tots els // necessaris pins i afegeix servos al vostre esbós randomSeed (analogRead (0)); // estableix la llavor de nombres aleatoris amb // una mica de retard aleatori (1000);} / * * gira el robot cap a l'esquerra o cap a la dreta (a l'atzar) durant un període d'entre * 0,1 i 1 segon. Abans d’anar endavant durant un període de temps aleatori * entre 1 i 4 segons. Abans de fer una pausa durant dos segons i començar de nou *. * / Void loop () {turnRandom (100, 1000); // Gira aleatòriament a l'esquerra o a la dreta durant un // període de temps aleatori entre.1 segon // i un segon goForwardRandom (1000, 2000); // Avança durant un període de temps aleatori // entre // 1 i 2 segons goStop (); // Atura el retard del robot (2000); // fa una pausa durant 2 segons (mentre està aturat)} / * * gira el robot a l’atzar cap a l’esquerra o la dreta durant un període de temps aleatori entre * minTime (mil·lisegons) i maxTime (mil·lisegons) * / void turnRandom (int minTime, int maxTime) {int elecció = aleatori (2); // Número aleatori per decidir // entre left (1) i right (0) int turnTime = random (minTime, maxTime); // Número aleatori per a la pausa // temps if (elecció == 1) {goLeft ();} // Si número aleatori = 1, gireu // left else {goRight ();} // If number random = 0 then gir // retard a la dreta (turnTime); // delay for random time} / * * avança per un període de temps aleatori entre minTime (mil·lisegons) * i maxTime (milisegons) * / void goForwardRandom (int minTime, int maxTime) {int forwardTime = random (minTime, maxTime); // determinar un temps aleatori per // avançar goForward (); // estableix el retard d’enviament del SERB (forwardTime); // retards per a un període de temps aleatori} // ---------------------------------------- -------------------------------- // INICI DE LES RUTINES DE SERVO ROBOT CONTROLATS ARDUINO (SERB) / * * configura el vostre arduino per dirigir-se al vostre SERB mitjançant les rutines incloses * / void serbSetup () {setSpeed (speed); pinMode (LEFTSERVOPIN, OUTPUT); // estableix el pin de senyal de servo esquerre // a pinMode de sortida (RIGHTSERVOPIN, OUTPUT); // estableix el pin de senyal de servo dret // a la sortida leftServo.attach (LEFTSERVOPIN); // adjunta servo esquerra rightServo.attach (RIGHTSERVOPIN); // adjunta el servo dret goStop ();} / * * estableix la velocitat del robot entre 0- (aturat) i 100- (velocitat màxima) * NOTA: la velocitat no canviarà la velocitat actual, heu de canviar la velocitat * i després truqueu-ne un dels mètodes go abans que es produeixin els canvis. * / void setSpeed (int newSpeed) {if (newSpeed> = 100) {newSpeed = 100;} // si la velocitat és superior a 100 // fes-la 100 if (newSpeed <= 0) {newSpeed = 0;} // si la velocitat és inferior a 0, feu-la 0 speed = newSpeed * 0,9; // escala la velocitat a // entre 0 i 90} / * * envia el robot cap endavant * / void goForward () {leftServo.write (90 + velocitat); rightServo.write (90 velocitats);} / * * envia el robot cap enrere * / void goBackward () {leftServo.write (90 velocitats); rightServo.write (90 + velocitat);} / * * envia el robot a la dreta * / void goRight () {leftServo.write (90 + velocitat); rightServo.write (90 + velocitat);} / * * envia el robot a l'esquerra * / void goLeft () {leftServo.write (90 velocitats); rightServo.write (90 velocitats);} / * * atura el robot * / void goStop () {leftServo.write (90); rightServo.write (90);} // FINAL DE LES RUTINES DE SERVO CONTROLADES PER ARDUINO (SERB) // ---------------------------- -----------------------------------------------

Pas 7: acabat, altres que han acabat i el futur

Acabats, altres que han acabat i el futur
Acabats, altres que han acabat i el futur
Acabats, altres que han acabat i el futur
Acabats, altres que han acabat i el futur
Acabats, altres que han acabat i el futur
Acabats, altres que han acabat i el futur
Acabats, altres que han acabat i el futur
Acabats, altres que han acabat i el futur

Enhorabona per arribar fins aquí i espero que us divertiu amb el vostre robot servo controlat per Arduino (SERB). El SERB de Michael Beck -Michael va trobar els plans per al SERB a Thingiverse.com i el va tallar d’acrílic groc i vermell. Crec que té un aspecte fantàstic. El SERB de Mike: Mike (del club de robots de Saint Louis Area ROBOMO) va fer que un amic tallés amb làser un xassís SERB i va utilitzar el seu propi coneixement robòtic per posar-lo en marxa. Crec que sembla fantàstic fet en blau. (consulteu el seu lloc web per obtenir més informació sobre això i els seus altres robots (aquí)). Aquesta secció contindrà detalls sobre futurs desenvolupaments i fitxers adjunts (es mostraran aquí abans que es documentin correctament). Però també voldria mostrar imatges de la resta de pobles. Per tant, si heu acabat envieu-me un missatge privat amb una foto i algunes paraules (ja sigui una descripció o un enllaç al vostre lloc web) i l’afegiré aquí. (Shameless Plug) Si us ha agradat aquest instructiu consulteu oomlout.com per a altres divertits projectes de codi obert.

Primer premi del concurs SANYO eneloop amb bateria

Recomanat: