Realmente estoy empezando a amar a mi Arduino últimamente; habiendo pasado por los tutoriales básicos e incluso hecho un cubo LED, estaba listo para abordar algo mucho más complejo. Afortunadamente, el control de voz de un proyecto Arduino no es tan complejo como pensaba, así que aquí hay 3 enfoques diferentes que puedes tomar.
Uso de OSX Automator y elementos hablables
Una forma en que podemos hacer esto es utilizar las utilidades de comandos de voz existentes integradas en OSX; la configuración de comandos personalizados para desencadenar acciones de Automator es simple. (Si no está familiarizado con Automator, descargue nuestra guía PDF gratuita para automatizar su Mac).
En el lado del código Arduino, estamos haciendo uso de un búfer String detallado en este hilo del foro Arduino, esto nos permitió buscar palabras exactas en la comunicación serial, sin esto, encontré el tipo de conversiones entre números, bytes y cadenas ser problemático Aquí está el código completo de Arduino para escuchar comandos en serie, aunque deberá agregar sus propios comandos y hardware para controlar realmente los dispositivos, ya que eso está fuera del alcance de este tutorial de proyectos de Arduino. Si está utilizando relés, recuerde que deben ser capaces de manejar 120-240 VAC. Además, si eres nuevo en todo esto, asegúrate primero de consultar nuestra guía Arduino para principiantes.
A continuación, descargue esta utilidad Arduino-serial que nos permite comunicarnos directamente con Arduino desde la línea de comandos o el script de shell. Coloque esto en la raíz de su directorio de usuario, luego abra una sesión de Terminal y escriba:
hacer arduino-serial
para compilar el paquete para su sistema.
El uso de esta utilidad es bastante simple, pero para nuestros propósitos, comience escribiendo
ls /dev/tty.*
para averiguar en qué puerto está tu Arduino (el USB). Luego, para enviar un comando, use:
./arduino-serial -b 9600 -p /dev/tty.usbmodemfd13411 -s lightsOn
Reemplace /dev/tty.usb~ con el nombre exacto que encontró para su puerto USB conectado al Arduino. Consulte la página original para obtener más ejemplos de uso, incluido obtener un valor de retorno, pero esto funcionará por el momento.
Una cosa que encontré es que tuve que "patear" el Arduino al enviar una orden usando el Arduino Serial Monitor primero, luego todo funcionó bien. Si alguien sabe por qué es este el caso, me encantaría escucharlo.
A continuación, abra Automator y cree una nueva Aplicación . Busque la acción Ejecutar un script de Shell, agréguela y pegue el comando serie para encender las luces.
Guárdalo en la carpeta library / speech / Speakable Items con las palabras con las que deseas activar la acción, en mi caso "luces encendidas".
Luego, habilite comandos hablables desde el panel de preferencias de Accesibilidad .
Este tutorial de 2009 Cómo utilizar los comandos de voz en su Mac Cómo utilizar los comandos de voz en su Mac Leer más sigue siendo relevante, pero básicamente desea habilitar los Elementos hablados de manera global .
Aquí hay una demostración de que todo funciona.
Easy VR Shield (Hardware)
EasyVR es un escudo de hardware adicional que primero codifica sus muestras de voz pregrabadas y luego utiliza una solución basada en hardware para hacer coincidir patrones. La configuración es un poco complicada, y cada comando solo responde a una sola huella de voz, pero esta es la opción más completa si desea que el proyecto sea independiente de la computadora. El EasyVR Shield cuesta £ 35 de CoolComponents en el Reino Unido, o $ 50 de SparkFun en los Estados Unidos. Aquí hay una demostración del escudo en acción junto con el proceso de codificación:
SiriProxy Via Ruby
Si tiene un iPhone habilitado para Siri que ha sido liberado, Siri Proxy es una excelente manera de aprovechar las capacidades de reconocimiento de voz de su teléfono. SiriProxy es una aplicación de Ruby que escucha los comandos que se reconocen y se envían a los servidores de Apple; agregar una forma de comunicarse con Arduino, y tiene SiriProxy-Arduino. El único inconveniente es que debe cargar un boceto especial al Arduino que implementa una API de Ruby, por lo que deberá ajustarlo o codificar todo en Ruby en el lado de la computadora.
Ahí lo tienes: 3 formas únicas de controlar cualquier proyecto Arduino solo con tu voz. ¿Probarás la voz controlando tus luces? ¿Crees que podrías hacer uso de estas ideas en otro proyecto? Háganos saber en los comentarios!