Siguenos en ...

Google+facebooktwitter

youtubepinterest RSS aquihayapuntes

Últimos Tutoriales


Licencia

Creative Commons

 

Todo el contenido de este sitio está bajo una licencia de Creative Commons

 

Comandar un PIC a través de la voz

EasyVREn este tutorial voy a describir cuales han sido mis experiencias con el módulo EasyVR y su conexión a un PIC. El objetivo era poder interactuar con el Microcontrolador a través de la voz y establecer una comunicación bidireccional con él, de tal manera que las ordenes se las mandáramos al PIC a través de un micrófono y el nos contestará por medio de un altavoz, un objetivo nada novedoso a estas alturas ya que hay bastantes ejemplos en la red que tratan sobre el uso de este módulo pero la mayoría de ellos están basados en la plataforma Arduino, aquí se tratará de hacer un ejemplo en C utilizando el compilador de CCS y basándonos en la documentación del fabricante.

 

Características principales del módulo EasyVR  

 

  • 26 Voces y comandos pre-grabados de fábrica SI (Speaker Independent) en seis idiomas diferentes: inglés, italiano, alemán, francés, español y japonés.
  • Soporta hasta 32 comandos con su voz asociada creados por el usuario y definidos en cualquier idioma SD (Speaker Dependent).
  • Incluye una aplicación de escritorio para Windows, desde donde se le puede programar fácilmente los diferentes comandos y voces al módulo.
  • El módulo se puede conectar a cualquier host que disponga de una UART para la comunicación serie. 
  • La alimentación del módulo es de 3.5 a 5V.
  • Dispone de un conjunto de comandos para interactuar fácilmente con el módulo a través del puerto serie, bien por medio de la aplicación de escritorio o bien a través de cualquier Microcontrolador que disponga de UART.
  • Tres pines de E/S digitales a niveles TTL de 3V DC (IO1, IO2, IO3).
  • Una salida de audio (PWM) para la conexión con un altavoz de 8 Ohmios.
  • Capacidad de reproducir hasta 9 minutos de sonidos y/o voces. 

 

Dimensiones y asignación de pines

Dimensiones del Módulo y pinout

 Esquema y conexión del circuito

 

Esquema de conexión

 

Comentario del esquema: esta demo conecta el módulo EasyVR a un PIC16f877, el circuito recibe las instrucciones a través de la voz por medio de un micrófono conectado al EasyVR y el módulo responde a los comandos a través de un altavoz de 8 Ohmios conectado al módulo por medio del conector J2. El módulo se comunica con el PIC a través de una comunicación serie por medio de la UART. Pasemos a describir de forma más detallada los elementos del circuito.
 

  • El micrófono es del tipo omnidireccional es decir capta sonidos en un ángulo de 360º y en un margen de frecuencias que va desde los 100 Hz a los 20 KHz. Viene incluido con el módulo por lo que solo nos tenemos que preocupar de conectarlo al conector J3 del EasyVR.
  • El altavoz (no incluido) vale cualquiera que tenga una impedancia de 8 Ohmios, se conecta al conector J2 que es la salida de audio del módulo. Hay que tener cuidado con la impedancia del altavoz, el conectar un altavoz con menor impedancia puede dañar la salida de audio o el módulo entero.
  • El módulo dispone de un módulo de comunicación serie asíncrona (UART) para comunicarse con otros dispositivos como un Microcontrolador o con un PC a través de un puerto COM y un adaptador de niveles MAX 232 o MAX 2323 ya que el rango de tensión del módulo va desde 3.3V a 5V DC. La conexión es cruzada, es decir el pin ETX del módulo EasyVr va conectado al pin RX del PIC y el pin ERX del módulo al pin TX del PIC. La configuración de la UART del módulo es la siguiente:  
    • Velocidad: 9600 (defecto), 19200, 38700, 57600, 115200  
    • Trama: 8 bits de datos, 1 bit de parada, sin paridad y sin control de flujo.
  • La demo dispone de un conmutador para cambiar la conexión serie del PIC al PC y viceversa, muy útil para no tener que estar cambiando las conexiones. 
  • Las salidas digitales que encenderán o apagaran las bombillas se hace a través de los pines RB1 y RB2 del PIC. Los transistores y los relés hacen de adaptadores de tensión ya que las bombillas trabajan a 220 V AC.
  • Del conector J4 del EasyVR solo se utiliza el pin /XM para poder actualizar la tabla de sonidos que reside en la memoria Flash del módulo. El EasyVR dispone de un bootloader gestionado por hardware, cuando la patilla /XM se encuentre a nivel alto el dispositivo entra en modo programación y permite actualizar la tabla de sonidos a través de la aplicación de escritorio. La patilla /XM se conecta a través de un jumper y una resistencia pull-up, el valor de esta resistencia depende de la tensión de alimentación aplicada al módulo que como hemos comentado puede variar entre 3.5 y 5V, internamente el módulo tiene conectada a la patilla /XM otra resistencia (pull-down) según se muestra en la figura de abajo:

 

Conexión modo programación

Por tanto si en /XM tenemos que tener una tensión de 3V y aplicamos una tensión de alimentación de 5V, a partir de la fórmula del divisor de tensión calculamos el valor de R:

 

Fórmula divisor de tensión

Resultado Divisor de Tensión

Nota: En la práctica a mi me ha ido bien con una resistencia de 1K.

 

Una foto de la demo montada

 

Montaje de la demo en la Pro-board

 

 

© 2007-2017 AquiHayapuntes.com