martedì 30 giugno 2015

Launchpad msp430f5529 testata con relay e sensore di movimento

Ciao a tutti,
per curiosità avevo ultimamente ordinato una launchpad della Texas instrument, nello specifico il modello msp-exp430f5529: http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430f5529lp.html.,
Perché ordinarla con tutte le board presenti sul mercato? Ecco cosa mi ha convinto a provarla:
1. la quantità di pin disponibili sulla scheda e il suo basso consumo.
2. i pulsanti (ben 2 oltre quello di reset e il bsl) e i due led programmabili (uno rosso e uno verde), ottimi per rapidi test su breadboard.
3. il basso costo della scheda e dei suoi "shield" aggiuntivi, la msp430f5529 costa 12,99$ e per esempio il modulo wi-fi aggiuntivo, il CC3100BOOST costa 19,99$.
4. la possibilità di utilizzarla (come per esempio un Leonardo o un DUE) come controllo usb di applicazioni

Per testarla ho utilizzato un relay, prima attivandolo tramite il pulsante 2 on board e poi usando un sensore PIR, entrambi gli sketch li troverete di seguito.

Ecco qui di seguito un'immagine di come si presenta la msp-exp430f5529 e i componenti che si trovano a bordo:


e qui un'immagine dello schema dei pin della scheda:

La scheda è programmabile in C tramite il software CCS studio di Texas Instruments, oppure, se volete vincere facile, potete scaricare l'IDE Energia.
Energia è un porting dell'ide di Arduino per le launchpad di TI, in pratica potrete programmare le schede TI in wiring, il limite pincipale di questa soluzione è il numero più limitato di librerie che potrete trovare, dovuto alla community sicuramente meno folta.
Per darvi comunque un'ide queste sono le librerie che trovate installate con Energia:
http://energia.nu/reference/libraries/, sicuramente un buon punto di partenza e qui il sito per il download: http://energia.nu/download/, anche se vi consiglio innanzitutto di dare un'occhiata alla homepage prima di tutto.
 
Ora per iniziare un riassunto di cosa vi servirà:
1- scheda launchpad TI, io ho usato un msp-exp430f5529
1- relay
1- sensore PIR
    Energia IDE per la programmazione
 
Non essendo disponibile su fritzing la scheda vi posto una foto di come ho effettuato i collegamenti, in pratica il relay è connesso al pin 5v, al GND e al pin 6.0; il sensore PIR al 5v, al GND ed al pin 8.2.
Un chiarimento sui pin, a differenza di Arduino dove i Pin sono (esempio) il 2, il 3, il 4 ecc....
sulle launchpad avrete il pin P8.2, il significato della nomenclatura è PORTA8 PIN2 e nello sketch verrà dichiarato come P8_2
Così ora saprete anche come troverete dichiarati i pin nel programma.
 
 
Ho realizzato due sketch di prova, uno apre o chiude il contatto del relay tramite il pulsante 2 on board, il secondo fa la stessa cosa ma utilizzando un sensore di movimento.
Ecco il primo Sketch:
 
/*
SKETCH di esempio per una launchpad MSP-EXP430F5529
Questo è un programma base per l'apertura e chiusura di un contatto su un relay
tramite il pulsante PUSH2 della launchpad f5529, per chiarezza sulla scheda ci sono due pulsanti
e due led che possono essere dichiarati sia tramite i loro pin che tramite i seguenti nomi:
PUSH1, PUSH2, RED_LED, GREEN_LED.
*/
#define button PUSH2         
#define relay P6_0
int buttonState = HIGH;        
int lastButtonState = LOW; 
long time = 0;
long debounce = 50;
void setup()
{
pinMode(button, INPUT_PULLUP);
pinMode(relay, OUTPUT);
 
}
void loop()
{
int reading = digitalRead(button);

 if(reading == HIGH && lastButtonState == LOW && millis() - time > debounce){
if(buttonState == HIGH)
buttonState = LOW;
else
buttonState = HIGH;
 }
 digitalWrite(relay, buttonState);
 lastButtonState = reading;
}
 
//_______END________
 
 
Questo invece lo sketch per il sensore PIR:
 
/*
SKETCH di esempio per una launchpad MSP-EXP430F5529
Questo è un programma base per l'apertura e chiusura di un contatto su un relay
tramite un sensore PIR.
*/
 
#define relay P6_0
#define pir P8_2
 
void setup()
{
  pinMode(pir, INPUT_PULLUP);
pinMode(relay, OUTPUT);
 
}
void loop()
{
int reading = digitalRead(pir);

 if(reading == HIGH){
 digitalWrite(relay, LOW);
 }
 else{
    digitalWrite(relay, HIGH);
 }
}
 
//_______END________
 
 
Questo è tutto, prima di concludere vi linko ancora alcuni siti utili:

e due video della scheda in funzione:
 
 
Ciao a tutti, alla prossima!

 
 



Nessun commento:

Posta un commento