gbm
Comunicazione radio costo 0
Tutorials -
Domenica 11 Aprile 2010 16:03
Scritto da gbm

Con questo tutorial voglio rendere utilizzabile per progetti Arduino based la ricevente (e il telecomando) di un qualsiasi elicottero, macchina, aereo rc. Come avrete potuto notare la comunicazione wireless è davvero costosa e poco abbordabile (vedi Xbee) per progetti lowbudget, seguendo questa spiegazione potrete riutilizzare un qualsiasi sistema radio per spedire informazioni o comandi ad arduino senza dover modificare o saldare nulla.

Io sono partito da una schedina di un elicottero rc da 39 euro comprato mesi fa, che dopo pochi minuti di utilizzo ho distrutto al suolo. La scheda di controllo dell'elicottero pilota due motori che muovevano due eliche controrotanti e un motore di minori dimensioni.

 

Come funziona

In questo caso, ci sono due uscite di potenza che alimentano due motori. Questi due motori muovono due eliche controrotanti. Questo sistema permette, variando la velocità di una delle due eliche, di ruotare in una direzione prefissata, riportando il regime dei due motori a un valore identico si ristabilizza la posizione dell'elicottero e si smette di farlo ruotare. Questo sistema si presta perfettamente per pilotare un robot mosso da due servi.

 

Istruzioni

Smontate il modello ed estraete la scheda ricevente e di controllo motori, osservandola attentamente potete notare che i cavi del o dei motori confluiscono in una presa: questi pin sono quelli da cui noi acquisiremo analogicamente il voltaggio generato dalla ricevente e di conseguenza il comando dato da telecomando.

 

Come collegare la scheda ad Arduino

Lo schema di collegamento è semplicissimo: dopo aver identificato il canale seguendo i cavi del motore, iniziate a collegare il nero alla porta GND di Arduino. Fatto cio' ora dovremo portare il cavo rosso a una porta analogica di arduino tramite una resistenza da 1kohm e un qualsiasi LED; questi componenti servono per dissipare la corrente in eccedenza prodotta dalla ricevente, evitare l'inversione di corrente e segnalare con emissione luminosa proporzionale il comando dato tramite telecomando. Quindi il cavo rosso verrà collegato alla resistenza, poi alla massa del LED (gamba corta) e infine dal + del LED (gamba lunga) alla porta analogica. E' fondamentale che il voltaggio massimo in uscita dalla ricevente non sia maggiore di 5v (risoluzione massima della porta analogica di Arduino).

 

Il codice

int pin = 5; // porta a cui collegare + in uscita dalla ricevente

int command; // variabile che determina il voltaggio in uscita dalla ricevente

int pin = 5; // porta a cui collegare + in uscita dalla ricevente

int command; // variabile che determina il voltaggio in uscita dalla ricevente

void setup() {

pinMode(pin, INPUT);

Serial.begin(9600);

}

void loop() {

command = analogRead(pin); // leggi voltaggio

Serial.println(command); // stampa voltaggio

}

Grazie a questa ricevente ho costruito un sistema che comanda un robot mosso da due servomotori. Grazie alle due uscite di pilotaggio che un tempo muovevano le due eliche controrotanti, io posso interpretare il comando inviato via radio identificando il rapporto tra i due voltaggi ottenuti e quindi seguire i comandi inviati da telecomando.

 

Lascio a voi l'interpretazione e la sperimentazione sul codice necessario Fico

 

Gioblu Robotics © 2010 - 2012 · Sitemap · privacy

gioscarab@gmail.com

Gioblu BOTServer è online dal 10 Aprile 2010 - 319.232 Visite - 1.027.175 Pagine visualizzate - 182.309 Visitatori unici - 536 utenti attivi