Pages: 1 ... 83 84 [85] 86 87 ... 106   Go Down
Author Topic: [Multicotteri] Elettronica : IMU, MCU, Sensori ed algoritmi di controllo  (Read 99542 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non devi programmare l'imu, ma collegarla all'arduino.
La imu immaginala come una scatola chiusa che butta fuori dei dati, l'arduino li legge e li elabora, e di socnseguenza varia il tuo input della ricevente per mantrenere la stabilizzazione.

quindi:
1.colleghi la imu all'arduino
2.programmi l'arduino
3.monti l'arduino sul quad
4.setti i parametri del programma sull'arduino per rendere stabile la tua cofigurazione (il famoso pid)

il tutto cercando di non farti male, anche se piccolini questi motori e le eliche sono tranquillamente in grado di far molto male
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

anche se piccolini questi motori e le eliche sono tranquillamente in grado di far molto male

Ottima osservazione, i motori BLDC usati su i quadri sono da un centinaio di Watt, le eliche sono delle lame rotanti, se ti arriva addosso, ma anche infilare la mano nel disco dell'elica, può causare gravi ferite.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

il tutto cercando di non farti male, anche se piccolini questi motori e le eliche sono tranquillamente in grado di far molto male
Si me l'ero immaginato, guardo di fare attenzione. Vi tengo aggiornati nei prossimi giorni. Grazie per ora mi avete chiarito molto le idee.
Logged

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 723
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

configuri i pochi parametri operativi, più che altro per adattare i segnali della radio con quelli attesi da MultiWii

a proposito, che valori si aspetta?
io nell'attesa di convincermi ad affrontare l'impresa sto facendo la parte di trasmissione che consiste in: joystick->python->xbee
Invio una stringa del tipo ax1by1cx1dy1 al quale si aggiunge altro se premo un bottone della pulsantiera. I valori variano da 0 a 255 perora, se potreste darmi qualche suggerimento.. smiley
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

io nell'attesa di convincermi ad affrontare l'impresa sto facendo la parte di trasmissione che consiste in: joystick->python->xbee

Lascia perdere, con MultiWii devi usare un vero radiocomando, pure decente, se non vuoi schiantare il quadri in meno di 0.1s  smiley-grin
Logged

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 723
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma per motivi gestionali del software o perchè la velocità di trasmissione sarebbe bassa per un quadri?
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma per motivi gestionali del software o perchè la velocità di trasmissione sarebbe bassa per un quadri?

Perché sei tu a dover pilotare il quadri ed è già difficile farlo con un vero radiocomando, figuriamoci con un "accrocchio" (senza offesa) di un qualche tipo.
MultiWii non possiede capacità di volo autonomo inoltre si aspetta in ingresso dei segnali PPM provenienti da un radiocomando.
Logged

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

pensa alla LAG del sistema;
1. lettura del joystic da parte PC. il kernel non è real-time, quindi già potresti avere millisecondi di lag, senza contare che se parte qualcosa di CPU hungry la cosa peggiora assai. in oltre la seriale è lentaaaaa (se usi il joystic seriale
2. interpretazione dei valori ed invio su xbee. l'interpretazione serve per comprimere i dati il più possibile: i cicli macchina sono molto più "economici" in termini di tempo dell'invio di byte su network (anche via cavo eh), ed in oltre, come sopra, la seriale è lentaaaaaaa
3. tempi di gestione dello stack xbee: quì mi aspetto LAG nell'ordine di massimi qualche centinaio di microsecondi, quindi nulla di problematico.. ma non ho mai fatto test veritieri.
4. trasformazione input xbee in PPM (se non vuoi cambiare il codice multiwii a mano), altri 2ms almeno di LAG

Ma esiste un semplice test per verificare il tutto: su arduino fai uno sketch che invia il valore di micros via xbee, e uno sketch al pc che legge il dato e lo ritrasmette ad arduino, che calcola la metà della differenza e te la stampa, avrai una mezza idea dei trempi che ci sono di mezzo.
(edit: il test al contrario evita di farlo se non sai cosa stai facendo: http://stackoverflow.com/questions/2607263/how-precise-is-the-internal-clock-of-a-modern-pc)

per farti capire meglio: la seriale a 9600 baud vuol dire 960byte/s, ovvero circa 1.1milisecondi a byte. poi è anche vero che i tempi di reazione di una persona sono sui 40ms, ma credo che per dare una senzazione di fluidità devi almeno stare sui 20ms..

poi astro ne sa molto di più di me, magari ci sono altri motivi
« Last Edit: October 24, 2012, 07:51:42 am by lesto » Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5608
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Interessante discussione, mi chiedevo pero perche aver fatto esempio a 9600?
Gia con 115200 siamo su tempi 10 volte inferiori, e magari si puo anche salire di piu, ma capisco che e' solo una delle variabili.
Premere un unico comando, tipo Vai a Destra, che tipo di stringa viene trasmessa ?
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Gia con 115200 siamo su tempi 10 volte inferiori, e magari si puo anche salire di piu, ma capisco che e' solo una delle variabili.
Premere un unico comando, tipo Vai a Destra, che tipo di stringa viene trasmessa ?

Il lag è solo uno dei problemi, tra parentesi i moduli Xbee introducono di loro dei lag anche di molti ms, in tutti i casi un normale radiocomando RC lavora a 50 Hz, ovvero i comandi vengono aggiornati ogni 20 ms, a meno di non utilizzare un sistema di trasmissione a pochi bps è impossibile arrivare ad un lag maggiore.
Come vengono codificati i vari comandi, per una trasmissione seriale, dipende dal protocollo che utilizzi, tutti i radiocomandi RC moderni lavorano a 2.4 GHz e trasmettono i dati in seriale con un protocollo proprietario, per alcune marche è noto, a differenza dei radiocomandi più anziani, ancora in circolazione, che inviano direttamente il PPM sotto forma di modulazione FM, o in AM per quelli più vecchi (ora illegali in Italia).
Il vero problema è l'impossibilità di guidare un quadri con un normale Joystick per pc, o peggio con i tasti/mouse, provate con un qualunque simulatore per rendervene conto, questo a meno che il quadri, o altro tipo di velivolo, non sia in grado di volo totalmente autonomo, cosa che non rientra nelle possibilità dei più diffusi software/hardware utilizzati su i quadri.
Logged

0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5608
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

thanks
karma added smiley
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Interessante discussione, mi chiedevo pero perche aver fatto esempio a 9600?

perchè è l'impostazione di default sui moduli xbee. il massimo via UART è 57600 , ma forse via API raggiungi cvelocità superiori, visto il massimo rate del modulo è 250Kbit/s. In oltre il joystick non so a quanti baud parla, credo che anche se USB non sfutta tutta la banda ma dipende dalla qualità del micro e dei componenti che gestisce il tutto

Quote
Il vero problema è l'impossibilità di guidare un quadri con un normale Joystick per pc, o peggio con i tasti/mouse, provate con un qualunque simulatore per rendervene conto, questo a meno che il quadri, o altro tipo di velivolo, non sia in grado di volo totalmente autonomo, cosa che non rientra nelle possibilità dei più diffusi software/hardware utilizzati su i quadri.

uhm credo di esserci arrivato, con un joystic hai 2 assi (destra/sinistra e avanti/indietro), mentre a noi ne servono almeno 4 (anche su/giù, ruota a destra/ruota a sinistra). volendo si potrebbe aggirare il problema usando un ping/sonar per l'altezza(mi pare che aeroquad abbia almeno un modello supportato) o usando un potenziometro lineare, e un lock della rotazione ma quindi obbligo di magnetometro. Oopure usando un secondo joistic, hai 4 canali, un pò ingombrante ma potrebbe funzionare
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

perchè è l'impostazione di default sui moduli xbee. il massimo via UART è 57600 ,

La massima velocità UART supportata è 115200, però la banda reale massima è circa 80 kbps, gli Xbee tra loro comunicano a 250 kpbs e in questo modo non c'è un reale overhead sulla banda utente, la maggiore velocità consente di far passare i byte aggiuntivi per il protocollo in modo trasparente rispetto alla banda utilizzata dall''UART.


Quote
uhm credo di esserci arrivato, con un joystic hai 2 assi (destra/sinistra e avanti/indietro), mentre a noi ne servono almeno 4 (anche su/giù, ruota a destra/ruota a sinistra). volendo si potrebbe aggirare il problema usando un ping/sonar per l'altezza(mi pare che aeroquad abbia almeno un modello supportato)

Il vero problema è che per pilotare un modello volante servono due mani, esattamente come su un vero velivolo, una controlla il gas e il timone, l'altra gli alettoni e il timone di profondità, tradotto per un quadri, o un ely, con una mano controlli la spinta verticale e la rotazione su se stesso, con l'altra il roll e il pitch, esistono anche altri modi di configurare la ripartizione dei comandi sulle due mani, è una cosa molto soggettiva e dipende da come ci si trova meglio.
Anche i Joystick devono essere di qualità superiore rispetto quelli utilizzati su un pc, a meno che non disponi di prodotti specifici per simulatori di volo che offrono una buona precisione/risoluzione, però costano cari, la più scrausa delle radio RC adatta ad un quadri possiede Joystick migliori di quelli medi/standard utilizzati su un pc.
In teoria nulla vieta di realizzare una console di comando utilizzando due Joystick per radio RC collegati ad un micro che provvede ad inviare i dati tramite Xbee, però viene a costare di più di un vero radiocomando RC che oltretutto offre maggiori funzionalità ed è di sicuro funzionamento.
Tutte queste considerazioni si applicano solo a modelli volanti non autonomi, un quadri che può volare da solo, il che include anche l'atterraggio e il decollo, non richiede particolari accorgimenti per il controllo remoto e quasi nessuna abilità di pilotaggio a differenza di un normale quadri RC che tocca pure imparare a pilotarlo.
Logged

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

molto esaustivo tnx, +1
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Offline Offline
Jr. Member
**
Karma: 2
Posts: 66
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve a tutti,
sapreste indicarmi come procedere per implementare l'algoritmo di controllo della stabilità del mio quadricottero?
Il primo goal che vorrei raggiungere è quello della stabilità in volo statico, ossia che resti fermo in aria, senza oscillazioni o rollii.
Ovviamente a bordo ho un gyro-acc-magn con 3 gradi di libertà
ringrazio anticipatamente
Logged

Pages: 1 ... 83 84 [85] 86 87 ... 106   Go Up
Jump to: