|
|
Remote Control Robot
In questo progetto è stato realizzato il controllo remoto dei movimenti del robot da un PC. La comunicazione avviene mediante due moduli Xbee della Maxstream: il master è connesso fisicamente al PC mediante la scheda di adattamento USB, l'altro è connesso fisicamente alla motherboard del robot, mediante la scheda di adattamento DTE. Queste schede, che potete osservare nelle figure a seguire, possono essere acquistare presso robot-italy
Per controllare il robot è stato appositamente realizzato in linguaggio Java, un programma dotato d'intefaccia grafica chiamato RoboGUI. Anche se l'xbee è connesso fisicamente al PC mediante USB, la RoboGUI invia dei comandi come se stesse dialogando con la porta seriale, questo perchè la scheda di adattamento USB è dotata del chip FTDI che esegue la coversione seriale/USB. Ovviamente è necessario un apposito driver da installare del PC che farà comparire nella schermata "gestione periferiche" di Windows una "USB Serial Port" contrassegnata da una porta COM L'unica configurazione necessaria alla RoboGUI è l'nserimento nel numero della COM, mediante l'apposito menù a tendina. La RoboGUI permette di: - muovere in avanti il robot - muovere indietro in robot - effettuare una rotazione sul posto in senso orario - effetuare una rotazione sul posto in senso antiorario - regolare la velocità per i movimenti avanti/indietro - regolare la velocità per le rotazione sul posto. Inoltre, la regolazione della velocità avanti/indietro è indipendente da quella delle rotazioni. Potete notare quest'ultimo particolare dallo screenshot della RoboGUI, dove sulla destra si possono osservare le due slidebar per la regolazione delle velocità.
I comandi inviati dalla RoboGUI sono stringhe composte da due numeri consecutivi a tre cifre, che indicano i dutycycle dei PWM (a 8bit) necessari a pilotare i due motori. La stringa è del tipo dutycycle_motore_DX + dutycycle_motore_SX. Ad esempio 127127 tiene fermo il robot, oppure 255255 lo fa avanzare alla massima velocità, mentre 255000 permette di effettuare una rotazione antioraria su se stesso alla massima velocità. Di volta in volta, in base alla combinazione del tasto premuto e delle velocità assegnate alle slidebar, la RoboGUI genere la stringa e la invia al robot. Com'è facile intuire dagli esempi, il microcontrollore interpreterà le stringhe secondo la tecnica di pilotaggio PWM Loked Anti-Phase. Nella sezione download, in un archivio .rar trovate l'eseguibile e il sorgente Java della RoboGUI. Trovate anche il sorgente lato microcontrollore, realizzato in MikroC, per PIC16F877A. |