Вы находитесь на странице: 1из 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&';
-

Вам также может понравиться