Leggere stato di una batteria LiPo

Salve a tutti,
sto costruendo un quadricottero interamente pilotato con arduino (quindi senza i classici controllori di volo che vendono già pronti) e vorrei renderlo quanto più robusto possibile. La mia preoccupazione al momento è di ottenere un atterraggio sicuro (e forzato a dispetto dei comandi) quando la batteria sta raggiungendo livelli critici.
In giro per internet molti consigliano di utilizzare un parallelo di partitori di tensione sul connettore che permette l'accesso alle singole celle.
Il mio dubbio è: posso monitorare direttamente il parallelo senza monitorare la cella singola? (anche se non sono bilanciate, la tensione dovrebbe scendere lo stesso e quindi dovrei poter lanciare le procedure di atterraggio forzato ugualmente)
Inoltre c'è modo di leggere la tensione sul jack di alimentazione di arduino? In questo modo risparmierei connessioni strane sui pin analogici e prenderei lo stato di carica direttamente dall'uscita della batteria.
Grazie!

Immagino che tu ti riferisca al connettore per il bilanciamento delle celle durante la ricarica di una batteria composta da 3/4 celle in serie.

Secondo me non ha senso monitorare la singola cella, poiché a te interessa la tensione totale: cosa importa se il calo di tensione è dovuto alla batteria scarica od ad una cella sbilanciata?.

Non c'è modo di conoscere la tensione sul jack senza usare un partitore opportuno ed un ingresso analogico.

Il dubbio sull'utilizzo delle celle è piuttosto su come potrebbe reagire una batteria sbilanciata (non conoscendo l'elettronica mi preoccupo di capire se il fallimento di una cella comporti il fallimento dell'intera batteria).
Potrei ottenere i risultati sperati connettendo il pin Vin ad un partitore di tensione e poi ad uno dei pin analogici? Così faccio tutto sulla board sulla quale attaccherò arduino senza avere ulteriori cavi volanti!
Grazie!

Le LiPo sono vendute anche in pack pronti, e vengono bilanciate all'origine, poi ci pensa il caricatore SPECIFICO a garantire il bilanciamento ed a controllare se qualche cella inizia a dare i numeri (in genere il sintomo è la necessità di molto più tempo di carica per una cella rispetto alle altre). Una volta ricaricata correttamente, la possibilità che succeda qualcosa in volo è piuttosto remota, secondo me è una preoccupazione inutile. Semmai potresti pensare (ma sappi che non capisco nulla di roba che vola....) più semplicemente, se non hai troppi problemi di peso, a prevedere una batteria di riserva da commutare in caso di necessità, ma secondo me ti complichi la vita inutilmente.

Nelle batterie Li-Po è fondamentare che nessuna cella scenda sotto ad un certo voltaggio. Se succede la batteria sarà irrimediabilmente danneggiata.
Il regolatore tiene costantemente sotto controllo il voltaggio totale tenendosi un certo margine nel caso che una cella leggermente piu scarica delle altre scenda al di sotto del valore di sicurezza.
Se vuoi usare proprio tutta l'energia immagazzinata devi controllare ogni singola cella, se invece ti basta avere un limite di sicurezza puoi misurare soltanto il voltaggio della batteria tenendo in considerazione il leggero margine di sicurezza precedentemente nominato.

Questo margine di sicurezza sarà trascurabile se usi 2 o 3 celle.

un altro modo per tenere sotto controllo le batterie è usare un amperometro. se cerchi ampmeter per ardupilot o per amp saltano fuori. si collegano prima della batteria e conta in modo abbastanza preciso la corrente. non ti dice quando la batteria è scarica, ma ti consente di calcolare quanta autonomia ti rimane.

Io ne ho ordinato uno che mi deve arrivare a giorni, lo userò per misurare il rendimento di alcuni motori che ho riavvolto. Se hai pazienza quando mi arriva ti posso dire di più.

MrDeepPurple:
Salve a tutti,
sto costruendo un quadricottero interamente pilotato con arduino

Scelta pessima se vuoi avere delle funzioni di volo automatico, come l'atterraggio, con Arduino al massimo realizzi un multirotore da controllare esclusivamente col radiocomando, scordati qualunque funzionalità superiore.
Arduino si usava ai primordi dei multi amatoriali, ormai tutti sono transitati su flight controller con processori a 32 bit, tipicamente degli STM32, dotate di imu integrata, solitamente basata su MPU60xx con aggiunto un varioaltimetro, magnetometro e GPS.

Astro, da te imparo sempre qualcosa di nuovo!

Leggendo "varioaltimetro" pensavo ad un errore (radioaltimetro), ma dato che difficilmente tolleri gli errori, ho approfondito e ho scoperto che il termine si riferisce all'insieme di due strumenti: l'altimetro ed il variometro, quest'ultimo destinato alla misura della velocità di spostamento verticale.

Resta sempre con noi, sei un pozzo di informazioni!

cyberhs:
ho scoperto che il termine si riferisce all'insieme di due strumenti: l'altimetro ed il variometro, quest'ultimo destinato alla misura della velocità di spostamento verticale.

Esatto, in aeronautica il variometro può essere sia uno strumento separato dall'altimetro, due quadranti diversi, oppure integrato nel quadrante dell'altimetro, anzi ormai negli arei moderni è tutto integrato su un singolo display dove oltre all'altimetro e il variometro c'è pure la bussola (sia magnetica, sia Nord reale), che l'orizzonte artificiale, più altre informazioni.
Nei multi il varioaltimetro è ottenuto partendo da un singolo sensore barometrico ad alta precisione ed altissima sensibilità, p.e. il BMP180 che consente di risolvere variazioni di quota di 10 cm e variazioni di velocità ascesa/discesa di 20 cm/s.
Nei software per multi più sofisticati è prevista la Ground Station, in pratica tramite un notebook, o un table, un raidiodata link, è possibile avere una completa telemetria del mezzo incluso altimetro, velocità, quota, variometro, orizzonte artificiale, distanza e rotta per un waypoint, stato batteria, allarmi vari, mappa del luogo tramite google maps, quindi sia come piantina che come vista satellitare, ed è possibile prescaricare le mappe della zona di volo in modo da averle a disposizione anche senza connessione internet.

Ground Station di Open Pilot.

Vi ringrazio per le delucidazioni, ma lo sto facendo per un progetto universitario e sono veramente MOLTO low budget. So che low-budget e oggetti volanti non vanno d’accordo, ma attualmente arduino è l’unica cosa che passa la casa e devo accontentarmi.
Per quanto riguarda il progetto, la mia intenzione è di applicate un po’ di teoria dei controlli automatici al quadricottero, vedendo ad esempio (se e) quanto il controllo ottimo o il controllo H-infinito riesca ad essere più efficiente del PID se opportunamente calibrato (ammesso che riesca a implementarlo su Arduino).
Ovviamente nulla esclude che in futuro riesca a mettere le mani su un microcontrollore più potente così da applicare controlli avanzati (es. controllo predittivo).

Ma allo stato attuale delle cose sarebbe già una gran soddisfazione far alzare in volo stabile il veicolo, a prescindere dalla possibilità di comandarlo.

Tornando alla domanda, connettendo un partitore di tensione tra VIN e A0 posso ottenere una misura valida della tensione totale della batteria?

Puoi solo se la tensione è minore o uguale a 5 volt. Ma dovrà essere superiore se vuoi alimentare arduino usando il suo regolatore. Cosa che ti consiglio. E visto che deve volare dovresti stare su tre celle LiPo, quindi sono 11.1 volt.
Per fare un amperometro c'è un modo più economico, visto che parli di low budget.
Smonta da un qualche floppy/lettore cd/antifurto/quello che ti pare.. un sensore ad effetto hall.
Come dovresti sapere un sensore di questo tipo è sensibile ai campi magnetici. Puoi cercarti il datasheet o provare sperimentalmente come reagisce, fatto sta, che se lo metti vicino ad un cavo in cui passa corrente, ti restituirà un segnale che vari a in funzione del campo magnetico creato.
La misura in tempo reale dellì'assorbimento la vedo molto più utile del monitoraggio della tensione, anche perchè hai parlato di voler provare se qualche algoritmo particolare possa abbassare i consumi.
Se hai un alimentatore da banco regolabile in corrente o potrai facilmente farti una tabella di taratura per avere una misurazione precisa.

Io penso che arduino possa farcela se scrivi il codice con un po' di riguardo.
I limiti principali sono la poca memoria e il numero di pin. (e la potenza di calcolo)
Se lo anneghi di librerie per far funzionare ogni cosa potresti non aver abbastanza spazio per tutto, ma se deve solo stare in volo andrà più che bene.

Di indispensabile con un quadricottero hai solo il tre giroscopi se lo guidi con il radiocomando.
Se vuoi che voli completamente da solo servono anche 3 accelerometri. altrimenti piano piano si cappotta.
Se vuoi fare un atterraggio "soffice" ti servirà un qualche sensore telemetrico.
Poi a seconda di come lo pensi viene il resto.
Se deve viaggiare da solo lo devi collocare nello spazio. O con un gps o con un altro sistema.
Elenca i sensori che vuoi mettere, cosa deve fare e dove dovrà volare.

Allora, ho già un sensore IMU 10DOF (giroscopio, accelerometro, magnetometro e barometro) e ho cercato di risparmiare quanto più possibile di memoria implementando da me le comunicazioni I2C senza usare le librerie piene di parametri che non mi servono.
Per quanto riguarda questo sensore, occupa solo i 2 PIN SDA e SCL (A4 e A5) ma richiede parecchie elaborazioni per ottenere l'orientamento, soprattutto con il filtro di kalman, ma per ora sono riuscito a tenere tutto il comparto dell'orientamento relativo sotto i 10kb.
Per il sensore telemetrico, per ora ho preso un rozzissimo sonar, che spero di sostituire quanto prima, ma mi serve solo a evitare di schiantarlo a terra in fase di atterraggio (2m di distanza massima percepibile dovrebbero essere sufficienti per evitare cadute).
Prenderò sicuramente un GPS in futuro insieme ad un modulo GSM al quale inviare i comandi sulle lunghe distanze, ma a quel punto dovrò sostituire necessariamente l'arduino. Ad ogni modo, finché regge uso un pro mini, poi lo sostituisco con il due.

Per quanto riguarda il sensore ad effetto hall, dovrei riuscire a rimediare qualche vecchio lettore cd, lo provo e vi faccio sapere i risultati!