Come interfacciare un radiocomando ad Arduino

Ciao!

Questa è sia una recensione che un tutorial,
infatti vedremo come collegare e leggere i segnali di un radiocomando con Arduino.

Il radiocomando di cui vi parlerò è il Flysky FS-I6 che ho trovato su GearBest (a questo link) ad un prezzo di circa 40 dollari (!!!)



Il Radiocomando è un 6 canali molto semplice e compatto.
Considerando anche il costo di questo tipo di dispositivi, questo ha davvero un ottimo rapporto qualità prezzo.


Nella confezione troverete:

- Il radiocomando FS-i6
- Una ricevente FS-iA6
- Un cavetto per l'accoppiamento
- Un cd con il manuale


Il radiocomando arriva già accoppiato alla ricevente presente nella scatola, nella confezione è presente anche il cavetto per eventualmente accoppiare la ricevente ad un altro radiocomando.


Passiamo ora a vedere come interfacciare il tutto con il nostro Arduino, per prima cosa ho collegato un canale ad il mio utilissimo mini oscilloscopio (di cui vi avevo parlato qui). Grazie ad esso ho potuto capire il comportamento dell'uscita agendo su uno stick del radiocomando.



Come potete vedere, agendo sullo stick di sinistra varia la durata dell'impulso a livello alto del segnale in uscita sul canale 3 della ricevente.
In basso a destra, sul display dell'oscilloscopio, potete vedere che il duty cycle varia dal 5 al 10%.

Di default la frequenza del segnale è 50hz (modificabile dal menu del radiocomando), di conseguenza il periodo è di 0.02secondi (1/50hz).
Avendo il livello logico alto una durata compresa tra il 5% e il 10% dell'intero segnale, esso durerà tra i 1000 e i 2000 microsecondi (il 5% e il 10% del periodo).


Dopo aver osservato questo, il passo successivo sarà collegare i 6 canali della ricevente ad altrettanti ingressi del nostro Arduino e leggere la durata del segnale a livello logico alto per capire lo stato degli stick del radiocomando.

Colleghiamo la ricevente ad Arduino in questo modo:



Per leggere la durata degli impulsi della ricevenete utilizzeremo la funzione PulseIn, che restituisce la durata dell'impulso a livello logico alto (o basso) sul pin indicato.

ecco lo sketch, è molto semplice, il tutto è ripetuto per i 6 canali:


Adesso, aprendo il serial monitor, potrete vedere lo stato dei 6 canali.

Per default al canale 1 è associato il "pitch" (stick di destra a sinistra/destra), al canale 2 il "pitch" "roll" (stick di destra su/giù), al 3 il "throttle" (stick di sinistra su/giù) e al canale 4 il "yaw" (stick di sinistra a sinistra/destra).
La scelta dei canali 5 e 6 si configura dal menu Auxiliary channels io ad esempio ho deciso di associare al canale 5 il potenziometro "VRA" e al canale 6 lo switch "SWD"


Ora che abbiamo imparato a leggere con Arduino i segnali provenienti dalla ricevente possiamo utilizzarli per fare ciò che vogliamo, quindi non necessariamente mezzi radiocomandati ma qualunque cosa comandabile a distanza.
In questo semplicissimo esempio ho utilizzato il radiocomando per controllare una striscia di led.




Certo, a meno che non abbiate una striscia di led a 100 metri di distanza la cosa potrà sembrare poco utile, ma questo è solo una piccola dimostrazione di come è semplice controllare qualunque cosa a distanza con un radiocomando e Arduino.

Questo è lo sketch che ho usato per il video sopra:




Questo è tutto!
Non sono un esperto del mondo modellistico, ma avendo provato questo radiocomando posso dirvi che mi è piaciuto davvero molto.
Esteticamente può sembrare un po' "cheap", ma le informazioni sul display sono molto utili (livello batteria sia del trasmettitore che del ricevitore) e il menù è molto intuitivo e ben fatto.
In definitiva per un costo di circa 40 dollari vi potete far arrivare un radiocomando 6 canali molto utile per qualsiasi tipo di progetto. Ecco il link a cui potete trovarlo.

Per qualsiasi domanda lasciate un commento qui sotto, ciao!

Segui Daniele Alberti su Google+ per rimanere sempre aggiornato su nuovi post! 

Nessun commento:

Posta un commento

Lascia un commento qui sotto, ti risponderò il prima possibile!

Related Posts Plugin for WordPress, Blogger...