Ogni CPUStick contiene un microcontrollore integrato (MCS) sul quale gira il sistema StickOS Basic, 48 pin di I/O multifunzione messi in evidenza su di un blocco (utilizzabile anche in altri casi), così come un transceiver wireless ZigFlea a 2,4GHz. In soli 10 minuti si può costruire un campanello wireless programmabile, funzionante alla frequenza di 2,4GHz. Sarà sufficiente utilizzare un solo paio di CPUSticks, uno switch e un buzzer (cicalino).
Ogni CPUStick contiene un microcontrollore integrato (MCS) sul quale gira il sistema StickOS Basic, 48 pin di I/O multifunzione messi in evidenza su di un blocco (utilizzabile anche in altri casi), così come un transceiver wireless ZigFlea a 2,4GHz. Ognuno di questi componenti può essere completamente programmato utilizzato semplicemente un compute host con un emulatore di terminare e la possibilità di utilizzare il linguaggio BASIC, almeno ad alto livello.
E' molto più facile quando qualcun altro lavora per te! CPUStick - Compralo ora! (24/48h delivery)
StickOS BASIS è un ambiente di programmazione interattivo per microcontrollore, ambiente di programmazione che è proprio residente sul microcontrollore.
L'ambiente di programmazione include un editor facile da usare, un compilatore linea per linea (interprete trasparente), un debugger interattivo, un profiler di performance, un filesystem basato su tecnologia flash, tutti controllati attraverso un'interfaccia utente interattiva a linea di comando (vedere Figura 1). In StickOS, i pin per la comunicazione I/O verso l'esterno possono essere mappati su variabili BASIC per poterne eseguire analisi e/o operazioni di calcolo. Le periferiche interne del microcontrollore possono essere gestite da istruzioni di controllo in BASIC e da gestori di interrupt.
CPUstick e il campanello wireless programmabile - Hello Doorbell!
Circuito
Per costruire un campanello wireless programmabile, collega due CPUSticks come segue:
Sulla CPUStick #1 (identificatore di nodo 1), collega il pin dtin3 ad un terminale dello switch, mentre l'altra uscita dello switch deve essere collegata a terra.
Sulla CPUStick #2 (identificatore di nodo 2), collega il pin dtin0 ad un capo del buzzer (cicalino) da 3 V, mentre l'altro capo del buzzer deve essere collegato a terra.
Assemblaggio del campanello wireless programmabile con CPUstick
Si possono saldare gli spinotti maschio/maschio sul sistema di I/O del CPUStick ed installarli in breadboards, come mostrato qui sotto. In alternativa, si può saldare direttamente le CPUSticks per un'installazione più duratura. Ho utilizzato batterie CR-2 per le fasi di test; da considerare che per il funzionamento a regime saranno necessari altri tipi di alimentazione.
Da notare che la parte superiore del CPUStick è il nodo il cui identificatore è 1, e viene collegato allo switch del campanello, nella parte inferiore della CPUStick vi è invece il nodo con identificatore 2 collegato al cicalino del campanello. I componenti comunicano fra di loro attraverso un dispositivo ZigFlea wireless a 2,4GHz, il tutto con un controllo definito da un programma BASIC.
Configurazione:
Nodo con Identificatore 1 (nodeid 1)
Per configurare il node 1, collegare tale nodo alla porta USB del computer, permettere agli opportuni driver di auto installarsi (ad esempio dalla rete scaricare gli opportuni driver per Windows). Attraverso l'emulatore di terminare collegarsi così come descritto nella Guida Utente di StickOS, digitare quindi il seguente programma:
Welcome to StickOS for Freescale MCF52252 v1.70e! Copyright (c) 2008-2009; all rights reserved. http://www.cpustick.com [email protected] (checksum 0xe62b) > nodeid 1 > 10 dim i > 20 dim notes[9] > 30 dim switch as pin dtin3 for digital input debounced inverted > 40 dim buzzer as remote on nodeid 2 > 50 rem major scale starting at a-440 > 60 data 440, 494, 554, 587, 659, 740, 831, 880, 0 > 70 for i = 0 to 8 > 80 read notes[i] > 90 next > 100 rem our song > 110 label song > 120 data 3, 0, 1, 0, 8, 2, 3, -1 > 130 rem main loop > 140 while 1 do > 150 rem if the switch is pressed... > 160 if switch then > 170 rem play the song > 180 restore song > 190 do > 200 read i > 210 rem if the song is not over... > 220 if i!=-1 then > 230 rem play the note on the remote cpustick > 240 let buzzer = notes[i] > 250 sleep 200 ms > 260 endif > 270 until i==-1 > 280 let buzzer = 0 > 290 endif > 300 endwhile > save doorbell1 > autorun on > _
Il programma precedentemente descritto configura una variabile denominata switch che è legata al pin dtin3, che è configurata per un input digitale. Poi, configura una variabile remota denominata buzzer sull'altra CPUStick. Infine, definisce la frequenza (via via crescente) delle note (gestite tramite un array) e conclude suonando la canzone specificata (vale a dire la sequenza di note specificate) sul cicalino dell'altra CPUSTick ogni volta che il campanello su questa CPUStick viene premuto.
Nodo con identificatore 2 (nodeid 2)
Per configurare il nodo con identificatore 2, collegarlo alla porta USB del computer, permettere ai driver per Windows di installarsi da Internet e collegarsi tramite l'emulatore di terminale così come descritto nella guida utente di StickOS. Digitare poi il seguente codice:
Welcome to StickOS for Freescale MCF52252 v1.70e! Copyright (c) 2008-2009; all rights reserved. http://www.cpustick.com [email protected] (checksum 0xe62b) > nodeid 2 > 10 dim buzzer as pin dtin0 for frequency output > save doorbell2 > autorun on > _
Questo programma si occupa semplicemente di configurare una variabile buzzer sul nodo con identificatore 2 che corrisponde al pin dtin0, il quale è configurato per la frequenza di output. Il programma termina e la CPUStick non fa altro che aspettare che l'altra CPUStick (ossia il nodo con identificatore 1) apporti modifiche alla variabile relativa al pin, e di conseguenza aggiorna/varia lo stato del pin dtin0.
Personalizzazione
La suoneria del cicalino può essere personalizzata cambiando l'istruzione alla linea 120 del nodo con identificatore 1: i valori 0-7 corrispondono alle note a-g, mentre il valore 8 è la pausa.
CPUstick costruire un campanello wireless programmabile: Funzionamento
Una volta che le due CPUSticks sono impostate per l'autorun, quando sono accese, ognuna esegue i propri programmi immediatamente. Premere il pulsante del campanello sulla CPUStick #1 farà sì che la suoneria venga suonata sul cicalino collegato alla CPUSTick #2
Diagnostica
Che cosa fare se il programma non funziona? Cosa fare se vi è un bug nello switch o nella circuiteria del cicalino (buzzer)? StickOS permette il completo controllo interattivo del microcontrollore.
Per attivare i programmi sul nodo con identificatore 1 è sufficiente digitare run e poi premere stop per vedere:
>run STOP at line 160!
A questo punto si può stampre il valore dello switch (della variabile associata allo switch) con il comando:
>print switch 0
Se si preme lo switch e poi si stampa ancora il valore dello switch
print switch 1
Si può far funzionare da remoto il cicalino sul nodo con identificatore 2 con
>let buzzer = 1000
Si può spegenere da remoto il cicalino con l'istruzione
> let buzzer = 0
Si può anche far continuare il programma da dove lo si aveva interrotto con:
> cont
Si possono utilizzare breakpoint, asserzioni, watchpoint, esecuzione step by step, esecuzione su traccia, analisi dei pin ed addirittura si può utilizzare la modalità edit-and-continue grazie al debugging interattivo del StickOS
Maggiori informazioni
La documentazione completa di StickOS e i relativi download per i microcontrollori supportati può essere reperita su www.cpustick.com/index.htm Esiste inoltre un progetto grazie al quale viene fornito il codice sorgente di base per l'inizializzazione dei pin e per le routine per lavorare con le periferiche, per coloro che intendono effettuare il porting dei programmi BASIC in C.
E' molto più facile quando qualcun altro lavora per te! CPUStick - Compralo ora! (24/48h delivery)
Repost del 23 set 2009