Tabla de contenido:

Servo robot controlado por Arduino (SERB): 7 pasos (con imágenes)
Servo robot controlado por Arduino (SERB): 7 pasos (con imágenes)

Video: Servo robot controlado por Arduino (SERB): 7 pasos (con imágenes)

Video: Servo robot controlado por Arduino (SERB): 7 pasos (con imágenes)
Video: Servomotor con Arduino y Calibración de Posición Cero Grados. 285 2024, Noviembre
Anonim
Servo robot controlado por Arduino (SERB)
Servo robot controlado por Arduino (SERB)
Servo robot controlado por Arduino (SERB)
Servo robot controlado por Arduino (SERB)
Servo robot controlado por Arduino (SERB)
Servo robot controlado por Arduino (SERB)
Servo robot controlado por Arduino (SERB)
Servo robot controlado por Arduino (SERB)

¿Qué mejor manera de comenzar a experimentar con microcontroladores de código abierto (Arduino) que construyendo su propio robot de código abierto (CC (SA -BY))? ¿Qué hacer con su SERB?

  • (aquí) - Cómo conectar su SERB a Internet y conducirlo a través de una videollamada de Skype.
  • (aquí) - Cómo controlar su SERB usando los acelerómetros de un nunchuck de Wii
  • (aquí) - Cómo agregar bigotes de detección de obstáculos a su robot
  • (aquí) - Cómo hacer 30 kits (Fabricación abierta)

Características:

  • Totalmente programable usando un microcontrolador Arduino Duemilanove (u otro microcontrolador de su elección).
  • No es necesario soldar.
  • Elección de opciones de corte para piezas acrílicas. (sierra de calar, acceso a cortadora láser, compra de piezas precortadas)
  • Fácilmente ampliable y modificable con orificios para pernos adicionales y placa de pruebas incluida.
  • Rueda trasera con doble rodamiento de bolas.
  • En funcionamiento en 1-2 horas. (del kit)
  • Diseño de código abierto (crea tantos como quieras)

(Shameless Plug) ¿En el Reino Unido y te gustan las cosas de Arduino? Echa un vistazo a nuestra tienda web recién abierta oomlout.co.uk Un video rápido de un servo robot controlado por Arduino completo - (SERB) ejecutando el programa de prueba incluido (paso 6) Nota: Los archivos fuente están disponibles en un Instructable paralelo (Archivos fuente para) - Cómo hacer un servo robot controlado por Arduino - (SERB)

Paso 1: Piezas y herramientas

Piezas y herramientas
Piezas y herramientas

Todos los tornillos se pueden encontrar en su Home Depot local. Las otras partes se pueden encontrar en línea (he incluido un enlace a mi fuente favorita para cada una). Lista de partes: Se puede comprar un paquete que contiene todos los artículos de hardware en la tienda de oomlout.com (aquí) ($ 120) Tuercas y tornillos:

  • Perno de 3 mm x 15 mm (x20)
  • Perno de 3 mm x 10 mm (x12)
  • Tuerca de 3 mm (x34)
  • Arandela de 3 mm (x12)
  • Perno de 8 mm x 25 mm (x2)
  • Tuerca de 8 mm (x2)
  • Rodamientos para patines (x2) (VXB) (estos son rodamientos para patines estándar, por lo que se pueden recuperar de un par de patines o patineta)

Llantas

  • Junta tórica grande (4.5 "ID 3/16" Tablero de cuentas n. ° 349) (x2) (producto McMaster-Carr n. ° 9452K407)
  • Junta tórica pequeña (3/4 "DI 3/16", tablero de cuentas # 314) (x1) (McMaster-Carr Product # 9452K387)

Electrónica

  • Arduino Duemilanove (x1) (Cobertizo del fabricante)
  • Servo de rotación continua (x2) (Parallax)
  • Tablero de pruebas de 400 contactos (x1) (todos los componentes electrónicos))
  • Caja de batería cuádruple AA (x1) (todos los componentes electrónicos)
  • Clip de batería de 9 V (x1) (todos los componentes electrónicos)
  • Enchufe de 2,1 mm (x1) (todos los componentes electrónicos)
  • Cabecera de 3 pines (x2) (todos los componentes electrónicos)
  • Cable USB A-B - Estilo de impresora (x1) (todos los componentes electrónicos) (no incluido en el kit)

Baterías:

  • Batería AA (x4) (no incluida en el kit)
  • Batería de 9v (x1) (no incluida en el kit)

Cable: (todo el cable es sólido de 22 AWG, compro el mío a través de McMaster-Carr)

  • 15 cm Morado (x2)
  • 15 cm Negro (x1)
  • 5 cm Negro (x2)
  • 5 cm Rojo (x2)

Instrumentos

  • Destornillador (x1) (Philips)
  • Alicates de punta fina (x1)

Paso 2: Cortar piezas

Piezas de corte
Piezas de corte
Piezas de corte
Piezas de corte
Piezas de corte
Piezas de corte
Piezas de corte
Piezas de corte

Elija los pasos a seguir según la opción de corte que haya elegido. Opción 1 (Compra de piezas precortadas)

Compre un chasis precortado en la tienda de oomlout.com (aquí) ($ 60 incluido el envío a EE. UU. Y Canadá)

Opción 2 (Fabricación digital (es decir, Ponoko) / Acceso a una cortadora láser)

  • Descargue el diseño del cortador láser ("03 SERB Ponoko Cutting Layout P2.eps" o "03- (SERB) -Ponoko Cutting Layout (P2).cdr")
  • Corte los archivos con Ponoko o con su propio cortador láser (con acrílico de 3 mm,.118 "(a veces se vende como.125")

Opción 3 (sierra de calar y taladro)

  • Descargue e imprima el patrón PDF (elija el archivo correspondiente a su tamaño de papel) 03- (SERB) -ScrollSaw Pattern (carta).pdf 03- (SERB) -ScrollSaw Pattern (A4).pdf (es importante no escalar el dibujo mientras imprime)
  • Mida la regla en la copia impresa con una regla en la que confíe, si no coinciden con el patrón que se ha escalado y debe revisar la configuración de la impresora antes de volver a imprimir. Si coinciden, en adelante.
  • Pegue el patrón a la lámina acrílica (3 mm,.118 "(a veces se vende como.125").
  • Taladrar agujeros.
  • Recorte de piezas con una sierra de marquetería

Paso 3: Montaje

Montaje
Montaje
Montaje
Montaje
Montaje
Montaje

Felicidades por llegar hasta aquí, el 90% del proceso está completo, solo descargue las instrucciones de ensamblaje en este paso (04- (SERB) -Assembly Guide.pdf) y, después de un pequeño ensamblaje estilo lego / mecano, estará listo para cablear. Para entretenerlos en el camino, aquí hay un lapso de tiempo de mi reunión:

Paso 4: cableado

Alambrado
Alambrado
Alambrado
Alambrado

Con todas las piezas grandes juntas es hora de añadir las pequeñas venas eléctricas que permitirán controlar nuestro robot. Para hacer esto descargue e imprima el diagrama de cableado (05- (SERB) -Wiring Diagram.pdf). Un primer vistazo puede parecer bastante abrumador, sin embargo, si haces cada conexión secuencialmente y te tomas tu tiempo, se ensamblará notablemente rápido. El cableado es bastante simple y no puede ocurrir ningún daño a tu circuito hasta que agregas las baterías. Así que cablea todo, compruébalo dos veces, luego agrega energía.

Paso 5: prueba y solución de problemas

Pruebas y resolución de problemas
Pruebas y resolución de problemas

Si ordenó un kit, su Arduino viene precargado con un programa de prueba. Simplemente coloque 4 baterías AA y conecte la batería de 9v al Arduino. Y si todo se ha hecho correctamente, su robot comenzará a moverse (girará en una dirección aleatoria durante un tiempo entre 0,1 y 1 segundo antes de avanzar durante un tiempo aleatorio entre 1 y 2 segundos, luego se detendrá durante 2 segundos antes de comenzar de nuevo). Si no ha comprado un kit, se requiere un paso adicional. Descargue el archivo zip adjunto (07- (SERB) - SERB-Test Arduino Program.zip). Luego descomprímalo en su directorio de bocetos de Arduino (predeterminado "mis Documentos / Arduino \") y descárguelo en su placa arduino. (si es nuevo en Arduino, avance un paso donde hay enlaces a excelentes tutoriales para comenzar) Problemas comunes: Mi SERB se mueve lentamente cuando debería detenerse. Esto es el resultado de que sus servos no están bien calibrados, para calibrar sus servos espere hasta que su programa los haya detenido y luego, con un destornillador pequeño, gire el potenciómetro dentro del servo (la pequeña abertura en la carcasa del servo justo arriba de donde están los cables).). Gírelo hacia la izquierda o hacia la derecha hasta que el servo se detenga realmente. Las cosas no funcionan correctamente. Envíenos un correo electrónico con sus síntomas e intentaremos ayudarlo, mientras espera una respuesta, revise todos sus cables con el diagrama de cableado del paso 4. Si encuentra algún problema, agregue un comentario a este Instructable o envíe un correo electrónico a [email protected] y haremos todo lo posible para ayudarlo a que su SERB funcione

Paso 6: programación

Programación
Programación

El robot físico ha terminado el tiempo para comenzar a darle un cerebro. Antes de entrar en los detalles de la programación de un Servo Robot Controlado por Arduino - (SERB) - algunos enlaces a algunos excelentes recursos de programación de Arduino en Internet. para ayudarlo a comenzar con Arduino, desde descargar el entorno de programación hasta escribir su primer programa. Referencia de programación de Arduino: una guía completa y fácil de consultar para el lenguaje de programación Arduino. Cómo funcionan los servos: una introducción rápida a cómo funcionan los servomotores. - Cómo funciona la biblioteca Arduino Servo (cómo controlamos nuestros servos). Bien, con el aprendizaje fuera del camino, vamos a programar. Hay tres formas de comenzar a programar su Servo Robot Controlado por Arduino - (SERB). Opción 1: (Modificar SERB_Test.pde) A veces, cuando se programa, lo más fácil es tomar un programa que funcione y comenzar a agregarle su propio código. Para hacer esto, descargue el programa comprimido SERB_Test (07- (SERB) - SERB-Test Arduino Program.zip). Proceda a descomprimir esto en su carpeta de bocetos de Arduino (por defecto "Mis documentos / Arduino \"). Finalmente abra el entorno de programación Arduino y descárguelo en su Arduino. El código está bien comentado. (O copie y pegue el código del apéndice en este paso en un nuevo Arduino Sketch) Opción 2: (Agregar rutinas SERB a su programa) Agregue algunas rutinas simples a su programa preexistente (como goForward (), setSpeed (int), etc.). Para hacer esto, descargue las rutinas en el archivo de texto (07- (SERB) - Simple Routines Text.txt). 1. Copie y pegue la parte del preámbulo al comienzo de su programa. Copie y pegue la parte de la rutina en el cuerpo de su programa. Agregue una llamada a serbSetup (); a su rutina setup (). Opción 3: (Crear su propio programa desde cero) Esto no es demasiado difícil. Todo lo que se requiere es familiarizarse con la biblioteca de servos de Arduino. Luego, el servo derecho se conecta al pin 9 y el servo izquierdo al pin 10. Nota: Aquí se agregarán programas adicionales a medida que se desarrollen; o si desarrolla algo y le gustaría que se destaque, envíeme un mensaje privado y se puede agregar. Apéndice: (Código SERB_Test.pde)

/ * * Servo Robot controlado por Arduino (SERB) - Programa de prueba * Para obtener más detalles, visite: https://www.oomlout.com/serb * * Comportamiento: Un programa de prueba simple que hace que el SERB * gire aleatoriamente hacia la izquierda o hacia la derecha durante un * período de tiempo aleatorio entre 0,1 y 1 segundo. * El SERB luego avanzará por un período de tiempo aleatorio * entre 1 y 2 segundos. Finalmente * haciendo una pausa de 2 segundos antes de comenzar de nuevo. * * Cableado: Señal servo derecha - pin 9 * Señal servo izquierda - pin 10 * * Licencia: Esta obra está autorizada bajo la licencia Creative Commons * Attribution-Share Alike 3.0 Unported. Para * ver una copia de esta licencia, visite * https://creativecommons.org/licenses/by-sa/3.0/ * o envíe una carta a Creative Commons, 171 Second * Street, Suite 300, San Francisco, California 94105, * ESTADOS UNIDOS. * * / // --------------------------------------------- ----------------------------- // INICIO DEL SERVO ROBOT CONTROLADO POR ARDUINO (SERB) PREÁMBULO # incluye #define LEFTSERVOPIN 10 #define RIGHTSERVOPIN 9Servo leftServo; Servo rightServo; int velocidad = 100; // establece la velocidad del robot (ambos servos) // un porcentaje entre 0 y 100 // FIN DEL SERVO ROBOT CONTROLADO POR ARDUINO (SERB) PREÁMBULO // ---------------- -------------------------------------------------- -------- / * * establece los pines en los estados apropiados y conecta los servos. Luego hace una pausa * durante 1 segundo antes de que se inicie el programa * / void setup () {serbSetup (); // establece el estado de todos los // pines necesarios y agrega servos a su boceto randomSeed (analogRead (0)); // establece la semilla del número aleatorio con // algo de retraso levemente aleatorio (1000);} / * * gira el robot hacia la izquierda o hacia la derecha (aleatoriamente) durante un período entre * 0,1 y 1 segundo. Antes de seguir adelante por un período de tiempo aleatorio * entre 1 y 4 segundos. Antes de hacer una pausa de dos segundos y luego comenzar * nuevamente. * / Void loop () {turnRandom (100, 1000); // Gira aleatoriamente hacia la izquierda o hacia la derecha durante un // período de tiempo aleatorio entre.1 segundo // y un segundo goForwardRandom (1000, 2000); // Avanza por un período de tiempo aleatorio // entre // 1 y 2 segundos goStop (); // Detiene el retraso del robot (2000); // hace una pausa durante 2 segundos (mientras está detenido)} / * * gira el robot aleatoriamente hacia la izquierda o hacia la derecha durante un período de tiempo aleatorio entre * minTime (milisegundos) y maxTime (milisegundos) * / void turnRandom (int minTime, int maxTime) {int elección = aleatoria (2); // Número aleatorio para decidir // entre izquierda (1) y derecha (0) int turnTime = random (minTime, maxTime); // Número aleatorio para la pausa // tiempo if (opción == 1) {goLeft ();} // Si número aleatorio = 1, gire // izquierda else {goRight ();} // Si número aleatorio = 0 entonces turn // retraso a la derecha (turnTime); // retraso por tiempo aleatorio} / * * avanza por un período de tiempo aleatorio entre minTime (milisegundos) * y maxTime (milisegundos) * / void goForwardRandom (int minTime, int maxTime) {int forwardTime = random (minTime, maxTime); // determina un tiempo aleatorio para // avanzar goForward (); // establece el retardo de reenvío de SERB (forwardTime); // retrasos por un período de tiempo aleatorio} // ---------------------------------------- -------------------------------- // INICIO DE LAS RUTINAS DEL SERVO ROBOT CONTROLADO POR ARDUINO (SERB) / * * configura su arduino para dirigirse a su SERB usando las rutinas incluidas * / void serbSetup () {setSpeed (velocidad); pinMode (LEFTSERVOPIN, OUTPUT); // establece el pin de la señal del servo izquierdo // en la salida pinMode (RIGHTSERVOPIN, OUTPUT); // establece el pin de señal del servo derecho // para dar salida a leftServo.attach (LEFTSERVOPIN); // adjunta el servo izquierdo rightServo.attach (RIGHTSERVOPIN); // conecta el servo derecho goStop ();} / * * establece la velocidad del robot entre 0- (detenido) y 100- (velocidad máxima) * NOTA: la velocidad no cambiará la velocidad actual, debe cambiar la velocidad * luego llame a uno de los métodos go antes de que ocurran los cambios. * / void setSpeed (int newSpeed) {if (newSpeed> = 100) {newSpeed = 100;} // si la velocidad es mayor que 100 // hágalo 100 if (newSpeed <= 0) {newSpeed = 0;} // si la velocidad es menor que 0 hágalo // 0 speed = newSpeed * 0.9; // escala la velocidad para que esté // entre 0 y 90} / * * envía el robot hacia adelante * / void goForward () {leftServo.write (90 + velocidad); rightServo.write (velocidad 90);} / * * envía el robot hacia atrás * / void goBackward () {leftServo.write (velocidad 90); rightServo.write (90 + velocidad);} / * * envía el robot a la derecha * / void goRight () {leftServo.write (90 + velocidad); rightServo.write (90 + velocidad);} / * * envía el robot a la izquierda * / void goLeft () {leftServo.write (90 - velocidad); rightServo.write (velocidad 90);} / * * detiene el robot * / void goStop () {leftServo.write (90); rightServo.write (90);} // FIN DE LAS RUTINAS DEL SERVO ROBOT CONTROLADO POR ARDUINO (SERB) // ---------------------------- -----------------------------------------------

Paso 7: Terminado, otros que han terminado y el futuro

Terminados, otros que han terminado y el futuro
Terminados, otros que han terminado y el futuro
Terminados, otros que han terminado y el futuro
Terminados, otros que han terminado y el futuro
Terminados, otros que han terminado y el futuro
Terminados, otros que han terminado y el futuro
Terminados, otros que han terminado y el futuro
Terminados, otros que han terminado y el futuro

Felicitaciones por llegar tan lejos y espero que se esté divirtiendo con su Servo Robot Controlado por Arduino - (SERB). SERB de Michael Beck -Michael encontró los planos para el SERB en Thingiverse.com y cortó los suyos de acrílico amarillo y rojo. Creo que se ve genial. SERB de Mike - Mike (del club de robots ROBOMO del área de St. Louis) hizo que un amigo cortara con láser un chasis SERB y usó su propio conocimiento robótico para ponerlo en funcionamiento. Creo que se ve increíble hecho en azul. (consulte su sitio web para obtener detalles sobre este y sus otros robots (aquí) Esta sección tendrá detalles sobre futuros desarrollos y archivos adjuntos (se presentarán aquí antes de que estén debidamente documentados). Pero también me gustaría mostrar imágenes de otras personas SERB's. Así que si has terminado envíame un mensaje privado con una foto y algunas palabras (ya sea una descripción o un enlace a tu sitio web) y lo agregaré aquí. (Shameless Plug) Si te gustó este instructivo echa un vistazo a oomlout.com para ver otros proyectos divertidos de código abierto.

Primer premio en el concurso SANYO eneloop Battery Powered

Recomendado: