PROYECTO

17
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.

description

PROYECTO

Transcript of PROYECTO

Page 1: 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

Page 2: PROYECTO

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.

Page 3: PROYECTO

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.

Page 4: PROYECTO

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.

Page 5: PROYECTO

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.

Page 6: PROYECTO

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

Page 7: PROYECTO

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.

Page 8: PROYECTO

.

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

Page 9: PROYECTO

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).

Page 10: PROYECTO

 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;

Page 11: PROYECTO

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.

{

Page 12: PROYECTO

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

Page 13: PROYECTO

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.