El asistente de voz de Google ha existido por un tiempo, así como cuando Amazon lanzó su Alexa API, así como por portada el código de la nube de PAAS a la Raspberry Pi 2, fue solo Una cuestión de tiempo antes de que todos los demás saltaran en el rápido tren al reino del fabricante. Google acaba de hacerlo con estilo.
Pocos entienden que la API asistente de Google para la Raspberry PI 3 ha estado disponible durante mucho tiempo, sin embargo, cuando decidieron proporcionar un conjunto gratuito con los problemas de mayo de 2017 de la revista Magpi, hicieron una percepción en todos. Desafortunadamente, el mundo tiene más creadores y hackers, así como el número de copias de la revista son limitadas.
En este artículo, diseño de la versión de bricolaje del conjunto Aiy para todos los demás que deseen hablar con una caja de cartón. Me veo mejor el kit gratuito, separalo, lo ponga juntos, así como reemplácelo con la magia de bricolaje. Para hacer las cosas más convenientes, igualmente diseñé un recinto que puede imprimir 3D para totalizar el kit. empecemos.
El trasero
Un grito a mi amigo [Shabaz] en el Reino Unido por enviarme una copia del Magpi. El “Kit de voz de Google Aiy Empleos” (de aquí en adelante, entendido como el kit) contiene dos PCB, así como muchas otras cosas. El sombrero de voz que aparece como una tarjeta de sonido, en una dieta, tiene un número extremadamente restringido de componentes. Voy a detallar cada sección y dibujaré el esquema de KICAD para exactamente el mismo por uno
Servos
A partir del lado izquierdo, hay 6 conjuntos de encabezados de 3 clavijas que están etiquetados como ‘servos’. El servo administrativo significaba que se hace posible utilizar el módulo PWM a bordo de la frambuesa PI 3. Cada conjunto tiene un pasador de GPIO, 5V, así como la conexión GND. El PIN de GPIO no se vincula directamente con el encabezado de la frambuesa PI 3, sino, sino con 220HM actuales resistencias de limitación (etiquetadas como R1-R6).
Fuente de alimentación
Solo al sur de estos son dispositivos identificados Q5, así como Q6, que supongo que forman parte de un circuito de opción de suministro de energía. Corríeme si estoy equivocado, sin embargo, aquí está mi estimación. El trabajo es simple donde el P5 solo se enciende cuando la tensión de entrada es más alta que la 5V del puerto USB. Un comparador simple debe hacerlo, así que estoy utilizando el LM393 para referencia.
Edición: [RAIVSR] explicó que este podría ser el equivalente al “diodo ideal” de la frambuesa PI “.
Interfaces de comunicación
El norte de los encabezados ‘servo’ es J15 etiquetado I2C que vincula directamente al encabezado PI 3 de la frambuesa. Eso significa que estos no deben estar vinculados a nada con 5V Pull-Ups. No se utilizan en la pizarra, sin embargo, discutiremos más sobre esto más adelante. Justo al lado, es el SPI, así como los encabezados de 2 pines UART. Una vez más, este enlace directamente al encabezado primario, así como sirve solo como una ruptura.
El DAC, así como EEPROM.
Un poco más bajo, así como aparecimos en el circuito en caja con un QFN de 16 pines marcado ‘AKK BDQ’. Este es el MAXIM MAX98357A (PDF), que es un DAC de I2S con un amplificador de clase D. Dirige al altavoz directamente, ya que solo hay una salida, solo puede ser un estéreo mono o integrado. Todavía está bastante meciéndose para el presupuesto.
Lo fascinante es la existencia de JP6, lo que parece tener todas las conexiones I2S desde la máxima MAX98357A, así como algunas otras líneas, elija. Integrado con las dos VIAS que se enlazan con la segunda salida del altavoz, podría potencialmente en forma de una placa de desglose MAXIM MAX98357A en la parte superior para obtener sonido estéreo. Voy a hacer el esquema, así como para que sea descargable, así como si desea proporcionarle un disparo, déjame entender los resultados. Piénsalo en la tarea opcional.
Junto al DAC es un SSOP de 8 clavijas, que es un EEPROM de 24 C32 (PDF). No está vinculado a la encabezada I2C, hablé de más temprano, sin embargo, más bien a los PIN 27, así como 28 del encabezado PI 3 de la frambuesa. Según el blog de la Fundación Raspberry Pi.
“El EEPROM posee la información del fabricante de la Junta, la configuración de GPIO, así como una cosa llamada fragmento de ‘árbol de dispositivos’: básicamente una descripción del hardware conectado que permite a Linux inmediatamente tone los controladores necesarios”.
Por lo tanto, obtuvo una salsa adicional que hace que las cosas se vuelquen, así como pueda utilizar un buspireRate para descargar los datos, sin embargo, no estoy seguro de si Google lo considera una propiedad residencial o comercial intelectual, por lo que no lo haré. Tengo un suplente para que también se vea.
Conductores
Moviéndose hacia la derecha, descubrimos 4 encabezados marcados ‘conductores’. Estos son circuitos MOSFET para controlar toneladas como relés. [Shabaz] hizo una tarea fantástica que rastrear los elementos en esto, así como los 3 pines son GPIO, 5V, así como el conductor.
Los MOSFET pueden conducir toneladas de hasta 500 mA, cada una gracias a un Polyswitch, sin embargo, los GPIOS se ofrecen para utilizar directamente también. Las toneladas para ser impulsadas deben estar vinculadas entre los pasadores marcados ‘+’, así como ‘-‘. El Pin de encabezado a la izquierda es una ganancia directa ALos pasadores de cabecera de gpios de la frambuesa PI 3, así como los programas esquemáticos.
Utilice estos para vincular LEDs o gadgets similares para sugerir el funcionamiento de los relés o cargas.
Micrófono, así como conectores de botones.
Cosas más fascinantes está sucediendo en la parte superior derecha del lado derecho con un botón de empuje, así como dos conectores JST. El conector de 4 pines está diseñado para el botón PUSH que se encuentra en la parte superior del gabinete ensamblado. El pequeño botón montado en PCB está cableado en paralelo con el interruptor exterior, así como se puede utilizar en su ubicación mientras se configura, así como la prueba. El JST de 5 pines es para el conector del micrófono, así como tiene todos los pasadores I2S.
Los micrófonos
Por último, la placa de micrófono está marcada con 432 QDF21G, así como tiene conocimientos SPH0645LM4H MEMS Micrófonos digitales que hablan directamente I2S.
¡Eso es todo!
Que sobre las envuelve el trasero, así como toda la información necesaria para hacer su propio kit aiy. Los datos esquemáticos de KICAD se ofrecen para descargar desde GitHub, sin embargo, lo dejo con la parte divertida, que es el diseño, así como el enrutamiento.
He aquí algunos elementos de reflexión. Algunas partes se pueden omitir, así como el tamaño del sombrero, se puede contraer a la PI Zero Phat.
Por razones de simplicidad, utilizo la imagen del OS preconfigurada de la página de Google Aiy. Es un poco cortado de 900 MB, así como se puede descargar directamente desde Goolge (enorme archivo).
Añadir un botón de apagado
Lo más probable es que haya notado el pequeño botón de oro junto al enorme botón ecológico en la imagen de arriba, así como la primera parte del ejercicio. Es un botón de apagado, así como se agrega, ya que no quiero ssh en la caja cada vez que quiero apagarlo de forma segura.
Obtenga el botón que desea utilizar, así como agregar dos cables con encabezados femeninos. Este bit funciona incluso sin el sombrero de voz, así que siéntase libre de probarlo. A continuación, si tiene un sombrero de voz, agregue los encabezados masculinos a la parte I2C. Puede seleccionar cualquier tipo de otros pasadores, así como también funcionará. Vincule el botón a la SDA o GPIO 2, así como arrancar el PI 3 arriba.
Abra su editor de texto favorito, así como a copiar: pegar el cumplimiento de código en él.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dieciséis
17
18
19
20
21
22
23
#! / bin / python
# Script simple para apagar el PI de la frambuesa en la prensa de un botón.
# por Inderpreet Singh
Importar rpi.gpio como GPIO
Tiempo de importación
os de importación
# Utilizar los números de PIN de Broadcom SOC
# Configuración El PIN con las pulsaciones interiores habilitadas, así como el PIN en el modo de lectura.
Gpio.setmode (gpio.bcm)
Gpio.setup (02, gpio.in, pull_up_down = gpio.pud_up)
# Nuestra función sobre qué hacer cuando se presiona el botón
Def apagado (canal):
os.system (& quot; sudo apagado -h ahora & quot;)
# Agregue nuestra función para ejecutar cuando ocurra el evento presionado del botón
Gpio.add_event_detect (02, gpio.falling, callback = apagado, bouncetime = 2000)
# ¡Ahora espera!
Mientras que 1:
Time.Sleep (1)
Guarde los datos en su carpeta / Home / PI como cierre.py
En un tipo de terminal el cumplimiento con los comandos.
1
chmod + x apagado.py python apagado.py y amp;
Esto debería hacer que el guión se ejecute en el fondo. Si presiona el botón, la PI debe apagarse de inmediato. Puede seleccionar agregar un retraso al no cromentar la llamada telefónica de sueño en el código de ejemplo. Alternativamente, también puede modificar la GPIO reemplazando el número apropiado en el script de Python.
¡Frio! Ahora podemos apagar presionando un botón.
Añadir una tarjeta de ruido USB
El alternativo obvio al gorro de voz de Google Aiy es utilizar cualquier tipo de tarjetas de ruido USB que se ofrecen de una serie de fuentes. El método más fácil es simplemente enchufar uno así como configurar la aplicación de software para utilizar eso en lugar del sombrero Sin embargo, cuando se instalan dos controladores, los requisitos de los scripts de Python se deben reconfigurar para hacer lo que sea inconsútil.
Una vez que conecte la tarjeta de sonido, lo primero que debe hacer es inspeccionar si se reconoció o no. En la ventana Terminal, escriba:
1
aplay – l
‘APlay’ es utilizado por los scripts para hablar las respuestas para que pueda ver dos dispositivos de ruido. Tenga en cuenta que el ruido a bordo se ha desactivado desde la configuración de CONFIG.TXT (consulte la Referencia del árbol de gadget) y se puede habilitar si planea utilizar un micrófono USB en lugar de la tarjeta de ruido. La salida de Windows debe parecerse a la imagen de abajo.
Me gustaría configurar la tarjeta de ruido USB como el audio predeterminado, así como para que requiera personalizar el /etc/asound.conf.
1
sudo nano /etc/asound.conf
Elimine el material existente, así como reemplácelo con texto como se muestra a continuación. Aunque esto establece la entrada predeterminada, así como el gadget de salida al dispositivo USB, hay un paso más para hacer que las cosas funcionen. (Para salir de Nano, utilice CTRL + X, Y, Retorno)
A continuación, editamos a Audio.py Datos que manejan toda la funcionalidad de audio, así como la funcionalidad de grabación. Para eso, abra los datos en su editor de texto favorito; El mío es nano:
1
sudo nano /home/pi/voice-recognizer-raspi/src/audio.py
Desplácese hacia abajo hasta la parte queLos estados ‘Arecord’ ‘que está en la función __init__. Obviamente, hay un proceso dedicado que evita que la grabadora se ejecute como lo mostraré en el video. Por ahora, queremos editar los argumentos para asegurarse de que utilice la tarjeta USB para atrapar audio en lugar del sombrero de voz original. Un ajuste simple para utilizar ‘-d’, ‘sysdefault: la tarjeta = 1’ debe ser suficiente como se muestra en la imagen a continuación.
Una modificación similar es la necesidad de la función APlay un poco más lejos en el código.
Con eso, el hack está completo! Haga doble clic en ‘test_audio.py’ para inspeccionar si funciona el audio. Sin embargo, nos falta una parte del rompecabezas, ¡el botón ‘Escuchar’! Así que solo cable un botón entre GPIO23, así como el PIN de tierra adyacente, así como luego ejecute ‘src / main.py’ para comenzar a jugar con un bricolaje de Google Aiy.
Una demo
Una pequeña demostración de video del truco sugerido con una tarjeta de ruido USB, altavoz exterior, así como un micrófono económico.
Un recinto
El gabinete impreso 3D está diseñado en Fusion360, así como los datos de STL son parte del repositorio de GitHub. Puede utilizar el mismo gabinete exacto para una serie de trabajos, ya que hay sobresalientes para el PI de Raspberry, así como los puertos se sacan por conveniencia. Hay una gran cantidad de área dentro para agregar sombreros, así como circuitos adicionales.
Hice que el gabinete se separara del medio para asegurarse de que se vuelve fácil de acceder a los GPIOS. Todo lo que presionará en forma, incluida la tapa superior que tiene orificios para tres botones. Aunque tendría sentido tener botones más pequeños, ya que se espera que el resultado sea más duro que el cartón. Hay un amplio área para el orador si selecciona incluir uno que sea algo diferente.
No he tenido la posibilidad de imprimir uno, así como actualizaré esta página cuando haya algún tipo de desarrollo en el tema. Aquí está el renderizado del diseño.
Resumen
Google ya ha tenido sus APIs disponibles para el público, sin embargo, la imagen de Raspbian preconfigurada ayudará a una gran cantidad de personas a comenzar. He tratado de diseñar los fundamentos de la tarjeta de ruido, además de proporcionar los planes para una tarjeta equivalente si desea hacer una. Para otros, la elección de utilizar una tarjeta de ruido externa se explica, así como se demuestra, así como espero que influya en las personas para que se conviertan verdaderamente a tales proyectos. El mundo necesita más aiy, así como aquí, es su posibilidad de comenzar, entonces, ¿qué estás esperando? Consigue hacking.