|
Sorry, english translation
is in progress. Come back soon!
Alternately try free on-line automatic translation tools (like Google language tools) for a computer-generated translation from italian |
Il Basic Stamp diventa un telecomando via radio Accendere luci e apparecchi a distanza |
Il Robot entra in una stanza e come per incanto si accendono
le luci e la TV. Fantascienza? No, semplice tecnologia!
Per ottenere questo risultato è sufficiente trasformare il Robot in
un telecomando programmabile, in grado di comandare le luci e molti
altri apparecchi elettrici. Vediamo come.
Un sistema di telecomando è sempre formato da un circuito trasmettitore e un circuito ricevente.
Ecco i componenti chiave di tutto il processo, partendo dal Robot per arrivare all'interruttore che accende l'apparecchio desiderato:
ROBOT: crea gli impulsi che codificano i vari comandi, grazie ad un apposito programma Pbasic |
MODULO TRASMITTENTE: usa gli impulsi per modulare un segnale radio, che trasmette nello spazio |
<<< >>> |
MODULO RICEVENTE: riceve i segnali irradiati, ritrasformandoli in impulsi |
NUTCHIP: separa gli impulsi dal rumore di fondo e li decodifica, accendendo e spegnendo le uscite |
|
I moduli trasmittenti trovano largo impiego in elettronica, e si possono
acquistare in varie frequenze. Per l'Italia e i Paesi europei la frequenza
di trasmissione consentita è di 433 MHz. Collegate le alimentazioni, dobbiamo fornire il segnale di modulazione (il nostro codice) al piedino di ingresso del modulo (IN, 3). Con il programma che vi forniamo il Basic Stamp genera il codice tramite il piedino P0. Abbiamo aggiunto un condensatore (C1) per filtrare l'alimentazione
dai picchi presenti ad alte frequenze. |
Come collegare il modulo trasmittente al Robot |
Il modulo trasmettitore si monta facilmente sulla breadboard
del Robot. Dovremo poi usare dei pezzetti di gilo di rame per completare i collegamenti:
meglio seguire la convenzione di usare filo rosso per il positivo (chiamato
anche Vcc, Vdd, +5V), e nero per il negativo (Vss, GND). L'antenna è molto importante: è il tramite che
permette alle onde radio di passare dal circuito allo spazio
circostante e viceversa. Migliore è l'antenna, migliore
sarà il rendimento del circuito, e maggiore la portata.
In commercio esistono antenne appositamente progettate per
queste frequenze (433 MHz), ma a scopi sperimentali possiamo
iniziare con uno spezzone di filo di rame. Il diametro non ha
importanza, la lunghezza invece sì: deve essere 16,5 cm.
|
Il trasmettitore montato sulla breadboard. Notate l'antenna, in pratica un pezzo di filo di rame rigido messo verticalmente (filo verde).
|
Il programma che vi proponiamo trasmette due codici, il numero 1111 ed il numero 2222, a distanza di mezzo secondo l'uno dall'altro:
1111 (mezzo secondo) 2222 (mezzo secondo) 1111 (mezzo secondo) 2222 (mezzo secondo) 1111...
Nel seguito vi mostreremo anche un circuito ricevente che capterà
il segnale trasmesso dal Robot.
Il circuito ricevente contiene un Nutchip che accende un LED se riceve
il codice 1111, e lo spegne se riceve il codice 2222: perciò
quando il Nutchip sarà nell'area di azione del Robot, vedremo il LED
accendersi e spegnersi continuamente!!!
Ma torniamo al programma in Pbasic per il Robot. E' diviso in due parti:
programma Pbasic
|
Spiegazione
|
|
Il trasmettitore è pilotato dall'uscita 0 del Basic Stamp; campiate questa riga se volete usare un piedino diverso. |
|
La variabile "remote_code" conterrà il codice da trasmettere; la routine di trasmissione inoltre usa "n" per metterci i risultati intermedi, ed "i" per contare il numero di volte per cui ripetere la trasmissione. |
|
Settiamo il pin in uscita e predisponiamolo basso. |
again: | Qui inizia il ciclo principale del programma, ripetuto in continuazione! |
|
Per trasmettere il codice 1111, lo mettiamo
nella variabile "remote_code"... ...e chiamiamo la routine di trasmissione "tx_remote_code". Poi faremo una pausa di mezzo secondo. Nota: se volete cambiare codice, basta scriverlo al posto di 1111. I codici validi vanno da 1 a 4095. |
|
Adesso trasmettiamo il codice 2222, allo stesso
modo del precedente. E di nuovo una pausa da mezzo secondo. Infine riprendiamo daccapo in un ciclo senza fine.... |
PARTE 2 La parte seguente è la subroutine che trasmette il codice. Basta copiarla all'interno del vostro programma, senza modificarla. |
|
tx_remote_code: |
Routine di trasmissione di un codice radio. |
|
La trasmissione del codice viene ripetuta 10 volte, per essere sicuri che il codice venga ricevuto bene anche in presenza dei disturbi (sempre presenti nell'etere). |
|
Per la trasmissione i bit del codice ci servono invertiti; lo facciamo ora, mettendo il risultato nella variabile n. |
|
Accendiamo il trasmettitore: questo primo impulso si chiama "bit di start" |
|
Il bit di start è seguito da 12 bit di dati. Ogni bit viene trasmesso preceduto da bit bassi e seguito da bit alti. Si comincia con l'undicesimo bit... |
|
Si prosegue con il decimo bit del codice... |
|
Poi il nono..... |
|
Poi l'ottavo, e così via, a ritroso, fino al bit meno significativo, cioè il bit zero |
|
Come potete vedere, la tecnica è la stessa per tutti i bit: si mette l'uscita bassa per due volte, poi per due volte l'uscita è messa alta o bassa a seconda del codice, ed infine si rimette l'uscita ad 1 per due volte ancora. Probabilemnete vi state chiedendo per quale motivo mettiamo l'uscita alta o bassa per ben due volte: non basterebbe farlo una sola volta? In effetti, la seconda volta che si pone un pin uguale a zero (o uguale ad uno) il pin non cambia, e quindi sembrerebbe che abbiamo fatto uno sforzo inutile! Ma in realtà, se eliminassimo la seconda ripetizione, il telecomando non funzionerebbe perchè gli impulsi trasmessi sarebbero troppo veloci. Infatti la durata di ogni singolo impulso alto o basso è stabilita dagli standard di codifica. Impulsi con i livelli alti e bassi corretti, ma con una cadenza troppo rapida o troppo lenta, non rispettano lo standard di trasmissione ed il ricevitore del telecomando rifiuta il segnale!!! Con il trucco mettere l'uscita alta o bassa due volte, invece, otteniamo i tempi giusti per ogni singolo bit. A qualcuno sarà venuto in mente di usare una PAUSE come modo alternativo per stabilire i tempi di ogni singolo impulso trasmesso. Purtroppo i tempi di attesa richiesti sono molto più brevi di un milliseceondo (che è il tempo minimo che possiamo utilizzare per la PAUSE). Qunidi, il miglior trucco che abbiamo trovato è stato quello di ripetere due volte tutte le operazioni di modifica di un bit. Ovviamente la seconda ripetizione non ha alcun effetto (perchè si mette alta un'uscita già alta, o bassa un'uscita già bassa), ma in questo modo il programma è molto uniforme e soprattutto si ottengono i tempi giusti per la trasmissione di ogni singolo impulso. Avrete quindi capito che la routine di trasmissione non deve essere modificata, altrimenti cessa di funzionare. Ad esempio, se mettessimo una DEBUG a metà fra la trasmissione di un bit ed un altro, la tempistica degli impulsi ne sarebbe stravolta ed il segnale trasmesso non verrà più riconosciuto da decodificatore del telecomando. |
|
Il treno di impulsi è stato trasmesso. Spegniamo
il trasmettitore ed aspettiamo 10 millesimi di secondo prima di ritrasmettere
il segnale. Nota: non confondete questa pausa con la pausa da 500 millisecondi inserita nella prima parte del programma. |
|
La ripetizione si fa 10 volte.... |
return |
Dopodichè la routine di trasmissione è completata!!! |
Per ricevere il segnale trasmesso dal Robot ci serve un ricevitore per telecomando.Utilizzeremo la scheda descritta nell'articolo:
Infatti questa scheda possiede tutte le caratteristiche che
ci servono: ricevitore, antenne, LED ed un relè con cui azionare ciò
che ci piace. Troverete lo schema, la descrizione del funzionamento ed anche
il circuito stampato nella pagina dedicata a questo progetto. Prima di proseguire
con la lettura però ricordate sempre che il collegamento di questo
e di altri circuiti alla rete elettrica, a lampade e a qualsiasi altro apparecchio,
richiede sempre l'intervento di un elettricista professionista ed il
rispetto delle norme vigenti. Non farlo può causare guai seri, e danni
gravi alle persone e alle cose. Con la corrente elettrica non si scherza!