Presentacion3

18
INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INVESTIGACIÓN EN COMPUTACIÓN “Manejo del Puerto serie en Linux para manipulación de motor a pasos y despliegue de caracteres en un LCD” PRESENTA: FERNANDO GABINO RAMIREZ NEYRA. DIRECTOR DE PROYECTO: D.R. JOSÉ LUIS OROPESA. MATRICULA: B081304 MEXICO D.F. 17 DE DICIEMBRE DE 2008 1

Transcript of Presentacion3

Page 1: Presentacion3

INSTITUTO POLITÉCNICO NACIONAL

CENTRO DE INVESTIGACIÓN EN COMPUTACIÓN

“Manejo del Puerto serie en Linux para manipulación de motor a pasos y despliegue de caracteres en un LCD”

PRESENTA:FERNANDO GABINO RAMIREZ NEYRA.

DIRECTOR DE PROYECTO:D.R. JOSÉ LUIS OROPESA.

MATRICULA: B081304

MEXICO D.F. 17 DE DICIEMBRE DE 2008

1

Page 2: Presentacion3

PUNTOS A TRATAR

● OBJETIVO GENERAL.● OBJETIVOS ESPECIFICOS.● PLANTEAMIENTO DEL PROBLEMA.● JUSTIFICACIÓN.● ESTADO DEL ARTE.● DISEÑO Y DESARROLLO DEL PROYECTO.● PRUEBAS Y RESULTADOS.● RECOMENDACIONES● REFERENCIAS BIBLIOGRÁFICAS.

2

Page 3: Presentacion3

OBJETIVO GENERAL

Al término de esta investigación se podrá recibir y transmitir información desde una PC (con sistema operativo Linux) hacia un microcontrolador, a través del puerto serial. La información recibida por el microcontrolador determinara la tarea o función que este deberá realizar.

Las tareas o funciones que el microcontrolador deberá realizar son: activar un motor a pasos para que el rotor gire un determinado número de grados, y desplegar mensajes de texto en una pantalla de cristal líquido.

3

Page 4: Presentacion3

OBJETIVOS PARTICULARES

• Desarrollar e implementar el hardware que permita la comunicación entre la PC y el microcontrolador para que este pueda manipular el motor a pasos y una pantalla de cristal liquido.

• Desarrollar una interface grafica que permita la activación y selección de los dispositivos que estarán conectados al microcontrolador, para que estos realicen su función (girar el eje del motor y desplegar mensajes en la pantalla de cristal líquido). Dicha interface grafica deberá operar bajo el sistema operativo Linux, por lo cual esta será programada con el lenguaje de programación QT Linux.

• Obtener mayor práctica y conocimiento en programación sobre el sistema operativo UNIX/Linux.

4

Page 5: Presentacion3

PLANTEAMIENTO DEL PROBLEMA

El proyecto será divido en cuatro etapas : Documentación. Diseño y desarrollo de Hardware. Diseño y desarrollo de Software. Pruebas.

.

5

Page 6: Presentacion3

En la asignatura de programación de sistemas que estoy cursando se han conocido y desarrollado una serie de temas sobre el sistema Operativo UNIX/Linux, los cuales deben ser llevados a la práctica para obtener un mayor conocimiento y experiencia en la programación sobre ese sistema operativo. El tema elegido para desarrollarse en esta investigación reúne las características necesarias para comprobar la arquitectura y programación del sistema operativo UNIX/Linux. .

JUSTIFICACIÓN

6

Page 7: Presentacion3

Diseño y Desarrollo.

●Hardware

●Software

7

Page 8: Presentacion3

Diseño de Hardware

PIC16873AL293BMAX232LCD MOTOR A PASOS

8

Page 9: Presentacion3

Diseño y Programación del software

Programación del Microcontrolador.

Programación de la Interface grafica con QT Linux.

9

Page 10: Presentacion3

Programación del Microcontrolador.

10

Page 11: Presentacion3

Rutina de Interrupción

INCLUDE <P16F873A.INC> LIST P=16F873A DATO EQU 0X21 #DEFINE RS PORTA,0#DEFINE RW PORTA,1#DEFINE E PORTA,2

ORG 0X00 goto INICIO ORG 0X04 ; Inicia Rutina de Interrupción.INTER bcf STATUS, RP0 ; BANCO 0 ; btfss PIR1,RCIF ; goto ; movf RCREG,W ; GUARDAR EL DATO RECIBIDO movwf DATO ; guardo el dato recivido EN EL REGISTRO DATO ;bcf PIR1,RCIF ; LIMPIO BIT DE INTERRUPCION DE RECEPCION call INIT_LCD ; Anterior TX_DATO bcf PIR1,RCIF retfie ;RECUPERA DIRECCION DE INTERRUPCION

11

Page 12: Presentacion3

Función Principal

INICIO bsf STATUS,RP0 ;BANCO1 bcf STATUS,RP1 movlw 0xc0 movwf INTCON ;INT GLOBAL Y LAS DE OTRO TIPO movlw 0x00 movwf TRISB ;PUERTO B SALIDA B7 ...B0 movwf TRISA ;PUERTO A SALIDA A7 ...A0 movlw 0x80 movwf TRISC ;BIT 7 INPUT Y 6 OUTPUT PARA LA USART movlw .25 movwf SPBRG ;DETERMINA VELOCIDAD DE TRANSMISIO 9600 B/S bcf STATUS, RP0 movlw b'10010000' movwf RCSTA ;PUERTO SERIE Y RECEPCION CONTINUA call LCD_Inicializa ;INICIALIZA EL LCD bsf STATUS, RP0 ;BANCO 1 movlw b'00000100' movwf TXSTA ;MODO ASINCRONO bsf PIE1, RCIE ;HABILITO INTERRUPCION POR BUFFER LLENO bcf STATUS, RP0 ;BANCO 0bucle goto bucle INCLUDE <RETARDOS.INC> INCLUDE <LCD_8BIT.INC> END 12

Page 13: Presentacion3

Programación de Interface Grafica

Las tareas y funciones que deber realizar la interface grafica son las siguientes:

• Abrir puerto serie, para establecer comunicación con el microcontrolador. • Mostrar cuadros de texto para introducir el desplazamiento angular y el

mensaje de texto que se transmitirá al microcontrolador, para que este lo despliegue en la pantalla de cristal liquido.

 • Botón para iniciar la transmisión de datos hacia el microcontrolador.

• Cerrar el puerto serie. • Presentar opciones para cerrar ventana.

13

Page 14: Presentacion3

INTERFACE GRAFICA

14

Page 15: Presentacion3

Pruebas y Resultados

Se logro enviar caracteres al microcontrolador desde la interface grafica, para que este los despliegue en la pantalla de cristal liquido, aunque aun se tienen algunos problemas ya que el modulo LCD no fue programado para realizar funciones de desplazamiento y visualizar en todo momento el carácter recibido, por lo que en ocasiones el texto introducido en la interface grafica no es mostrado en LCD debido a que este escribe los datos en las posiciones de memoria que no son mostradas.

Al enviar cadenas de caracteres al microcontrolador este solo despliega en la pantalla de cristal líquido, el primer carácter de cada cadena en repetidas ocasiones, aunque esta prueba se realizo sobre el sistema operativo Windows y no hubo problema.

El motor a pasos no fue programado por motivos de tiempo por lo que no se pudo comprobar el funcionamiento de ese modulo.

15

Page 16: Presentacion3

Recomendaciones

La pagina web donde se consulto y presento la información de los temas vistos en clase tiene algunos errores, y en ocasiones cometí esos mismos errores al realizar las practicas y aunque entiendo que debemos consultar otras fuentes de información, es recomendable que se realicen esas correcciones ya que para una persona nueva en el tema no le es muy sencillo encontrar esos errores.

Después de tratar un tema en clase, dar un poco mas tiempo para estudiar y repasar ya que no todos los alumnos tenemos la misma formación académica y para algunos es necesario estudiar un poco mas del tema visto es clase.

16

Page 17: Presentacion3

REFERENCIAS BIBLIOGRÁFICAS

• El entorno de programación UNIX. Brian W. Kernighan, Rob Pike. Ed. Prentice Hall. • Advanced UNIX Programming. Marc J. Rochkind. Ed. Prentice Hall. • UNIX Programmer´s reference. Jhon J. Valley. Ed. QUE corporation. • LINUX Device Drivers. Jonathan Corbet, Alessandro Rubini y Greg Kroah-Hartman. Ed. O´Reilly.• PROGRAMACIÓN AVANZADA EN UNIX. José Canosa. Ed. McGraw-Hill.

17

Page 18: Presentacion3

PAGINAS WEB CONSULTADAS

http://www.microchip.comhttp://www.linux.orghttp://www.trolltech.comhttp://www.kde.org

18