[Multicotteri] Elettronica : IMU, MCU, Sensori ed algoritmi di controllo

Allora innanzi tutto ti voglio ringraziare perchè sei sempre molto disponibile, e rispondi sempre in maniera tempestiva.
Tornando al problema, si la gui riceve tutto correttamente e il modello 3D risponde coerentemente rispetto a quello reale. Gli Esc li ho ricalabrati manualmente uno per uno, ma non è un problema , almeno credo, dei regolatori, perchè non è che la centralina da lo stesso segnale a tutti i regolatori ma quest'ultimi non rispondono bene, è proprio il software che da dei segnali errati ai regolatori.
Per farti capire meglio magari possio farti vedere il problema attraverso teamviewer.
Io escluderei un problema di attuazione ( motori e regolatore) perche ne o acquistati molti dello stesso tipo proprio per evitare problemi quindi li ho sostituiti con dei nuovi, ma il problema persiste.

se hai un altro arduino, sarebbe interessante se leggessi le durate in microsecondi del segnale alto e basso che esce dalla schedina; in teoria dovrebbero corrispondere al numero impostato da gui, al minimo.

in oltre potresti provare ad usare gli esc uno per uno usando l'arduino con la libreria servo. Questo vale anche se hai un solo arduino, confrontando il comportamento usando un pin a caso vs i pin normalmente usati per comandare gli esc; magari sono saltati i pin! (in tal caso per il volo consiglio un nuovo arduino)

Do per scontato che hai risettato sugli esc il minimo e massimo del PPM, batteria lipo (o quella che usi), e no brake.

lesto:
@Testato: NON lavora a logica invertita, ho guardato gli schemi della scheda afroEsc, che è open e pensata apposta per i quad, ha l'ingresso sul pin "12" (package TQFP, corrisponde al "nostro" 14), digitale.

E' grave si, il datasheet parla chiaro, 3V e' la soglia minima, basta un niente n fase di produzione del micro, oppure sul regolatore, sull'alimentazione, a stare sotto.
Forse lo fanno apposta per far schiantare i velivoli :slight_smile:

io ho due arduino, ma quella che uso per volare non è un arduino (utilizza lo stesso processore di arduino nano).
se prendo ogni regolatore e motori e li provo singolarmente, attraverso la ricevente, funzionano bene, con arduino non ho provato a vedere se riesce a pilotarli, ma penso che non ci siano problemi, secondo me è una questione di scheda, perche anche se attacco la scheda al pc e sulla scheda ho collegato soltanto la ricevente, nella gui vedo sempre i stessi valori errati.
ora provo a sostituire la scheda con arduino e l'IMU, e poi ti faccio sapere, se mi da problemi anche cosi significa che sono i componenti altrimenti mi acquisto una scheda diversa. Se è la scheda proprio non mi capacito proprio di quello che gli può essere accaduto perchè proprio da un minuto per l'altro.
Va bè faccio queste prove e ti faccio sapere.
Grazie ancora sei gentilissimo.

aspetta, quindi sono i dati in arrivo dalla ricevente ad essere errati?

o parli dei valori di default dei motori?

cmq io intendevo di collegare il segnale che va agli esc al vero arduino, e da lui leggere il PWM che esce ( pulseIn() )

@Testato: 2.7V @5v per l'essattezza, con isteresi di 0.5V.... fuck!

perche' 2,7 ? di che micro parli ?

"Figure 29-71. ATmega88PA: I/O Pin Input Threshold Voltage vs. VCC" (pag, 364 della rev8161-D) (usano un atmega8, ma pag 412 dice la stessa cosa anche del 328P)

Che strano, guardando le curve e' come dici tu, ma guardando la tabella delle caratteristiche, al parametro Vih, abbiamo un bel 0.6VCC, cioe' i 3V che ti dicevo :fearful:
Quale e' la verita' ?

credo le curve. Un sacco di persone usano questi esc (atmega8) piloati a 3v e nonhanno problemi... apparentemente.

ora sto cercando di mettere su un test-bed per campire quanto è vera la mia idea.

edit: appena fatte le misure: valori letti da adc sono ~3.03V, se genero un PWM 50Hz con di 1000us di segnale alto, arduino legge 996, 1000 e 1004, il che vuol dire al massimo sbaglia di +-4us (poi l'arrotondamento arduino di 4 in 4us fa il resto), ho provato anche mettendo una r da 2.2k in serie (giusto per vedere se compariva qualche effetto secondario malvagio :slight_smile: ), il cavo è lungo circa 20cm per simulare la linghezza del cavo ai motori, tutto funziona.

Bel test,
Resta il fatto che un datasheet non può riportare valori contrastanti, su aspetti tanto importanti.
C'è forse una cattiva interpretazione da parte nostra delle due differenze.
Spero in un parere di altri hardwaristi.

mi dici il capitolo/tabella a cui trovi quei dati? mi sa che quel Vih è il valore di isteresi ovvero tra valore alto (2.7V circa) e valore basso (2V circa), il che torna

Pagina 313 - DC Characteristics
Parametro Vih - Condition 5V - Min 0.6Vcc

ci sono grosse differenze tra Multiwii 2.1 e la versione 2.3 ???
ho provato a caricare la 2.3 e il quad era ingestibile, non riuscivo nemmeno a staccarlo da terra che si ribaltava...ho rimesso la 2.1 e vola che è una meraviglia.
Probabilmente era solo questione di modificare qualche parametro nella 2.3 e sarebbe andato tutto bene, ma se non ci sono grosse differenze tengo la 2.1

che IMU mi consigliate per arduino uno con multiwii per controllare un quadricottero?

alex27riva:
che IMU mi consigliate per arduino uno con multiwii per controllare un quadricottero?

Ti consiglio la IMU 10 DOF (gradi di libertà) è un sensore IMU a costo compatto.

E' integrato l'accelerometro ADXL345, il magnetometro HMC5883L, l'ITG-3205 giroscopio e il sensore di pressione barometrica BMP085.
la trovi qui robot-domestici.it
In alternativa Introduction | Adafruit 10-DOF IMU Breakout | Adafruit Learning System. prodotti a mio avviso validi quelli di Adafruit, altrimenti una classica GY80.

Salax:
Ti consiglio la IMU 10 DOF (gradi di libertà) è un sensore IMU a costo compatto.

E' obsoleta come è obsoleto, oltre che limitativo, usare un Arduino abbinato ad una imu esterna, ormai ci sono diverse board AIO che integrano Atmega2560 e IMU, per giunta basata su MPU6050, compatibili con tutti i principali software per drone.

Buonasera a tutti ragazzi! Sto realizzando un quadricottero con controllore di volo composto da un Arduino UNO r3 e FreeIMU v0.43 (si lo so è obsoleta,potevo con 20 o meno euro comprare un qualcosa di già pronto ecc...,ma personalmente credo che sfruttare appieno le potenzialità di arduino sia piu interessante!). Per il montaggio ho seguito lo schema presente sul sito ufficiale multiwii,schema che fa riferimento alla mini (che se non erro è solo una versione ristretta della UNO il che non comporta significative differenze). Monto il tutto e...sorpresa!
Non riesco ad "armare" i motori,ci riesco solo se tramite gui attivo l'arming tramite switch ma, una volta armati, i motori non rispondono a dovere.In base alla combinazione di input ottengo risposte "strane": ad esempio con il full throttle girano 3 motori su 4,con il medio ne girano solo 2 sul lato destro,con il minimo girano sempre 2 motori ma sulla diagonale...inoltre,per consolazione, ho rotto l'ESC che da sul 1° motore,esc dal quale alimento Arduino,e ancora non me ne capacito dato che non sono mai riuscito a farlo girare :cold_sweat: .Se può tornare utile ho effettuato la calibrazone degli ESC prima singolarmente e poi tramite SW (credevo dipendesse da quello). Siccome è una scheda di controllo già testata,mi chiedevo se qualcuno di voi piu capace di me abbia riscontrato lo stesso problema o ne sappia qualcosa!

salve a tutti , vorrei avere delle informazione se possibile, ho in progetto di assemblare un quadricottero con arduino uno e multiwii , come accellerometro ho il GY 521 che ho collegato ai pin a4 e a5 e fin qui tutto bene .
ho acquistato il magnetometro/ bussola hmc5883l , posso collegarlo ai pin di arduino A2 e A3 ?

Arriva il caldo e arrivano anche i nuovi progetti, o meglio uno vecchio per troppo tempo rimasto nel cassetto allo stato di preprepreprototipo, dopo aver deciso di accantonare un altro progetto personale molto impegnativo sia come realizzazione che come costi ho deciso di rimettere mano al progetto del robot volante su base quadrirotore.
Allo scopo ho acquistato un telaio F450 di DJI, un set dei nuovi motori E310 di DJI, una CC3D come fligth controller di base.
Ho scelto i motori E310 perché oltre ad offrire una spinta maggiore rispetto ai predenti E300, 800 gr vs 600 gr, richiedono meno corrente, solo 4.1A con una spinta di 400 gr, inoltre sono dotati di un ESC che usa un controllo tramite tre sinusoidi invece della classica trapezoidale, l'ESC dispone di una data port che permette sia di aggiornarne il firmware che ottenere la telemetria durante il funzionamento, non ultimo la comodità delle eliche autoserranti e l'uso delle nuove eliche 9.5x5.0 di DJI progettate appositamente per questi motori, sia le eliche che i motori arrivano perfettamente bilanciati.
Per quanto riguarda la flight controller la scelta è andata sulla CC3D sia per il basso costo sia perché utilizza un processore STM32 ed è supportata dal software openpilot, è una fligth controller minimale, pensata principalmente per piccoli quadrirotori da divertimento, come sensore ha solo l'MPU6000 (gyro e accelerometro), comunque più che sufficiente per offrire un'ottima stabilità, possiede una porta I2C, alla quale è possibile collegare altri sensori, e una UART per collegare un GPS.
Dato che il mio scopo è realizzare un robot volante mi va benissimo la CC3D come flight controller, anche perché il relativo software è open source e ci posso mettere le mani, il suo scopo è solo tenere il multi stabile ed eseguire i comandi di volo che arrivano dall'elettronica principale.
L'elettronica principale è costituita da una Teensy 3.1 per il low level e una Arietta G25 per l'High Level.
Il compito della Teensy è gestire il GPS, con relativo magnetometro, un MPU9150, un sensore barometrico di precisione (devo ancora decidere quale) e un Lidar Lite, montato sotto che guarda verso il terreno, come sensore di quota rispetto al suolo, gestire la telemetria e generare i comandi di volo per la CC3D in funzione delle direttive di volo impartite da terra.
Il compito di Arietta G25 è gestire gli algoritmi di navigazione autonoma e varie funzioni ausiliarie non time critical, inoltre permette la comunicazione tramite WiFi, però la telemetria principale è gestita con sistema radio basato su moduli Xbee Pro (portata utile oltre 600 metri).
Mano a mano che ci saranno progressi nel lavoro li posterà qui, per il momento ho solo montato il telaio con i motori, Lunedì mi arriva la CC3D.
Una precisazione, in ottemperanza alle attuali normative di legge, ma anche per pura e semplice prudenza, il quadri è controllabile tramite un normale radiocomando semplicemente spostando uno switch sullo stesso, inoltre ho chiesto ad Enac una autorizzazione per volo autonomo (esplicitamente vietato dal regolamento) sperimentale a scopo ricerca scientifica, autorizzazione che mi è stata concessa :slight_smile:
Più tardi qualche foto della meccanica.

non mi e' arrivata la notifica su questo post, forse dopo un tot di tempo le notifiche non arrivanmo piu' ?
incredibile che non si risolva questo rpoblema, che e' alla base della fruizione di un forum grande come questo