Tabla de contenido:

¡Construye una cabeza de robot parlante impulsada por Arduino !: 26 pasos (con imágenes)
¡Construye una cabeza de robot parlante impulsada por Arduino !: 26 pasos (con imágenes)

Video: ¡Construye una cabeza de robot parlante impulsada por Arduino !: 26 pasos (con imágenes)

Video: ¡Construye una cabeza de robot parlante impulsada por Arduino !: 26 pasos (con imágenes)
Video: High Density 2022 2024, Mes de julio
Anonim
¡Construye una cabeza de robot parlante impulsada por Arduino!
¡Construye una cabeza de robot parlante impulsada por Arduino!

Esta cabeza de robot se construyó originalmente como un proyecto de fin de año para mi clase de computación física, pero durante el verano "aprendió" a hablar. El cabezal funciona con dos Freeduinos, 3 chips TLC5940NT y un Wave Shield de Adafruit Industries que se encuentra aquí: www.ladyada.net/make/waveshield/. El cabezal está actualmente conectado a una computadora mediante dos cables USB, uno para la alimentación, otro para enviarle comandos en serie sobre qué decir / emote. Una vez que la cabeza recibe los comandos escritos sobre qué decir / emocionar, reproduce los archivos de palabras individuales para crear una oración o varias oraciones. También cambia sus emociones de acuerdo con los comandos emocionales enviados desde la computadora. Esta cabeza de robot es la base de muchas aplicaciones posibles, ya que puede decir cualquier cosa para la que tenga el vocabulario. En este momento, estoy trabajando para conectarlo a Internet y hacer que verifique y lea mi correo electrónico a través de un script PHP. Actualizaré este Instructable a medida que avance con eso. Aquí hay un video de él en acción: ¡La cabeza todavía es un proyecto en curso, por lo que cualquier comentario sobre cualquier cosa aquí es más que bienvenido! ¡Un agradecimiento especial a Liz Arum por ayudarme con todo! Actualización: Debido a una solicitud popular, ahora he agregado ¡un video del robot hablando y expresándose! ¡Disfruta a tu aire!

Paso 1: compile todos los materiales / piezas / electrónica

Esta cabeza de robot utiliza: 1 Placa de pruebas (tiene que tener más de 48 filas de largo con un espacio en el centro de la placa para conectar los chips IC. También es necesario un bus de alimentación y tierra a lo largo del lateral de la placa de pruebas). 2 LED RGB (para los ojos multicolores) Ánodo común. $ 1.50 - 1.95 cada uno. 2 X $ 1,75 = $ 3,5036 LED rojos (para la boca) en algún lugar alrededor del rango de precio de 40-50 centavos para cada uno. 36 X $.45 = $ 16.202 Micro Servos HXT900 (Para mover las cejas) Se puede encontrar en: https://www.hobbycity.com/hobbycity/store/uh_viewItem.asp?idProduct=662 2 X $ 3.65 = $ 7.303 TLC5940NT's (Para conducir / encender todos los Leds y controlar los servos) se puede encontrar en Digi-key https://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-17732-5-ND donde se cotizan a $ 4.28. 3 X $ 4,28 = $ 12,84 o Mouser https://www.mouser.com/ProductDetail/Texas-Instruments/TLC5940NT/?qs=sGAEpiMZZMu8%252bGBKj8XSFEjwsgnt5grMZ49G/W4nR14%3d3 Condensadores (~ 1000 uf) (para planchar la línea de servos) Recuperado de una fuente de alimentación de computadora vieja. Free2 originales Freeduinos o Arduinos. Los Freeduino se pueden comprar en https://www.freeduino.org/buy.html. Tienen un precio de 23,99 cada uno. 2 X $ 23,99 = $ 47,98 O www.sparkfun.com/commerce/product_info.php para Arduinos. Con un precio de $ 29.95 cada uno. 2 X $ 29.95 = $ 59.90 Advertencia: Los Freeduinos requieren algunos conocimientos de soldadura, si no desea soldar sus placas, compre un Arduino. Advertencia: este Instructable requiere algunos conocimientos de soldadura de todos modos, así que ¿por qué no comenzar ahora?:) 1 Waveshield de Adafruit Industries (para permitir que el robot hable) Se puede comprar en: https://www.ladyada.net/make/waveshield/ Con un precio de $ 22 cada uno Costo total estimado de todas las piezas de alta tecnología (sin incluir envío) si compró Freeduinos en lugar de Arduinos es…. $ 109.82! El costo total de todas las partes de alta tecnología si compraste Arduinos en lugar de Freeduinos es…. $ 121.74! Y en cuanto a los materiales de baja tecnología, necesitará: una caja de cartón del mismo tamaño que desea que tenga la cabeza, un pequeño trozo de cartón, cinta, pegamento, alambre compatible con el tablero (calibre 22, sólido), alambre para sujetar cosas a otras cosas, un bloque pequeño de madera Taladro eléctrico Tubo termorretráctil para aislar los cables expuestos y algo que sople aire caliente para contraerlo con (pistola de aire caliente) Cortador de cajas.

Paso 2: Ensamble y suelde todas las placas de circuito y blindajes

Ensamble y suelde todas las placas de circuito y blindajes
Ensamble y suelde todas las placas de circuito y blindajes

Suelde los Freeduinos (como hice yo), o ignore esta línea si compró un Arduino. Aquí está el enlace a sus instrucciones de montaje para todas las personas que compraron Freeduinos: mcukits.com/2009/03/12/assembling-the-freeduino-board-kit/Solder the Waveshields. Lady Ada tiene una muy buena guía sobre cómo hacer esto en su sitio web en https://www.ladyada.net/make/waveshield/solder.html Nota: Además de soldar el Waveshield como se describe. Agregue un cable largo soldado a la resistencia R7 en el lado más cercano al chip amplificador. Este se conectará a la entrada analógica 1 del Freeduino que controla los LED de la cabeza del robot. (No se preocupe por dónde conectar el otro extremo del cable por ahora, eso se explicará en detalle más adelante). Vea la imagen para obtener una aclaración sobre dónde soldar el cable.

Paso 3: diseñe la cabeza del robot

Diseña la cabeza del robot
Diseña la cabeza del robot

Tome la caja de cartón que eligió para ser su cabeza y marque los lugares que le gustaría recortar para los ojos y la boca cortando trozos de papel y colocándolos encima de su caja. Cuando esté satisfecho con el arreglo, puede pasar a cortar cosas.

Paso 4: diseñe su cabeza de robot: corte los ojos

Diseña tu cabeza de robot: corta los ojos
Diseña tu cabeza de robot: corta los ojos

Pegue o marque las piezas en sus posiciones finales en la caja y recórtelas. (Guarde la hoja de papel que usó para representar la boca, la necesitará más adelante).

Paso 5: diseñe la cabeza de su robot: haga una matriz de LED para la boca

Diseñe su cabeza de robot: haga una matriz de LED para la boca
Diseñe su cabeza de robot: haga una matriz de LED para la boca
Diseñe su cabeza de robot: haga una matriz de LED para la boca
Diseñe su cabeza de robot: haga una matriz de LED para la boca
Diseñe su cabeza de robot: haga una matriz de LED para la boca
Diseñe su cabeza de robot: haga una matriz de LED para la boca

Cada LED de la boca se iluminará de forma independiente. Para hacer eso necesitas hacer una matriz de LED para la boca. (Para una idea de lo que es una matriz de LED, vea la imagen 1) Tome la hoja de papel que se supone que es la boca y, con un lápiz y una regla, divida la hoja de papel en 36 partes (9 X 4), Uno para cada LED en la cuadrícula. Después de haber hecho eso, pegue la hoja de papel a una pieza de madera y tenga cuidado de no perforar el piso (esto me ha sucedido a mí, así que recomiendo perforar en la parte superior de una caja de cartón.) Taladre agujeros donde las líneas se cruzan con una broca de 1/4 de pulgada, para que sus LED encajen perfectamente. El tamaño de la broca depende obviamente del tamaño de sus LED, así que use una broca más pequeña para LED más pequeños. (¡Empiece poco a poco y vaya subiendo!) Mire las imágenes 2 y 3 para aclarar las perforaciones / marcas.

Paso 6: Hacer la matriz de LED de boca: Soldar en los LED

Haciendo la Matriz de LED de Boca: Soldadura en los LED
Haciendo la Matriz de LED de Boca: Soldadura en los LED
Haciendo la Matriz de LED de Boca: Soldadura en los LED
Haciendo la Matriz de LED de Boca: Soldadura en los LED
Haciendo la Matriz de LED de Boca: Soldadura en los LED
Haciendo la Matriz de LED de Boca: Soldadura en los LED

Antes de hacer cualquier otra cosa, verifique que todos sus LED no estén apagados o apagados. Puede hacer esto encontrando una pequeña batería de botón de 3V y sosteniendo las patas de los LED a la batería (recuerde que la pata larga es positiva, la corta negativa) A continuación, inserte los LED una fila a la vez en su plantilla de rejilla perforada. Dobla las patas largas de modo que queden paralelas entre sí y suéldalas fila por fila (ver imágenes 2 y 3). Suelde las patas largas, ya que utilizará TLC para controlar estos LED, y los TLC son disipadores de energía. Esto significa que controlan los LED alterando el diferencial de voltaje entre la potencia y la tierra.

Paso 7: Hacer la matriz de LED de boca: Soldar cables de control en los LED

Fabricación de la matriz de LED de boca: soldadura de cables de control en los LED
Fabricación de la matriz de LED de boca: soldadura de cables de control en los LED
Fabricación de la matriz de LED de boca: soldadura de cables de control en los LED
Fabricación de la matriz de LED de boca: soldadura de cables de control en los LED
Fabricación de la matriz de LED de boca: soldadura de cables de control en los LED
Fabricación de la matriz de LED de boca: soldadura de cables de control en los LED

Suelde cables largos que puedan caber en una placa de pruebas (calibre 22) en todos los cables del cátodo LED. Estos cables controlarán los LED. Luego, asegúrese de aislar todos los cables individuales con cinta aislante (no es divertido) o con tubos termorretráctiles (recomendado). Además de soldar los cables en todos los LED Cables del cátodo, suelde 2 o 3 cables en la parte del ánodo de la rejilla (La parte que está completamente soldada). Estos cables servirán como fuentes de alimentación distribuyendo energía por toda la red. Estarán conectados a 5V.

Paso 8: Instale los servos de movimiento de cejas dentro de la cabeza del robot

Instale los servos de movimiento de cejas dentro de la cabeza del robot
Instale los servos de movimiento de cejas dentro de la cabeza del robot
Instale los servos de movimiento de cejas dentro de la cabeza del robot
Instale los servos de movimiento de cejas dentro de la cabeza del robot
Instale los servos de movimiento de cejas dentro de la cabeza del robot
Instale los servos de movimiento de cejas dentro de la cabeza del robot

Antes de instalar sus mini-servos dentro de la cabeza de su robot, pegue un cable largo y fuerte (pero aún flexible) en el brazo del servo. Este cable subirá por el interior de su robot, saldrá por la parte superior y se deslizará hacia abajo para mover las cejas. (Vea las imágenes para una aclaración). Tome sus mini-servos (con los cables conectados) y péguelos en caliente al interior de la cabeza de su robot, justo debajo de los ojos, asegurándose de que los cables se puedan mover de lado a lado.

Paso 9: Instale la rejilla en el interior de la cabeza del robot

Instale la rejilla en el interior de la cabeza del robot
Instale la rejilla en el interior de la cabeza del robot
Instale la rejilla en el interior del cabezal del robot
Instale la rejilla en el interior del cabezal del robot

Pegue la rejilla en caliente a un trozo de cartón en el que haya perforado y péguelo en el interior de la cabeza del robot.

Paso 10: Suelde los LED RGB

Suelde los LED RGB
Suelde los LED RGB

Suelde el cable del LED RGB del ánodo común a un cable largo. Luego suelde un cable de color (rojo, verde, azul) al cable LED RGB que le corresponde (el color de un cable individual se puede averiguar usando una pila de botón de 3V para encender cada cable LED a su vez). ¡No olvide aislar los cables!

Paso 11: instale los LED RGB en el interior del cabezal del robot

Instale los LED RGB en el interior del cabezal del robot
Instale los LED RGB en el interior del cabezal del robot
Instale los LED RGB en el interior del cabezal del robot
Instale los LED RGB en el interior del cabezal del robot

Instale los LED dentro de la cabeza del robot colocándolos donde los desee y luego doblando y pegando los cables en el interior de la caja. Poner una pajita debajo del LED también ayuda a mantenerlo en su lugar. (Vea las imágenes para una aclaración)

Paso 12: Termina de hacer los ojos

Termina de hacer los ojos
Termina de hacer los ojos
Termina de hacer los ojos
Termina de hacer los ojos

Pegue una hoja de papel cuadrada que sea un poco más grande que el agujero que ha cortado. Péguelo sobre el agujero para cubrir el agujero y el LED detrás de él. También es posible que desee pegar con cinta adhesiva algunas hojas de papel toalla en el interior de los orificios para los ojos para difundir la luz que proviene de los LED.

Paso 13: Conecte los chips TLC5940NT

Conecte los chips TLC5940NT
Conecte los chips TLC5940NT
Conecte los chips TLC5940NT
Conecte los chips TLC5940NT
Conecte los chips TLC5940NT
Conecte los chips TLC5940NT

En este paso, tendrá que conectar en cadena 3 TLC5940NT para impulsar un total de 42 salidas LED (36 para la boca, 6 para los ojos multicolores). La gente en el patio de juegos de Arduino tiene una guía de conexión muy bien documentada sobre cómo hacer margaritas encadenar 3 TLC5940NT juntos. Aquí está en forma comprimida: Arduino pin 13 -> SCLK (TLC pin 25) Arduino pin 11 -> SIN (TLC pin 26) Arduino pin 10 -> En blanco (TLC pin 23) Arduino pin 9 -> XLAT (TLC pin 24) Pin 3 de Arduino -> GSCLK (pin 18 de TLC) -------------- U ------------ Salida de LED 1 | 1 28 | Salida LED 0 Salida LED 2 | 2 27 | GNDLED Out 3 | 3 26 | SIN (pin 11. Ard) Salida LED 4 | 4 25 | SCLK (pin 13 de Ard)… | 5 24 | XLAT (pin 9 de Ard)… | 6 23 | EN BLANCO (pin 10 de Ard)… | 7 22 | GND… | 8 21 | VCC (5 V)… | 9 20 | Resistencia 2K a tierra… | 10 19 | 5V… | 11 18 | GSCLK (pin 3 de Ard)… | 12 17 | SOUT (Conectado al SIN del próximo TLC en Daisychain)… | 13 16 | XERR hacia fuera 14 | 14 15 | LED Out 15 ----------------------------- Nota: estamos conectando en cadena 3 TLC para que el SIN del primer TLC esté conectado a Arduino pin 11. El resto de los TLC tienen su SIN conectado al SOUT del TLC que lo precede. Todos los BLANK están conectados entre sí (BLANK de TLC1 está conectado a BLANK de TLC2, etc.) Todos los XLAT están conectados. Los SCLK están conectados. Todos los GSCLK están conectados. Todos los XERR están conectados. También conecte 2 o 3 condensadores electrolíticos a tierra y potencia de la placa de pruebas (negativo en el condensador que va a tierra, positivo a 5 V). La cantidad de carga que contiene no es tan importante, pero debe tener una capacidad nominal de 5 V o más. Estos condensadores actuarán como un filtro, filtrando todas las imperfecciones (ruido) en el suministro de voltaje que producen los TLC. Esto es importante porque el Waveshield que usaremos comparte el mismo terreno que los TLC y REALMENTE no le gusta el ruido eléctrico (hace un ruido extraño de clic).

Paso 14: Conecte los LED a los TLC

Conecte los LED a los TLC
Conecte los LED a los TLC
Conecte los LED a los TLC
Conecte los LED a los TLC

Conecte todos los LED a los TLC, fila por fila, comenzando con el de la esquina superior izquierda y pasando al LED directamente a la derecha. Aquí hay una cuadrícula de todos los pines LED TLC incluidos para su conveniencia. Vea las imágenes para aclarar. Boca: 0 1 2 3 4 5 6 7 89 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 Ahora también es un buen momento para conectar sus ojos LED RGB a los TLC, así que aquí están los pines … Ojos LED RGB: Izquierda: RGB Derecha: RGB 36 40 38 37 41 39 para conectar los cables de alimentación universales para The Grid y LED RGB en 5V.

Paso 15: Conecte los servos a los TLC

Conecte los servos a los TLC
Conecte los servos a los TLC

Conecte la alimentación y la tierra de los servos a la alimentación y la tierra en su tablero. Conecte el cable de control del servo izquierdo (el izquierdo mientras mira al robot) al pin 43 (recuerde comenzar en cero) y el servo derecho al pin 44. Deberá conectar una resistencia de 3.3K ohmios desde ambos pines. a 5 V porque los TLC son disipadores de energía y requieren energía para disiparse.

Paso 16: ¡Ahora está entrando en la tierra del software y el código! (principalmente)

Por favor, no traspase …

Paso 17: Descargue la biblioteca TLC

La última biblioteca de TLC para Arduino se puede encontrar en su página de códigos de Google en: code.google.com/p/tlc5940arduino/. Descargue la última biblioteca e inserte la carpeta descomprimida "Tlc5940" en la [carpeta de la última versión de Arduino] / hardware / bibliotecas /

Paso 18: Pruebe los TLC

Cargue mi boceto de prueba de expresión en serie que puede descargar a continuación. Cárgalo en el Freeduino y escribe algunos comandos en el monitor serial para probar que todo funciona. Aquí está la lista de comandos: behappybesadbemadfullmouthlinemouthoffmouthoffeyesbluegreeneyesredeyesblueeyesopenmouthtalkmouth (No habla, pero hace movimientos de boca)

Paso 19: Descargue la biblioteca Waveshield mejorada y de soporte de alta capacidad (algo)

Descargue el nuevo escudo de ondas Adafruit mejorado desde el código de Google (Gracias, Sr. Fat16 por hacer esta biblioteca mejorada): code.google.com/p/wavehc/ Nuevamente pegue la carpeta descomprimida en la carpeta hardware / libraries /.

Paso 20: Formatee y cargue sus tarjetas SD

Inserte sus tarjetas SD en su computadora y formatéelas usando el tipo de archivo FAT o FAT16. ¡NO FAT32! Luego cargue sus tarjetas SD con archivos de voz desde el excelente sitio de texto a voz de AT&T www.research.att.com/~ttsweb/tts/demo.php#top Cambie el nombre de los archivos por el nombre de la palabra que está hablando en el archivo y trunque ese nombre de archivo a algo que contenga 6 o menos letras. (El Waveshield solo puede manejar archivos cuyos nombres de archivo tengan 6 caracteres o menos). Por ejemplo, si descarga el archivo para "Instructables.com" -> nómbrelo instrc.wav Si hola -> hola.wav

Paso 21: Prueba tu Waveshield

Descargue y ejecute mi boceto de prueba de Waveshield en serie. Debería poder escribir una oración a través de la terminal serial y hacer que Waveshield la reproduzca (siempre que tenga los archivos.wav que necesita). Tomará la primera palabra, agregará el ".wav" y la reproducirá antes de pasar a la segunda. Por ejemplo, escriba: Hola, mi nombre es Bob Se reproducirá: hello.wavmy.wavname.wavis.wavbob.wav Nota: Pruebe el Waveshield en el otro Freeduino (el que no está conectado a los TLC) porque tanto el Waveshield como el TLC usan los pines 13, 12, 11 y 10 (en el Freeduino). Esto se debe a que estos pines tienen soporte de hardware para una interfaz llamada Serial Peripheral Interface (SPI) que requieren tanto los TLC como Waveshield. Estos pines no se pueden compartir entre ellos, por lo que tendremos que vincular dos Freeduinos juntos usando la interfaz I2C para que puedan pasar información entre ellos. Más sobre esto en el paso 22.

Paso 22: Conecte la interfaz I2C entre ambos Freeduinos

Conecte la interfaz I2C entre ambos Freeduinos
Conecte la interfaz I2C entre ambos Freeduinos

Espera … ¿Por qué necesitamos conectar una interfaz I2C entre dos Freeduinos? ¿Por qué no podemos simplemente conectar el Waveshield y los TLC en un Freeduino? He aquí por qué: tanto el Waveshield como el TLC usan los pines 13, 12, 11 y 10 en el Freeduino. La razón de esto es que estos pines tienen soporte de hardware para una interfaz llamada Serial Peripheral Interface (SPI) que tanto el TLC como el Waveshield requieren y no pueden compartir. Esto significa que tendremos que vincular dos Freeduinos juntos usando algún tipo de conexión de datos para que ambos funcionen juntos en tándem. El serial no era una opción porque mi computadora ya lo estaba usando para comunicarse con Waveshield Freeduino, así que después de buscar en Google, encontré un método de comunicación notablemente conveniente y simple. I2C! A continuación se explica cómo conectar la interfaz: Conecte la clavija de entrada analógica 4 en ambos Freeduinos (esta es la línea de datos SDA o serie). Conecte la clavija de entrada analógica 5 en ambos Freeduinos (esta es la línea de reloj SCL o serie). en ambos Freeduino (De lo contrario, la interfaz I2C no funcionará). Conecte el cable que soltó al comienzo de este Instructable desde la resistencia R7 en el Waveshield al pin 1 de entrada analógica en el TLC que controla Freeduino (Este cable es para verificar el volumen de las palabras pronunciadas por Waveshield y no es parte de la interfaz I2C). (Vea la imagen para una aclaración)

Paso 23: Habilite I2C en el TLC que controla Freeduino

Habilite I2C en el Freeduino que usó para controlar los TLC descargando este boceto. Recibirá información sobre las expresiones del Waveshield y también verificará el volumen de la salida de voz en el Waveshield Freeduino y moverá la boca para simular el habla dependiendo del volumen de la palabra que se está pronunciando. Definición de I2C: I2C también se conoce como TWI (Interfaz de dos cables) es una forma sencilla de conectar varios dispositivos juntos (¡hasta 128!) Con dos cables de datos y una conexión a tierra común. Actualización: agregué una función de parpadeo al Arduino Sketch. El robot ahora parpadeará a intervalos de 2 a 11 segundos, como un humano.

Paso 24: Pruebe la interfaz I2C

Descarga este boceto y cárgalo en Waveshield Freeduino, envía las palabras "behappy"; y luego "besad"; a través de la interfaz I2C al TLC que controla Freeduino en intervalos de dos segundos, con suerte haciendo que el robot pase de feliz a triste en intervalos de dos segundos.

Paso 25: ¡Ya casi has terminado! Solo un código para cargar …

Cargue la versión final del código de Waveshield Freeduino. Debe tomar cualquier palabra que escriba en el monitor serial y decirla (siempre que tenga los archivos.wav para hacerlo) y debe pasar comandos de expresión como "behappy"; y "besad"; en el Freeduino controlando los TLC a través de la interfaz I2C. Nota: La lista de comandos es la misma para el código de prueba TLC anterior (consulte el paso 17), excepto que debe agregar un punto y coma a cada comando de expresión. EJ. Si desea que el robot esté triste y diga "Me siento triste", escriba: besad; Me siento triste Actualización: Waveshield Sketch ahora usa la puntuación correctamente (es decir, puntos y comas, pero no signos de exclamación).

Paso 26: ¡Monte todo en la caja de la cabeza del robot y listo

¡Monte todo en la caja de la cabeza del robot y listo!
¡Monte todo en la caja de la cabeza del robot y listo!
¡Monte todo en la caja de la cabeza del robot y listo!
¡Monte todo en la caja de la cabeza del robot y listo!

Monte todos los Freeduinos en la parte posterior de la caja con cables. ¡Cierre la solapa superior de la caja con cables y listo! Ahora, si tan solo pudiera revisar mi correo electrónico. Hmmmm …….¡Gracias por leer este Instructable! ¡Los comentarios son siempre bienvenidos sobre cualquier tema!

Segundo premio en el concurso Arduino

Recomendado: