Home
Accesso / Registrazione
 di 

Costruire un Campanello Wireless Programmabile con CPUStick

CPUstick Costruire un Campanello Wireless Programmabile a 2,4GHz con CPUStick

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! Dev.Emcelettronica 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:

cpustick_doorbell-circuito

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.

cpustick-assemblaggio

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
support@cpustick.com
(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
support@cpustick.com
(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! Dev.Emcelettronica CPUStick - Compralo ora! (24/48h delivery)

Repost del 23 set 2009

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di Eliseo Ferrante

al posto del buzzer....

salve, al posto del buzzer si può mettere un motorino per vibrare tipo la vibrazione dei cellulari o metterli entrambi ???
e aggiungere un circuito per ricaricare la batteria con un alimentatore esterno usando una batteria ricaricabile ???
mi servirebbe per farne uno tascabile da dare ai camerieri in sala che essendo distante dalla cucina spesso non sentono la campanella quando li chiamo e mi si freddano i piatti!
grazie mille !

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 0 utenti e 26 visitatori collegati.

Ultimi Commenti