22
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA “ROSTRO EXPRESIVO” Autores: Luis Fernando Benítez Carpio Eduardo Israel Brito Vivanco Eduardo Campoverde Encalada Primer Ciclo Carrera: Ingeniería Electrónica y Telecomunicaciones Asesor: Ing. Patricio Puchaicela Huaca Loja-Ecuador Proyecto de

Rostro Expresivo

Embed Size (px)

DESCRIPTION

Documento del Proyecto de Fundamentos de la Programación en la UTPL....

Citation preview

Page 1: Rostro Expresivo

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA

“ROSTRO EXPRESIVO”

Autores: Luis Fernando Benítez Carpio

Eduardo Israel Brito Vivanco

Eduardo Campoverde Encalada

Primer Ciclo

Carrera: Ingeniería Electrónica y Telecomunicaciones

Asesor: Ing. Patricio Puchaicela Huaca

Loja-Ecuador

2009-2010

1. TEMA:

Proyecto de Programación

Page 2: Rostro Expresivo

Interfaz

PIC 16F628ACOMUNIC.Rs232 (SERIAL)

Servomotores

Rostro ( visualización)

Rostro Expresivo.

2. DESCRIPCIÓN:

Se desarrollará un programa en el lenguaje C++ para que interactúe con el puerto serial,

pudiendo transmitir al PIC tipos de datos char, y así el rostro exprese emociones como

felicidad, tristeza o enojo. Además una interfaz para que el PIC retorne a la computadora

mensajes de inicialización de movimiento y finalización del mismo. Para ello:

El rostro consta de cuello, cejas, ojos y boca; de las cuales las cejas y boca son móviles, pues

mediante servomotores se permitirá el movimiento de los mismos para que puedan expresar

emociones como tristeza, alegría o enojo, también de un cuello móvil en el que se encuentra un

servomotor, permitiendo que el rostro gire conforme se le envíe órdenes desde la computadora

los grados que necesitemos.

La clase de emoción será ingresada a la computadora mediante el teclado; la

computadora mediante comunicación serial envía el dato al PIC y este a su vez lo

transmite a los diferentes servomotores para que ejecuten el movimiento

correspondiente a las cejas, el cuello y la boca, permitiendo visualizar la emoción

ingresada. Una vez completado el movimiento de las cejas y de la boca el PIC enviará a

la computadora mensajes como: “Estoy feliz”, “Estoy triste” o “Estoy enojado” según

haya sido la orden del usuario.

Page 3: Rostro Expresivo

Figura 1. Rostro expresivo.

Page 4: Rostro Expresivo

3. OBJETIVOS:

3.1.GENERAL:

Construir un rostro inteligente que permita visualizar emociones insertadas por

computadora con la ayuda de herramientas como: computadora, grabador de pics,

project board, programa C++, microcode estudio y winpic 800.

3.2.ESPECÍFICOS:

Construir un rostro que conste de tres servomotores para que permita el

movimiento de las cejas, la boca y el cuello, es decir, el hardware de nuestro

proyecto.

Programar con el programa C++ el movimiento de los servomotores las cejas,

boca y cuello, respectivamente, para que realicen los giros adecuados

representando las emociones insertadas.

Programar la computadora y enviar las sentencias por medio de un puerto serial

al PIC.

Programar el PIC para que reciba órdenes de la computadora y las transmita a

los servomotores y éste a su vez retorne mensajes a la computadora.

Conseguir que el rostro a través de los sensores gire y siga un haz de luz.

Page 5: Rostro Expresivo

4. METODOLOGÍA:

La metodología empleada en la ejecución del presente proyecto se enmarcó en los

siguientes métodos:

El Método Científico, que será la guía principal de nuestro proyecto, nos permitirá

conocer la forma en cómo debemos llevar a cabo el proyecto. Dentro de este método

podemos mencionar los siguientes métodos que sirven para el desarrollo de este

proceso:

Método Analítico: en nuestro proyecto lo aplicaremos fundamentalmente en el análisis

de lo que queremos lograr con el proyecto y conforme a esto analizaremos también los

algoritmos tomando en cuenta que tienen que ser sencillos, claros y precisos conforme

con lo que queremos lograr en el proyecto; se analizará las bibliotecas que debemos

utilizar y las funciones que requerimos aplicar en la programación del hardware.

Aplicaremos también el análisis en la consulta bibliográfica acerca de la programación,

herramientas y en si fundamentos teóricos que debemos tener para el desarrollo de

nuestro proyecto.

Método Sintético: La revisión bibliográfica que hicimos acerca de nuestro proyecto la

reduciremos a lo principal o que creemos más importante y de mayor uso para la

realización de nuestro proyecto. El método sintético también estará presente en la

reducción al máximo de las sentencias del programa que crearemos para el

funcionamiento de nuestro hardware tomando en cuenta que el programa debe ser

sencillo, claro y preciso.

Método Deductivo: De los programas que iremos creando poco a poco que funcionen

con un puerto serial deducimos la estructura y ciertas funciones y sentencias que nos

servirán en nuestro software.

Page 6: Rostro Expresivo

Método Inductivo: De las deducciones sacadas en el método deductivo las

incorporaremos en el programa por comparación con otros programas que presenten

estructura y resultados similares.

Método Experimental: Este método es sin duda el más importante de nuestro proyecto

ya que dependiendo de una experimentación bien ejecutada obtendremos las

conclusiones óptimas, este método lo aplicaremos en todo el desarrollo de nuestro

proyecto en sí, tanto en la creación de nuestro hardware como en la creación de nuestro

software.

Diagrama de conexión del PIC y el CI. MAX 232 para enviar y recibir datos

entre un PC y el PIC.

Figura 2. Esquema de comunicación desde le PIC a la PC.

Page 7: Rostro Expresivo

5. ALCANCE:

Con este proyecto se logrará que el rostro exprese tres emociones: alegría, tristeza o

enojo; según la opción que el usuario ingrese; retornando a la computadora el estado de

ánimo en el que se encuentra el rostro. Además, el rostro logre seguir un haz de luz

siempre que éste apunte a los ojos de dicho rostro.

Page 8: Rostro Expresivo

6. RESULTADOS ESPERADOS:

Se espera cumplir con el objetivo general y los objetivos específicos, es decir, poder

construir un rostro inteligente que permita visualizar tres estados de ánimo: alegría,

tristeza o enojo, de acuerdo a la opción ingresada por computadora; con la ayuda de

herramientas como: computadora, grabador de pics, project board, programa C++,

microcode estudio y winpic 800. Para ello esperamos realizar lo siguiente:

Construir un rostro que conste de tres servomotores para que permita el movimiento de

las cejas, la boca y el cuello, es decir, el hardware de nuestro proyecto. Luego

programar en C++ el movimiento de los servomotores las cejas, boca y cuello,

respectivamente, para que realicen los giros adecuados representando las emociones

insertadas. Para ello debemos programar la computadora y enviar las sentencias por

medio de un puerto serial al PIC; logrando que el PIC reciba órdenes de la computadora

y las transmita a los servomotores y éste a su vez retorne mensajes de orden ejecutada a

la computadora. Añadiendo a ello que el rostro a través de los sensores gire y siga un

haz de luz.

Page 9: Rostro Expresivo

7. HERRAMIENTAS:

7.1.HARDWARE:

Computadora: dispositivo electrónico para el ingreso, procesamiento, y

salida de datos.

Servomotor: dispositivo actuador que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y de mantenerse estable en dicha posición. Está formado por un motor de corriente continua, una caja reductora y un circuito de control, y su margen de funcionamiento generalmente es de menos de una vuelta completa [1].

Figura 3. Servomotor

Displays: dispositivos de visualización

Puerto serial: “Interfaz física de comunicación en serie a través de la cual se transfiere información mandando o recibiendo un bit”.[7.2]

Dicho puerto de comunicación que trabaja con voltajes de ±10 V , y velocidad de transmisión que es medida en baudios.

Figura 4. Puerto Serial

Cable serial: cable que va a comunicar desde el puerto serial de la

computadora hasta el PIC.

Page 10: Rostro Expresivo

PIC 16F628A: microcontrolador o chip que soporta hasta 100000 ciclos de

escritura en su memoria FLASH, y 1’000000 ciclos en su memoria Eeprom.

Dicho PIC incorpora tres características importantes que son:

Procesador tipo RISC (Procesador con un Conjunto Reducido de

Instrucciones)

Procesador segmentado

Arquitectura HARVARD

“Con la estructura segmentada se pueden realizar simultáneamente las dos fases

en que se descompone cada instrucción, ejecución de la instrucción y búsqueda

de la siguiente.La separación de los dos tipos de memoria son los pilares de la arquitectura

Harvard esto permite acceder en forma simultánea e independiente a la a de

datos y a la de instrucciones. El tener memorias separadas permite que cada una

tenga el ancho y tamaño más adecuado. Así en el PIC 16F628 el ancho de los

datos es de un byte, mientras que la de las instrucciones es de 14 bits”. [7.3]

Figura 5. PIC 16F628

CI. MAX 232: es un dispositivo que sirve de solución para transmitir a

mayor distancia, ya que incrementa los niveles de voltaje de 5V a gracias a

un juego de capacitores que le ayudan a doblar los voltajes, por lo que para

su alimentación sólo se requiere una fuente de 5V.

±10 V

Page 11: Rostro Expresivo

Grabador de PIC: es un dispositivo que permite grabar en el PIC el

programa realizado en el Microcode estudio.

Project board: placa para armar los circuitos y probarlos (placa de

pruebas).

7.2.SOFTWARE:

Programa C++: entorno de desarrollo del algoritmo en computadora.

Microcode estudio: “Herramienta de generación de código que permite a un usuario para implementar rápidamente la comunicación bidireccional entre un microcontrolador PIC ™ integrado y un PC”. [7.4]

Winpic 800: Software para grabación del microcontrolador. se usa para

enviarle el software al PIC.

Page 12: Rostro Expresivo

8. DESARROLLO DE MÓDULOS.

8.1 HARDWARE:

Los pasos a describir son secuenciales.

1ra Etapa:

Envió de pulsos por el pin 3 hacia el PIC para la transformación de las órdenes a código

binario.

2da Etapa:

Enviar los pulsos del PIC al rostro expresivo.

3ra Etapa:

Recepción de pulsos y transformar código binario a instrucción normal

8.2 SOFTWARE:

Los pasos a describir son secuenciales

1ra Etapa:

Implantar objeto de transmisión serial.

2da Etapa:

Implantar puntos de comunicación serial.

3ra Etapa:

Empezar comunicación serial.

4ta Etapa:

Ingreso de instrucciones por teclado y su almacenamiento en sus respectivas variables.

5ta Etapa:

Transmisión de datos vía comunicación serial.

6ta Etapa:

Recepción y ejecución de instrucciones.

Page 13: Rostro Expresivo

9. ALGORITMOS:

Programación de Computadora

1. Inicio

2. Abrir puerto serial

3. Si (respuesta=ok)

4. Hacer

5. Hacer

6. Presentar “Programa para mover el rostro expresivo”

“Seleccione la expresión del rostro: “

“1. Rostro Alegre”

“2. Rostro Triste”

“3. Rostro Enojado”

“0. Salir del programa”

7. Ingresar y leer opción.

8. Mientras (opción es diferente de ‘1’, ‘2’, ‘3’, ‘0’)

9. Si(opción=’1’)

10. Enviar por el PIN2 del puerto serial opción=’1’ al PIC.

11. Si(opción=’2’)

12. Enviar por el PIN2 del puerto serial opción=’2’ al PIC.

13. Si(opción=’3’)

14. Enviar por el PIN2 del puerto serial opción=’3’ al PIC.

15. Pausa o espera de la respuesta de confirmación.

16. Recibir confirmación por el PIN3 del puerto serial.

17. Si(confirmación=’1’)

18. Presentar “Estoy feliz”

19. Si(confirmación=’2’)

20. Presentar “Estoy triste”

21. Si(confirmación=’3’)

22. Presentar “Estoy enojado”

23. Mientras(opción es diferente de ‘0’)

24. Fin

Page 14: Rostro Expresivo

Inicio

Rostro alegre

Abrir puerto serial

Rostro triste

Rostro enojado

Salir

Seleccione una opción

OP

(OP=0 | OP=1 |OP=2 | OP=3)

OP=1

Estoy feliz

V

OP=2

Estoy triste

V

OP=3

Estoy enojado

V

OP=0

Fin

F

F

9.1. DIAGRAMA DE FLUJO

Programación de

Computadora

Page 15: Rostro Expresivo

Programación Del PIC

1. Inicio

2. Recibir opción por el puerto serial por el PORTB.1 y almacenar en opción.

3. Generar secuencia de movimiento de los servomotores.

4. Si (opción=’1’)

5. Servomotores de las cejas permanecer en 0º.

6. Servomotores de la boca girar 90º hacia arriba.

7. Si(opción=’2’)

8. Servomotor de la ceja derecha girar 45º

9. Servomotor de la ceja izquierda girar 135º

10. Servomotores de la boca girar 90º hacia abajo

11. Si (opción=’3’)

12. Servomotor de la ceja derecha girar 135º

13. Servomotor de la ceja izquierda girar 45º

14. Servomotores de la boca permanecer en 0º

15. opción=confirmación

16. Enviar confirmación a la computadora por el puerto serial.

Movimiento con sensores

Como los sensores que van ubicados en los ojos son fotosensibles, al detectar un haz luminoso el servomotor del cuello gira a la posición de donde se está enfocando dicho haz luminoso.

9.2.

Page 16: Rostro Expresivo

Inicio

Rostro alegre

Abrir puerto serial

Rostro triste

Rostro enojado

Salir

Seleccione una opción

OP

(OP=0 | OP=1 |OP=2 | OP=3)

OP=1

Estoy feliz

V

OP=2

Estoy triste

V

OP=3

Estoy enojado

V

OP=0

Fin

F

F

DIAGRAMA DE FLUJO

Programación Del PIC

Page 17: Rostro Expresivo

10. BIBIOGLAFÍA:

ANDER-EGG, Ezequiel, AGUILAR IDÂÑEZ, María José, “Como

elaborar un proyecto”.

Benjamín Pinza Suárez, “PRONTUARIO ACADÉMICO Y DE

INVESTIGACIÓN”.

QUEZADA, Miguel, “PROYECTO DE INVESTIGACIÓN”, para

Segundo año de Bachillerato.

SOTELO, José. “Guía de la investigación comparada para la

metodología”.

REYES, Carlos, “Microcontroladores PIC”, Segunda Edición.

11. REFERENCIAS:

Figura [1]. http://axxon.com.ar/not/158/c-1580271.htm

Figura [2]. INTERFAZ PIC-PC. Disponible en REYES, Carlos, “Microcontroladores PIC”,

Segunda Edición - Página 135.

[7.1] y Figura [3]. MOTOR PASO-PASO. Disponible en http://es.wikipedia.org/wiki/ Servomotor

[7.2] y Figura [4]. PUERTOSERIAL. Disponible en http://es.wikipedia.org/wiki/ Puertoserial

[7.3] y Figura [5]. PIC 16F628. Disponible en http://micropic.wordpress.com/2007/ 01/12/el-pic-16f628/