Nota: Devi essere registrato per poter inserire un messaggio. Per registrarti, clicca qui. La Registrazione è semplice e gratuita!
V I S U A L I Z Z A D I S C U S S I O N E
ccriss
Inserito il - 02/12/2011 : 09:42:42 Ciao a tutti, orgoglioso del mio lavoretto, volevo condividere quanto fatto con voi sicuro di un vostro apprezzamento
Si tratta di una applicazione sviluppata con Arduino che consente di A) Avere indicazione di Volt (su LCD=V) , Temperatura esterna (su LCD=T) temperatura batteria (su LCD=TB), consumo ampere istantaneo (seconda riga su LCD=A) e consumo totale viaggio AH (seconda riga su LCD=AH). B) Di poter loggare i dati collegando via USB ARDU ad un PC. Nel mio caso ho sviluppato l'applicazione in Java e scrive su file TXT i dati rilevati. Non ho ancora potuto fare una prova sullo scooter, ma ho avuto modo di verificare il tutto nella simulazione da casa..
Vi allego un video del display dei dati fatto stamane
50 U L T I M E R I S P O S T E (in alto le più recenti)
ccriss
Inserito il - 29/08/2012 : 10:58:24 L'idea compromesso potrebbe essere questa: l'unità master invia il livello di soglia cui far scattare il bilanciamento, la soglia viene registrata dalle unita locali su eeprom (es.: 3.6V per le LiFePO4).. In questo modo riesci a parametrizzare i valori e lasciare il lavoro di bilanciamento a livello locale, se un domani vuoi usare le stesse unità locali per bilanciare delle LICO metti un valore piu alto....
cunz89
Inserito il - 29/08/2012 : 09:40:41 Visto che ho già fatto qualche riflessione anche su questo punto: puoi attaccare come dici i bilanciatori oltre una certa soglia, ma per realizzare un algoritmo più intelligente dovrebbe essere il master che, valutato lo sbilanciamento, ha la possibilità di attivare in qualunque momento il bilanciatore di una qualunque delle celle.
Iniziando a bilanciare sin dall'inizio della carica (o dopo il raggiungimento di un certo stato di carica, questo è da vedere sul campo e dipende anche da quanto sono selezionate le celle) è molto più probabile che si riesca ad effettuare tutta la ricarica senza doverla mai fermare per sovratensione.
Anche per un discorso di flessibilità, in questo modo riprogrammando solo il master è possibile implementare qualunque strategia di carica.
ccriss
Inserito il - 29/08/2012 : 09:18:33 Grazie Cunz per i suggerimenti, che dire, essendo abituato alla programmazione senza tenere conto dei byte di RAM o Flash e delle performance sulle conversioni sui tipi di dati ci sono cascato come un bambino.. Diciamo che sono esperienze che poi servono ad evitare di commettere nuovamente gli stessi errori:-)
Io pensavo di far fare certi calcoli anche alle unità "locali" alla cella per attaccare la resistenza di shunt ad un certo voltaggio, non volevo fosse l'unità master per una questione di autonomia (es: unità master staccata e/o non funzionante non inibisce il processo di carica delle batterie, cosa che per me è tipica, Arduino è spento quando carico).
cunz89
Inserito il - 29/08/2012 : 09:05:06
ccriss ha scritto:
Poi il Attiny85 non ha l'Uart, quindi ho dovuto recuperare in giro la gestione seriale via sw, inoltre ci sono problemi con l'IDE, quello di Arduino va in crash se il programma supera 4k:-(
Fossi in te utilizzerei direttamente AVRStudio...
ccriss ha scritto:
Poi come se non bastasse se uso una istruzione di conversione da double a string per inviarla su seriale perdo in un colpo solo altri 4K di memoria, Attiny ne ha 8K quindi fine del divertimento.
In progetti del genere la virgola mobile è assolutamente bandita, sia per lo spreco di memoria che (soprattutto) per problemi di performance. Sono sicuro che puoi fare a meno di qualunque cosa più complessa di un integer, e puoi fare a meno anche di inviare tutto un numero come stringa...
Aiutino: se vuoi dire 3,203V lo puoi anche dire come 3203mV, che invece è intero e si trasferisce in meno di 2 byte Questo solo se vuoi che la misura sia leggibile ad un essere umano, altrimenti puoi comprimere ancora di più inviando direttamente quello che legge l'ADC e lasciando fare il resto al master, che dovrebbe essere dotato di una "calcolatrice migliore"
Quando poi avrai affinato il resto puoi aggiungere una ulteriore compressione, sapendo che il valore di tensione non sarà mai (ad esempio) inferiore ai 2V e superiore a 4. Questo restringe di molto il range, e di conseguenza la dimensione dei dati a parità di risoluzione.
jumpjack
Inserito il - 28/08/2012 : 21:52:25 A me interessa più graficare che osservare in tempo reale, per questo voglio costruimi un "battery shield" per conto mio. :-)
ccriss
Inserito il - 28/08/2012 : 21:51:04
cunz89 ha scritto: Ci sono alternative autocostruite, nel tempo ho sparso diversi schemi
Infatti e sto provando a metterne in pratica qualcuno:-)
Colgo l'occasione per un rapido aggiornamento, sono riuscito lato sw a fare parlare 2 Arduini su un protocollo di comunicazione "mio" (Es:dammi voltaggio, vai ni stand by..), ho ancora problemi con Arduino vs Attiny85...
Ammetto poi Cunz che ultimamente tra caldo,ferie e pigrizia mi sono un po' fermato, forse il periodo migliore per fare queste cose è "nel freddo e ne buio del triste inverno". Poi il Attiny85 non ha l'Uart, quindi ho dovuto recuperare in giro la gestione seriale via sw, inoltre ci sono problemi con l'IDE, quello di Arduino va in crash se il programma supera 4k:-( Insomma è un po' faticoso.. Pensavo quasi quasi di programmare direttamente un altro Atmega 328, almeno non mi fa impazzire troppo.. Poi come se non bastasse se uso una istruzione di conversione da double a string per inviarla su seriale perdo in un colpo solo altri 4K di memoria, Attiny ne ha 8K quindi fine del divertimento. Con il minimo set di istruzioni per leggere il voltaggio sono arrivato al limite, Cunz vedi controindicazioni grosse a passare al Atmega 328 invece del Attiny? Ok il consumo cresce un po'...
batteria lifep04 48v 24ah (32 celle 38140s) collegate ai voltmetri modificando un cavo stampante (in parallelo al bms)
isd88
Inserito il - 28/08/2012 : 16:54:58 ottimo, pensavo fossero multiplexer! comunque ho visto il video veramente fantastico, certo piu che la eeprom userei una scheda sd che mi pare anche facilmente interfacciabile, resta solo da vedere se ho a disposizione i pin digitali che mi servono
cunz89
Inserito il - 28/08/2012 : 16:47:49 L'integrato di cui parla Jumpjack serve proprio a questo! Ci sono alternative autocostruite, nel tempo ho sparso diversi schemi più o meno validi in giro per il forum...
isd88
Inserito il - 28/08/2012 : 16:42:31 io da tempo sto progettando qualcosa del genere, e mi sono scontrato contro i problemi tipici dei sensori di arduino quali rumore di fondo etc etc gia da vecchi progetti quindi almeno so de che male se more :D
Il controllo delle celle ancora non lo implemento perche vado al piombo, ma mi interessa. Giusto una domandina: come fate a misurare la tensione di ogni singola cella se arduino puo misurare solo rispetto alla massa?
cunz89
Inserito il - 28/08/2012 : 16:28:49 40?
jumpjack
Inserito il - 28/08/2012 : 16:18:36 Da 38 non li trovo, solo fino a 28!
cunz89
Inserito il - 28/08/2012 : 14:51:53 Cerca un adattatore TSSOP-DIP, poi tanto flussante, treccia per correggere gli errori, mano ferma, e soprattutto tanta pazienza
Inserito il - 28/08/2012 : 14:16:32 12 celle ognuno! Sembra buono sulla carta, e richiede poca componentistica aggiuntiva. Il TSSOP è una dimensione ancora accettabile per la saldatura a mano
jumpjack
Inserito il - 28/08/2012 : 13:57:53 Ho rimediato non uno ma 3 integrati MAX11068, ognuno in grado di monitorare ben DIECI celle al litio! E li ho pure avuti gratis come "campioni gratuiti". Se riesco a collegarli a una arduino siamo a cavallo! (comunicano tramite I2C) Ma hanno dei piedini microminuscoli a montaggio superficiale, sarà dura.
jumpjack
Inserito il - 31/05/2012 : 09:01:54 devo ridimensionare le mie mire, sembra che monitorare 16 celle sia elettronicamente complicatissimo... a meno di riuscire a rimediare un LTC6803, nel qual caso tutto sarebbe più semplice e interessante.
alex_audi
Inserito il - 24/05/2012 : 17:43:50 è perfetto considerando che risparmiamo 100 euro di cycle analyst almeno 50 euro di buzzers con in piu la telemetria su file txt... il team ferrari ci fa una pippa !!!!!!!!!!!!!!!
jumpjack
Inserito il - 24/05/2012 : 12:53:08
Se riesci a fare un sistema compatto che scrive i dati delle singole celle e suona quando c'è un anomalia sulla singola sei arrivato.. e io te lo compro subito!!!!!!!!
Un cosino 5x5x5 centimetri del costo di 40 euro è abbastanza compatto? :-) Memorizzerebbe i dati su una SD card da qualche GB per consultarli dopo, ma in tempo reale suonerebbe un potente cicalino in caso di problemi. Ho tutti i pezzi pronti, devo solo trovare il tempo di assemblarli, collegare i fili alle mie 32 celle... e scrivere il SW! (non lo troverò mai... )
alex_audi
Inserito il - 24/05/2012 : 11:21:35 Analisi continua delle celle nel tempo e sottocarico questa è sicuramente la soluzione a tutto. Solo che devi analizzare le celle come hai fatto nell altro post analizzare il pacco è relativamente inutile. Se riesci a fare un sistema compatto che scrive i dati delle singole celle e suona quando c'è un anomalia sulla singola sei arrivato.. e io te lo compro subito!!!!!!!!
jumpjack
Inserito il - 24/05/2012 : 09:56:26 Ho scoperto due aggeggini molto interessanti: OpenLog e un multiplexer a 16 ingressi analogici:
Li metti insieme e viene fuori un bel multilogger standalone!
allelom
Inserito il - 25/04/2012 : 17:20:26 Complimenti, sei un genio, il prossimo inverno studierò la tua applicazione per la mia bici, non sono elettronico, ma occorre imparare un pò di tutto. Saluti Alessandro
ccriss
Inserito il - 25/04/2012 : 15:05:53 E con questa ultima "fatica" credo di aver completato la descrizione del sistema hobbistico del mio scooter..
Ho fatto un breve video che spiega piu’ chiaramente come funziona l’interfaccia tra Arduino ed il PC, perche’ va bene leggere i dati istantanei quando sei in giro, ma se vuoi capire come si comporta lo scooter (o la bici) nel tempo devi poter scrivere i dati da qualche parte per poi analizzarli. La soluzione che ho usato è quella di collegare il PC ad Arduino per poi leggere ogni secondo i valori dei sensori.
L’applicazione , attraverso la porta seriale, resta in ascolto ed appena Arduino invia dei dati li cattura per poi scriverli su disco. Questa soluzione ha l’handicap di doversi portare dietro un portatile e di mantenere attiva la connessione via USB su Arduino, ammetto che non è il massimo della comodità , ma per la prima versione messa in pista è andata piu’ che bene
ccriss
Inserito il - 16/04/2012 : 15:20:07 Ciao a tutti, dato che tra un po' passero' Arduino alla versione 2.0, ho pensato di memorizzare questo video come versione finale della 1.0. Nel video viene descritto a grandi linee come funziona il sistema , ma a scooter fermo, nel vecchio video non si capiva molto visto che l'ho fatto in corsa!! In sintesi nel video potrete vedere: - Dove ho messo il microprocessore ed i suoi collegamenti - L’accensione ed il messaggio di benvenuto “Ccris”!!! - Il funzionamento dei sensori e la corrispondente visualizzazione su LCD - L’utilizzo dei pulsanti per cambiare il layout su LCD - L’utilizzo del pulsante per azzerare i valori scritti su Eprom
La versione 2.0, se tutto va bene avrebbe le seguenti ambizioni: - Si collegherà via bluetooth
- Potrà rilevare le informazioni con maggiore accuratezza (oggi a 10 bit con la nuova versione sarà a 12bit)
- Leggera' anche il voltaggio di tutte le 20 celle del pacco batteria e lo farà con letture differenziate (positivo e massa separate) e senza partitori resistivi, quindi mi aspetto una precisione davvero buona
Ovviamente tutti i dati potranno essere scritti su un PC che supporta il bluetooth, in seguito, ma tutto da verificare, potrebbe essere possibile anche su cellulare Android!!
P.S.: Come potete vedere il tutto è stato fatto in modalità hobbista, quindi vi prego di non commentare quanto è brutto esteticamente!!
ccriss
Inserito il - 17/02/2012 : 15:56:46 Ad oggi le salite non sono mai state un problema, considera che sono in pianura padana, quindi le salite che ho potuto testare sono le classiche per box interrati. Non so proprio che pendenza possa superare, ma penso che non abbia problemi a farle, piuttosto la domanda è per quanto tempo possa tenerle. Una salita da box (credo sia un 20°) a 15Km/H mi segna un consumo da 60/70A, il motore surriscalderebbe a mantenerla per minuti
jumpjack
Inserito il - 17/02/2012 : 08:57:22 E in salita come se la cava? hai mai fatto misure sulla pendenza superabile? 2kW per 100 kg dovrebbero "arrampicarsi" bene!
ccriss
Inserito il - 14/02/2012 : 16:14:54 Jump, lo scooter pesa circa indicativamente 100Kg (le litio lo hanno alleggerito) ed ha una potenza di 2KW. Ha 18 celle per complessivi 57V nominali da 40AH e velocità max intorno ai 63Km/h (solo d'estate, d'inverno arriva a 60)
jumpjack
Inserito il - 14/02/2012 : 13:17:42 Interessantissimo questo thread. Prima o poi anch'io trovero' il tempo di attaccare arduino allo scooter... (il fatto è che lavorare allo scooter con cappotto e guanti mi scoccia assai!). Nel frattempo, mi limiterò a chiacchierare. Sarebbe sicuramente molto interessante fare dei grafici anche rispetto alla pendenza della strada, per capire quanto effettivamente aumenta il consumo con la pendenza, mantenendo una velocità costante: basta un telefono nokia con GPS e il programma SportsTracker, che poi produce file da mettere su GoogleEarth, dal quale poi si può ricavare il profilo altimetrico del percorso (ma ho trovato anche un sito, che ora non ricordo, che fornisce come output le altimetrie inserendo un percorso GPS).
CCriss, ma il tuo scooter quanto pesa, e che potenza ha? (magari me l'hai detto in altri thread/forum ma non mi ricordo...)
ccriss
Inserito il - 16/01/2012 : 23:28:25 Beh, quando inizi se hai bisogno di info sai che puoi contare su di me, se non ci aiutiamo tra noi che senso ha il forum!! Sono sicuro che grazie al forum BC1 diventerà un'astronave
pghori
Inserito il - 16/01/2012 : 22:57:47 Grande ccriss hai fatto un lavorone, vorrei implementare anche sulla mia BC1 qualcosa del genere. Tienici informati!
ccriss
Inserito il - 16/01/2012 : 21:55:06 In sostanza il suggerimento è: prima di dare fondo alle batterie con scariche violente sarebbe meglio aspettare (almeno nel mio caso) 5/8 min cosi'da avere temperature piu' decenti ed evitare che le batterie vadano troppo basse di voltaggio. Penso che le Ping si comportino in maniera simile visto che non sono tante diverse dalle mie..
Non so le headway come si comportano, ma sono sicuro molto meglio delle mie visto che consentirebbero (almeno sulla carta) scariche continuative da 10C, quindi il freddo pur aumentando la resistenza interna non dovrebbe farle soffrire quanto le mie Thundersky
ccriss
Inserito il - 16/01/2012 : 21:52:23 Ed ecco qualche risultato interessante circa le temperature... Qui trovate due log distinti fatti uno Sabato 14/1 ed uno oggi 16/1 dove faceva un sacco freddo (-2°)!! L'asse x è sempre in secondi ed il secondo Log parte da base 11Ah consumati perche' è il ritorno da lavoro (adesso arduino memorizza i consumi quindi anche spegnendolo ricorda gli AH consumati su trip e KM)
E' interessante vedere la differenza di temperatura durante il percorso
Questo è del 14/1 Immagine:
122,62 KB
Questo è di oggi 16/1 Immagine:
109,55 KB
cunz89
Inserito il - 03/01/2012 : 22:35:59 Suppongo che le variazioni di temperatura del pacco richiedano almeno qualche secondo, quindi il segnale utile non avrà sicuramente componenti a frequenze elevate! Ti consiglio di filtrare più in basso che puoi, anche pochi Hertz, non darà alcun fastidio alla lettura, anzi...
ccriss
Inserito il - 03/01/2012 : 21:05:21 Sono felice finalmente!
Ho applicato il condensatore+resistenza (modalità RC) , questa volta tra il segnale d'uscita e GND ed è efficace, finalmente non vedo le temperature andare dove vogliono loro. Ho messo una resistenza da 100 Ohm e un condensatore da 100nF, con questi valori dovrebbe far passare frequenze di segnale comunque piuttosto alte senza dare fastidio alle letture di Ardu, corretto?
pghori
Inserito il - 03/01/2012 : 16:26:45 quoto Cunz89, un cavetto schermato è un buon consiglio
cunz89
Inserito il - 03/01/2012 : 13:51:34 Se il sensore di temperatura è posizionato molto lontano dall'arduino, postresti provare (se non l'hai già fatto): -Sostituire il condensatore che hai messo con un filtro RC con una frequenza di taglio molto bassa (la temperatura non varia velocemente) -Cavi del sensore posizionati più lontani possibile da quelli di motore e di alimentazione del controller -Cavo del sensore schermato con una calza metallica
Il problema dovrebbe scomparire, in caso contrario posta qualche grafico anche della temperatura, magari è possibile escludere via software i valori sballati
ccriss
Inserito il - 03/01/2012 : 10:35:07 Ciao a tutti, mi permetto di aggiungere un ulteriore grafico che finalmente tiene conto anche della velocità per comprendere meglio le forze in gioco. Dal log ho scoperto che il mio sgorbietto di scooter raggiunge i 50Km/h in poco piu' di 8 sec., pensavo peggio.
Resta invece ancora presente il problema della lettura delle temperature, pur avendo aggiunto dei condensatori ceramici da 0,1 micro tra i 5v e il gnd del sensore, le letture quando sono fermo sono corrette,mentre quando vado in giro sballano anche di 10°. Leggendo in giro ho notato che alcuni lamentano lo stesso problema per via del fatto che le masse di Ardu sono tutte in comune e che il motore potrebbe creare disturbi. Provero' ad aggiungere un altro condensatore sul segnale di lettura e GND nella speranza che possa filtrare questi disturbi, non essendo molto pratico di elettronica non saprei cos'altro fare, se qualcuno ha dei suggerimenti gli sarei molto grato!!
Immagine:
108,17 KB
McGyver
Inserito il - 11/12/2011 : 21:41:02 per districarmi nello scrivere e leggere nella eeprom integrata in arduino ho rumato in google fino a che non ho trovato questo:
il difficile e' che per scriveree leggere un singolo byte ci sono le funzioni gia' pronte ma per poter mettere lei long o dei float la cosa diventa complicata. Guarda il link ma stai attento che ho notato dei comportamenti strani nell'uso della data structure che devi creare per far funzionare il tutto. Ci ho litigato non poco stanotte e non so se ero stanco io o quelle maledette variabili si facevano i caXXi prori. Comunque se prendi paro paro il mio codice funziona bene, al massimo aggiusta o aggiungi quello che ti serve. Okkio a non fare scritture continue tipo una al secondo che 100.000 secondi sono pochini (anche se qualcuno ha fuso verso il milione).
Buono smanetto.
ccriss
Inserito il - 11/12/2011 : 20:56:24 Che bel lavoro McGyver, ho letto il thread e devo dire che mi sono entusiasmato ancora di piu'.. Poi grazie per la citazione, troppo gentile!
Tornando ad Ardu, ho scaricato il file header per scrivere la EEPROM, avresti anche un sample per utilizzarlo o indirizzarmi a qualche sito se c'e' che la descrive in dettaglio? In seguito, come hai già fatto tu, vorrei scrivere qualche dato su EEPRROM. Anch'io ho bisogno di calcolare il parziale KM percorsi e AH consumati, poi come si dice l'appetito vien mangiando
Forza Ardu
McGyver
Inserito il - 11/12/2011 : 19:01:03 Mi sono dimenticato di specificare che la eeprom e' auella integrata nell'arduino, non serve collegare nulla. Se volete sperimentare ci vuole pochissimo.
va messo un un tab aggiuntivo e salvato con lo sketch principale, e' il template per salvare lo stato nella eeprom interna.
ora ci sono 3 schermate con informazioni diverse ciclabili con il tasto 1 e a seconda della schermata il tasto 2 ha le seguenti funzioni: schermata principale - cambio modo di funzionamento, schermata 2 - premuto per piu' di un secondo resetta gli ah rimanenti nella batteria, schermata 3 premuto per piu' di un secondo resetta il contakm parziale. Le informazioni salvate nella eeprom sono km totali km parziali e ah batteria rimanenti, cosi' i dati fondamentali non si perdono allo spegnimento / riaccensione del computerino. Il salvataggio avviene al reset o quando ci si ferma per piu' di 3 secondi per non esagerare con i cili di scrittura (eeprom interna data per 100.000 cicli)
ora manca il testing su strada! se q qualcuno viene in mente qualche miglioria se ne puo' parlare. oggi vedo di fare qualche foto sia al computerino che alle bipa nouve/in costruzione.
Buoni smanettamenti.
McGyver
Inserito il - 10/12/2011 : 19:26:31 Che risposte rapide..... io non posso usare un hall perche' ho un geared e in discesa, muscolare etc non avrei lettura. Per lo shunt e' una soluzione di quelle "provvisorie definitive" ma aspetto a breve un sensore tipo il tuo (ordinati 5 pezzi in cina a prezzi ridicoli) con schedina e componenti. Le foto della creatura ci sono in un trhead di qualche tempo fa ma ho appena finito di spostare tutta la mercanzia su una bici biammortizzata e la schiena ringrazia!! con lo spostamento ho finalmente messo i connettori sul cockpit e ora ho deciso di finire il software, sto implementnado 3 schermate differenti e un modo di gestione in piu' del pas, oltre ad odometro con registrazione continua su eeprom e un sistema di contachilometri parziale che resettato riporta anche un valore a scalare degi Ah della batteria a full.... maggiori aggiornamenti a breve.
E sto anche sviluppando un triciclo recumbent tadpole elettrificato triammortizzato che ...... postero' qualcosa appena il prototipo sara' pedalabile. buon lavoro.
ccriss
Inserito il - 10/12/2011 : 18:57:26 Questo è il codice che ho usato per misurare la velocità da hall sensor. Questa condizione serve ad individuare quando il sensore è a 5V, altrimenti la considero OFF if (sensvalgiri > 3)
//variabili x conta KM int pincontgiri=5; // legge segnale x contagiri int state; //the state of the input int oldstate; unsigned long t; //timer unsigned long s; //samples unsigned long c; //count double f=0; //frequency double cont=0; double sensvalgiri=0; double giricalc=0; // lettura del valore sensore di hall // End variabili contaKM
double GetKmh() { // la funzione calcola il nr di giri al secondo in funzione di un ciclo di valutazione c = 0; t = millis(); // read time at start of sampling for(s=0; s<1500; s++){ //take a number of samples dura circa 0,4 sec sensvalgiri = analogRead(pincontgiri); sensvalgiri=sensvalgiri/1023*5; if (sensvalgiri > 3) { state = 1; // se il segnale analogico supera i 3V vuol dire che hall sensor è attivo } else { state = 0; // se il segnale analogico supera i 3V vuol dire che hall sensor è 0 } if (state != oldstate){ //lo stato è cambiato: c++; //conta il nr di cambiamenti oldstate = state; //and reset current state }
} t = millis() - t; //read time at end of sampling
c = c/2; // need to divide by 2 because counter incremented on each change - two changes per cycle
f = 1000*c/t; //calcola il nr di volte che hall sensor è attivo per un secondo
// in km/h // dove 23= nr di volte che hall sensor va a 5V // 1.42 metri di circonferenza ruota // il resto dei numeri serve a convertire i valori da sec a h e da metri a KM f= (f/23*3600*1.42/1000);
return f;
}
Daniele Consolini
Inserito il - 10/12/2011 : 18:52:05 Cacchiarola Mc Gyver, un nome importante!!!! Respect!
ccriss
Inserito il - 10/12/2011 : 18:51:38 Complimenti MC, il mio codice è decisamente meno efficace ed ordinato, onestamente non vedevo l'ora di applicarlo che mi sono indirizzato (troppo) al risultato. Perche' non posti qualche foto della creatura?
Noto che hai anche implementato delle azioni da pulsante, wow!!
Per la lettura del consumo di corrente ho visto che usi uno shunt, se ti capita un giorno prova ad usare la componente (il ACS) che ho usato io, quello funziona con effetto HALL, quindi nessuna resistenza sul filo di potenza!! Poi la lettura ti posso assicurare è molto stabile e ben confezionata per ARDU..
Per quanto concerne il calcolo della velocità , l'ho appena finito e funziona. Mi sono agganciato ad uno dei 3 Hall sensor lato motore. Ho provato inizialmente ad usare un input digitale (in fondo su quel filo passa 0V o 5V), ma non funzionava e non avendo capito bene perche' (credo che si debba ripulire il segnale e/o eventualmente usare una resistenza di pull-up) ho usato un pin analogico e trasformato io in "onda quadra". Cosi' ho potuto evitare di mettere il magnete alla ruota per capire a che velocità vado!!
A lavoro finito sarà una grande soddisfazione
pghori
Inserito il - 10/12/2011 : 18:45:23 Grande lavoro McGyver, spero tu sia contento se lo utilizzerò come base di partenza per la mia bici. domande: _ avendo un motore con sensori di hall vorrei utilizzarne uno come ingresso al posto di quello del ciclocomputer, così da evitare ulteriori cablaggi, cosa ne pensi? _ che tipo di shunt hai utilizzato, quello della centralina? _ dove hai imparato a scrivere codice così?
A questo punto....aspetto ulteriori aggiornamenti
McGyver
Inserito il - 10/12/2011 : 17:28:36 A proposito di arduino, non avevo piu' postato il codice del mio progetto "centralina aggiuntiva" che fa da gestione pas ed uscita su"acceleratore" della centralina originale, amperometro, contachilometri, conta Ahr e Ahr per km su un display 4x20. ora sto aggiungendo odometro e set di batteria piena sulla eeprom integrata per avere autonomia residua ed eliminare il ciclocomputer.
CODE------ // Pedelec computer, AndreaM. Bonino - 2011. // include the library code: #include <LiquidCrystal.h>
void lcdprintD( double val, byte precision){ // prints val on a ver 0012 text lcd with number of decimal places determine by precision // precision is a number from 0 to 6 indicating the desired decimial places // example: printDouble( 3.1415, 2); // prints 3.14 (two decimal places)
if(val < 0.0){ lcd.print('-'); val = -val; }
lcd.print (int(val)); //prints the int part
if( precision > 0) { lcd.print("."); // print the decimal point unsigned long frac; unsigned long mult = 1; byte padding = precision -1; while(precision--) mult *=10;
Scusate la lunghezza ma cosi' lo possono leggere tutti..... SOLO USO PRIVATO!!!
ccriss
Inserito il - 07/12/2011 : 10:19:53 Intanto grazie per aver apprezzato il log dati, su asse Y trovi Volt e Ampere come sospettavi.. I gradi non li ho messi nel grafico, ma se sei interessato a a vederli li trovi nel excel allegato con tutto il log dei miei 6 min di giro nel quartiere.
Penso anche io che mandare le mie batterie (che sono 40AH) a 3C sia inutile, se potessi penso le limiterei sui 2C (80A). Una delle modifiche che voglio fare per il futuro è proprio questa , utilizzando la misura del consumo, imporre il limite modificando il voltaggio su acceleratore. Questo potrebbe valere sia per limitare i C di scarica che per mettere in ECO mode il mezzo quando le batterie sono prossime ad esauririsi...
Daniele Consolini
Inserito il - 06/12/2011 : 22:45:25 Questo lavoro ch stai facendo è davvero molto interessante!!!! Se ho capito bene, sull'asse Y hai la corrente e la tensione della batteria no? Parli di gradi, se fosse la temperatura della batteria credo avresti problemi, per questo li interpreto come A. Quindi 45V e 100Ah fanno 4.5KW. Sono già un limite per le celle.
Credo tu sia uno dei primi a fare un'analisi così dettagliata del consumo istantaneo. Proprio in giornata ho scritto qualche decina di righe in un altro post al riguardo, spiegando cosa fa male alle celle. Questo è un esempio pratico di inutile stress. Infatti a guardare, quegli impulsi di corrente sono del tutto inutili se confrontati con la media e 5 secondi di accelerazione potrebbero essere mitigati in qualche modo, visto l'uso che fai del mezzo. Che ne dici?
davmultimediale
Inserito il - 06/12/2011 : 21:32:24 Ciao Criss,
a questo punto per completare il lavoro che hai fatto, rimarrebbe da gestire tutti i dati prodotti tramite uno smartphone collegato via bluetooth. L'idea potrebbe essere quella di fare una bella app in Android/Iphone per visualizzare in tempo reale i dati in modalità grafica (ho in mente un cruscotto digitale) e per memorizzare, visualizzare, fare delle analisi postume (grafici, picchi, consumi medi, etc...) con i dati storici. Si potrebbe poi collegare il tutto ad un account online per la sincronizzazione dei dati e per una consultazione anche via web. Mi offro per la creazione dell'app e per la creazione del website. Cosa ne pensate, sarebbe utile?
Ciao, Davide.
Forum Indipendente Biciclette Elettriche, Pieghevoli e Utility