.: robotitaly.NET :. - la community italiana sulla robotica  

Vai indietro   .: robotitaly.NET :. - la community italiana sulla robotica > Blogs > CyB3rn0id

Rate this Entry

Vi presento Falken : la MuIn USB nella sua estrema semplicità, con panna e ciliegine

Submit "Vi presento Falken : la MuIn USB nella sua estrema semplicità, con panna e ciliegine" to Twitter Submit "Vi presento Falken : la MuIn USB nella sua estrema semplicità, con panna e ciliegine" to Facebook
Posted 04-16-2011 at 04:51 PM by CyB3rn0id

Il mio è un progetto abbastanza semplice dal lato "hardware" in quanto si tratta di un robot teleguidato che fa uso della 990.020 MuIn USB con il suo firmware standard. Si tratta quindi "soltanto" di inviare e ricevere comandi alla 990.020.

Scrivere un software lato pc per comandarlo, invece, si è rivelata un'impresa con numerose complicazioni che non mi aspettavo. Passo alla descrizione di tutto il sistema.

Il robot viene teleguidato dal pc utilizzando un software che ho realizzato con VisualStudio che si connette ad un normale gamepad o un joystick analogico a 4 assi per il controllo. Uno stick (X/Y) controlla movimento/velocità robot e un altro (Z/rZ) controlla il pan/tilt della telecamera. Premendo lo stick di controllo della telecamera, gli assi del sistema pan/tilt vengono riportati al centro.

Lo stick di controllo movimento viene sfruttato in maniera "analogica": più si preme più/meno veloce va il robot. Lo stick pan/tilt anche se analogico viene invece sfruttato in maniera digitale incrementando/decrementando dei counter che eseguono l'impostazione dei valori da dare ai servocomandi. Rilasciando lo stick viene eseguito il posizionamento.

La parte difficoltosa è stata quella di elaborare un modello matematico che potesse far corrispondere al valore analogico degli assi X/Y i valori di PWM indipendenti per i due motori. Sfruttando lo stick analogico quindi si puo far ruotare il robot su se stesso, farlo andare avanti indietro dritto o con una virata proporzionale verso destra/sinistra, tutto con regolazione della velocità agendo in maniera indipendente sui due valori di PWM destro/sinistro solo usando lo stick.



Normalmente non vengono mai raggiunti i valori di PWM "estremi" (0 e 1023) che corrispondono ai valori di massima velocità in un verso e massima velocità nel verso opposto (controllo LAP), ma i valori di PWM sono limitati entro un range impostabile in percentuale del valore massimo, in questo modo la dinamica degli assi del joystick viene distribuita su un range di valori di PWM piu ristretto consentendo una precisione di controllo maggiore. Premendo un pulsante sul gamepad si attiva la modalità che permette di usare i valori estremi ed ottenere quindi velocità più elevate.

In un groupbox sono riportate le letture dei 5 canali analogici in forma grafica e in forma numerica. I nomi dei controlli possono essere personalizzati. In aggiunta due strumenti a lancetta, realizzati con la DLL di cui vi ho parlato tempo fa che ho "costruito" con la collaborazione di un ingegnere indiano, riportano in forma grafica i valori di due canali analogici a scelta opportunamente scalati di un fattore impostabile.


Nella mia applicazione uno riporta il valore di tensione della batteria in Volt e l'altro la somma dei valori di assorbimento in Ampere dei due motori.



Clicca sull'immagine per ingrandirla

Nome:   0.jpg
Visite: 613
Dimensione:   48.2 KB
ID: 207

La connessione alla telecamera viene gestita in maniera separata dalla connessione al robot (si puo attivare solo la telecamera, solo il controllo del robot o entrambi) utilizzando una (purtroppo) vecchia DLL di windows (avicap32.dll) per la quale c'è il vantaggio che di esempi in giro ce ne sono a bizzeffe (in realtà è sempre lo stesso, identico, esempio) e mi ha permesso di implementare questo controllo nel software anche senza conoscenze relative alla cattura video, che è un argomento nient'affatto semplice.


Dall'altra parte questa DLL sembra soffrire di problemi su win vista/xp per cui se non si riesce ad avviare l'acquisizione video la prima volta, è necessario chiudere e riaprire il programma fino a che l'acquisizione video non parte. Spero di riuscire a trovare un sistema migliore. Se qualcuno ha esperienza di cattura video in vb.net, mi contatti pure per discuterne e tirare fuori una cosa migliore.

La telecamera purtroppo è una telecamera cinese wireless che avevo tra le mani e ho sfruttato per le prove, quindi portata e qualità sono ai livelli minimi e provvederò più in là a sostituirla con qualcosa di migliore. La cattura video viene eseguita collegando il ricevitore wireless ad una interfaccia USB molto economica ma che devo dire davvero ottima e funzionante alla perfezione (la famosa e pluricollaudata Syntek EasyCap che si trova 10/20 euro). Il controllo via radio viene eseguito con un XBee Pro montato su una 990.002 Xbee USB Board.

Il resto dell'elettronica sul robot, oltre alla MuIN USB, comprende una scheda di alimentazione che provvede alla ricarica della batteria al piombo/gel e alla fornitura delle alimentazioni ai motori, alla MuIN USB, alla telecamera e ai servocomandi. Ogni utilizzatore ha il suo regolatore dedicato.



Questa scheda è possibile realizzarla normalmente su una millefori, io ho preferito il sistema della fotoincisione.


E' quindi presente un ponte H autocostruito basato sul vecchio, caro, L298N ma potete utilizzare un qualsiasi ponte H dotato di controllo LAP e, se volete, anche il segnale di assorbimento dei motori (io consiglio una coppia di H-Bridge Tank-3A HP).


Ho messo nella parte frontale, inclinato a 45° verso il basso, un sensore IR Sharp 2D120X, che uso per rilevare la presenza di eventuali "mancanze" di pavimento (presenza di scalini verso il basso) prima di andarci a finire con le ruote. Il valore del sensore viene riportato su un indicatore analogico nell'interfaccia di comando.

Riguardo alla meccanica, la telecamera è montata sul sistema Pan/Tilt della Lynxmotion, i motori sono una coppia di GH-12 (12V, 200rpm, fin troppo potenti per questa applicazione) e montano le ruote Banebots 73mm 1/2Hex 30A 1W con i relativi mozzi (vi ricordo che per il montaggio è necessaria una chiave esagonale con misura imperiale da 1/16", che non è una misura affatto comune, e una pinza per anelli elastici). I motori sono fissati al telaio usando una coppia di staffe Lynxmotion MMT-02.

Il telaio è realizzato usando due fogli di PVC espanso nero opportunamente sagomati a cerchio usando un normale taglierino e un po' di cartavetrata fine.
A causa del peso dei motori si è rivelato necessario tenerli uniti mediante una piccola sbarra di alluminio opportunamente tagliata e forata, tenuta con due staffette ad L sulle staffe dei motori, altrimenti il telaio tende a piegarsi al centro verso il basso.
E' quindi presente un ruotino pivotante da ferramenta nella parte posteriore del robot. In pratica la struttura è quella classica dei robot explorer, con le ruote posizionate in maniera tale che il robot possa ruotare su se stesso rimanendo fermo nello stesso punto.


A causa della potenza eccessiva dei motori alla massima velocità, e nonostante il peso della batteria piombo/gel posta sul ruotino, il robot tende comunque ad abbassarsi verso l'avanti nelle fasi di accellerazione/decelerazione e sono quindi stato costretto a mettere un ruotino pivotante più piccolo anche davanti.


La soluzione non mi piace affatto e quindi provvederò a realizzare un altro telaio in cui le ruote motrice sono tutte spostate in avanti anzichè al centro. Perdo la possibilità della rotazione sul posto, ma si tratta di un robot teleguidato e quindi non costituisce un problema.



I sistemi sono agganciati al telaio utilizzando un vasto set di distanziatori esagonali di varie lunghezze e viti 3MA.
Sto ancora sperimentando, quando sarà tutto pronto rilascio una versione del software in maniera che chiunque possa usarlo per realizzare il suo robot teleguidato in maniera semplice.


Clicca sull'immagine per ingrandirla

Nome:   1.jpg
Visite: 620
Dimensione:   135.8 KB
ID: 202Clicca sull'immagine per ingrandirla

Nome:   2.jpg
Visite: 627
Dimensione:   132.7 KB
ID: 203Clicca sull'immagine per ingrandirla

Nome:   3.jpg
Visite: 592
Dimensione:   130.3 KB
ID: 204Clicca sull'immagine per ingrandirla

Nome:   4.jpg
Visite: 601
Dimensione:   131.4 KB
ID: 205Clicca sull'immagine per ingrandirla

Nome:   5.jpg
Visite: 678
Dimensione:   144.2 KB
ID: 206
Posted inUncategorized
Visite 3989 Comments 0 Email Blog Entry
« Prec.     Main     Seguente »
Total Comments 0

Comments

 

Tutti gli orari sono GMT. Attualmente sono le 07:24 PM.


Powered by vBulletin versione 3.8.7
Copyright ©: 2000 - 2017, Jelsoft Enterprises Ltd.