PROYECTO
-
Upload
pedro-louis-r-r -
Category
Documents
-
view
10 -
download
5
description
Transcript of PROYECTO
INGENIERIA EN ELÉCTRICO MECÁNICA
PROYECTO Y DISEÑO
PROFESOR: ING. EFRAÍN SUAREZ
TÍTULO:
ENVÍO DE TEXTO VÍA BLUETOOTH DESDE UN SMARTPHONE
A UN DISPLAY LCD, MEDIANTE UN MICROCONTROLADOR.
ALUMNO:
PEDRO RODRIGUEZ R.
CICLO:
VI
Objetivos
Objetivo general
Desarrollar una plataforma, la cual sea capaz de enviar datos tipo texto desde
un dispositivo móvil, hacia una pantalla tipo LCD de 2x16.
Objetivos específicos
Diseñar una aplicación Android, para controlar el envío de los caracteres, tipo
texto.
Implementar una comunicación de tipo Bluetooth mediante un
microcontrolador.
Garantizar el funcionamiento de la aplicación, con respecto a la
compatibilidad de la comunicación con la mayoría de dispositivos Android.
Marco Teórico
Microcontrolador
Microcontrolador Motorola 68HC11 y chips de soporte
Un microcontrolador es un circuito integrado o chip que incluye en su interior las tres
unidades funcionales de una computadora: CPU, Memoria y Unidades de E/S, es decir,
se trata de un computador completo en un solo circuito integrado.
Características
Son diseñados para disminuir el coste económico y el consumo de energía de un sistema
en particular. Por eso el tamaño de la CPU, la cantidad de memoria y los periféricos
incluidos dependerán de la aplicación. El control de un electrodoméstico sencillo como
una batidora, utilizará un procesador muy pequeño (4 u 8 bit) por que sustituirá a un
autómata finito. En cambio un reproductor de música y/o vídeo digital (mp3 o mp4)
requerirá de un procesador de 32 bit o de 64 bit y de uno o mas Códec de señal
digital (audio y/o vídeo). El control de un sistema de frenos ABS
(Antilock Brake System) se basa normalmente en un microcontrolador de 16 bit, al
igual que el sistema de control electrónico del motor en un automóvil.
Esquema de un microcontrolador
Los microcontroladores representan la inmensa mayoría de los chips de computadoras
vendidos, sobre un 50% son controladores "simples" y el restante corresponde
a DSPs más especializados. Mientras se pueden tener uno o dos microprocesadores de
propósito general en casa (vd. está usando uno para esto), usted tiene distribuidos
seguramente entre los electrodomésticos de su hogar una o dos docenas de
microcontroladores. Pueden encontrarse en casi cualquier dispositivo electrónico
como automóviles, lavadoras, hornos microondas, teléfonos, etc...
Un microcontrolador difiere de una CPU normal, debido a que es más fácil convertirla
en una computadora en funcionamiento, con un mínimo de chips externos de apoyo. La
idea es que el chip se coloque en el dispositivo, enganchado a la fuente de energía y de
información que necesite, y eso es todo. Un microprocesador tradicional no le permitirá
hacer esto, ya que espera que todas estas tareas sean manejadas por otros chips. Hay que
agregarle los módulos de entrada/salida (puertos) y la memoria para almacenamiento de
información.
Por ejemplo, un microcontrolador típico tendrá un generador de reloj integrado y una
pequeña cantidad de memoria RAM y ROM/EPROM/EEPROM/FLASH, significando
que para hacerlo funcionar, todo lo que se necesita son unos pocos programas de control
y un cristal de sincronización. Los microcontroladores disponen generalmente también
de una gran variedad de dispositivos de entrada/salida, como convertidores
de analógico a digital, temporizadores, UARTs y buses de interfaz serie especializados,
como I2C y CAN. Frecuentemente, estos dispositivos integrados pueden ser controlados
por instrucciones de procesadores especializados. Los modernos microcontroladores
frecuentemente incluyen un lenguaje de programación integrado, como el BASIC que se
utiliza bastante con este propósito.
Los microcontroladores negocian la velocidad y la flexibilidad para facilitar su uso.
Debido a que se utiliza bastante sitio en el chip para incluir funcionalidad, como
los dispositivos de entrada/salida o la memoria que incluye el microcontrolador, se ha
de prescindir de cualquier otra circuitería.
Familias de microcontroladores
- Atmel
- Motorola
- Intel
- Microchip
- NEC
- Hitachi
- Mitsibishi
- Philips
- Matsushita
- Toshiba
- AT&T
- Zilog
- Siemens
- National Semiconductor
Bluetooth
Bluetooth
Logotipo del dispositivo Bluetooth
Bluetooth es una especificación industrial para Redes Inalámbricas de Área Personal (WPAN) que posibilita la transmisión de voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia en la banda ISM de los 2,4 GHz. Los principales objetivos que se pretenden conseguir con esta norma son:
Facilitar las comunicaciones entre equipos móviles. Eliminar los cables y conectores entre éstos. Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la
sincronización de datos entre equipos personales.
Los dispositivos que con mayor frecuencia utilizan esta tecnología pertenecen a sectores de las telecomunicaciones y la informática personal, como PDA, teléfonos móviles, computadoras portátiles, ordenadores personales, impresoras o cámaras digitales.
Uso y aplicaciones
Se denomina Bluetooth al protocolo de comunicaciones diseñado especialmente para dispositivos de bajo consumo, que requieren corto alcance de emisión y basados en transceptores de bajo costo.
Los dispositivos que incorporan este protocolo pueden comunicarse entre sí cuando se encuentran dentro de su alcance. Las comunicaciones se realizan por radiofrecuencia de forma que los dispositivos no tienen que estar alineados y pueden incluso estar en habitaciones separadas si la potencia de transmisión es suficiente. Estos dispositivos se clasifican como "Clase 1", "Clase 2" o "Clase 3" en referencia a su potencia de transmisión, siendo totalmente compatibles los dispositivos de una caja de ordenador
ClasePotencia máxima permitida(mW)
Potencia máxima permitida(dBm)
Alcance(aproximado)
Clase 1 100 mW 20 dBm ~100 metros
Clase 2 2.5 mW 4 dBm ~5-10 metros
Clase 3 1 mW 0 dBm ~1 metro
En la mayoría de los casos, la cobertura efectiva de un dispositivo de clase 2 se extiende cuando se conecta a un transceptor de clase 1. Esto es así gracias a la mayor sensibilidad y potencia de transmisión del dispositivo de clase 1, es decir, la mayor potencia de transmisión del dispositivo de clase 1 permite que la señal llegue con energía suficiente hasta el de clase 2. Por otra parte la mayor sensibilidad del dispositivo de clase 1 permite recibir la señal del otro pese a ser más débil.
Los dispositivos con Bluetooth también pueden clasificarse según su capacidad de canal:
Versión Ancho de banda
Versión 1.2 1 Mbit/s
Versión 2.0 + EDR 3 Mbit/s
Versión 3.0 + HS 24 Mbit/s
Versión 4.0 24 Mbit/s
Display LCD 16x2 (2x16) con el HD44780 en mikroC PRO
Las pantallas de cristal líquido (LCD) se han popularizado mucho en los últimos años,
debido a su gran versatilidad para presentar mensajes de texto (fijos y en movimiento),
valores numéricos y símbolos especiales, su precio reducido, su bajo consumo de
potencia, el requerimiento de solo 6 pines del PIC para su conexión y su facilidad de
programación en lenguajes de alto nivel (por ejemplo, lenguaje C). Desde todo punto de
vista el empleo del display LCD 16x2 (LCD 2x16) debería considerarse como la
primera opción a la hora de decidir por un dispositivo de presentación alfanumérica,
excepto cuando las condiciones de iluminación ambiental no sean las más favorables.
En este último caso se debería pensar en el empleo de displays de 7 segmentos, que
aunque no tienen la misma versatilidad tienen la ventaja innegable de sus mejores
características de visibilidad aún en los ambientes más desfavorables. En la actualidad
existen diversos modelos de display LCD, aunque los más comunes son los LCD 16x2
(16 caracteres x 2 filas), gobernados por el controlador Hitachi HD44780, que se ha
convertido en el estándar de facto para las aplicaciones con microcontroladores PIC;
este articulo hace referencia a ese tipo de LCD. Existen LCD 16x2 con diferentes
combinaciones de colores de fondo y texto.
Pinout (patillaje) del LCD 16x2 (LCD 2X16) con HD44780
El LCD 16x2 tiene en total 16 pines (tome en cuenta que la posición correcta del display
es con los pines en la parte superior, aunque existen modelos en los que la posición
correcta es con los pines en la parte inferior) . Ladatasheet (pdf) muestra 14 pines, los
dos pines adicionales son el ánodo (15) y el cátodo (16) del LED de fondo . Debe
notarse que el controlador Hitachi HD44780 se encuentra incorporado al circuito
impreso del módulo LCD y sirve de interfaz entre la propia pantalla LCD (donde se
muestran los caracteres) y el microcontrolador PIC. Por lo tanto, de todos los pines del
HD44780 únicamente se tiene acceso a aquellos necesarios para la conexión al PIC y
para el control de contraste.
.
La polarización del LED de fondo se logra conectando una resistencia externa de 50
ohm-1/4 W con lo que se asegura el correcto encendido sin una corriente excesiva. El
control de contraste se consigue con un potenciómetro de 10 k con el cual se ajusta el
nivel de voltaje en el pin 3 (Vee ó VLC).
Conexión del LCD 16x2 al PIC
La conexión más recomendable del display LCD 16x2 requiere 4 pines para los datos
(D7:D4), 1 pin para habilitar/deshabilitar el display (E) y 1 pin para los modos
comando/carácter (RS). En la figura siguiente se indica la forma de conectar el display
al PIC16F88 y al PIC16F628A.
Conexión del LCD al PIC16F88 (y 16F628A) con 4 bits
Librería LCD de mikroC PRO
mikroC PRO for PIC tiene una librería para comunicación con LCDs basados en el
controlador HD44780 o compatibles, a través de un interfaz de 4 bits para datos. Para el
trabajo con el módulo LCD se debe añadir la librería Lcd, que contiene las funciones
listadas en la tabla 3.1. Para poder utilizar estas funciones se debe declarar previamente
un total de 12 variables: 6 que definen los pines del PIC y otras 6 que permiten
programar el sentido de circulación de datos (se detallarán en los ejemplos de este
capítulo).
Tabla Funciones de la librería Lcd de mikroC PRO
Ejemplo en mikroC PRO con el PIC16F88
Estos ejemplos corresponden al PIC16F88 programado en mikroC PRO. El código
fuente para los microcontroladores PIC16F628A y 16F877A se encuentra en las
carpetas correspondientes que vienen junto con el libro.
En el siguiente ejemplo se emplea la función ByteToStr de la librería Conversions de
mikroC PRO, para convertir el contenido de la variable contador (un byte) en una
cadena de caracteres (string) y así poderlo visualizar en el display con la
función Lcd_Out.
Ejemplo-LCD1.c: Cada vez que presiona el pulsador conectado en RA4 se incrementa
un contador que se visualiza en el centro de la segunda línea de la pantalla. Si la cuenta
supera 100, el conteo se reinicia desde 0. En el centro de la primera línea se muestra la
palabra Conteo:
//LCD1.c
//Declaración de las 12 variables necesarias para la conexión del LCD 2x16.
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// Fin de declaración de variables de conexión.
char contador=0,estado=1,texto1[]="Conteo:", texto2[4];
void main(){
OSCCON=0x40; //Oscilador interno a 1MHz.
while (OSCCON.IOFS==0);//Esperar mientras el oscilador está inestable.
ANSEL=0x00; //Pines AN6:AN0 como E/S digital.
Lcd_Init(); //Inicializa el LCD.
Lcd_Cmd(_LCD_CLEAR); //Borra el display.
Lcd_Cmd(_LCD_CURSOR_OFF); //Apaga el cursor.
Lcd_Out(1,6,texto1); //Escribe el texto1.
while (1)
{
if (Button(&PORTA,4,1,0)) estado=0; //Si se pulsa.
if (estado==0 && Button(&PORTA,4,1,1)) //Si se pulsa y se libera.
{
contador++; //"contador" contiene el número de pulsaciones.
if (contador>100) contador=0;
estado=1;
}
ByteToStr(contador,texto2); //Convierte a texto el contenido de la variable contador
//y lo guarda en texto2.
Lcd_Out(2,6,texto2); //Muestra el texto2.
}
}
Temas relacionados que también encontrarás en el libro:
Creación de caracteres especiales
RAM del Generador de Caracteres (CGRAM)
Herramienta LCD Custom Character de mikroC PRO
Presentación de números decimales en el LCD 16x2 (2x16)
Aplicaciones tipo Android
Los modernos teléfonos inteligentes con conectividad Bluetooth, que disponen del
sistema operativo Android, a partir de ahora nos permiten acceder a infinitas
aplicaciones que antes requerían de módulos de RF u otros medios de enlace y que, no
siempre funcionaban como deseábamos. En este artículo haremos un “Hola
Mundo” con un PIC y unLED de la manera más sencilla que te puedas imaginar. No te
preocupes, no será necesario aprender toneladas de libros para programar sistemas útiles
en Android para PICs. Juntos aprenderemos, paso a paso, como comandar un LED a
distancia, por Bluetooth y luego, te darás cuenta que cualquier sistema remoto
con Android estará a tu alcance de manera muy sencilla.
Para iniciar este trabajo, nos remontaremos a hacer un breve repaso del desarrollo que
hemos realizado con anterioridad, cuando presentamos el módulo Bluetooth RN41,
aquí en NeoTeo. Para esto, vamos a recordar algunos puntos básicos que serán comunes
a cualquier sistema Bluetooth que quieras implementar. Es decir, nosotros usamos
un PIC 18F25K20 programado en AMICUS, al que le conectamos el
módulo RN41 de Microingenia S.L. En este montaje, lo único que hemos hecho es
colocar en el pin 0 (cero) del puerto B, un LED que será el que encenderemos y
apagaremos a distancia con la ansiada conectividad Bluetooth, operada desde nuestro
móvil (teléfono inteligente o tableta) con Android. Por lo tanto, vamos a iniciar este
trabajo desde lo básico, desde lo elemental, para que no te pierdas un solo detalle y te
resulte claro y sencillo crear tus propias aplicaciones con microcontroladores
comunicados vía Bluetooth sobre plataformas Android.