Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Joy Robot (Robô Da Alegria)

Componentes y suministros

Arduino UNO
× 1
Espressif ESP8266 ESP-01
× 1
Micro-servo motor SG90
× 6
Motor de CC con reducción y ruedas de goma
× 2
Controlador de puente h L298N
× 1
PWM / Servocontrolador Adafruit de 16 canales y 12 bits - I2C interfaz - PCA9685
× 1
Pantalla LED MAX7219 8x8
× 4
Controladores de motor SparkFun Dual H-Bridge L298
× 1
18650 batería
× 2
soporte de batería 18650
× 2
Arduino Proto Shield
× 1
diodo 1N4001
× 1
Resistencia de 10k ohmios
× 3

Herramientas y máquinas necesarias

Impresora 3D
Impresora 3D (genérica)

Aplicaciones y servicios en línea

Autodesk Fusion 360
Arduino IDE
SDK de Android

Acerca de este proyecto

Primer premio en el concurso Instructables Wheel, segundo premio en el concurso Instructables Arduino y finalista en el desafío Instructables Design for Kids. ¡¡¡Gracias a todos los que votaron por nosotros !!!

http://www.instructables.com/id/Joy-Robot-Rob%C3%B4-Da-Alegria-Open-Source-3D-Printed-A/

Los robots están llegando a todas partes. Desde aplicaciones industriales hasta exploración submarina y espacial. ¡Pero mis favoritos son los que se usan para divertirse y entretenerse! En este proyecto, se diseñó un robot de bricolaje para ser utilizado para entretenimiento en hospitales de niños, brindando algo de diversión a los niños. El proyecto tiene como objetivo compartir conocimientos y promover la innovación tecnológica para ayudar a las ONG que realizan labores benéficas en los hospitales infantiles.

Este tutorial muestra cómo diseñar un robot humanoide operado de forma remota, controlado a través de una red Wi-Fi, utilizando un Arduino Uno conectado a un módulo Wi-Fi ESP8266. Utiliza algunos servomotores que forman la cabeza y los movimientos de los brazos, algunos motores de corriente continua para mover distancias pequeñas y una cara hecha de matrices LED. El robot se puede controlar desde un navegador de Internet normal, utilizando una interfaz diseñada en HTML. Se utiliza un teléfono inteligente Android para transmitir video y audio desde el robot a la interfaz de control del operador.

El tutorial muestra cómo se imprimió y ensambló la estructura del robot en 3D. Se explican los circuitos electrónicos y se detalla el código Arduino, para que cualquiera pueda replicar el robot.

Algunas de las técnicas utilizadas para este robot ya estaban publicadas en tutoriales. Eche un vistazo a los siguientes tutoriales:

  • https://www.instructables.com/id/WiDC-Wi-Fi-Controlled-FPV-Robot-with-Arduino-ESP82/
  • https://www.instructables.com/id/Controlling-a-LED-Matrix-Array-With-Arduino-Uno/
  • https://www.instructables.com/id/Wi-Servo-Wi-fi-Browser-Controlled-Servomotors-with/

Un agradecimiento especial a los otros miembros del equipo involucrados en el proyecto mencionado anteriormente, responsables de la primera versión del código presentado en este tutorial:

  • Thiago Farauche
  • Diego Augustus
  • Yhan Christian
  • Helam Moreira
  • Paulo de Azevedo Jr.
  • Guilherme Pupo
  • Ricardo Caspirro
  • ASEBS

Más información sobre el proyecto:

  • https://hackaday.io/project/12873-rob-da-alegria-joy-robot
  • https://www.hackster.io/igorF2/robo-da-alegria-joy-robot-85e178
  • https://www.facebook.com/robodaalegria/

¿Cómo puedes ayudar?

Este proyecto está financiado por miembros del equipo y pequeñas donaciones de algunas empresas. Si le gustó, hay algunas formas en las que puede ayudarnos:

  • Votar: Este proyecto compite en tutoriales Wheels, Design for Kids y Concursos Arduino. ¡Vota por nosotros! :D
  • Donación :puedes enviarnos consejos si quieres apoyar la construcción del robot y sus futuras mejoras. Las puntas se utilizarán para comprar insumos (electrónica, impresión 3d, filamentos, etc.) y para ayudar a la promoción de nuestras intervenciones en hospitales infantiles. ¡Tu nombre se añadirá a los créditos del proyecto! Puede enviar sugerencias desde nuestro diseño en la plataforma Thingiverse:https://www.thingiverse.com/thing:2765192
  • Me gusta :Muéstranos cuánto aprecias nuestro proyecto. Danos un "me gusta" en las plataformas en las que documentamos nuestro proyecto (Facebook, Hackster, Hackaday, Maker Share, Thingiverse ...).
  • Compartir :Comparta el proyecto en su sitio web de redes sociales favorito, para que podamos llegar a más personas e inspirar a más creadores de todo el mundo.

¿Sabías que puedes comprar la Creality CR10mini por solo $ 349,99? Utilice el código de cupón cr10mini3d en Gearbest y consígalo:http://bit.ly/2FZ5OXw

Paso 1:Un poco de historia ...

El proyecto 'Robô da Alegria' ('Joy Robot') nació en 2016, en la región de Baixada Santista (Brasil), con el objetivo de desarrollar tecnología y atraer a la comunidad al movimiento maker. Inspirado en proyectos voluntarios llevados a cabo por ONG en hospitales infantiles, el proyecto busca desarrollar un robot, utilizando hardware abierto y herramientas de software apen, capaz de traer un poco de diversión al entorno hospitalario infantil y contribuir al trabajo de otras organizaciones.

La semilla del proyecto se plantó a finales de 2015. Tras una charla sobre la creación y desarrollo de tecnología impulsada por la Asociación de Startups de Baixadas Santista (ASEBS). Se idealizó un proyecto, sin premio en dinero, pero que presentaba un tema en el que las personas se involucrarían de manera altruista, con el objetivo de ayudar a otras personas.

El robot sufrió diversas transformaciones desde su concepción inicial hasta el estado actual. Desde una sola cabeza, con ojos y cejas mecánicas, hasta su forma humanoide actual, se realizaron varias iteraciones, probando diferentes materiales constructivos y dispositivos electrónicos. De un prototipo de acrílico y MDF cortado con láser, pasamos a un cuerpo impreso en 3D. Desde una sencilla interfaz con dos servomotores controlados por Bluetooth, hasta un cuerpo compuesto por 6 servomotores y 2 motores DC comando por una interfaz web mediante una red Wi-Fi.

La estructura del robot se ha producido íntegramente con impresión 3D utilizando Fusion 360. Para permitir la producción de réplicas de robots en makerpaces o fab labs, donde el tiempo máximo de uso de las impresoras es crucial, el diseño del robot se dividió en piezas. menos de tres horas de impresión cada uno. El conjunto de piezas está pegado o atornillado para el montaje del cuerpo.

La cara, formada por matrices de LED, le da al robot la capacidad de expresar emociones. Los brazos y el cuello accionados por servomotores dan al pequeño autómata la movilidad necesaria para interactuar con los usuarios. En el centro de control del robot, un Arduino Uno interactúa con todos los periféricos, incluida la comunicación con un módulo ESP8266, que le da al usuario la capacidad de ordenar expresiones y movimientos a través de cualquier dispositivo conectado a la misma red Wi-Fi.

El Robot también tiene un teléfono inteligente instalado en su pecho, que se utiliza para la transmisión de audio y video entre el operador del robot y los niños. La pantalla del dispositivo aún se puede usar para interactuar con juegos y otras aplicaciones diseñadas para interactuar con el cuerpo del robot.

Paso 2:herramientas y materiales

Se utilizaron las siguientes herramientas y materiales para este proyecto:

Herramientas:

  • Impresora 3D - Todo el cuerpo del robot está impreso en 3D. Se necesitaron varias horas de impresión 3D para construir toda la estructura;
  • Filamento PLA - Filamentos de PLA blancos y negros cuando se utilicen para imprimir el cuerpo;
  • Destornillador - La mayoría de las piezas están conectadas mediante pernos;
  • Súper pegamento - Algunas de las piezas se pegaron con superpegamento;
  • Alicates y cortadores
  • Soldador y alambre

Electrónica :

  • Arduino Uno (enlace / enlace):se utiliza como controlador principal del robot. Envía señales a los motores y se comunica con el módulo WiFi;
  • ESP8266-01 (enlace / enlace):se utiliza como 'módem WiFi'. Recibe señales de la interfaz de control a realizar por el Arduino Uno;
  • Servomotores SG90 (x6) (enlace / enlace) - Se utilizaron cuatro servos para los brazos y dos para los movimientos de la cabeza;
  • Motores DC con reducción y ruedas de goma (x2) (enlace / enlace) - Permiten que el robot recorra distancias pequeñas;
  • Puente en H de doble canal L298N (x1) (enlace / enlace) - Convierte las salidas digitales de Arduino en voltajes de potencia para los motores;
  • Servocontrolador de 16 canales (enlace / enlace) - Con esta placa se pueden controlar varios servomotores usando solo dos salidas Arduino;
  • Pantalla LED MAX7219 8x8 (x4) (enlace / enlace) - Se utilizan como la cara del robot;
  • Cable micro USB - Se utiliza para cargar el código;
  • Cables de puente hembra-hembra (algunos);
  • Cables de puente macho-hembra (algunos);
  • Smartphone - Se utilizó un teléfono inteligente Motorola Moto E de 4.3 ". Otros con un tamaño similar podrían funcionar también;
  • Batería 18650 (x2) (enlace) - Se utilizaron para alimentar el Arduino y otros periféricos;
  • Soporte de batería 18650 (x1) (enlace / enlace) - Mantienen las baterías en su lugar;
  • 1N4001 diodos (x2)
  • Restauraciones de 10 kohm (x3)
  • Interruptor de encendido / apagado de 20 mm (x1)
  • Protoshield (enlace) - Ayuda a cablear el circuito.

Mecánica:

  • Ruedas de bolas (x2)
  • Pernos M2x6,0 mm (+ -70)
  • Pernos M2x10 mm (+ -20)
  • Tuercas M2x1,5 mm (x10)
  • Pernos de M3x40 mm (x4)
  • Tuercas M3x1.5mm (x4)

Los enlaces anteriores son una sugerencia de dónde puede encontrar los elementos utilizados en este tutorial y apoyar el desarrollo de este proyecto. No dude en buscarlos en otro lugar y comprarlos en su tienda local o en línea favorita.

¿Sabías que puedes comprar la Creality3D CR10mini por solo $ 349,99? Use el código de cupón cr10mini3d en Gearbest y consígalo:http://bit.ly/2FZ5OXw

Paso 3:Impresión 3D

La estructura del robot se produjo íntegramente con impresión 3D utilizando Autodesk Fusion 360. Para permitir la producción de réplicas de robots en makerpaces o fab labs, donde el tiempo máximo de uso de las impresoras es crucial, el diseño del robot se dividió en partes. menos de tres horas de impresión cada uno. El conjunto de piezas está pegado o atornillado para el montaje del cuerpo.

El modelo está compuesto por 36 piezas diferentes. La mayoría de ellos se imprimieron sin soportes, con un 10% de relleno.

  • Cabeza arriba (derecha / izquierda)
  • Cabeza abajo (derecha / izquierda)
  • Tapas laterales de la cabeza (derecha / izquierda)
  • Placa trasera frontal
  • Placa frontal frontal
  • Eje del cuello 1
  • Eje del cuello 2
  • Eje del cuello 3
  • Centro del cuello
  • Brazo (derecho / izquierdo)
  • Hombro (derecho / izquierdo)
  • Copa de hombro (derecha / izquierda)
  • Tapa de hombro (derecha / izquierda)
  • Eje del brazo (derecha / izquierda)
  • Busto (derecho / izquierdo)
  • Pecho (derecho / izquierdo / delantero)
  • Ruedas (derecha / izquierda)
  • Base
  • Soporte para teléfono
  • Atrás (derecha / izquierda)
  • Perillas (derecha / izquierda)
  • Casillero (derecha / izquierda)

El procedimiento para montar el robot se describe en los siguientes pasos.

Puede descargar todos los archivos stl en los siguientes sitios web:

  • https://www.thingiverse.com/thing:2765192
  • https://pinshape.com/items/42221-3d-printed-joy-robot-robo-da-alegria
  • https://www.youmagine.com/designs/joy-robot-robo-da-alegria
  • https://cults3d.com/en/3d-model/gadget/joy-robot-robo-da-alegria

Este es un prototipo experimental. Algunas de las partes necesitan algunas mejoras (para actualizaciones posteriores del proyecto). Hay algunos problemas conocidos:

  • Interferencia entre el cableado de algunos servos y el hombro;
  • Fricción entre la cabeza y el busto;
  • Fricción entre las ruedas y la estructura;
  • El orificio para algunos tornillos está demasiado apretado y debe agrandarse con una broca o un cuchillo de hobby.

Si no tiene una impresora 3D, aquí hay algunas cosas que puede hacer:

  • Pídale a un amigo que lo imprima;
  • Encuentra un espacio de hackers / creadores cercano. El modelo se dividió en varias partes, de modo que cada parte individualmente tarda menos de cuatro horas en imprimirse. Algunos espacios de hackers / creadores solo le cobrarán por los materiales utilizados;
  • Compre su propia impresora 3D. Puede encontrar un Anet A8 por solo $ 165.99. Obtenga el suyo en Gearbest:http://bit.ly/2kqVOdO
  • ¿Está interesado en comprar un kit de bricolaje? Si hay suficientes personas interesadas, podría ofrecer kits de bricolaje en Tindie.com. Si desea uno, envíeme un mensaje.

Paso 4:descripción general de los circuitos

El robot se controla mediante un Arduino Uno en su núcleo. El Arduino interconecta un módulo ESP8266-01, que se utiliza para controlar remotamente el robot a través de una red Wi-Fi.

Un servocontrolador de 16 canales está conectado al Arduino mediante comunicación I2C y controla 6 servomotores (dos para el cuello y dos para cada brazo). Arduino alimenta y controla una matriz de cinco matrices LED de 8x8. Se utilizan cuatro salidas digitales de Arduino para el control de dos motores de CC, utilizando un puente en h.

Los circuitos se alimentan mediante dos bancos de energía USB:uno para los motores y otro para el Arduino. Intenté alimentar todo el robot con un paquete de energía signle. Pero ESP8266 solía perder la conexión debido a picos cuando los motores de CC se encendían / ​​apagaban.

El cofre del robot tiene un teléfono inteligente. Se usa para transmitir video y audio hacia / desde la interfaz de control, alojada en una computadora común. También puede enviar comandos al ESP6288, controlando así el cuerpo del robot.

Uno podría notar que los componentes usados ​​aquí podrían no estar optimizados para su propósito. Se podría usar un NodeMCU en lugar de la combinación Arduino + ESP8266, por ejemplo. Una Rapsberry Pi con cámara reemplazaría al teléfono inteligente y también controlaría los motores. Incluso es posible utilizar un teléfono inteligente Android como el "cerebro" de su robot. Eso es cierto ... Se eligió un Arduino Uno porque es muy accesible y fácil de usar para todos. Para cuando comenzamos este proyecto, las placas ESP y Raspberry Pi eran relativamente caras en el lugar donde vivimos ... una vez que queríamos construir un robot económico, las placas Arduino eran la mejor opción en ese momento.

robot% 2Bmk0% 2B-% 2Brev8_Esquem_C3_A1tico.pdf robot% 2Bmk0% 2B-% 2Brev8_bb.pdf

Paso 5:Montaje de la cara

Se utilizaron cuatro matrices LED de 8x8 en la cara del robot.

La estructura se dividió en dos partes (placa frontal y placa frontal) impresa en 3D con PLA negro. Me tomó alrededor de 2.5 horas imprimirlos en 3D, con un 10% de relleno y sin soportes.

Debido a limitaciones de espacio, los conectores de las matrices LED tuvieron que ser desoldados y se les cambió la posición como se describe a continuación:

  • Retire la matriz de LED;
  • Desoldar conectores de entrada y salida;
  • Vuelva a soldar en el otro lado de la placa de circuito, con las clavijas apuntando hacia el centro de la placa.

Puedes ver el resultado final en las imágenes.

Luego, las cuatro matrices de LED se unieron a la placa posterior, utilizando tornillos de 16 M2x6 mm. Los pines se conectaron de acuerdo con los esquemas.

La primera matriz se conectó mediante un puente macho-hembra de 5 hilos. El extremo macho se conectó más tarde a los pines Arduino. El extremo hembra está conectado a los pines de entrada de la matriz. La salida de cada matriz se conecta a la entrada de la siguiente mediante un puente hembra-hembra.

Después de la conexión de las matrices, la placa frontal se instala con cuatro tornillos M2. Envuelva los puentes alrededor de los paneles frontal y posterior para que no haya cables sueltos.

El módulo de la cara se instala luego dentro de la cabeza del robot, como se explicará en los siguientes pasos.

Paso 6:Montaje del cabezal

La cabeza del robot se dividió en ocho partes impresas en 3d, todas impresas en PLA blanco con resolución de 0,2mm, relleno al 10% y sin soportes:

  • Dirígete hacia arriba (derecha e izquierda)
  • Cabeza abajo (derecha e izquierda)
  • Gorro para la cabeza (derecha e izquierda)
  • Eje del cuello 1
  • Eje del cuello 2

Me tomó casi 18 horas imprimir la estructura de 130 mm de diámetro.

La parte superior e inferior de la cabeza se dividen en dos partes. Están pegados con superpegamento. Aplicar el pegamento y dejar reposar unas horas.

Luego, las tapas laterales se montan usando pernos unidos a los lados de la parte superior e inferior de la cabeza. De esta manera, la cabeza se puede desmontar para repararla quitando los tornillos unidos a las partes superiores de la cabeza. Antes de cerrar la cabeza, ensamble la cara del robot (descrito en el paso anterior) y el busto (descrito en los siguientes pasos).

El servomotor n. ° 5 se colocó en el eje 1 del cuello. Coloqué el servo en el medio del eje, luego coloqué la bocina y usé un tornillo para bloquear su posición. Usé dos pernos M2x6mm para montar el eje 2 del cuello en ese servomotor. El servomotor n. ° 6 se conecta al eje 2 del cuello de la misma manera.

El eje 2 del cuello se conectó más tarde al centro del cuello, como se muestra en el siguiente paso.

El módulo frontal se instala dentro de la cabeza.

Paso 7:ensamblar la ráfaga y los hombros

Busto y hombro me tomó alrededor de 12 horas para ser impreso.

Esta sección consta de cinco partes diferentes:

  • Busto (derecha / izquierda)
  • Hombros (derecho / izquierdo)
  • Centro del cuello
  • Eje del cuello 3

Las partes del busto se pegaron con superpegamento. Los hombros se sujetaron a los lados usando pernos M2x10 mm, y los servomotores (Servomotor n. ° 2 y n. ° 4) se instalaron en cada lado. Pasan a través de un orificio rectangular en cada hombro (el cable es bastante difícil de pasar) y se sujetan con pernos y tuercas M2x10mm.

El centro del cuello tiene un orificio rectangular, en el que se inserta la parte del eje 3 del cuello. Se utilizaron cuatro pernos M2x6 mm para unir esas dos partes. Después de eso, el centro del cuello se unió a los hombros. Utiliza los mismos tornillos que se utilizan para montar el hombro en el busto. Se utilizan cuatro tuercas M2x1,5 mm para bloquear su posición.

El servomotor n. ° 6 se conectó al eje 3 del cuello mediante dos tornillos. Luego instalé el eje 3 del cuello en el interior del orificio rectangular central del cuello y usé cuatro pernos M2x6 mm para bloquear su posición.

Paso 8:Montaje de los brazos

Me tomó alrededor de 5 horas imprimir cada brazo.

Cada brazo está formado por cuatro piezas:

  • Copa de hombro
  • Gorra de hombro
  • Eje del brazo
  • Brazo

El eje del brazo está centralizado y montado en el propio brazo mediante tres tornillos M2x6 mm. Se adjunta un servo horne en el otro extremo del eje.

Se instala un servomotor (n. ° 1 y n. ° 3) dentro de la copa de hombro con algunos tornillos, y luego se instala su cuerno (el que está unido al eje del brazo). Hay un orificio en la copa para la instalación de otro cuerno, que se adjunta al servo (# 2 y # 4) ya montado en los hombros, como se mostró en el paso anterior.

Hay otro agujero en la copa (y en el hombro) para pasar los cables de los servos. Después de eso, se instala la tapa para cerrar el hombro del robot, con dos pernos M2x6 mm.

Paso 9:Montaje del cofre

The chest is the part that links the bust to the bottom (wheels and base) of the robot. It's made of only two parts (right and left parts. I printed them in 4 hours.

The shoulders of the robot fits on upper part of the chest. There is a hole for a bolt that helps the alignment and fixation of thos parts. Although it's recomended to glue those two parts.

The bottom of this parts have six holes, which are used for the connection to the wheels, as it will be shown later.

At this point I labelled the servomotors with some stickers, in order to make the connection of the circuits easier.

Step 10:Assembling the Wheels

The wheels of the robot uses three 3d printed parts:

  • Wheels (left/right)
  • Frente

It took me around 10h to print those parts.

I followed the following steps for assembling the wheels:

  • First I had to solder some wires to DC motors connectors. Those wires were later used for powering the motors using a H-bridge circuit;
  • The motors were then attached to the structure using two M3x40 bolts and nuts for each. Actually a shorter bolt might be used (but I found none online);
  • After that I glued the front pannel, which links the other parts of the structure;
  • This part has some holes on its top. They are used for its attachment to the chest, shown previously. Six M2x6mm bolts were used for the connection of both sections.

Step 11:Phone Holder

The phone holder is a single 3d printed part, and it takes around 1 hour to print.

The robot has a smartphone at it's belly. It was designed for a Motorola Moto E. It has a 4.3" display. Other smartphones with similar size might fit as well.

The phone holder part is used to hold the smartphone in the desired position. First the smart phone is positioned, then it's pressed against the body of the robot using the phone holder and four M2x6mm bolts.

It's importart to connect the USB cabe to the smartphone before tightening the bolts. Otherwise it will be hard to connect it later. Unfortunatly the space is very limited, so I had to cut part of the USB connector away... :/

Step 12:Mounting the Base

The base has only one 3D printed part. It took me around 4h to print that part.

It has several holes for the installation of other components, like the ball wheels, and circuit boards for instance. The following procedure was used for assembling the base:

  • Install the 16 channel servo controller using four M2x6mm bolts;
  • Install the L298N h-bridge circuit using four M2x6mm bolts;
  • Install the Arduino Uno using four M2x6mm bolts;
  • Install the protoshield on the top of the robot;
  • Wire up the circuits (as it's described a couple steps later);
  • Installe the ball wheels using two screws for each one. The wires were arranged so that they are traped between the base and the screws used in the installation of the wheels;
  • Base was attached to wheels section using some screws.

Step 13:Back and Power Pack

The back cover of the robot was designed so that one can easilly open it for accessing the circuits, recharging the batteries, or turning the smartphone on/off.

It's made of six 3d printed parts:

  • Back (left/right)
  • Knobs (x2)
  • Locks (left/right)

It took me around 5h30 for printing the parts. Right and left back parts were glued using superglue. Wait until the glue is completly dry, or the cover will break easilly.

The power pack consists of two 18650 batteries and a battery holder. I had to solder some wires (between battery #1 negative pole and battery #2 positive pole). The negative pole of the power pack was connected to Arduinos GND (using some wires and jumpers). A on/off swich was installed between the positive pole and Arduino's Vin input.

The on/off switch was attached to back 3d printed parts using a M2x6mm bolt and M2x1.5mm nut. The battery holder was attached to the back using four M2x6mm bolts.

The cilindrical part of the locks had to be sanded with a sand paper for a better fitting. They pass through the holes on the cover. The knobs are connected and glued on the other side.

The cover fits to the back of the robot. The knobs can be turned for locking the lid, protecting the insides of the robot.

Step 14:Wiring Up the Circuits

The circuit was wired up according to the schematics.

Arduino:

  • Arduino pin D2 => L298N pin IN4
  • Arduino pin D3 => L298N pin IN3
  • Arduino pin D6 => L298N pin IN2
  • Arduino pin D7 => L298N pin IN1
  • Arduino pin D9 => MAX7219 pin DIN
  • Arduino pin D10 => MAX7219 pin CS
  • Arduino pin D11 => MAX7219 pin CLK
  • Arduino pin D4 => ESP8266 RXD
  • Arduino pin D5 => ESP8266 TXD
  • Arduino pin A4 => SDA
  • Arduino pin A5 => SCL
  • Arduino pin Vin => Battery V+ (before diodes)
  • Arduino pin gnd => Battery V-

ESP8266-01

  • ESP8266 pin RXD => Arduino pin D4
  • ESP8266 pin TXD => Arduino pin D5
  • ESP8266 pin gnd => Arduino pin gnd
  • ESP8266 pin Vcc => Arduino pin 3V3
  • ESP8266 pin CH_PD => Arduino pin 3V3

L298N h-bridge

  • L298N pin IN1 => Arduino pin D7
  • L298N pin IN2 => Arduino pin D6
  • L298N pin IN3 => Arduino pin D3
  • L298N pin IN4 => Arduino pin D2
  • L298N pin +12V => Battery V+ (after diodes)
  • L298N pin gnd => Arduino gnd
  • L298N OUT1 => Motor 1
  • L298N OUT2 => Motor 2

MAX7219 (first matrix)

  • MAX7219 pin DIN => Arduino pin D9
  • MAX7219 pin CS => Arduino pin D10
  • MAX7219 pin CLK => Arduino pin D11
  • MAX7219 pin Vcc => Arduino pin 5V
  • MAX7219 pin gnd => Arduino pin gnd

MAX7219 (other matrixes)

  • MAX7219 pin DIN => MAX7219 pin DOUT(previous matrix)
  • MAX7219 pin CS => MAX7219 pin CS (previous matrix)
  • MAX7219 pin CLK => MAX7219 pin CLK (previous matrix)
  • MAX7219 pin Vcc => MAX7219 pin VCC (previous matrix)
  • MAX7219 pin gnd =:MAX7219 pin gnd (previous matrix)

16-channel servo controller

  • Servo controller pin SCL => Arduino pin A5
  • Servo controller pin SDA => Arduino pin A4
  • Servo controller pin Vcc => Arduino pin 5V
  • Servo controller pin gnd => Arduino pin gnd
  • Servo controller pin V+ => Battery V+ (after diodes)
  • Servo controller pin gnd => Arduino pin gnd

Some say the Sg90 servo can be powered between 3.0 and 6.0V, others between 4.0 and 7.2V. To avoid trouble I decided to put two diodes in series after the batteries. This way, the voltage for servos is 2*3.7 - 2*0.7 =6.0V. The same is applied to the DC motors.

Notice this is not the most efficient way, but it worked for me.

robot%2Bmk0%2B-%2Brev8_bb.pdf robot%2Bmk0%2B-%2Brev8_Esquem_C3_A1tico.pdf

Step 15:Arduino Code

Install the latest Arduino IDE. No library was needed for communication with ESP-8266 module or control of the DC motors.

I'll need to add the following libraries:

  • LedControl.h :library used to control the LED matrixes;
  • Adafruit_PWMServoDriver.h :library used to control the servo motors.

Arduino code is divided in 9 parts:

  • RobodaAlegria.ino: this is the main sketch, and it call the other parts. Libraries are imported here. It also define and initialize global variables;
  • _05_Def_Olhos.ino: this is where the matrixes for each eye are defined. Each eye is represented by a 8x8 matrix, and 9 options where defined:neutral, wide-eye, closed up, closed down, angry, borred, sad, in love, and dead eyes. There is a different matrix for right and left eyes;
  • _06_Def_Boca.ino: this is where the matrices for the mouth are defined. The mouth is represented by a 16x8 matrix, and 9 options where defined:happy, sad, very happy, very sad, neutral, tongue out, open, wide-open, and disgusted mouth;
  • _10_Bracos.ino: predefined movements for arms and neck are defined in this file. Nine movements, mov1() to mov9(), were configured;
  • _12_Rosto.ino: in this file there are some functions for updating the face of the robot, combining the matrixes defined in _05_Def_Olhos.ino and _06_Def_Boca.ino;
  • _13_Motores_DC: it defines the functions for ther DC motors;
  • _20_Comunicacao.ino: a function for sending data to ESP8266 is defined in this file;
  • _80_Setup.ino: it runs on Arduino power up. It set the inicial face and position of the motors of the robot. It also send commands for the connection to a given Wi-Fi network;
  • _90_Loop: main loop. It looks for incoming commands from ESP8266 and call specific functions to control the outputs.

Download Arduino code. Replace the XXXXX by your wifi router SSID and YYYYY by router password on on '_80_Setup.ino'. Please check the baudrate of you ESP8266 and set it properly in the code ('_80_Setup.ino'). Connect the Arduino board to your computer USB port and upload the code.

RoboAlegria.rar

Step 16:Android Apps

An Android smartphone was used to broadcast the video and audio from the robot to the control interface. You can find the app I used on Google Play store (https://play.google.com/store/apps/details?id=com.pas.webcam).

The screen of the smartphone may also be transmited to the control interface, so that the operator can see what's on the screen. You can also find the app I used to mirror the screnn on Google Play store (https://play.google.com/store/apps/details?id=com.ajungg.screenmirror).

An Android video game was also designed to interact with the robot. It's not yet very stable, so it isn't available for download.

Step 17:Control Interface

A html interface was designed for the control of the robot.Download interface.rar and extract all the files to a given folder. Then open it on Firefox. The interface is divided in two blocks. To the left there are displays for the camera and screen mirror. To the right there are controll buttons for the commands.

Textbox forms are used in that interface to enter IP address of the ESP8266 module ('Endereço IP Arduino:'), video/audio server from Android IP Webcam app ('IP Webcam (IP):') and Screen Mirror IP address ('Screen Mirror (IP):').

Under 'Ações predefinidas' tab user can select between 9 predefined body movements and 13 different faces. On 'Ações personalizadas' tab user can set a given angles for each of the 6 servos, and individually select between 9 eyes possibilities and 8 mouths variations. A javascript function runs whenever one of those buttons is clicked, and a message is sent for ESP8266's IP address.

Keyboard arrow keys are used for moving the robot forward or backward, and to rotate left or right.

When the interface is started, a warning is displayed, asking if the user wants to share the microphone. If this option is selected, sound intensity of the microphone will be used to send a preconfigured command to the robot. This command will trigger an animation, simulating speech movement on robot's face. A settings button on upper right corner might be used to set the sensitivity of the microphone.

This settings menu might also be used to configure the speed of arms and neck movements.

interface.rar

Step 18:Have Fun

Power it up and have fun!

If you like it, please share this tutorial with you friends! And don't forget to vote on Instructubles Contests! :D

http://www.instructables.com/id/Joy-Robot-Rob%C3%B4-Da-Alegria-Open-Source-3D-Printed-A/

Código

  • Código Arduino
  • HTML Interface
Código Arduino Arduino
 Sin vista previa (solo descarga). 
HTML InterfaceHTML
 Sin vista previa (solo descarga). 
Github
https://github.com/wayoda/LedControlhttps://github.com/wayoda/LedControl
Github
https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Libraryhttps://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library

Piezas y carcasas personalizadas

Thingiverse
https://www.thingiverse.com/thing:2765192CAD file on thingiverse.com
Youmagine
https://www.youmagine.com/designs/joy-robot-robo-da-alegria

Esquemas


Proceso de manufactura

  1. Prototipo de Raspoulette
  2. Robot de caja de CD Raspberry Pi
  3. Robot de alarma rodante
  4. Crea un robot Creeper de Minecraft
  5. Arquímedes:El búho robot con IA
  6. Abrir CV Robot
  7. Robot ROS
  8. Robot Pi simple
  9. Robot para navegación interior supercogedora
  10. ¿Qué es un motor lineal?
  11. ¿Qué es un robot de bebidas?