INTRODUCCIÓN ............................................................................................................... 3 MARCO TEÓRICO ............................................................................................................ 4 ALTAVOZ ...................................................................................................................... 4 CARACTERÍSTICAS DE LOS ALTAVOCES ............................................................. 4 POTENCIA ................................................................................................................. 4 SECURE DIGITAL (SD) ................................................................................................. 5 DFPLAYER MINI ........................................................................................................... 6 ESPECIFICACIÓN ..................................................................................................... 6 SOLICITUD ................................................................................................................ 6 MAPA DE PIN ............................................................................................................ 7 MODO DE TRABAJO ................................................................................................ 8 DIAGRAMA DE CONEXIÓN .................................................................................... 12 MICROCONTROLADOR MSP430G2553 .................................................................... 13 DATASHEET MSP430g2553 ................................................................................... 13 CARACTERÍSTICAS PRINCIPALES DEL MSP430g2553 ...................................... 14 CONEXIONES I/O EXTERNAS DEL MSP430g2553 ............................................... 14 DESCRIPCIÓN DEL PROYECTO ................................................................................... 15 ESQUEMA DE CONEXIÓN DEL PROYECTO ............................................................ 17 CÓDIGO FUENTE DE LA PROGRAMACIÓN PARA EL MICROCONTROLADOR .... 18 CONCLUSIÓN................................................................................................................. 22 BIBLIOGRAFÍA ............................................................................................................... 23 EVIDENCIAS ................................................................................................................... 24
2
El siguiente proyecto tratamos acerca de uno de los dispositivos electrónicos de gran utilidad y que están presentes en la vida diaria de este siglo que son los altavoces. Es bueno por tanto conocerlos un poco más de cerca, su arquitectura, cómo se comporta, por qué lo hace y cómo lo hace (la reproducción de algún archivo de audio). Con poca inversión de dinero y lo mejor del proyecto ayudando al medio ambiente a salvaguardarlo, tenemos como meta de lograr esto, ya que los altavoces más comerciales funcionan con corriente directa y eso hace que el litio de esta batería que se carga en promedio cada 6 horas afecta al medio ambiente al desechar estos reproductores de audio.
Todo esto podemos realizar gracias a los recursos electrónicos que utilizaremos más adelante y veremos cada uno de ellos, por ejemplo; Modulo DFPlayer Mini SKU: DFR0299 MICROCONTROLADOR MSP430G2553 de TEXAS INSTRUMENTS PROTOBOARD blanco de200 puntos.
3
ALTAVOZ Es un transductor electroacústico utilizado para la reproducción de sonido. El sonido se transmite mediante ondas sonoras, en este caso, a través del aire. El oído capta estas ondas y las transforma en impulsos nerviosos que llegan al cerebro y se transforman en señales que se identifican con cosas como música, sonidos y onomatopeyas. Si se dispone de una grabación de voz, de música en soporte magnético o digital, o si se recibe estas señales por radio, se dispondrá a la salida del aparato de señales eléctricas que deben ser convertidas en sonidos; para ello se utiliza el altavoz.
CARACTERÍSTICAS DE LOS ALTAVOCES Las principales características de un altavoz son:
Respuesta en frecuencia. Impedancia. Potencia admitida. Sensibilidad. Rendimiento. Distorsión. Direccionalidad.
POTENCIA Hace referencia a la potencia eléctrica que admite el altavoz (no a la potencia acústica). Es la cantidad de energía (en vatios) que se puede introducir en el altavoz antes de que éste distorsione en exceso o de que pueda sufrir daños. Dentro de la potencia se diferencia entre potencia nominal y potencia admisible.
4
SECURE DIGITAL (SD) Es un dispositivo en formato de tarjeta de memoria para dispositivos portátiles, por ejemplo: cámaras digitales (fotográficas o videograbadoras), teléfonos móviles, computadoras portátiles y videoconsolas (de sobremesa y portátiles), Tabletas y entre muchos otros. Inicialmente compitió y coexistió con otros formatos, y actualmente es uno de los formatos más comunes y utilizados en dispositivos portátiles y en computadoras y reproductores de música portátiles o domésticos, destacando principalmente por la velocidad a diferencia de sus predecesores. Los tres tamaños son:
SD estándar original,
miniSD,
microSD.
Este tamaño microSD es muy utilizado en tabletas y teléfonos móviles. Por medio de adaptadores pasivos eléctricamente es posible utilizar tarjetas en ranuras más grandes. Los dispositivos con ranuras SD pueden utilizar tarjetas MMC, que son más finas, pero las tarjetas SD no caben en las ranuras MMC. Asimismo, se pueden utilizar en las ranuras de CompactFlash o de PC Card con un adaptador. Sus variantes miniSD y microSD se pueden utilizar, también directamente, en ranuras SD mediante un adaptador. Las normales tienen forma de ם. Hay algunas tarjetas SD que tienen un conector USB integrado con un doble propósito, y hay lectores que permiten que las tarjetas SD sean accesibles por medio de muchos puertos de conectividad como USB, FireWire y el puerto paralelo común. Las tarjetas SD también son accesibles mediante una disquetera usando un adaptador FlashPath.
5
DFPLAYER MINI Es un módulo MP3 de bajo precio y con una salida simplificada directamente al altavoz. El módulo se puede usar como un módulo independiente con batería, altavoz y botones pulsadores adjuntos, o se puede usar en combinación con un Arduino UNO o cualquier otro con capacidades RX / TX.
ESPECIFICACIÓN
Frecuencias de muestreo admitidas (kHz): 8 / 11.025 / 12/16 / 22.05 / 24/32 / 44.1 / 48
Salida DAC de 24 bits, soporte para rango dinámico 90dB, soporte SNR 85dB
totalmente compatible con FAT16, sistema de archivos FAT32, soporte máximo 32G de la tarjeta TF, soporte 32G del disco U, NORFLASH de 64M bytes
una variedad de modos de control, modo de control de E / S, modo de serie, modo de control de botón AD
Publicidad de la función de espera de sonido, la música puede ser suspendida. Cuando termine la publicidad en la música, sigue tocando.
datos de audio ordenados por carpeta, admite hasta 100 carpetas, cada carpeta puede contener hasta 255 canciones
Volumen ajustable de 30 niveles, ecualizador de 6 niveles ajustable
SOLICITUD
Transmisión de voz de navegación del coche; Inspectores de transporte vial, estaciones de peaje de voz; Estación de tren, inspección de seguridad de autobuses mensajes de voz; Electricidad, comunicaciones, avisos de voz en las salas de negocios financieros; El vehículo que entra y sale del canal verifica que el mensaje de voz aparezca; Los mensajes de voz del canal de control de fronteras de seguridad pública; Alarma de voz multicanal o voz de guía de funcionamiento del equipo; La voz segura de conducción de coche eléctrico avisos; Alarma de falla de equipo electromecánico; Indicadores de voz de alarma de incendio; El equipo de transmisión automática, transmisión regular.
6
MAPA DE PIN
7
MODO DE TRABAJO MODO SERIE Compatibilidad con el modo de comunicación en serie asíncrono mediante comandos de envío en serie de la PC Estándar de comunicación: 9600 bps Bits de datos: 1 Comprobación: ninguno Control de flujo: ninguno
Descripción de la instrucción
8
Control serial
9
Serial query cmd
10
MODO AD KEY Usamos las teclas del módulo AD, en lugar del método tradicional de conexión de teclado matricial, es aprovechar la funcionalidad MCU AD cada vez más poderosa, la configuración predeterminada de nuestro módulo 2 puerto AD, la distribución de resistencia de 20 teclas.
MODO I / O Aquí viene la forma más sencilla de usar este módulo
nota: la pulsación breve significa pre / siguiente, y la pulsación prolongada significa vol-, vol +
11
DIAGRAMA DE CONEXIÓN
Nota: para un uso simple, el diagrama superior está listo, pero si encuentra que el ruido es bastante alto, entonces puede conectar una resistencia de 1 K al pin TX.
12
MICROCONTROLADOR MSP430G2553 Los microcontroladores de la serie MSP430 (MSP quiere decir Mixed-Signal Processor) de Texas Instruments son procesadores de señal combinada de 16 bits, basados en la arquitectura RISC (Reduced Instruction Set Computer o Computador de Conjuto de Instrucciones Reducidad), diseñados para tener un consumo ultra bajo. Además, disponen de una cantidad de periféricos muy variado para realizar proyectos muy diversos. Por esta razón, y por ser un componente bastante económico, se ha decidido utilizar este microcontrolador en nuestro proyecto.
DATASHEET MSP430g2553
13
CARACTERÍSTICAS PRINCIPALES DEL MSP430g2553
Velocidad del reloj: configurable entre 1 y 16 MHz.
Memoria FLASH: 16KB
Memoria SRAM:512B
Memoria NVM:56KB
Memoria SRAM: 4KB
Pines GPIO: 24 como máximo
2 temporizadores
Convertidor ADC de 8 canales
UART
12C
SPI
CONEXIONES I/O EXTERNAS DEL MSP430g2553 El microcontrolador MSP430g2553 posee multitud de conexiones de entrada/salida, o I/O, para poder conectar diversos dispositivos a él. En la siguiente fotografía se observa cómo la placa de desarrollo, o LaunchPad, conecta dichas entradas y salidas a unos pines laterales desde donde pueden hacer conexiones más fácilmente:
14
Para la realización de este proyecto utilizamos diferentes materiales, los cuales son: 1 Protoboard color blanco de 200 puntos 1 Microcontrolador Msp430g2553 LaunchPad de Texas Instruments 1 Módulo de microSD (DFPLAYER MINI) 2 Altavoces 1 Cautín 1 paquete de cables Jumpers Macho/Hembra 1 paquete de cables Jumpers Macho/Macho ½ metro de cable de corriente Estaño Grasa de soldar 1 Botón pulsador
Nuestro proyecto trata de poder transmitir canciones grabadas de nuestro microSD con la extensión mp3, nuestro plus para el proyecto es implementarlo en el microcontrolador para que podamos mandar instrucciones programadas y así no utilizar los controles que trae por default el módulo de microSD. Una vez programados todas las tramas de las canciones para que 12 de 24 pines posibles de usar en el microcontrolador sean utilizados por medio el botón pulsador y así cambiar de canciones específicas, poder bajar y subir volumen de la música que este reproduciendo en el momento, también tenemos la capacidad y gracias los comandos del módulo SD que podamos mandar una trama de resetear el modulo por si en alguna ocasión se nos atora que es muy difícil, pero puede suceder.
15
Para que nosotros podamos especificar cada una de estas tramas, el datasheet del módulo nos dice que comandos utilizar, para que después de saber que queremos hacer en específico hacer un checksum de los hexadecimales tomados, ejemplo; //
7E
FF
06
0F
00
01
01
// 0
->
7E is start code
// 1
->
FF is version
// 2
->
06 is length
// 3 ->
0F is command
// 4
00 is no receive
->
// 5~6 ->
01 01 is argument
// 7~8
->
// 9
EF is end code
->
XX
XX
EF
checksum = 0 - (FF+06+0F+00+01+01)
Lo más resaltado es lo más importante para hacer ya que depende de esos dos hexadecimales mandar la trama correcta. Ya que tenemos todos entendidos ese aspecto utilizamos una herramienta para programar el micro; utilizamos CCS (CODE COMPOSER STUDIO), allí donde nosotros fuimos capaces de programar cada una de las funciones para mandar instrucciones directas al módulo microSD (DFPLAYER MINI), cabe aclarar que puede aceptar hasta 255 canciones. Para alimentar nuestro microcontrolador y así hacer puente con el proto y alimentarlo también, utilizamos corriente directa con un Dock de carga de teléfono y nos dio los voltajes que utilizamos.
16
ESQUEMA DE CONEXIÓN DEL PROYECTO
17
CÓDIGO FUENTE DE LA PROGRAMACIÓN PARA EL MICROCONTROLADOR #include <msp430.h>
int int int int int int int int int int int int int int
const const const const const const const const const const const const const const
MSJ1[]={0x7E,0xFF,0x06,0x03,0x01,0x00,0x01,0xFE,0xF6,0xEF,13,10}; MSJ2[]={0x7E,0xFF,0x06,0x03,0x01,0x00,0x02,0xFE,0xF5,0xEF,13,10}; MSJ3[]={0x7E,0xFF,0x06,0x03,0x01,0x00,0x03,0xFE,0xF4,0xEF,13,10}; MSJ4[]={0x7E,0xFF,0x06,0x03,0x01,0x00,0x04,0xFE,0xF3,0xEF,13,10}; MSJ5[]={0x7E,0xFF,0x06,0x03,0x01,0x00,0x05,0xFE,0xF2,0xEF,13,10}; MSJ6[]={0x7E,0xFF,0x06,0x03,0x01,0x00,0x06,0xFE,0xF1,0xEF,13,10}; MSJ7[]={0x7E,0xFF,0x06,0x03,0x01,0x00,0x07,0xFE,0xF0,0xEF,13,10}; MSJ8[]={0x7E,0xFF,0x06,0x03,0x01,0x00,0x08,0xFE,0xEF,0xEF,13,10}; MSJ9[]={0x7E,0xFF,0x06,0x03,0x01,0x00,0x09,0xFE,0xEE,0xEF,13,10}; MSJ10[]={0x7E,0xFF,0x06,0x0C,0x01,0x00,0x04,0xFE,0xEA,0xEF,13,10}; MSJ11[]={0x7E,0xFF,0x06,0x05,0x01,0x00,0x04,0xFE,0xF1,0xEF,13,10}; MSJ12[]={0x7E,0xFF,0x06,0x04,0x01,0x00,0x04,0xFE,0xF2,0xEF,13,10};/* MSJ11[]={0x7E,0xFF,0x06,0x05,0x01,0x00,0x00,0xFE,0xF5,0xEF,13,10}; MSJ12[]={0x7E,0xFF,0x06,0x04,0x01,0x00,0x00,0xFE,0xF6,0xEF,13,10};*/
int i,x,y,z; int main(void) { WDTCTL = WDTPW + WDTHOLD; if (CALBC1_1MHZ==0xFF) { while(1); } DCOCTL = 0; BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ;
// Stop watchdog timer // If calibration constant erased // do not load, trap CPU!! // Select lowest DCOx and MODx settings // Set DCO
//P1DIR |= BIT0; // Set P1.0 to output direction //configuracion del pin3 P1IE |= BIT0 + BIT3 + BIT4 + BIT5 + BIT6 + BIT7; interrupt enabled P1IES |= BIT0 + BIT3 + BIT4 + BIT5 + BIT6 + BIT7; Hi/lo edge P1REN |= BIT0 + BIT3 + BIT4 + BIT5 + BIT6 + BIT7; Pull Up on SW2 (P1.3) P1IFG &= ~(BIT0 + BIT3 + BIT4 + BIT5 + BIT6 + BIT7); IFG cleared P1OUT |= BIT0 + BIT3 + BIT4 + BIT5 + BIT6 + BIT7; //P1DIR |= BIT0; // Set P2.0 to output direction //configuracion del pin3 P2IE |= BIT0 + BIT1 + BIT2+ BIT3+ BIT4 + BIT5; interrupt enabled P2IES |= BIT0 + BIT1 + BIT2+ BIT3+ BIT4 + BIT5; Hi/lo edge P2REN |= BIT0 + BIT1 + BIT2+ BIT3+ BIT4 + BIT5; Pull Up on SW2 (P1.3) P2IFG &= ~(BIT0 + BIT1 + BIT2+ BIT3+ BIT4 + BIT5); cleared P2OUT |= BIT0 + BIT1 + BIT2+ BIT3+ BIT4 + BIT5;
// P1.3 // P1.3 // Enable // P1.3
// P2. // P2. // Enable // P2.IFG
18
//BIT3 on Port 1 can be used as Switch2 P1SEL = BIT1 + BIT2 ; P1SEL2 = BIT1 + BIT2 ; UCA0CTL1 |= UCSSEL_2; UCA0BR0 = 104; UCA0BR1 = 0; UCA0MCTL = UCBRS0; UCA0CTL1 &= ~UCSWRST; IE2 |= UCA0RXIE; __bis_SR_register(LPM4_bits + GIE);
// P1.1 = RXD, P1.2=TXD // P1.1 = RXD, P1.2=TXD // // // // // //
SMCLK 1MHz 9600 1MHz 9600 Modulation UCBRSx = 1 **Initialize USCI state machine** Enable USCI_A0 RX interrupt
// Enter LPM4 w/interrupt
} void CambiarC1(){ for(i=0;i<12;i++){ while (!(IFG2&UCA0TXIFG)); UCA0TXBUF = MSJ1[i]; } } void CambiarC2(){ for(i=0;i<12;i++){ while (!(IFG2&UCA0TXIFG)); UCA0TXBUF = MSJ2[i]; } } void CambiarC3(){ for(i=0;i<12;i++){ while (!(IFG2&UCA0TXIFG)); UCA0TXBUF = MSJ3[i]; } } void CambiarC4(){ for(i=0;i<12;i++){ while (!(IFG2&UCA0TXIFG)); UCA0TXBUF = MSJ4[i]; } } void CambiarC5(){ for(i=0;i<12;i++){ while (!(IFG2&UCA0TXIFG)); UCA0TXBUF = MSJ5[i]; } } void CambiarC6(){ for(i=0;i<12;i++){ while (!(IFG2&UCA0TXIFG)); UCA0TXBUF = MSJ6[i]; } } void CambiarC7(){ for(i=0;i<12;i++){ while (!(IFG2&UCA0TXIFG)); UCA0TXBUF = MSJ7[i]; } } void CambiarC8(){
// USCI_A0 TX buffer ready?
// USCI_A0 TX buffer ready?
// USCI_A0 TX buffer ready?
// USCI_A0 TX buffer ready?
// USCI_A0 TX buffer ready?
// USCI_A0 TX buffer ready?
// USCI_A0 TX buffer ready?
19
for(i=0;i<12;i++){ while (!(IFG2&UCA0TXIFG)); UCA0TXBUF = MSJ8[i]; } } void CambiarC9(){ for(i=0;i<12;i++){ while (!(IFG2&UCA0TXIFG)); UCA0TXBUF = MSJ9[i]; } } void Reset(){ for(i=0;i<12;i++){ while (!(IFG2&UCA0TXIFG)); UCA0TXBUF = MSJ10[i]; } } void Down(){ for(i=0;i<12;i++){ while (!(IFG2&UCA0TXIFG)); UCA0TXBUF = MSJ11[i]; } } void Up(){ for(i=0;i<12;i++){ while (!(IFG2&UCA0TXIFG)); UCA0TXBUF = MSJ12[i]; } } // Port 1 interrupt service routine #pragma vector=PORT1_VECTOR __interrupt void Port_1(void) { //P1OUT ^= BIT0; // P1.0 = y=P1IFG; if(y &= BIT0){ P1IFG &= ~BIT0; Reset();} _delay_cycles(100000); y=P1IFG; if(y &= BIT3){ P1IFG &= ~BIT3; CambiarC1();}// P1.3 IFG _delay_cycles(100000); y=P1IFG; if(y &= BIT4){ P1IFG &= ~BIT4; CambiarC2();}// P1.4 IFG _delay_cycles(100000); y=P1IFG; if(y &= BIT5){ P1IFG &= ~BIT5; CambiarC3();}// P1.5 IFG _delay_cycles(100000); y=P1IFG; if(y &= BIT6){ P1IFG &= ~BIT6;
// USCI_A0 TX buffer ready?
// USCI_A0 TX buffer ready?
// USCI_A0 TX buffer ready?
// USCI_A0 TX buffer ready?
// USCI_A0 TX buffer ready?
toggle
// P1.3 IFG cleared
// P1.3 IFG cleared cleared
// P1.4 IFG cleared cleared
// P1.5 IFG cleared cleared
// P1.6 IFG cleared
20
CambiarC4();}// P1.6 IFG cleared _delay_cycles(100000); y=P1IFG;
if(y &= BIT7){ P1IFG &= ~BIT7; CambiarC5();}// P1.7 IFG cleared _delay_cycles(100000);
// P1.7 IFG cleared
} #pragma vector=PORT2_VECTOR __interrupt void Port_2(void) { //P2OUT ^= BIT0; z=P2IFG; if(z &= BIT0){ P2IFG &= ~BIT0; CambiarC6();}// P2.1 IFG cleared _delay_cycles(100000); z=P2IFG; if(z &= BIT1){ P2IFG &= ~BIT1; CambiarC7();}// P2.1 IFG cleared _delay_cycles(100000); z=P2IFG; if(z &= BIT2){ P2IFG &= ~BIT2; CambiarC8();}// P2.2 IFG cleared _delay_cycles(100000); z=P2IFG; if(z &= BIT3){ P2IFG &= ~BIT3; CambiarC9();}// P2.2 IFG cleared _delay_cycles(100000); z=P2IFG; if(z &= BIT4){ P2IFG &= ~BIT4; Down();}// P2.0 IFG cleared _delay_cycles(100000); z=P2IFG; if(z &= BIT5){ P2IFG &= ~BIT5; Up();}// P2.0 IFG cleared _delay_cycles(100000);
// P2. IFG cleared
// P2. IFG cleared
// P2. IFG cleared
// P2. IFG cleared
// P2. IFG cleared
// P2. IFG cleared
} #pragma vector=USCIAB0RX_VECTOR __interrupt void USCI0RX_ISR(void) { while (!(IFG2&UCA0TXIFG)); x = UCA0RXBUF ; }
// USCI_A0 TX buffer ready?
// lee el buffer
21
Este proyecto nos sirvió para saber el comportamiento de cada una de las arquitecturas de los componentes electrónicos que utilizamos, por ejemplo, ahora sabemos que para enviarle una instrucción al módulo SD por medio de nuestro puente comunicador que es el microcontrolador MSP430g2553 es por medio de tramas en un sistema hexadecimal y al último terminarlo con el código para la función del ‘ENTER’, sabemos con claridad cada una de las conexiones que se llevaron a cabo. Con la terminación de este proyecto ahora tenemos la capacidad de hasta mejorar la presentación para futura comercialización y así llegar a nuestro objetivo inicial que es cuidar el medio ambiente de no usar baterías que son corriente directa, usamos corriente alterna para alimentar el microcontrolador y el protoboard.
22
SECURE DIGITAL.de.Sitio web: http://server-die.alc.upv.es/asignaturas/PAEEES/2006-07/Tarjetas%20SD.pdf ALTAVOZ.de.Sitio Web: https://www.ieslosviveros.es/alumnos/asig8/carpeta729/3altavocesPDF.pdf DF PLAYER MINI. De Sitio Web: https://www.luisllamas.es/arduino-mp3-dfplayer-mini/ https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299 https://www.google.com/search?q=DFPlayer+Mini+SKU:DFR0299&source=lnms&t bm=isch&sa=X&ved=0ahUKEwi1tc6LoezeAhUCL6wKHWwkAPIQ_AUIDigB&biw= 1366&bih=695#imgrc=55PNXujLDqTNoM: MSP430g2553. De Sitio Web: http://bibing.us.es/proyectos/abreproy/12159/fichero/4.pdf https://www.digikey.com/es/product-highlight/t/texas-instruments/msp430g2553mixed-signal-microcontrollers
23
24
25
26
27
28
29