IMPLEMENTACIÓN PRÁCTICA PARA EL CURSO DE PROGRAMACIÓN DE SISTEMAS EMBEBIDOS USANDO TARJETA INTEL GALILEO
Short Description
Descripción: ANTEPROYECTO...
Description
IMPLEMENTACIÓN PRÁCTICA PARA EL CURSO DE PROGRAMACIÓN DE SISTEMAS EMBEBIDOS USANDO TARJETA INTEL GALILEO
DIEGO ALEXANDER LANDAZURY DIAZ
UNIVERSIDAD SANTIAGO DE CALI FACULTAD DE INGENIERÍA SISTEMES CALI 2015
IMPLEMENTACIÓN PRÁCTICA PARA EL CURSO DE PROGRAMACIÓN DE SISTEMAS EMBEBIDOS USANDO TARJETA INTEL GALILEO
DIEGO ALEXANDER LANDAZURY DIAZ
ASISTENCIA DOCENTE INGENIERÍA DE SOFTWARE
DIRECTOR DEL TRABAJO DE GRADO DIEGO FERNANDO MARIN LOZANO MAGISTER EN INFORMATICA
UNIVERSIDAD SANTIAGO DE CALI FACULTAD DE INGENIERÍA SISTEMAS CALI 2015
CONTENIDO
pág. INTRODUCCIÓN 1. PLANTEAMIENTO DEL PROBLEMA 2. JUSTIFICACIÓN 3. OBJETIVOS 3.1 GENERAL 3.2 ESPECIFICOS 3.3 ALCANCE 4. MARCO REFENCIAL 4.1 MARCO CONTEXTUAL 4.2 MARCO CONCEPTUAL Y TEORICO 4.2.1 Sistemas Embebidos 4.2.2 Estructura de un Sistema Embebido 4.2.3 Intel Galileo 4.2.4 Características de la Placa Intel Galileo 4.2.4.1 Descripción de la placa Intel Galileo 4.2.4.2 Proceso para establecer la conexión de la tarjeta Intel Galileo con el Computador mediante LAN 4.2.4.3 Descripción del software a utilizar 4.2.5 Laboratorios a desarrollar en el curso de Sistemas Embebidos. 4.2.5.1 Elementos a utilizar durante la elaboración de los laboratorios del curso de Sistemas Embebidos. 4.3 ESTADO DEL ARTE 5. DISEÑO METODOLÓGICO PRELIMINAR 5.1 METODOLOGÍA SELECCIONADA 5.2 PLAN DE TRABAJO 5.2.1 Entregables principales del proyecto 5.3 CRONOGRAMA 5.4 PRESUPUESTO DETALLADO 6. BIBLIOGRAFIA
3 4 5 6 6 6 6 7 7 7 7 7 8 9 9 11 13 14 16 18 20 20 20 21 21 21 23
INDICE DE FIGURAS pag
Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura
1. Tarjeta Intel Galileo "Vista Frontal" 2. Tarjeta Intel Galileo "Vista Trasera" 3. Componentes Clave 4. Archivos descomprimidos en la tarjeta SD 51. Interfaz del programa puTTY 6. Entorno de desarrollo Linux 7. Interfaz del programa Processing 8. LEDs 9. Potenciómetros 10. LED RGB 11. Display LED de 7-Segmentos 12. Joystick shield 13. LCD 16 x 2
8 8 9 11 11 12 13 16 16 16 17 17 17
INDICE DE TABLAS pag
Tabla 1 Componentes Claves Tabla 2 Entregables principales del proyecto Tabla 3 Cronograma Tabla 4 presupuesto
10 21 21 21
NTRODUCCIÓN La Universidad Santiago de Cali, y la Facultad de Ingeniería nos brindan una carrera completa. En estos momentos el departamento de las TIC nos ofrece complementar nuestros estudios con el curso de programación de sistemas embebidos, este curso se oferta cada semestre y puede ser cursado por estudiantes de todos los programas de la facultad de ingeniería. Este curso se desarrolla bajo el entorno de hardware libre, utilizando como principal herramientas las plataformas de desarrollo Arduino, ya que son de fácil acceso y han proporcionado la capacidad de procesamiento y memoria que hasta el momento los estudiantes han requerido. Este curso se ha venido desarrollando con éxito cada semestre, pero como las tecnología no para en los últimos 4 años las plataformas de desarrollo han ido aumentando y a medida que aumenta se le añaden más capacidades en el alcance en cuanto a puertos periféricos, capacidad de procesamiento y resolución de los convertidores análogos y digitales, por lo que es importante revisar el actual contenido del curso y así replantear el desarrollo de los laboratorios para que se pueda abrir paso a la utilización de estas nuevas tecnologías.
3
1. PLANTEAMIENTO DEL PROBLEMA En curso de Programación de Sistemas Embebidos que ofrece la Universidad Santiago de Cali se vienen desarrollando 12 en los cuales se enseña desde como prender un led, pasando por el envío de mensajes a una matriz de led y finalizando en el envió de un mensaje a un display por medio de internet y aparte de eso se pide desarrollar un proyecto final elegido por el estudiante. El desarrollo de este se cursó viene ejecutando, bajo el entorno de hardware libre y especialmente utilizando la placa de desarrollo Arduino, esto es muy conveniente ya que todos los componentes de Arduino son muy económicos y fáciles de conseguir. Dentro de la ingeniería de sistemas estar a la vanguardia de las nuevas tecnologías es un punto esencial, pero como bien sabemos el curso de programación de sistemas embebidos siempre se ha desarrollado con Arduino, como bien sabemos la rápida evolución de las tecnologías implica que siempre tengamos que estar innovando y mejorando la tecnología que utilizamos para así tener una educación de alta calidad y al nivel de las grandes universidades del mundo. Al final del curso se pide elaborar un proyecto donde el estudiante debe utilizar todo lo aprendido en el curso para desarrollar algo totalmente diferente, aquí es donde la imaginación del estudiante toma vuelo y se imagina realizando proyectos realmente complejos, esto es un gran problema ya que la plataforma Arduino no cumple muchas veces con los requerimiento que necesitan los estudiantes, y saben obligados a última hora cambiar todo su esquema para así desarrollar algo que este al nivel de arduino. Sea visto el caso de intentos desarrollar el curso de programación de sistemas embebidos con placas de desarrollo distintas a Arduino, como es el caso de la raspberry pi y launchpad, pero estas placas son totalmente diferentes a Arduino al poco tiempo de estar elaborando los laboratorios desisten ya que la compatibilidad es nula y se ven obligados a continuar el curso con Arduino, esta no la idea ya que el objetivo principal es estar a la vanguardia de las nuevas tecnologías y así poder ingresar en un mercado competitivo y dejar el nombre de la Universidad Santiago de Cali en lo más alto.
4
2. JUSTIFICACIÓN Con la implementación de una nueva placa de desarrollo en el curso de programación de sistemas embebidos, se espera que los estudiantes realicen proyectos realmente complejos, ya que esta placa ofrecerá característicasmuchos mejores a las que tiene la actual placa de desarrollo que está usando en el curso. La placa Galileo de Intel es la placa que se desea implementar para la elaboración de los laboratorios que se realizan en el curso de Sistemas Embebidos ya que ofrece.
Gran capacidad de procesamiento. Un puerto Ethernet incorporado. Una entrada cliente donde se pueden conectar periféricos externos (teclado, cámara). Ranura SD para poder utilizar la imagen de Linux y programar en diferentes lenguajes.
Al mismo tiempo con la implementación de esta nueva placa, se desarrollara una guía que permita que el conocimiento que se obtendrá al realizar este proyecto pueda ser utilizado e implementado por los estudiantes de la universidad Santiago de Cali no solo para el curso de Programación de Sistemas Embebidos sino que también para la realización de sus futuros trabajos de grado. Es necesario tomar en consideración que las tecnologías avanzan a pasos agigantados y para estar a la vanguardia tenemos que incursionar en nuevas tecnologías y esta es una de ellas, ya que nos permitirá ir más allá de nuestros límites y ser más competitivos a nivel académico.
5
3. OBJETIVOS 3.1. OBJETIVO GENERAL Desarrollar una Implementación practica para el curso de programación de sistemas embebidos usando tarjeta Galileo de Intel. 3.2. OBJETIVOS ESPECÍFICOS Llevar a cabo un análisis de la compatibilidad con lo que actualmente se está desarrollando con la plataforma Arduino. Realizar la adaptación de los laboratorios del curso de Sistemas Embebidos bajo la plataforma Intel Galileo. Definir un esquema que permita la utilización de la placa Intel Galileo en la actualización del curso de programación de Sistemas Embebidos. Construir una guía que permita la socialización e implementación del uso de la plataforma Intel Galileo por parte de los estudiantes de la Universidad Santiago de Cali. 3.3. ALCANCE Este proyecto está enfocado principalmente en la implementación de una nueva plataforma de desarrollo, para así realizar una actualización de los laboratorios que se desarrollan del curso de sistemas embebido, sin embargo esto no significa que la placa de desarrollo que actualmente se está utilizando sea desechada, al contrario lo que se busca es una interacción entre las dos plataformas para logar alcanzar el objetivo que es la actuación de los laboratorios y el desarrollo de futuros proyecto de grado que los estudiantes de la Universidad Santiago de Cali deseen realizar. Este proceso de mejoramiento permitirá la interacción de los estudiantes con la nueva placa de desarrollo Galileo de Intel, y así mismo se le suministrara una guía completa, desde como instalar el software, hasta como se deben llevar a cabo la utilización de esta nueva placa de desarrollo.
6
4. MARCO REFERENCIAL 4.1 MARCO CONTEXTUAL La Utilización de software y hardware libre en la Universidad Santiago de Cali, es parte fundamental en la enseñanza que se realiza en el curso de Programación de Sistemas Embebidos ya que es una forma que los estudiantes tienen de aprender de estas tecnologías que cada día va en aumento. Por esta razón se desea implementar el uso de la plataforma Intel Galileo principalmente en el curso de Programación de Sistemas Embebidos que oferta la facultad de ingeniería de la Universidad Santiago de Cali, ya que esto permitirá que los estudiantes tengan acceso a un entorno de desarrollo mucho más completo, así mismo se espera que los estudiantes de otras facultades vean la importancia y el alcance que tienen estas tecnologías y así puedan hacer uso de ellas para el desarrollo de sus futuros proyectos de grado. 4.2 MARCO CONCEPTUAL Y TEORICO 4.2.1 Sistemas Embebidos Un sistema embebido (SE) o sistema empotrado es una combinación de hardware y software diseñado específicamente para realizar unas determinadas funciones, habitualmente formando parte de un sistema de mayor entidad. La característica principal es que emplea para ello uno o varios procesadores digitales (CPUs) en formato microprocesador, microcontrolador o DSP lo que le permite aportar ‘inteligencia’ al sistema anfitrión al que ayuda a gobernar y del que forma parte. Estos sistemas solucionan un problema específico, el sistema embebido contiene una sola pastilla de silicio, es muy posible encontrar sistemas embebidos en muchos de los aparatos electrónicos que usamos diariamente, como por ejemplo el controlador de temperatura que tiene la nevera, el horno y hasta el microondas. (Galeano, 2009) 4.2.2 Estructura de un Sistema Embebido Las principales características de un sistema embebido son el bajo costo y consumo de potencia. Dado que muchos sistemas embebidos son concebidos para ser producidos en miles o millones de unidades, el costo por unidad es un aspecto importante a tener en cuenta en la etapa de diseño. Generalmente, los sistemas embebidos emplean procesadores muy básicos, relativamente lentos y memorias pequeñas para minimizar los costos. En estos sistemas la velocidad no solo está dada por la velocidad del reloj del procesador, sino que el total la arquitectura se simplifica con el fin de reducir costos. Normalmente, un sistema embebido emplea periféricos controlados por interfaces seriales sincrónicas, las cuales son muchas veces más lentas que los periféricos empleados en un PC.
7
Como se mostró anteriormente, un sistema embebido debe enfrentar fuertes restricciones de recursos, por tanto normalmente deberá hacer uso de sistemas operativos especiales, denominados de tiempo real (RTOS Real time operating system).Los sistemas embebidos deberán reaccionar a estímulos provenientes del ambiente, respondiendo con fuertes restricciones de tiempo en muchos casos, por lo tanto, un sistema se dice que trabaja en tiempo real si la información después de la adquisición y tratamiento es todavía vigente. Es decir, que en el caso de una información que llega de forma periódica, los tiempos de adquisición y tratamiento deben ser inferiores al período de actualización de dicha información. Un sistema embebido puede o no ser de tiempo de real dependiendo de los requerimientos específicos de la aplicación que se quiere implementar. Los programas en estos sistemas se ejecutan minimizando los tiempos muertos y enfrentando fuertes limitaciones de hardware, ya que usualmente no tienen discos duros, ni teclados o monitores, una memoria flash reemplaza los discos y algunos botones y una pantalla LCD normalmente reemplazan los dispositivos de interfaz. El software que controla un dispositivo de hardware, por ejemplo n una memoria ROM, Flash o un circuito integrado se conoce como Firmware. Típicamente la programación en estos dispositivos se realiza en lenguaje ensamblador o en lenguaje C, actualmente se han desarrollado algunas máquinas virtuales y otros compiladores que permiten el diseño de programas más complejos. Además se puede encontrar depuradores, simuladores, ases de datos, GUIs, metodologías entre otras herramientas para el diseño y programación de este tipo de sistemas. (Galeano, 2009)
4.2.3 Intel Galileo
Figura 1. Tarjeta Intel Galileo "Vista Frontal" Figura 2. Tarjeta Intel Galileo "Vista Trasera" Fuente: (INTEL, 2014)
Galileo es una tarjeta microcontroladora basada en el procesador de aplicaciones Intel® Quark SoC X1000, un “sistema en chip” (SoC) de clase Intel® Pentium de 32 bits. Es la primera tarjeta basada en la arquitectura Intel® diseñada para ser compatible, pin a pin, en hardware y software con Shields de Arduino diseñados para Uno R3. Los pines digitales del 0 a 13 (y el Aref adyacente y pines GND), Las entradas analógicas entre 0 y 5, el cabezal de alimentación, el conector ICSP, y los pines adyacentes AREF y GND del
8
puerto UART (0 y 1), están todos en los mismos lugares que en el Arduino Uno R3. Esto también se conoce como la distribución de pines Arduino 1.0. Galileo está diseñado para soportar los Shields que operan a 3.3 V o 5 V. El voltaje de funcionamiento básico de Galileo es 3.3V. Sin embargo, un puente (jumper) en la tarjeta permite la conversión de voltaje a 5V en los pines de E / S. Esto proporciona soporte para los Shields Arduino Uno de 5V, el cual es su comportamiento predeterminado. Al cambiar la posición del puente, la conversión de tensión por voltaje se puede desactivar para proporcionar un funcionamiento de 3.3 V en los pines de E / S. Por supuesto, la tarjeta Galileo también es compatible con el ambiente de software de desarrollo Arduino, lo que hace que su usabilidad y la familiarización sea instantánea. Además de la compatibilidad de hardware y software, la tarjeta de desarrollo Galileo tiene varios estándares de puertos de entrada y salida del mundo de las PCs, y características para expandir el uso nativo y las capacidades más allá de del sistema de Arduino. Una ranura mini-PCI Express, un puerto Ethernet de 100Mb, una ranura para Micro-SD, un puerto serie RS-232, un puerto cliente USB, y una memoria Flash NOR de 8 Mbytes vienen de serie en la tarjeta. (INTEL, 2014) 4.2.4 Características de la Placa Intel Galileo 4.2.4.1Descripción de la placa Intel Galileo
Figura 3. Componentes Clave Fuente: (INTEL, 2014)
9
Tabla 2 Componentes Claves Numero Componente Descripción 1 Puerto Ethernet Conecta el Galileo hasta cualquier 10/100 Mb / s LAN. 2 Puerto serial Es un puerto de 3,5 mm "estéreo". RS-232 3 RS-232 RS- 232 transceptor 4 Cliente USB 2.0 Puerto que permite la conexión con la computadora para programar el Galileo mediante la interfaz de Arduino. 5 2.0 Host USB Puerto por el cual se pueden conectar periféricos externos mediante dispositivos USB como teclados, almacenamiento masivo, etc. Con un concentrador USB, se pueden conectar hasta 128 dispositivos a este puerto. 6 SPI Flash Memoria de 8 Mbyte que permite almacenar el firmware y el último boceto. 7 SPI Flash Puerto que permite la programación del SPI FlashEl valor Program Port predeterminado es 4 MHz para apoyar escudos Arduino. Programable hasta 25 MHz. 8 9 10
ArduinoInterface ADC Intel® Quark SoC X1000
11
ICSP
12
15
256 MB DDR3 RAM Arduino Interface JTAG Debug Port GPIO Expander
16 17
Micro SD slot 5V Power
18
VoltageRegulato r Eth PHY
13 14
19
Pines digitales compatibles con arduino. Convertidor análogo a digital. Es el corazón de la Galileo. Este es un procesador de 32 bits construido sobre la arquitectura x86. velocidad de reloj de 400 MHz
16KB L1 Caché
512 KB de SRAM
Núcleo individual, hilo sencillo 6 -pin en el circuito de programación de serie ( ICSP ), ubicado apropiadamente para conectar a los escudos existentes. Estos pines soportan la comunicación SPI. Memoria de256 Mbytes Pines analogos compatibles con arduino. 10 pines para la depuración. modulación de ancho de pulso proporcionado por una junta de expansión ranura micro SD para la instalación de la imagen Linux Puerto para conectar adaptador de CA a CC que alimenta la placa. Con alimentación de 5V en hasta 3A. Genera alimentación de 3,3 voltios. Transistor de la capa física del Ethernet Fuente: (INTEL, 2014)
10
(Intel, March 2014)
4.2.4.2 Proceso para establecer la conexión de la tarjeta Intel Galileo con el Computador mediante LAN Linux Imagen 1. Para hacer uso de la imagen de Linux lo primero que debemos realiza es la descarga de la imagen del sitio http://www.intel.com/support/galileo/sb/CS035101.htm en este link se podrá encontrar un archivo comprimido de la imagen el cual se debe descomprimir dentro de la tarjeta SD.
Figura 4. Archivos descomprimidos en la tarjeta SD
2. Insertamos la tarjeta SD, en la ranura que se encuentra ubicada en la placa Intel galileo, la conectamos a 5V y conectamos el cable de red LAN y mediante el programa PUTTY podremos establecer la conexión por medio de la IP.
11
Figura 5. Interfaz del programa puTTY Fuente: Propia
3. Una vez se establezca la conexión ya podremos tener acceso a herramientas, como SSH, Python, Node.js y OpenCV.
Figura 6. Entorno de desarrollo Linux Fuente: Propia
12
4.2.4.3 Descripción del software a utilizar Processing Processing es un lenguaje de programación basado en Java, al estar basado en java tiene la posibilidad de heredar todas las funcionalidades que java ofrece. Inicialmente este lenguaje de programación, se creó para servir de prototipo en la creación de proyectos de software, y de esta manera enseñar los fundamentos de programación de una forma visual; actualmente Processing se ha convertido en una herramienta de desarrollo. Entre las características que caben destacar de este lenguaje de programación, se encuentran las siguientes:
Descarga gratuita y de código abierto. Posibilidad de crear programas con salida 2D, 3D o PDF. OpenGL integración de aceleración 3D. Distribución bajo licencia GNU. Posee más de 100 bibliotecas que amplían las posibilidades del software. Existe variedad de documentación.
Processing se puede ejecutar tanto en Windows, como Mac OS y Linux, donde las pruebas más extensivas sobre estabilidad y rendimiento se hacen sobre Windows y Mac OS. Como se mencionó anteriormente en una de las características de este lenguaje, Processing trabaja bajo la licencia GPL. Es muy fácil de utilizar, y su descarga muy sencilla solo se debe acceder a https://processing.org y escoger el sistema operativo en el cual se está trabajando. (processing)
13
Figura 7. Interfaz del programa Processing Fuente: Propia
4.2.5 Laboratorios a desarrollar en el curso de Sistemas Embebidos. Los siguientes son los laboratorios del curso de programación de sistemas embebidos ofertado por al faculta de ingeniería de la Universidad Santiago de Cali, que actualmente es impartido por el Docente Diego Fernado Marin.
Lab 1: Controlar 8 LEDs desde el Intel Galileo, un LED encendido que se mueve de izquierda a derecha.
Lab 2: Controlar 8 LEDs desde el Intel Galileo, uno LED encendido que se mueve de izquierda a derecha cuyos tiempos de encendido y apagado se controlan desde dos potenciómetros.
Lab 3: Controlar 8 LEDs desde el Intel Galileo, un LED encendido que se mueve en forma continua de izquierda a derecha, vía una interfaz gráfica en Processing/ControlP5 para controlar el tiempo de encendido y el tiempo de apagado.
Lab 4: Controlar un LED RGB desde el Intel Galileo, vía PWM con 3 potenciómetros, uno para cada color.
Lab 5: Controlar un LED RGB desde el Intel Galileo, vía PWM con una interfaz gráfica en Processing/ControlP5 para controlar el valor de cada color.
14
Lab 6: Controlar 8 LEDs desde el Intel Galileo, a través de un IC 74HC595, definiendo mínimo 8 patrones de movimiento que son controlados desde una interfaz gráfica en Processing/ControlP5. Más información sobre el IC 74HC595
Lab 7: Controlar desde el Intel Galileo, un Display LED de 7-Segmentos, a través de un IC 74HC595, para mostrar un número de 0 a 9, dependiendo de la posición del Potenciómetro.
Lab 8: Manipular en la pantalla del computador un objeto gráfico usando Processing, con los datos leídos en el Intel Galileo desde un Joystick shield.
Lab 9: Controlar desde una interfaz en Processing, el patrón de movimiento y colores en un módulo de 8 LEDs RGB controlado con un Intel Galileo.
Lab 10: Mostrar un mensaje desplazándose de izquierda a derecha en una matriz LED 8x8 a través de IC MAX7219 enviado desde un Intel Galileo, pueden usar una interfaz Processing.
Lab 11: Enviar desde una página web un mensaje a una pantalla LCD 16x2 conectada al Intel Galileo, pueden usar una interfaz Processing.
Lab 12: Mostrar un mensaje desplazándose de izquierda a derecha en una pantalla LCD 16x2 enviado desde el Intel Galileo.
15
4.2.5.1 Elementos a utilizar durante la elaboración de los laboratorios del curso de Sistemas Embebidos.
Diodos emisores de luz (LEDs). Un LED es un componente electrónico que permite el paso de corriente en un solo sentido y al ser atravesado por la misma, emite luz. El LED tiene polaridad ya que funciona polarizándolo de una sola forma, es un diodo (componente rectificador con la peculiaridad de que además de permitir el paso de corriente en un solo sentido, al hacerlo emite luz y ésa es primordialmente su función), tiene un borne que debe conectarse a negativo y el otro debe conectarse a positivo. El borne negativo es el cátodo y el positivo el ánodo.(Lasso, 2011) Figura 8. LEDs Fuente:(Lasso, 2011)
Potenciómetros Los potenciómetros es una resistencia de valor variable, son capaces de medir la posición angular y pequeños desplazamientos de posición lineal. Según el tipo de posición a medir tendremos dos tipos distintos de dispositivos pero la idea básica es común.
Figura 9. Potenciómetro Fuente: (Artero, 2013)
Constan de una resistencia a través de la cual hay una determinada diferencia de potencial. Además hay un contacto unido a la resistencia pero que se puede deslizar a su alrededor; este elemento es conocido como wiper. (Artero, 2013)
16
LED RGB
Figura 10. LED RGB Fuente: (Lasso , 2011)
Display LED Segmentos
de
Tiene 1 Ánodo y 3 Cátodos. Cómo el ánodo es el borne común entre los 3 LEDs internos, debe estar alimentado siempre para que al alimentar los cátodos según el orden que se desee, podamos obtener los colores que queramos. Esto quiere decir que si dejamos conectado el ánodo como corresponde al borne positivo de la fuente de alimentación, en base a cual cátodo conectemos a masa obtendremos el color correspondiente. Y sí, se pueden alimentar los 3 LEDs al mismo tiempo o generar todo tipo de combinaciones. (Lasso , 2011)
7-
Figura 11. LED de 7-Segmentos Fuente: (Opencockpits, 2012)
Un Display de este tipo está compuesto por siete u ocho leds de diferentes formas especiales y dispuestas sobre una base de manera que puedan representarse todos los símbolos numéricos y algunas letras. Los primeros siete segmentos son los encargados de formar el símbolo y con el octavo podemos encender y apagar el punto decimal. (Opencockpits, 2012)
Joystick shield
Figura 12. Joystick shield Fuente: (Artero, 2013)
Es un módulo de control en 2D, compatible con Arduino. Nos permite tener un dato analógico en los ejes X e Y, esto a través de la manipulación de una palanca que se encuentra conectada físicamente a un preset produciendo un divisor de voltaje al realizar los desplazamientos en la palanca. El Joystick tiene una posición por default que es el centro y existen desplazamientos tanto para el eje X e Y, en cada movimiento el dispositivo envía una variación de voltaje, permitiéndonos con esto poder identificar la posición exacta Del joystick a través de la interpretación del voltaje en los puertos analógicos del Arduino. (Artero, 2013)
LCD HD44780
17
LCD HD44780 Es un display alfanumérico de matriz de puntos, es un dispositivo de interfaz formado por una pantalla de cristal liquido o LCD, sobre la que se pueden mostrar mensajes formados por distintos caracteres: letras, números, símbolos. Se encuentran en diferentes formatos: 2x8, 2x16, 4x20.
Figura 13. LCD Fuente: (Adafruit Industries, 2014)
Estos dispositivos vienen gobernados por un microcontrolador, que normalmente va incorporado sobre la misma placa de circuito impreso que soporta el LCD. El controlador HD44780 se encarga de gestionar el display, polariza los puntos de la pantalla, genera los caracteres, desplaza la pantalla y muestra el cursor. (Adafruit Industries, 2014)
4.3 ESTADO DEL ARTE Durante el proceso investigativo que se realizó en el marco de este proyecto se encontró que ya hay universidades en diferentes países donde se encuentran trabajando con este tipo de plataformas y con las misma metodología que actualmente se está implementando en el curso de programación de sistemas embebidos que se dicta en la Universidad Santiago de Cali, como es el caso de las Universidades que se mencionan a continuación. TECNUN. Escuela de Ingenieros Universidad de Navarra. Oferta el curso Diseño de sistemas embebidos biomédicos, dictado por el Dr. Adam podhorski, Dr. Iker Mesa y el Profesor. Andrés García Alonso. El curso trata sobre dispositivos embebidos en el sector de la salud y permite adquirir los conocimientos técnicos y tecnológicos necesarios para la ejecución de diseños y desarrollos innovadores que involucren contextos multidisciplinares. Tras una introducción en que se da la visión global de las nuevas tecnologías en el ámbito médico, sus necesidades actuales y las tendencias que darán forma al futuro en este campo, el curso tratará sobre la arquitectura de los sistemas embebidos modernos en el sector de la salud, su alimentación y protocolos de comunicación y de transferencia de datos. Durante el curso los estudiantes harán una serie de prácticas durante las cuales desarrollarán un sistema completo, empezando por un sensor y pasando por el acondicionamiento, adquisición, transmisión y posterior procesamiento de señales procedentes del cuerpo humano. Objetivos
18
Capacidad de programación de sistemas embebidos basados en la plataforma Arduino. Estudio y aplicación de protocolos de comunicación tales como SPI ó I2C. Aplicación de los sistemas embebidos en el ámbito biomédico. Diseño y desarrollo de un sistema embebido completo: o Diseño y fabricación de un sensor biomédico. o Estudio y uso de sensores comerciales. o Diseño y desarrollo de un sistema embebido interconectado y controlado por una unidad central.
El objetivo de la asignatura consiste en diseñar y desarrollar un sistema electrónico complejo que dé respuesta a un problema con unas especificaciones establecidas. Dicho sistema constará de uno o más sistemas embebidos compuestos por un conjunto de sensores, microcontroladores, microprocesadores y actuadores. Además, los mencionados sistemas embebidos estarán conectados a una unidad central de control y adquisición. A lo largo del curso el alumno realizará una serie de prácticas formativas sobre cada elemento constituyente de un sistema embebido. Estas prácticas estarán acompañadas por clases teóricas sobre los conocimientos que los alumnos deberán adquirir en esta asignatura. El conjunto de las prácticas servirá como base para la realización del proyecto final. (TECNUN, 2015) UADY. Universidad Autónoma de Yucatán Esta Universidad oferta el Diplomado de Aplicaciones Embebidas donde el participante configurara y programara en las plataformas de Arduino y Rasberry PI, para el desarrollo e implementación de soluciones orientadas a la automatización de sistemas industriales y comerciales. Objetivos El participante:
Programará en lenguaje C sistemas embebidos.
Configurará las plataformas ARDUINO y RASPBERRY PI de forma apropiada para maximizar el rendimiento de las aplicaciones.
Conectará ambas plataformas vía los puertos disponibles a otros dispositivos usando protocolos de comunicación apropiados.
Desarrollará aplicaciones de automatización. (UADY, 2015)
UNAM. Universidad Nacional Autónoma de México
19
Intel México dono a esta universidad las placas Intel Galileo. Donde actualmente los estudiantes del programa de ingeniería en el área de la robótica las utilizan para desarrollar diferente tipos de proyectos, los estudiantes han elaborado una guía donde podemos encontrar, artículos de cómo hacer uso de esta plataforma asi mismo de como configurarla y la instalación de los diferentes software a utilizar.
5. DISEÑO METODOLÓGICO PRELIMINAR 5.1 METODOLOGÍA SELECCIONADA Para el desarrollo del siguiente trabajo se ha escogido la línea de profundización de ingeniería de software y el modelo que se seguirá es el de espiral planteado por barry boehm, donde cada bucle o interacción representa un conjunto de actividades, donde tan pronto termina una actividad inmediatamente comienza la siguiente y en cada ejecución se siguen cuatro pasos principales: -Determinar o fijar los objetivos, -Análisis del riesgo, -Desarrollar, verificar y validar, -Planificar. (Boehm, 1988) Determinar o fijar los objetivos En este paso se establecerán los objetivos específicos a desarrollar, y así poder identificar las limitaciones del proceso y del sistema, para poder diseñar una planificación detallada de gestión e identificar los riesgos. Análisis del riesgo En este paso se efectúa un análisis detallado para cada uno de los riegos identificados del proyecto, y se definen los pasos a seguir para reducir los riesgos y así plantear las estrategias alternativas. Desarrollar, verificar y validar
20
Este paso depende del análisis de riesgo que se realizó anteriormente, y así se podrá elegir un paradigma para el desarrollo del sistema y podrá llevarse a cabo el desarrollo de este. Planificar Este último paso es donde el proyecto se revisa y se toma las decisión si se debe continuar con un ciclo posterior, si se decide continuar se desarrollaran los planes para la siguiente fase del proyecto. 5.2 PLAN DE TRABAJO 5.2.1 Organización del equipo del proyecto Diego Landazury Diaz Diego Fernando Marin, Director del proyecto de grado
5.2.2 Entregables principales del proyecto Tabla 2: Entregables principales del proyecto
ID del Entregable E1 E2 E3 E4
Descripción del entregable Análisis de la compatibilidad Elaboración del esquema que permita la utilización de la tarjeta Intel Galileo adaptación de los laboratorios Elaboración de la guía que permita la socialización
Tiempo estimado 2 meses 3 meses 2 meses 2 meses
5.3 CRONOGRAMA Tabla 3: CRONOGRAMA
Nombre de tarea Análisis de la compatibilidad Elaboración del esquema que permita la utilización de la tarjeta Intel Galileo adaptación de los laboratorios Elaboración de la guía
Duración 60 diaz
Comienzo 03/07/15
Fin 03/09/15
Responsable Diego landazury
90 diaz
04/09/15
04/01/15
Diego landazury
60 diaz
05/01/16
05/03/16
Diego landazury
60 diaz
06/03/16
06/05/16
Diego landazury
21
que permita socialización
la
5.4 PRESUPUESTO DETALLADO Tabla 4: PRESUPUESTO Financiado USC Rublos
Personal Desarrolladores del proyecto Director proyecto Equipo Portátiles Impresora Materiales Papelería
Financiado estudiantes Descripción
Cant
Vlr Unitario
Vlr Total
3.000
1.782.000
10.000
720.000
1 Computador personal 1 Impresora personal multifuncional
900.000
900.000
300.000
300.000
300.000
Resmas papel
7.000
14.000
14.000
1.700
244.800
244.800
68.000
612.000
612.000
594 Horas dedicadas al proyecto 72 del Horas dedicadas al proyecto
de 2
Viajes Desplazamiento Reunión con 144 reuniones ida a director de universidad y trabajo de regreso a casa grado Servicios técnicos Conexión a Pago mesual 9 internet de internet Total presupuesto
4.572.800
Efectivo
Especie
Efectivo
Especie
1.782.000
720.000
900.000
720.000
1.170.800
2.682.000
22
6. BIBLIOGRAFÍA
Adafruit Industries. (2014). i2c/SPI LCD Backpack. Artero, O. T. (2013). ARDUINO Curso prectico de formacion. Mexico: Alfaomega. Boehm, B. W. ( 1988). A Spiral Model of Software. Computer, 61 -72 . Galeano, G. (2009). Programacion de Sistemas Embebidos. Mexico: Alfaomega. INTEL. (2014). Tarjeta de desarrollo Intel® Galileo. Intel. (March 2014). Board User Guide. Lasso, D. (2011). LEDs RGB: Guía complementaria para el Manual Básico para Trabajar con LEDs . Opencockpits. (2012). Manual de Cableado de Displays de 7. processing. (s.f.). processing. Recuperado el marzo de 2015, de www.processing.org
23
TECNUN. Escuela de Ingenieros Universidad de Navarra. (2015). TECNUN. Escuela de Ingenieros Universidad de Navarra. Obtenido de http://www.tecnun.es/ UADY. Universidad Autonoma de Yucatan. (2015). UADY. Obtenido de http://www.matematicas.uady.mx/ UNAM. Universidad Nacional Autónoma de México. (2014). UNAM. Obtenido de http://www.ingenieria.unam.mx/
24
View more...
Comments