Tabla de contenido:
- Paso 1: Piezas necesarias para Ewon
- Paso 2: comprensión de Ewon y la programación
- Paso 3: Impresión del cuerpo
- Paso 4: Armado de Ewon
- Paso 5: cableado de Ewon
- Paso 6: ¡Oye Ewon! ¿Puedes oírme?
- Paso 7: ¿Qué sigue?
Video: Robot doméstico EWON Raspberry Pi: 7 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
Por sharathnaikSharathnaik.com Siga más por el autor:
Acerca de: Ingeniería y diseño Más acerca de sharathnaik »
Recientemente me encontré viendo muchas series de Netflix debido a la situación actual, espero que todos estén a salvo, y vi que se lanzó la temporada 5 de Black Mirror. Una serie de antología que gira en torno a la vida personal de un grupo de personas y cómo la tecnología manipula su comportamiento.
Y uno de los episodios que me llamó la atención fue Rachel, Jack y Ashley Too. Uno de los personajes principales de esta serie es un robot doméstico llamado Ashley O y ese robot tiene mucho carácter a su alrededor y pensé por mí mismo que debería construir uno, es un buen proyecto para comenzar con la programación si no eso, al menos Puedo programarlo para que se ría de mis chistes.!
¿Qué / quién es Ewon? ¿Qué puede hacer?
Entonces, antes de comenzar a trabajar en este proyecto, establecí algunas reglas básicas a seguir. Este proyecto tuvo que ser
- Fácil de probar para todos
- No solo se trata de ser lindo, sino también de ser útil para que no termine en un estante.
- Modular, para que puedas seguir agregando nuevas funciones.
Después de establecer esta regla, decidí usar el SDK del Asistente de Google. Este SDK proporciona muchas características que estaba buscando y si te aburres de Ewon, puedes usarlo siempre como un dispositivo de Google Home y hacer lo que hace una casa de Google.
Lo que hará Ewon es agregar un personaje al asistente de Google. Eso es mostrar emociones y reaccionar a lo que dice el usuario. Ahora no es solo la voz que escuchas, sino que también puedes ver cómo reacciona.
NOTA: Este instructivo está en desarrollo. Pronto subiré todos los archivos relevantes. Gracias
Paso 1: Piezas necesarias para Ewon
ELECTRÓNICA
- Frambuesa PI
- Servo SG90 (x4)
- Servo MG995 - estándar (x2)
- Servocontrolador de 16 canales PCA9685
- Tarjeta de sonido USB
- Micrófono
- Altavoces (cualquier altavoz pequeño servirá, algo como esto)
- Conectores de cabezal de clavija macho y hembra
- Tablero de circuitos
- Pantalla Nextion
SUJETADORES Y COJINETES
- M3 * 10 mm (x10)
- M3 * 8 mm (x10)
- Tuercas M3 (x20)
-
Soportando
- OD: 15 mm ID: 6 mm Ancho: 5 mm (x2)
-
OD: 22 mm ID: 8 mm Ancho: 7 mm (x2)
OTROS MATERIALES
-
Punto muerto
- 40 mm (x4)
- 30 mm (x4)
INSTRUMENTOS
impresora 3d
Paso 2: comprensión de Ewon y la programación
Antes de comenzar con el aspecto de programación, permítanme explicar brevemente el diagrama de bloques de los circuitos de Ewon.
RPI (Raspberry pi) es el cerebro del sistema. El servocontrolador controlado por RPI impulsa el servo. Pantalla controlada por RPI con comunicación en serie para mostrar emociones y, por último, micrófono y altavoces utilizados para comunicarse con Ewon. Ahora que sabemos lo que hace el hardware, comencemos a programar Ewon.
Instalación del SDK del asistente de Google
Permítanme explicar las dos razones por las que planeé usar el Asistente de Google:
- Quería que Ewon no solo fuera un robot divertido, sino también útil. Google Assistant SDK ya tiene una tonelada de recursos que puede usar para aumentar la funcionalidad de Ewon.
- También puede usar acciones en google y el flujo de diálogo para darle a Ewon la capacidad de chatear con respuestas predefinidas. Por ahora, nos concentraremos solo en el SDK básico.
Comencemos instalando el SDK del asistente de Google. Esto no debería ser difícil, ya que hay una gran cantidad de recursos para ayudarlo a configurar el SDK del Asistente de Google en RPI. Puede seguir este tutorial a lo largo de:
Tutorial:
Una vez finalizado el proceso anterior, debería poder hacer clic en Intro en el teclado y hablar con el asistente. Se trata de instalar el SDK del Asistente de Google.
¿Cómo debo nombrarlo? Ewon?
¡Hola Google! Eso es lo que se usa para comenzar a hablar con el asistente de Google y, desafortunadamente, Google no permite que se use ninguna otra palabra de activación personalizada. Entonces, veamos cómo podemos cambiar esto para que el asistente de Google se active cuando alguien llame a Ewon.
Snowboy: un motor de detección de palabras clave altamente personalizable que está integrado en tiempo real y es compatible con Raspberry Pi, (Ubuntu) Linux y Mac OS X.
Una palabra activa (también conocida como palabra de activación o palabra de activación) es una palabra clave o frase que la computadora escucha constantemente como una señal para activar otras acciones.
Comencemos instalando Snowboy en RPI. Recuerde activar el entorno virtual para instalar Snowboy como lo hizo para instalar Assistant SDK. Todo lo que instalemos a partir de aquí tiene que estar instalado en el entorno virtual. Instalar Snowboy puede ser un poco complicado, pero este enlace debería ayudarte a instalarlo sin ningún problema. Enlace:
Aquí hay un proceso de instalación resumido si el enlace anterior se vuelve confuso o falla la instalación.
$ [sudo] apt-get install libatlas-base-dev swig $ [sudo] pip install pyaudio $ git clone https://github.com/Kitt-AI/snowboy $ cd snowboy / swig / Python3 $ make $ cd.. /.. $ python3 setup.py build $ [sudo] python setup.py install
Una vez instalado, ejecute el archivo de demostración [que se encuentra en la carpeta - snowboy / examples / Python3 /] para ver si todo funciona perfectamente.
Nota: también puede cambiar fácilmente el nombre de su robot por otro. Todo lo que tienes que hacer es ir a https://snowboy.kitt.ai/ y entrenar una palabra activa personalizada y luego colocar esa palabra activa en la misma carpeta que ewon.pmdl.
¿Puede Ewon comprender las emociones?
Ahora que Ewon tiene un nombre, usaré Ewon en lugar de llamarlo robot. Bien, entonces las emociones, respuestas cortas no, Ewon no puede entender las emociones, así que lo que vamos a hacer aquí es hacer que Ewon detecte la emoción en nuestro discurso usando palabras clave y luego reproduzca la expresión facial correspondiente asociada con ella.
Para lograr esto, lo que he hecho es un simple script de análisis de sentimientos. Hay 6 clases de emociones diferentes.
Feliz, Triste, Ira, Miedo, Asco y Sorpresa. Estas son las principales clases de emociones y cada una de ellas tiene una lista de palabras clave asociadas con la emoción. (por ejemplo, bueno, agradable, emocionado, todos vienen bajo una emoción feliz).
Entonces, cada vez que decimos cualquiera de las palabras clave en la clase de emoción, se desencadena la emoción correspondiente. Entonces, cuando dices "¡Oye Ewon!" y esperar a que Ewon hable y sigo diciendo "¡Hoy es un buen día!", recoge la palabra clave "Agradable" y desencadena la emoción correspondiente 'Feliz' que desencadena la expresión facial de Feliz.
¿Están esas orejas en Ewon?
El siguiente paso sería utilizar la emoción desencadenada para ejecutar la expresión facial respectiva. Con Ewon, la expresión facial está notando pero moviendo la oreja y el cuello usando servos y cambiando la pantalla para cambiar los movimientos de los ojos.
Primero, los servos, para ejecutar esto es bastante fácil, puede seguir este tutorial para configurar la biblioteca de servos Adafruit. Enlace:
Luego asignamos el valor máximo y mínimo para todos los servos. Esto se hace moviendo manualmente cada servo y verificando sus límites. Puede hacer esto una vez que haya ensamblado Ewon.
Ojos para Ewon
Para los ojos, estoy usando una pantalla Nextion que tiene un montón de imágenes como a continuación.
Es una secuencia de imágenes que diseñé en Photoshop que, cuando se reproduce en secuencia, crea una animación. Se creó una secuencia similar para todas las emociones. Ahora, para mostrar cualquier emoción, todo lo que tiene que hacer es llamar a la secuencia de imágenes específica que compone la animación. Los archivos están dentro de la carpeta 'Archivos de visualización', enlace de descarga a continuación.
¡Finalmente
Poniéndolo todo junto cuando el guión activa la emoción feliz, se llama a la función feliz y el servo se mueve a los ángulos ya establecidos y la pantalla reproduce la animación del ojo feliz. Así es como logramos la "comprensión" de las emociones humanas. Este método no es el mejor y hay ocasiones en las que las palabras clave no caen en la misma emoción que las predefinidas, pero por ahora, esto funciona lo suficientemente bien y siempre puede agregar más palabras clave para aumentar la precisión de la detección. Además, esto puede ser reemplazado por un modelo de análisis de emociones mucho más entrenado como el modelo de análisis de emociones de Paralleldots para obtener mejores resultados. Pero cuando lo probé, hubo muchos retrasos que hicieron que Ewon reaccionara más lentamente. Quizás la versión 2.0 de Ewon tenga algo como esto.
Este es el ENLACE a todos los archivos necesarios para ejecutar EWON. Descargue el archivo y siga los pasos a continuación:
- Descomprima el archivo y coloque esta carpeta (Ewon) en casa / pi /
- Agregue el Id. Del dispositivo y el Id. Del modelo en el archivo main.py. El ID se obtiene al instalar el SDK del asistente de Google.
- Abra el símbolo del sistema y ejecute el código fuente de los siguientes comandos:
source env / bin / activepython main.py modelos / Ewon.pmdl
Paso 3: Impresión del cuerpo
Puede encontrar los archivos 3d aquí:
Ahora que todos estamos configurados con el cerebro de Ewon, es hora de imprimir su cuerpo. Hay 18 piezas únicas para imprimir, la mayoría de ellas bastante pequeñas, con un tiempo total de impresión de alrededor de 15-20 horas. (excluyendo los casos).
Usé PLA blanco con un 50% de relleno y una altura de capa de 2 mm. Puede cambiar estos valores si es necesario, debería funcionar bien, pero asegúrese de que las piezas pequeñas tengan un relleno del 100% para mayor resistencia.
Una vez impresos los archivos, puede usar papel de lija o una lima manual y limpiar las partes impresas, especialmente los enlaces donde las partes se deslizan entre sí. Suavizar las articulaciones suavizará el mecanismo y proporcionará menos resistencia al servo. Este proceso puede llevar todo el tiempo que desee, ya que uno puede perderse tratando de que las piezas impresas se vean perfectas.
Notas adicionales: puede volver a perforar los orificios en las piezas impresas en 3D con una broca de 3 mm. Todos los agujeros tienen las mismas dimensiones. Esto hará que sea más fácil atornillar las tuercas más adelante en el ensamblaje.
Paso 4: Armado de Ewon
Antes de comenzar con el montaje, se necesitan algunas modificaciones en las piezas impresas. Los archivos denominados servo enlace deben estar equipados con servo enlaces que vienen con el servo, esto hace que los enlaces impresos en 3D se conecten bien con el servo.
El montaje de Ewon debería ser sencillo. He adjuntado imágenes para que las sigas.
Notas adicionales: asegúrese de no apretar demasiado ninguno de los pernos o tornillos, ya que esto puede romperse y desgastar las piezas impresas.
Paso 5: cableado de Ewon
Estamos en el último paso para hacer que Ewon cobre vida. Aquí está el diagrama de cableado de los componentes junto con imágenes que muestran la conexión.
- El servocontrolador está conectado a los pines I2C que son SDA y SCL de RPI.
- La pantalla está conectada a los pines RX y TX de RPI
- El micrófono y los altavoces están conectados a la tarjeta de sonido USB que está conectada a RPI a través del puerto USB.
Advertencia: tenga cuidado de acortar su RPI. Verifique todas sus conexiones dos veces y asegúrese de no haber cometido ningún error. Todos los accesorios que son el altavoz, el servocontrolador y la pantalla funcionan con una batería de 5v separada y no utilizan la línea Raspberry Pi de 5v. Raspberry pi solo se usa para enviar datos a los accesorios, pero no para alimentarlos.
Paso 6: ¡Oye Ewon! ¿Puedes oírme?
Así que hemos adjuntado todos nuestros accesorios e instalado todas las bibliotecas necesarias. Puede iniciar Ewon ejecutando el script de shell usando./run Ewon.sh Pero, ¿qué es este script.sh? Ewon usa muchas bibliotecas diferentes con diferentes scripts (asistente de SDK de Google, Snowboy, Adafruit, etc.). Todos los scripts se colocan en sus respectivas carpetas. (Podemos mover todos los archivos en la misma ruta y tener todos los scripts organizados, pero actualmente, algunas de las bibliotecas no permiten mover los archivos fuente, así que, por ahora, los mantendremos en sus respectivas ubicaciones).sh son scripts de shell que ejecutan todos estos scripts uno por uno desde cada ubicación para que no tenga que ir manualmente a cada ubicación y ejecutar los scripts. Esto facilita el manejo de todos los comandos.
Una vez que ejecute el script de shell, simplemente diga "¡Oye Ewon!" y deberías ver a Ewon empezar a escucharte. Ahora puedes usar Ewon como asistente de Google y hablar con él y puedes ver a Ewon cambiando las expresiones de lo que dices. Intente algo como “¡Oye Ewon! Estoy triste hoy “y puedes ver a Ewon estar triste contigo. Pídale un chiste a Ewon y mírelo reírse del chiste.
Paso 7: ¿Qué sigue?
Ewon no se detiene aquí. Ewon ahora tiene una forma de detectar y mostrar emociones, pero podemos hacer que haga mucho más. Este es solo el comienzo.
En la próxima actualización, trabajaremos en cómo hacer
- Ewon detecta rostros y rastrea su rostro y se mueve junto con su rostro.
- Añadiremos efectos de sonido para darle un extra de profundidad al personaje.
- Agregue movilidad para que Ewon pueda moverse con usted.
Nota: Debido a la situación actual, se ha vuelto muy difícil obtener piezas para el proyecto. Esto me hizo cambiar el diseño y la funcionalidad considerando las ideas que tenía en mi inventario. Pero tan pronto como tenga en mis manos todas las partes, actualizaré el proyecto anterior.
Actualizaciones:
- Hice algunos cambios en el código, eliminó el script de shell.
- Se agregó un cuerpo rectangular para EWON.
Recomendado:
PIR práctico para uso doméstico: 7 pasos (con imágenes)
PIR práctico para uso doméstico: como muchos de ustedes que trabajan con proyectos de automatización del hogar, estaba buscando construir un sensor PIR funcional para automatizar algunos giros en las esquinas en mi propia casa. Aunque los sensores PIR del interruptor de luz hubieran sido óptimos, no se puede doblar una esquina. Thi
Nueva capa de sensor IOT inalámbrico para el sistema de monitoreo ambiental doméstico: 5 pasos (con imágenes)
Nueva capa de sensor IOT inalámbrico para el sistema de monitoreo ambiental doméstico: este Instructable describe una capa de sensor IOT inalámbrico de bajo costo que funciona con baterías para mi Instructable anterior: LoRa IOT Home Environmental Monitoring System. Si aún no ha visto este Instructable anterior, le recomiendo leer la introducción
Controlador Arduino HRV (Intercambiador de aire doméstico) con economizador de aire: 7 pasos (con imágenes)
Controlador Arduino HRV (Intercambiador de aire doméstico) con economizador de aire: Controlador Arduino HRV con economizador de aire Así que mi historia con este proyecto es que vivo en Minnesota y mi placa de circuito está frita en mi LifeBreath 155Max HRV. No quería pagar los $ 200 por uno nuevo, siempre quería algo con un economizador de aire sin
Enrutador doméstico inalámbrico con medidor de utilización analógica: 5 pasos (con imágenes)
Enrutador doméstico inalámbrico con medidor de utilización analógica: Crecí en y alrededor de barcos haciendo telares de cableado y paneles de control, y tengo una colección de medidores & diales que normalmente se encontrarían conectados a pequeños motores diesel marinos. Hoy trabajo como diseñador construyendo interfaces para redes
Estéreo para automóvil con alimentación ATX y altavoces de 3 vías (para uso doméstico): 10 pasos (con imágenes)
Estéreo para automóvil con alimentación ATX y parlantes de 3 vías (para uso doméstico): Ha pasado un tiempo desde que investigué sobre cómo encender el estéreo de un automóvil sin una batería de 12 voltios que seguramente tendré que recargar más tarde. ¿Por qué? bueno … porque tengo una unidad sony mp3 cd usb aux ipod-cable, 4x52w watts w / sub-out, qué más