Stellaris usando ENERGIA

1,806 views
1,631 views

Published on

programa ENERGIA es una adaptación de Arduino IDE pero en este caso para microcontroladores de texas instrument como el Stellaris

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,806
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
71
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Stellaris usando ENERGIA

  1. 1. Primera Pr´actica Manipulaci´on LED RGB con push button Zaraos V´azquez Jorge Alejandro , Toala Hern´andez Jahaziel, Rodr´ıguez Morales Guillermo de Jesus Instituto Tecnol´ogico de Tuxtla Gutierrez, Chiapas aleh.kz@hotmail.com angelblack 035@hotmail.com nemesis rmgj@hotmail.com Resumen – En esta pr´actica utilizaremos un soft- ware distinto al CCS un programa basado en lenguaje de arduino el ENERGIA 0101E0009, realizamos diferentes ejemplos para poder entender bien como funciona, utilizando estos ejemplos poniendo en pr´acti- ca la mayor´ıa de ellos en un solo programa donde la manipulaci´on del LED RGB con los dos push button. I. INTRODUCCI´ON Siglas de red, green, y blue, (rojo, verde y azul). RGB es un modelo de color utilizado normalmente para presentar color en los sistemas de video, c´amaras, y monitores de ordenadores. Representa todos los colores como combinaciones de rojo, verde y azul. RGB en el sistema de color m´as utilizado por la mayor´ıa de los formatos actuales. Stellaris cuenta con este LED que ser´a el que manipularemos para activar los 3 colores est´andares, la manera en que ser´a manejado el LED son con los 2 push button. El presente reporte explica como comenzar a usar el pro- grama ENERGIA 0101E0009 con ejemplos de manipulaci´on de LED como desvanecimiento en la intensidad de luz en el LED, parpadeo, control push button, y envi´o de caracteres ASCII del pin ala hyperterminal o al serial monitor que incluye ENERGIA, una vez realizadas estas pr´acticas se realizo una pr´actica final incluyendo partes de casi todas. II. FUNDAMENTOS TE´ORICOS A. ENERGIA 0101E009 Energia es una plataforma electronica de prototipado rapido para LaunchPad no solo los basados en ARM de stellaris, sino tambi´en a los de m´as edad MSP430. B´asica- mente se trata de una versi´on muy modificada de Arduino IDE (que a su vez se basa en Processing). Supported MCUs: LaunchPad with MSP430G2231 MSP430G2452 or MSP430G2553 FraunchPad with MSP430FR5739 StellarPad with LM4F120H5QR Fig. 1 Software ENERGIA 0101E0009 El entorno de c´odigo abierto hace f´acil escribir c´odigo y cargarlo. Se ejecuta en Windows, Mac OS X y Linux. El medio ambiente est´a escrito en Java y basado en Processing, avr-gcc y otros programas de c´odigo abierto. El entorno de desarrollo ENERGIA contiene un editor de texto para escribir c´odigo, un ´area de mensajes, una consola de texto, una barra de herramientas con botones para las funciones m´as comunes, y una serie de men´us. Se conecta con el hardware (Launchpad) para cargar programas y comunicarse con ellos. El software escrito usando (Launchpad) son llamados sketches, estos sketches est´an escritos en el editor de texto. Los sketches se guardan con la extensi´on de archivo. Ino. Cuenta con funciones para cortar, pegar, buscar y reem- plazar texto.
  2. 2. El ´area de mensajes ofrece informaci´on al guardar y exportar adem´as de los errores. La consola muestra el texto de salida por el entorno ENERGIA incluyendo mensajes de error completos y dem´as informaci´on, la esquina inferior derecha de la ventana muestra la actual junta directiva y el puerto serial. Los botones de la barra de herramientas le permiten comprobar y cargar programas, crear, abrir y guardar sketches y abra el monitor serie, Serial Monitor muestra datos en serie que se env´ıan desde el Launchpad. Para enviar datos al Launchpad, se introduce el texto y se hace clic en el bot´on .enviar.o presionar enter se selecciona la velocidad de transmisi´on en el men´u desplegable que co- incide con la velocidad que pasa a Serial.begin en el sketch. Energia apoya la StellarPad con LM4F120H5QR. El diagrama siguiente muestra la distribuci´on de pines completo para el LM4F StellarPad en Energia. Fig. 2 Diagrama de pines B. Stellaris LM4F120 El stellairs LM4F120 LaunchPad Evaluation Board es una plataforma de evaluacion de bajo costo para ARM Cortex -M4F basados en microcontroladores de Texas Instrument, el dise˜no de el LaunchPad stellaris destaca LM4F120H5QR microcontrolador con un dispositivo de interfaz USB 2,0 y un m´odulo de hibernaci´on. El EK-LM4F120XL tambi´en cuenta con botones pro- gramables de usuario y un LED RGB para aplicaciones personalizadas, las cabeceras de la apilables Stellaris R LM4F120 LaunchPad BoosterPack XL hace que sea f´acil y sencillo para ampliar la funcionalidad de la Stellaris R LaunchPad, al conectarse a otros perif´ericos con Stellaris R BoosterPacks y BoosterPacks MSP430 TM . El Stellaris R LM4F120 LaunchPad funciona a bordo de emulaci´on, lo que significa que se puede programar y depurar sus proyectos sin la necesidad de herramientas adicionales.Compatibilidad del BoosterPackDos de doble- genero, 20-pines de cabeceras apilables ofrecen grandes op- ciones de conexi´on de la caja. Estos 40 pines permiten a˜nadir soporte de pantallas, interfaces inal´ambricas, sensores y otras capacidades a los proyectos muy f´acilmente y tambi´en ofrecen compatibili- dad b´asica con los actuales MSP430 y C2000 LaunchPad’s. El microcontrolador Stellaris ofrece una LM4F120H5QR 80 MHz, 32-bit ARM Cortex-M4 CPU con pun- to flotante, 256Kbytes de 100.000 FLASH ciclo de escritura-borrado y muchos perif´ericos tales como ADC 1MSPS, 8 UARTs, 4 SPIs, 4 I2Cs, USB y hasta 27 timers, algunos configurable hasta 64 bits. Dos in- terruptores de uso general de usuarios, un bot´on de reinicio, LED de encendido y LED programable RGB. Fig. 3 Stellaris LM4120 LaunchPad C. LED RGB RGB es un modelo de color basado en la s´ıntesis aditiva, con el que es posible representar un color mediante la mezcla por adici´on de los tres colores de luz primarios. El modelo de color RGB no define por s´ı mismo lo que significa exactamente rojo, verde o azul, por lo que los mismos valores RGB pueden mostrar colores notablemente diferentes en diferentes dispositivos que usen este modelo de color. Los colores primarios del modelo RGB son aditivos, es decir, para producir el resultado se suman las con- tribuciones individuales de cada primario. Los colores b´asicos son el RED (ROJO), GREEN (VERDE) Y BLUE (AZUL) y de la mezcla de estos y su aplicaci´on con mayor o menor intensidad obtenemos el resto de colores; encontr´andonos en los extremos con el blanco y el negro; es decir un color cuyo valor RGB es 0,0,0 es el color negro, y el color cuyo valor es 255, 255, 255 es el color blanco, en este punto cabe se˜nalar que los valores RGB son expresados en una combinaci´on de 3 cifras cuyos valores
  3. 3. m´ınimo y m´aximo son 0 y 255 respectivamente. mezclando los diferentes valores de un modo u otro obtendremos los diferentes colores: 255,0,0 (rojo), 0,255,0 (verde), 0,0,255 (azul), 255,128,0 (naranja)... y as´ı todas las com- binaciones posibles que se puedan realizar con los 3 valores. Representando el modelo en un cubo unitario, cada componente de la tripleta toma valores en el rango de 0 a 1. As´ı un color C1 se expresa: C1 = R + G + B Fig. 4 Representaci´on en cubo unitario Asumiendo que utilizamos n´umeros enteros en el rango 0..255 (un byte), es decir 256 valores posibles para cada color primario, entonces con tres bytes podemos represen- tar 256 x 256 x 256 combinaciones diferentes de los colores primarios, es decir una gama de m´as de 16 millones de colores (frecuentemente referida como ¸color verdadero”). Fig. 5 Paleta de colores III. DESARROLLO DE LA PR´ACTICA Para hacer el desarrollo de una manera entendible es realizado un diagrama de procesos donde se muestra de forma estructurada como realizamos la pr´actica. Se puede observar en la siguiente figura. Fig. 6 Diagrama de procesos A. Primeros programas con ENERGIA Fig. 7 Programa de parpadeo de LED Primero que nada lo primero a utilizar ser´an void setup y loop que son las funciones principales que nece- sariamente tienen que ir en cada c´odigo realizado con ENERGIA. Setup que ser´a el que se inicia al momento de cargar el programa al LaunchPad y loop que es el bucle que realizara las operaciones o tareas del programa. En este primer ejemplo declaramos pinMode donde pin ser´a el numero de pin a establecer se declara BLUE LED por que asi lo reconoce el software ENERGIA como puedo observar en la figura 3 el diagrama de pines del Stellaris, Mode es el estado de este pin declarado esta vez como OUTPUT (salida) como es declarado como salida lo que realizara es permitir conducir un nivel de voltaje de acuerdo a una configuraci´on PWM. En la siguiente funci´on la configuraci´on de OUTPUT puede ser cambiada usando digitalWrite, usamos digital- Write que impulsa un voltaje al pin establecido, cuando es HIGH el pasador establece el suministro de energ´ıa de 3.3v que es el voltaje del LaunchPad como se explicaba antes en fundamentos te´oricos que para representar el color en este caso azul seria 0,0,255 al establecer el pin BLUE LED
  4. 4. ENERGIA sabe c´omo est´a distribuido lo ´unico es la intensidad de luz, es decir, el voltaje al establecer HIGH env´ıa los 3.3v = 255, cuando digitalWrite es LOW el pasador se establece a tierra as´ı de esta manera apagando el LED, delay es el retraso en milisegundos que le daremos 1000=1 segundo. Con esto se terminar´ıa el primer ejemplo. Fig. 8 Desvanecimiento del color del LED En la parte superior vamos a declarar las variables brillo que ser´a la intensidad PWM y descolorar la variable que restara intensidad al brillo, los pines que usaremos ser´a el 39 o GREEN LED definimos su estado OUTPUT (salida), ya en la funci´on loop cambiamos la configuraci´on de salida con analogWrite que es usado para controlar la luminosidad del LED, definiendo que 255 es el m´aximo brillo porque son las 256 combinaciones diferentes de un byte incluyendo cero, 3.3v(3300mV) necesario para el mayor brillo, entonces ENERGIA aplicara una regla de 3 para saber qu´e cantidad necesaria de voltaje debe enviar para la luminosidad: (V de Launchpad/combinaciones=cantidad para un V) (mV/combinaciones = cantidad para un mV) (3.3/256=77.57575757575758) (3300/256=0.0775757575757576) M´axima luminosidad = 256 / 0.0775757575757576 = 3300mV (3.3v) Luminosidad media = 125 / 0.0775757575757576 = 1611mV (1.6v) La configuraci´on con analogWrite primero establecemos el pin y luego la luminosidad que es la variable brillo, como nuestra variables esta en 0 el LED comenzara apagado, a esta variables se iguala a la misma variable mas la variable que tiene un valor de 5 y asi comenzara a brillar con una intensidad muy d´ebil despu´es de esto bajara a la siguiente instrucci´on que es un if pero como no cumple la condici´on se cicla porque est´a dentro de la funci´on loop hasta que se cumpla la condici´on que la variable llegue a 255 entrara en la condici´on y cambiara el valor de la variable 5 a menos 5 para decender el valor de 255 a 0 y comenzar de nuevo, establecemos un retraso con delay que ser´a el tiempo en que ir´a cambiando la luminosidad. Fig. 9 Entrada anal´ogica de un PIN Fig. 10 Tabla de pines ADC Stellaris Este peque˜no c´odigo nos sirve para leer el valor anal´ogi- co del LaunchPad lo primero que declararemos en nuestro setup ser´a serial.begin que establecer la velocidad de datos en bits por segundo (baudios) para la transmisi´on de datos. Creamos una variable de tipo int donde guardaremos el valor anal´ogico le´ıdo con analogRead, con analogRead leemos el valor de la tensi´on en el pin anal´ogico elegido en este caso A0, pin 29 o PE 3 (ver imagen 10 tabla de pines ADC) convierte esta tensi´on de voltios a un numero entero en este caso hasta 4096 por el convertidor: ADC12(2x2x2x2x2x2x2x2x2x2x2x2 = 4096) Esto proporciona una resoluci´on en la lectura de: 3.3v (3300mV)/4096 unidades, es decir, 0.0008056640625v (0.8056640625mV) por unidad De esta si esta forma es como se da a cabo la conversi´on, con serial.println es el que se encarga de imprimir el resul- tado estos resultados se pueden ver por una hyperterminal o el monitor serie que incluye ENERGIA.
  5. 5. B. Primeras pruebas El ejemplo m´as sencillo de un parpadeo de LED usando el software ENERGIA 0101E0009 con programaci´on sencilla y b´asica. Fig. 11 Parpadeo de LED RGB con el color azul. Desvanecimiento del LED verde empieza en cero apagado y por el retardo establecido va en ascenso hasta llegar al m´aximo brillo para descender la intensidad. Fig. 12 Desvanecimiento LED RGB colo verde. El valor que leera analogRead ser´a convertido en un valor de car´acter entre 0 al 4095 con la for- mula anteriormente mencionada, mostrando de esta forma en el monitor serial dado cuestiones de fun- cionamiento es mejor la hyperterminal por su re- spuesta e impresi´on de datos son complicaciones. Fig. 13 Resultados de leer entrada anal´ogica en hyperterminal. C. Elecci´on de practica Dado los ejemplos anteriores y haberlos compren- dido la finalidad en si es la manipulaci´on del LED RGB pero agreg´andole mas funcionalidades, as´ı que se decidi´o por que la manipulaci´on fuera por medio de los push button teniendo diferentes funcionali- dades cada uno y poder apagarlos desde el mismo push button, de esta forma poner en pr´actica los conocimientos adquiridos en los programas anteriores. D. Programaci´on de la pr´actica Fig. 14 Codigo de la practica.
  6. 6. La finalidad del presente reporte algo relacionado con el led rgb con sus diferentes tonalidades usando los pines ya que posee un pin por cada color estandar (rojo, verde, azul) cada pin posee una intensidad de luz pwm. Declaramos pinMode donde pin ser´a el numero de pin a establecer se declaran PF 1, PF 2, PF 3 que son los pines de los colores rojo, azul y verde, el estado de estos pines ser´a OUTPUT conduciendo asi el voltaje como lo explica anteriormente, aqu´ı viene lo nuevo declaramos los pines PF 4, PF 0 que son los dos push button, y el modo de entrada requerida el estado ser´a INPUT PULLUP esto significa que el bot´on de l´ogica ah sido invertido HIGH cuando est´a abierta y LOW cuando se pulsa. En la primera funci´on establecemos los pines de nuevo a quienes se les conducir´a el voltaje con un retraso de 1000 milisegundos, que est´a dentro de un ciclo while(1) que se repetir´a y repetir´a, a esta funci´on le llamaremos parpadeo lento despu´es de la manipulaci´on de el LED se ponen 2 condiciones que si se llegara a efectuar cualquiera de las dos la funci´on es llamada, por medio del push button se efectuaran esas condiciones la primera si se presiona PF 0 me mandara ala siguiente funci´on y en dado caso de presionar el mismo push button mandara a la ´ultima funci´on que tiene como objetivo apagar el LED ya que activa el pin RESET, la condici´on se realizara dependiendo del push button que se presione. La siguiente funci´on es parpadeo r´apido donde haremos lo mismo, ciclamos con while(1) establecemos los pines de nuevo y el estado para suministrar el voltaje con un retraso de 250 milisegundos despu´es de esto habr´an dos condiciones que se efectuara cualquiera de las dos solo si se presiona el push button, la primera si se presiona PF 4 llamara a la funci´on anterior y en dado caso de presionar el mismo push button mandara a la ´ultima funci´on que tiene como objetivo apagar el LED ya que activa el pin RESET. La ´ultima funci´on parpadeo apagado que es donde se activa el bot´on RESET seleccionando el pin, una vez que se haya apagado el LED RGB puede volver a llamar a las funciones anteriores presionando PF 4 o PF 0. Por ´ultimo en el bucle tendremos las opciones de las funciones parpadeo lento y r´apido de esa forma es como comen- zara la manipulaci´on presionando cualquiera de los dos. IV. RESULTADOS Despues de haber realizado varios programas para poder adentrarse al software ENERGIA los resul- tados esperados es al final algo relacionado con el LED RGB., cargamos primero el programa al LaunchPad. Fig. 15 Programa cargado correctamente. Una vez cargado correctamente hace- mos la prueba presionando los push button. Fig. 16 Manipulacion LED RGB. Para comprobar que cuando suministra voltaje a un pin este hace que se encienda el LED, se hizo la prueba con un multimetro comprobando que efectivamente cuando el pin no recibe voltaje no enciende ese color, la prueba se hizo con el color azul. Fig. 17 Prueba con multimetro.
  7. 7. Representaci´on grafica de cuales son los pines de push button. Fig. 18 Push button V. CONCLUSIONES El prop´osito de la practica se alcanzo, primero que nada tener nuevos conocimientos en lenguajes usando as´ı ENER- GIA 0101E0009, el objetivo realizar ejemplos sencillos para comprender mas como funciona el software y el Stellaris adem´as de que con esos conocimientos hacer una pr´actica m´as vistosa utilizando m´as recursos del Stellaris no solo el LED RGB. Referencias [1] Texas Instrument, Stellaris R LM4F120H5QR Microcon- troller,DATA sheet, 108 Wild Basin, Suite 350 Austin, TX 78746, Febrero 2013 [2] http://cosasdemecatronica.com/tutoriales/arduino/317- arduino-basico-t19ab-control-basico-de-un-led-rgb-apoyado-por- tabla-de-colores [3] http://sabia.tic.udc.es/gc/Contenidos %20adicionales/trabajos/ Tutoriales/color/RGB.htm [4] http://www.laciudadela.net/2010/01/16/control-de-led-rgb- con-arduino/ [5] https://github.com/energia/Energia/wiki/Getting-Started [6] http://www.ti.com/ww/en/launchpad/stellaris head.html [7] http://arduino.cc/en/Tutorial/InputPullupSerial [8] http://arduino.cc/en/Reference/pinMode [9] http://arduino.cc/es/Tutorial/PWM [10] http://www.ti.com/tool/ek-lm4f120xl [11] http://energia.nu/

×