domingo, 16 de junio de 2013

Energía. Programar Stellaris o MSP430 como Arduino.

Desde que Arduino de popularizó, poco a poco todas las grandes empresas de electrónica van abriendo camino en esa dirección. Primero fué Microchip, con su plataforma CHIPKIT, la cual incorpora un IDE similar al de Arduino. Otra de estas empresas fué Cypress, la cual también ha sacado una placa con un PSOC4 compatible con Arduino, y ahora es Texas Instruments la que, después de sacar su gama Launchpad, se atreve con un IDE similar al de Arduino, el cual podemos encontrar por ahí como ENERGIA.


El IDE es prácticamente el mismo, cambiando el color, incluso podemos encontrar muchos de los ejemplos que existen para Arduino, aunque no tantos como se encuentras para las ChipKit, aunque si tenemos en cuenta el tiempo que tiene esta plataforma, y que se alimenta de los ejemplos que  suben los usuarios es normal que todavía haya pocos, pero conforme pase el tiempo, y la comunidad vaya creciendo, el número de ejemplos aumentará también.
Aunque el IDE sea idéntico al de Arduino, las placas Launchpad tienen poco que ver con estas, al contrario que pasa por ejemplo con las ChipKit, que el formato de forma es idéntico. Por tanto el número de los pines y sus funciones difieren, y los nuevos mapeados los podemos encontrar aquí para el MSP430, y aquí para el Stellaris. Aunque el IDE no está disponible todavía para el Launchpad C2000, en la página informan de que estará pronto.
A continuación os pongo un ejemplo del código "fadding" de Arduino, modificado para funcionar en el MSP430 Launchpad.

int ledPin = 4;    
//int ledPin = 14;    

void setup()  { 
  // nothing happens in setup 
} 

void loop()  { 
  // fade in from min to max in increments of 5 points:
  for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) { 
    // sets the value (range from 0 to 255):
    analogWrite(ledPin, fadeValue);         
    // wait for 30 milliseconds to see the dimming effect    
    delay(30);                            
  } 

  // fade out from max to min in increments of 5 points:
  for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) { 
    // sets the value (range from 0 to 255):
    analogWrite(ledPin, fadeValue);         
    // wait for 30 milliseconds to see the dimming effect    
    delay(30);                            
  } 
}
Como veis el código es  idéntico al de arduino, solo que en el caso del MSP430 tan solo disponemos de 2 pines con salida PWM, el 4 y el 14. Este mismo código puede funcionar en la Stellaris, en la cual tenemos bastantes más pines de PWM disponibles. 
Como ya sabéis, no soy fan ni de Arduino, ni de su lenguaje, ya que me parece que está bastante limitado tanto en eficiencia como en optimización de código, pero no deja de ser interesante que podamos escribir un codigo para un AVR, pasarlo a un PIC32 sin cambiar casi nada, y si no nos convence, utilizar un ARM M4F como es la Stellaris, incluso si nuestro proyecto está limitado en cuanto a consumo, podemos utilizar un procesador de ultra bajo consumo como es un MSP430.

No hay comentarios:

Publicar un comentario