El documento describe un decodificador de tonos DTMF llamado MT8870 que puede usarse para comunicar una tarjeta Pinguino con audio. Explica cómo funciona el decodificador, cómo montar el circuito y provee ejemplos de código para Pinguino y Processing para enviar y recibir tonos de audio.
0 calificaciones0% encontró este documento útil (0 votos)
24 vistas6 páginas
El documento describe un decodificador de tonos DTMF llamado MT8870 que puede usarse para comunicar una tarjeta Pinguino con audio. Explica cómo funciona el decodificador, cómo montar el circuito y provee ejemplos de código para Pinguino y Processing para enviar y recibir tonos de audio.
El documento describe un decodificador de tonos DTMF llamado MT8870 que puede usarse para comunicar una tarjeta Pinguino con audio. Explica cómo funciona el decodificador, cómo montar el circuito y provee ejemplos de código para Pinguino y Processing para enviar y recibir tonos de audio.
El documento describe un decodificador de tonos DTMF llamado MT8870 que puede usarse para comunicar una tarjeta Pinguino con audio. Explica cómo funciona el decodificador, cómo montar el circuito y provee ejemplos de código para Pinguino y Processing para enviar y recibir tonos de audio.
Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Está en la página 1de 6
DECODIFICADOR DE TONOS MT8870 PINGUINO
Muchas veces se nos
puede dificultar la comunicacin entre nuestras aplicaciones realizadas en el computador y pinguino, sobre si somos principiantes en el tema y no queremos lidiar con el puerto USB o el serial asncrono. s que por que no utilizar audio para comunicarnos con pinguino, y esto lo podemos hacer gracias al decodificador de tonos M!""#$. EL DECODIFICADOR MT8870 El MT8870 es un decodificador de tonos DTMF el cual da una salida de 4 bits por cada tono recibido, adem s cuenta con un terminal de estado que hace se coloca en alto cuando recibe un tono valido. Las salidas binarias se enumeran de Q1 a Q4 y el terminal de estado de tono valido se denomina como StD. TABLA DE TOO! " !AL#DA! $ada tono en el est ndar DTMF identifica un numero de % a & , los s mbolos ' ( y las letras A,B,$,D teniendo )* caracteres en total, as que las salidas binarias identificaran un tono o car cter en particular. La si+uiente tabla muestra las salidas correspondientes a cada tono , car cter. TONO CARACTER Q1 Q2 Q3 Q4 No Valio ! ! ! ! 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 " 0 1 0 1 # 0 1 1 0 7 0 1 1 1 8 1 0 0 0 $ 1 0 0 1 0 1 0 1 0 % 1 0 1 1 & 1 1 0 0 A 1 1 0 1 ' 1 1 1 0 C 1 1 1 1 D 0 0 0 0 En la tabla no aparece el terminal StD, este terminal tiene la si+uiente transici n di+ital cunado se env a un tono valido. o hay tono StD en ba-o. Tono valido StD pasa a alto. .inali/a tono StD pasa a ba-o. Es terminal se utili/a para indicar que se +enero un nuevo tono o incluso el mismo tono otra ve/, as que cada ve/ que re+istremos esta transici n en el terminal StD procedemos a capturar el dato binario Q10Q4 con nuestra tar-eta pin+uino. TOO! DT1. Los tonos DTMF 2Dual0tone multi0 frequency si+nalin+3, es un est ndar el cual asi+na un tono o sonido en particular para cada numero y s mbolo empleado en teclado de un tel fono , de manera que cuando marcamos un numero tambi n +eneramos un tono para este, por lo tanto podemos emplear un tel fono para el envi de comandos a pin+uino. La +ran mayor a de tel fonos celulares da soporte a este est ndar de tonos, as que tambi n podemos emplearlo incluso llamar al tel fono que ten+amos conectado a pin+uino y enviar tonos desde el que reali/amos la llamada. La forma de codificaci n DTMF esta conformada por dos tonos uno de frecuencias ba-as y otro de frecuencias altas para +enerar una se al compuesta. Esto se reali/a para que el circuito decodificador pueda separar con filtros pasa banda cada una de las frecuencias ba-as y altas que constituyen el tono. 4n se al DTMF con una duraci n de 4%ms debe ser considerado a v lid a. La duraci n de la se al no 1 http566m icropin+uino. blo+spot.com $O14#$A$# $O A4D#O 7or5 8ulio .abio De La $ru/ 9 , http566micropin+uino.blo+spot.com DECODIFICADOR DE TONOS MT8870 PINGUINO debe ser menor de :;ms. 4na se al DTMF v lida separada por una pausa de tiempo de al menos 4%ms debe ser detectada como dos s mbolos distintos. La si+uiente tabla muestra las frecuencias empleadas para +enerar los tonos. () 120$ 133# 1477 1#33 #$7 ) : ; A 770 4 < * B 8"2 = > & $ $41 % ' ( D MONTA*E El circuito empleado es el que su+iere el fabricante del inte+rado en su +u a , aqu empleamos unos l+, para la visuali/aci n de las salidas Q10Q4 pero estos pueden ser omitidos. El -l./ es de audio donde conectamos un terminal a tierra y el otro a cualquiera de las salidas de audio si el -l./ que tenemos es est reo como que se ilustra en el monta-e. PROGRAMAS 0 PINGUINO 7ara la prueba de estos pro+ramas procedemos a conectar nuestro circuito ya sea al tel fono a al computador. !i se hace la cone?i n al computador podemos descar+ar los tonos desde el si+uiente enlace http566@@@.dialabc.com6sound6+ene rate6 !e pueden reproducir con cualquier reproductor de audio. $OTAOLADO 4 LED $on este pro+rama controlaremos el tiempo de encendido y apa+ado de un led, en la 1i/.2a 3 se muestra el esquema de monta-e. 7ara este e-emplo no utili/aremos la se al StD3 2 http566m icropin+uino. blo+spot.com Para identificar el cable que va a tierra en el plug de audio procedemos a medir continuidad entre la primer divisin del plug y terminal donde soldaremos nuestro cable preferiblemente de color negra para identificacin. En la figura 2 se indica la conexiones. Figura 1 Montaje MT8870. Figura 2 Conexin Plug. Codigo1 Encendido Led (define 7#$)>.4<<% int B4,B;,B:,B%,DatoC int AetardoC void setup23D pin1ode2%,O4T74T3C pin1ode2)),#74T3C pin1ode2):,#74T3C pin1ode2:),#74T3C pin1ode2::,#74T3C E DECODIFICADOR DE TONOS MT8870 PINGUINO En el e-emplo capturamos el valor binario de las salidas del decodificador y las +uardamos en las variables Q44 Q34 Q2 y Q1, lue+o procedemos a convertir este dato de 4 bits en su equivalente decimal y lo +uardamos en la variable Dato. La variable R+ta2o multiplica el dato por 100 para hacer visible el encendido y apa+ado del led. !E$4E$#A LED! $on este pro+rama enviaremos comandos con el decodificador de tonos para hacer diferentes secuencias en los leds. 3 http566m icropin+uino. blo+spot.com void loop23D B4Fdi+italAead2))3C B;Fdi+italAead2):3C B:Fdi+italAead2:)3C B)Fdi+italAead2::3C DatoFB4'>GB;'4GB:':GB)')C AetardoFDato')%%C di+italHrite2%,I#9I3C delay2Aetardo3C di+italHrite2%,LOH3C delay2Aetardo3C E Figura 3 Montaje MT8870 Pinguino. Figura Montaje MT8870 Pinguino Control !e Led". Codigo2 Encendido Led (define 7#$)>.4<<% int B4,B;,B:,B%,DatoC int iC void setup23D for2iF%CiJ4CiGG3D pin1ode2i,O4T74T3C E pin1ode2)),#74T3C pin1ode2):,#74T3C pin1ode2:),#74T3C pin1ode2::,#74T3C E DECODIFICADOR DE TONOS MT8870 PINGUINO 7ara mas comandos podemos utili/ar la sentencia de control ,5i67t ya que en la variable Dato obtendremos los valores decimales de % a )*, en otras palabras tendremos hasta )* opciones diferentes y combinando esta aplicaci n con funciones tendr amos diferentes secuencias de iluminaci n en los leds . PROGRAMAS 0 PROCESSING 4tili/ando la capacidad de 7rocessin+ para +raficar y reproducir audio en la elaboraci n de un pro+rama que envi tonos a este sistema con pin+uino. 7ara la reali/aci n de este pro+rama debemos tener en cuenta5 9uardar los archivos de audio en la carpeta data de nuestro pro+rama. Los archivos de audio se pueden descar+ar del si+uiente enlace http566@@@.dialabc.com6sou nd6+enerate6 Tener pro+ramada la tar-eta pin+uino con al+unos de los e-emplos anteriores. El pro+rama propuesto +enera los tonos presionando las teclas del % , &, las teclas a,b,c,d y las teclas / y ? para el tono del ' y (. La librer a a utili/ar sera la librer a 8i9i8 que es la librer a de audio que incluye processin+ por defecto. 7ara este e-emplo los archivos de audio son cortos en duraci n y por lo tanto declararemos las variables que vamos a utili/ar para car+ar el audio y los sonidos de efectos, utili/ando la definici n Audio!ample. En este e-emplo no hay c di+o dentro de la funci n dra@, para la detecci n de una tecla presionada se emplea la funci n :+;P2+,,+23 que se e-ecuta cada ve/ que se presiona una tecla cualquiera, dentro de esta funciones declaramos varios condicionales para detectar cual tecla fue presionada y reproducir el archivo de audio correspondiente al tono deseado para esa tecla. La ultima funci n empleada se llama ,to- y sirve para parar los recursos del sistema utili/ados por la librer a minin en la reproducci n de audio. 4 http566m icropin+uino. blo+spot.com void loop23D B4Fdi+italAead2))3C B;Fdi+italAead2):3C B:Fdi+italAead2:)3C B)Fdi+italAead2::3C DatoFB4'>GB;'4GB:':GB)')C if2DatoK=3D 7OATBF%C delay2)%%%3C 7OATBF:<<C delay2)%%%3C EelseD 7OATBF;C delay2)%%%3C 7OATBF)%C delay2)%%%3C E E s@icht2Dato3D case %5 7OATB F )C delay2)%%%3C 7OATB F %C delay2)%%%3C breaLC case )5 7OATB F )<C delay2)%%%3C 7OATB F %C delay2)%%%3C breaLC case :5 7OATB F ;C delay2)%%%3C 7OATB F ):C delay2)%%%3C breaLC case ;5 7OATB F <C delay2)%%%3C 7OATB F )%C delay2)%%%3C breaLC default5 7OATB F %C E E Codigo3 En#$o co%ando" (define 7#$)>.4<<% int B4,B;,B:,B%,DatoC int iC void setup23D for2iF%CiJ4CiGG3D pin1ode2i,O4T74T3C E pin1ode2)),#74T3C pin1ode2):,#74T3C pin1ode2:),#74T3C pin1ode2::,#74T3C E void loop23D B4Fdi+italAead2))3C B;Fdi+italAead2):3C B:Fdi+italAead2:)3C B)Fdi+italAead2::3C DatoFB4'>GB;'4GB:':GB)')C DECODIFICADOR DE TONOS MT8870 PINGUINO 5 http566m icropin+uino. blo+spot.com Codigo Progra%a En Proce""ing. import ddf.minim.*; AudioSample asTono0; AudioSample asTono1; AudioSample asTono2; AudioSample asTono3; AudioSample asTono4; AudioSample asTono5; AudioSample asTono6; AudioSample asTono7; AudioSample asTono8; AudioSample asTono9; AudioSample asTonoAst; AudioSample asTonoum; AudioSample asTonoA; AudioSample asTono!; AudioSample asTono"; AudioSample asTono#; $inim audio; %oid setup&'( audio ) ne* $inim&t+is'; asTono0 ) audio.loadSample&,tono0.*a%,'; asTono1 ) audio.loadSample&,tono1.*a%,'; asTono2 ) audio.loadSample&,tono2.*a%,'; asTono3 ) audio.loadSample&,tono3.*a%,'; asTono4 ) audio.loadSample&,tono4.*a%,'; asTono5 ) audio.loadSample&,tono5.*a%,'; asTono6 ) audio.loadSample&,tono6.*a%,'; asTono7 ) audio.loadSample&,tono7.*a%,'; asTono8 ) audio.loadSample&,tono8.*a%,'; asTono9 ) audio.loadSample&,tono9.*a%,'; asTonoAst ) audio.loadSample&,tonoAst.*a%,'; asTonoum ) audio.loadSample&,tonoum.*a%,'; asTonoA ) audio.loadSample&,tonoA.*a%,'; asTono! ) audio.loadSample&,tono!.*a%,'; asTono" ) audio.loadSample&,tono".*a%,'; asTono# ) audio.loadSample&,tono#.*a%,'; - %oid dra*&'( - %oid .e/0ressed&' ( if &.e/ )) 101 ' asTono0.tri22er&'; if &.e/ )) 111 ' asTono1.tri22er&'; if &.e/ )) 121 ' asTono2.tri22er&'; if &.e/ )) 131 ' asTono3.tri22er&'; DECODIFICADOR DE TONOS MT8870 PINGUINO 6 http566m icropin+uino. blo+spot.com if &.e/ )) 141 ' asTono4.tri22er&'; if &.e/ )) 151 ' asTono5.tri22er&'; if &.e/ )) 161 ' asTono6.tri22er&'; if &.e/ )) 171 ' asTono7.tri22er&'; if &.e/ )) 181 ' asTono8.tri22er&'; if &.e/ )) 191 ' asTono9.tri22er&'; if &.e/ )) 1a1 ' asTonoA.tri22er&'; if &.e/ )) 131 ' asTono!.tri22er&'; if &.e/ )) 141 ' asTono".tri22er&'; if &.e/ )) 1d1 ' asTono#.tri22er&'; if &.e/ )) 151 ' asTonoum.tri22er&'; if &.e/ )) 161 ' asTonoAst.tri22er&'; - %oid stop&'( asTono0.4lose&'; asTono1.4lose&'; asTono2.4lose&'; asTono3.4lose&'; asTono4.4lose&'; asTono5.4lose&'; asTono6.4lose&'; asTono7.4lose&'; asTono8.4lose&'; asTono9.4lose&'; asTonoA.4lose&'; asTono!.4lose&'; asTono".4lose&'; asTono#.4lose&'; asTonoAst.4lose&'; asTonoum.4lose&'; audio.stop&'; super.stop&'; -