Official topic: multicotteri con arduino!

ratto93:
Mi pare sui 25-30 euro... ma sul sito c'erano i prezzi....

Lesto, che dovrebbe averne una, dice 60 Euro senza sensore barometrico.
Quanti d.o.f. e quanti sensori dipende da cosa vuoi ottenere, se interessa solo stabilizzare basta il solo giroscopio a 3 assi, oppure si usano tre giroscopi per elicotteri, se vuoi anche l'autolivellamento serve l'accelerometro.
Salendo di livello si aggiunge il magnetometro che viene utilizzato sia come inclinometro assoluto, non influenzato dalle accelerazioni del mezzo, che come bussola, questa funzione è abbastanza delicata da implementare perché la misura del nord magnetico è fortemente influenzata dall'inclinazione del magnetometro, cioè dovrebbe essere fatta con il sensore in bolla oppure compensando in funzione dell'inclinazione.
Lo step successivo è il sensore barometrico che si utilizza per conoscere l'altezza raggiunta, non ci si può fare affidamento per il mantenimento dell'hovering a bassa quota, 1-2 metri dal suolo, dove è meglio utilizzare un sensore assoluto di diverso tipo, solitamente uno ultrasonico ad alta frequenza (200 kHz).
La IMU 9 d.o.f. , in realtà sono tre rindondanti e tre estrapolati per un totale di 6, di Sparkfun va benissimo perché è un prodotto commerciale facilmente reperibile, è modulare grazie alla versione ridotta a 6 d.o.f. e la disponibilità di tutti i sensori singolarmente, ha in comune con la freeimu il giroscopio e il magnetometro, per l'eventuale sensore di pressione c'è il modulo con il BMP085 che è comunque un ottimo sensore di pressione che va benissimo per questa applicazione.
Per il ragionamento già fatto che è inutile complicarsi la vita con un hardware fortemente variabile si può congelare il discorso sensori IMU con queste tipologie:

Versione minimale solo giroscopio:
ITG 3200 o WMP

Versione con autolivellamento:
ITG 3200 o WMP con aggiunto ADXL345

Versione con autolivellamento migliorato e automantenimeto del punto fisso (hovering stabile)
ITG3200, ADXL345, HMC5883L (magnetometro)

Versione full, aggiunge la misura della quota.
ITG3200, ADXL345, HMC5883L, BMP085

In aggiunta a quanto sopra prevederei pure una release del software specifica, e ottimizzata, per la FreIMU della quale dovrebbe arrivare a breve la versione 0.4, magari Fabio ci può dare qualche notizia in merito anche se non credo se ne parli prima di Settembre.

la freeimu con barometro a me l'ha proposta sugli 80€ ma immagino sia variabile con la richiesta che ha.

io direi di fare tutto basandoci su soli 2 hardware:
FreeIMU nella sua ultima versione e sensori di sparkfun come lo stick che avevo proposto.

io direi di lasciar perdere il WMP in quanto ha bassa risoluzione.

per quanto riguarda il GPS può attendere, direi intando di mettere giù qualche equazione per ottimizzarla e completarla. purtroppo in questo campo sono completamente nabbo quindi lascio fare a voi XD

magari chi ha creato da se il suo software può postarlo (se vuole) che gli diamo un occhio anche se non è completo ed ottimizzato così per avere uno spunto :wink:

superlol:
la freeimu con barometro a me l'ha proposta sugli 80€ ma immagino sia variabile con la richiesta che ha.

Quella di sparkfun costa circa 80 Euro senza il barometro, aggiungendolo sotto forma di breakout board viene a costare 15 Euro in più portando il totale a circa 95-100 Euro.

io direi di lasciar perdere il WMP in quanto ha bassa risoluzione.

Forse ti stai confondendo con il Nunchuk, il WMP utilizza due giroscopi, un IDG600 a doppio asse (roll e pitch) e un Epson XV3500 a singolo asse (jaw).
Dal WMP ottieni i tre assi giroscopici in I2C con una risoluzione a 14 bit, già filtrata, che basta e avanza per il nostro scopo.

per quanto riguarda il GPS può attendere, direi intando di mettere giù qualche equazione per ottimizzarla e completarla. purtroppo in questo campo sono completamente nabbo quindi lascio fare a voi XD

Infatti il GPS è l'ultimo dei pensieri.

Forse e' meglio non basarsi esclusivamente sull'hardware di sparkfun, io preferirei una soluzione modulare come l'ha indicata astrobeed. Piu' che altro in quanto ottenere le cose di sparkfun qui da noi e' un'avventura e le prime due configurazioni proposte possono averle gia' tutti per iniziare a contribuire

Versione minimale solo giroscopio:
ITG 3200 o WMP

Versione con autolivellamento:
ITG 3200 o WMP con aggiunto ADXL345

Dico contribuire perche' non vorrei che finisse tutto come i soliti post che si fanno su questo forum dove tutti sono esaltatissimi all'idea, ma produzione poi zero :slight_smile:

Federico:
o preferirei una soluzione modulare come l'ha indicata astrobeed. Piu' che altro in quanto ottenere le cose di sparkfun qui da noi e' un'avventura...

Trovi praticamente tutto di Sparkfun, almeno parlando di IMU, da Robot Italy e da Watterott, prezzi leggermente a favore di quest'ultimo.
Non è certo un problema avere la imu 9 d.o.f. completa di Sparkfun oppure acquistare i vari sensori sotto forma di moduli separati, consente di diluire la spesa nel tempo e installare solo quello che ci interessa.
Per esempio una configurazione minimale, costo circa 40 Euro, è utilizzare il WMP come giroscopio e la breakout board con l'ADXL345.

Quindi il tuo pensiero e' preferibilmente sul modulare, o sulla imu sparkfun? Perche' altrimenti iniziamo a dire di mantenere l'hardware selezionato ma mi pare di capire che ci sia del possibilismo verso

1-soluzione modulare
2-supporto imu sparkfun
3-supporto freeIMU

F

Federico:
Quindi il tuo pensiero e' preferibilmente sul modulare, o sulla imu sparkfun?

Che usi l'imu 9 dof sparkfun completa o che usi solo una parte dei sensori, vedi tabella, non cambia nulla, mica stiamo usando hardware diverso, è sempre quello solo che scegli cosa installare in base alle prestazioni desiderate.
La vera alternativa è l'uso della FreeIMU, che per sua natura è omnicomprensiva, che comunque ha due sensori in comune con quella di Sperkfun.

astrobeed:

Federico:
Quindi il tuo pensiero e' preferibilmente sul modulare, o sulla imu sparkfun?

Che usi l'imu 9 dof sparkfun completa o che usi solo una parte dei sensori, vedi tabella, non cambia nulla, mica stiamo usando hardware diverso, è sempre quello solo che scegli cosa installare in base alle prestazioni desiderate.

Ah ecco, non avevo capito si trattasse dello stesso hardware

astrobeed:
Lesto, che dovrebbe averne una, dice 60 Euro senza sensore barometrico.

non ce l'ho, mi stavo informando per prenderla visto che il nun proprio non ne vuole sapere di funzionare in modo decente in pass-throug.
quasi quasi ora uso 2 atmega, uno legge il wmp e l'altro il nun.. così viaggio pure a 400kb/s anzichè 100 e non per do il bit di precisione sul nun...

Giusto per condividere i "progressi", non riuscendo ad aprire le viti a 3 punti del WMP sono ricorso a un sistema infallibile: il dremel ]:smiley: Mi accingo a interfacciare WMP con un ADXL335 su un arduino diecimila e vediamo se fa qualcosa il software multiiwii test...

lesto:
uno legge il wmp e l'altro il nun.. così viaggio pure a 400kb/s anzichè 100 e non per do il bit di precisione sul nun...

La questione 100-400 kHz l'abbiamo già sviscerata e risolta, basta mettere le giuste resistenze di pull up, poi perché hai problemi nell'usarli in cascata non ti so dire nulla perché se colleghi il tutto sul WiiMote, che lavora a 400 kHz, funziona senza problemi.

con le pull up da 2.2k tra arduino e wm+ non mi va il nun... io le pullup le collego a 3.3V, forse dovrei collegarle a 5V(l'accrocchio è alimentato a 3.3V, però l'arduino a 5V)?

lesto:
con le pull up da 2.2k tra arduino e wm+ non mi va il nun... io le pullup le collego a 3.3V, forse dovrei collegarle a 5V(l'accrocchio è alimentato a 3.3V, però l'arduino a 5V)?

Ma quante volte devo dirlo che la tensione sul bus I2C deve essere quella del device e non quella di Arduino ?
Il Nunchuk viene collegato ad un secondo bus I2C, diverso da quello che collega il WMP ad Arduino, gestito indipendentemente dal micro sopra il WPM, quindi se il WMP va e il Nunchuk no può essere solo un problema software, oppure il Nunchuk che hai è incompatibile col WMP.

Ciao! Ho saldato sda scl gnd e vcc al wmp mantenendo il connettore coi fili colorati per ora. L'ho collegato al 3.3v con pullup da 3.3k e ho indicato solo al multiwii, per sfizio, di fare un quadX e di non usare le resistenze di pullup intene. Non ho cambiato nient'altro, uplodato e poi ho lanciato il software grafico. Sotto linux.

Indico la mia seriale, dico start e se muovo la breadboard ottengo 3 linee sul grafico che rassomigliano in maniera abbastanza evidente gli scossoni che gli do, ma il modellino a lato non si gira assolutamente, rimane fermo.

E' corretto??

Federico:
ma il modellino a lato non si gira assolutamente, rimane fermo.

Si deve muovere in funzione di tilt e pitch, anche i due relativi indicatori devono muoversi, il fatto che vedi le linee del grafico muoversi vuol dire che il WMP sta funzionando.

Tilt e pitch sono relativi all'accelerometro?

ps: dopo un pochino il software si schianta cosi:

java.io.IOException: Input/output error in writeByte
	at gnu.io.RXTXPort.writeByte(Native Method)
	at gnu.io.RXTXPort$SerialOutputStream.write(RXTXPort.java:1093)
	at processing.serial.Serial.write(Unknown Source)
	at MultiWiiConf1_7.draw(MultiWiiConf1_7.java:308)
	at processing.core.PApplet.handleDraw(Unknown Source)
	at processing.core.PApplet.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:679)
Exception in thread "Animation Thread" java.lang.RuntimeException: Error inside Serial.write()
	at processing.serial.Serial.errorMessage(Unknown Source)
	at processing.serial.Serial.write(Unknown Source)
	at MultiWiiConf1_7.draw(MultiWiiConf1_7.java:308)
	at processing.core.PApplet.handleDraw(Unknown Source)
	at processing.core.PApplet.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:679)

E' il mio java secondo voi?

Federico:
Tilt e pitch sono relativi all'accelerometro?

No, sono il risultato della sensor fusion, però se hai il solo giroscopio non c'è l'autolivellamento.

ps: dopo un pochino il software si schianta cosi:

Che versione hai della jvm ?

Quindi: se ho solo il motion plus il disegno non ruota, devo aggiungere l'accelerometro (che ho, ma sto provando parte per parte)

La jvm e'

root@altair:~# java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.2) (6b22-1.10.2-0ubuntu1~11.04.1)
OpenJDK Client VM (build 20.0-b11, mixed mode, sharing)

Questo è un breve video, screen capture diretto del mio monitor, che mostra cosa succede nella GUI di configurazione del MultiWii muovendo il gruppo sensori:

Eh si io per ora ho solo tre linee...
Per altro notavo che mettendo a 400mhz il programma crasha pure prima :slight_smile:
Adesso vado ad "alcolizzarmi" per l'aperitivo e poi ci rifletto stasera...