V I S U A L I Z Z A D I S C U S S I O N E |
adriM |
Inserito il - 13/06/2020 : 18:26:29 Ho assemblato un gas legalizer utilizzando un Arduino nano per la bici di mia moglie motorizzata con un BPM. I componenti del sistema sono: Arduino nano, relay, acceleratore. Ho collegato il PAS della bici ad Arduino e l'acceleratore alla centralina della della bici ma con il cavo di alimentazione del positivo interrotto dal relay. Quando Arduino rileva che i pedali girano in avanti attiva il relay e quindi l'acceleratore funziona normalmente; quando i pedali sono fermi il relay apre il circuito e il motore si ferma. Ho poi pensato che sarebbe stato molto utile aggiungere una funzionalità di "walk assist" e la possibilità di aiuto nella partenza in salita: ho aggiunto un bypass con una resistenza nell'interruzione del circuito in corrispondenza del relay, così quando il relay apre il circuito all'acceleratore arriva comunque una tensione più bassa del normale e accelerando senza muovere i pedali il motore spinge fino ai 6 Km/h (in realtà arriva a 7 in piano e su asfalto... dovrei aumentare un pelino la resistenza). Ho provato la bici e funziona davvero bene: posso tenere la velocità adeguata in tutte le occasioni, posso avere l'aiuto nelle partenze e sui tratti difficili posso andare a piedi senza trascinare la bici. Se avessi avuto qualche conoscenza di elettronica sarebbe stato davvero banale mettere assieme questo meccanismo; dato che in questo campo sono a zero, per me è stata una bella soddisfazione.
|
8 U L T I M E R I S P O S T E (in alto le più recenti) |
adriM |
Inserito il - 15/06/2020 : 09:29:15 Ma in pratica se blocchi l'acceleratore funziona come solo con il PAS. Pix sulla frisbee pressava sull'acceleratore la manopola del manubrio per evitare il ritorno automatico dell'acceleratore. Nel mio "accrocchio" l'assistenza parte molto presto, appena giri i pedali e si ferma con un ritardo circa uguale a quello del PAS originale. Certo che manca la rampa dolce di progressione che c'è con il pas originale, però nelle prove che ho fatto non me ne sono accorto; forse perchè tengo sempre il selettore di potenza sul minimo. Il lavoro segnalato da Trevy è certamente più raffinato e tiene conto anche di questo aspetto. Prova a dargli un'occhiata, se non l'hai già guardato.
|
Steu851 |
Inserito il - 15/06/2020 : 00:20:15 bel lavoro
A me piacerebbe che funzionasse normalmente col PAS e se si accorge che c'è segnale dall'acceleratore passi il comando a questo. Le mie centraline fanno qualcosa di simile ma se con l'acceleratore aperto si smette di pedalare la bipa continua ad andare finchè non si azzera l'acceleratore o si frena, non è completamente legale |
adriM |
Inserito il - 14/06/2020 : 13:57:56 Sì, ma questi sono bravi... Quello che ho fatto io è elementare. Non ho nessuna pratica di elettronica. Ho comprato un kit di base di Arduino e ho fatto un bel po' di prove, con gli elementi che ci sono nel kit... Ho postato lo sketch per rispondere a Kenuser, non per proporre un modello. Avevo pensato anch'io di agire sul collegamento dei freni per regolare la velocità, poi però temo che ne venga fuori un'andatura altalenante. Per prova ho acquistato l'acceleratore e ho visto che è molto pratico; addirittura è stato apprezzato da mia moglie ! A questo punto ho deciso di tenerlo sulla sua bici e per essere più vicino alla legalità ho creato questo "accessorio". Se dovesse smettere di funzionare quando siamo in giro, sarebbe sufficiente collegare il pas della bici al connettore della centralina invece che ad arduino e scollegare il connettore dell'acceleratore per ripristinare la situazione originale. Il mio BPM ha l'interruttore a tre posizioni per regolare la potenza (5 - 7 - 15 A) e un pulsante per regolare la velocità (18 - 21- 25 Km/h); l'acceleratore lavora in modo subordinato a queste impostazioni.
|
Trevy |
Inserito il - 14/06/2020 : 12:44:23 Buongiorno Adriano, bel lavoro, programmi semplici in loop, mi piacciono, si può veramente personalizzare un poco tutto.
Quando ho eseguito un lavoro simile ho trovato tutto già fatto, i ragazzi spagnoli della fiido avevano seguito un altra logica. Anzichè relè che pur sempre è qualcosa di soggetto a guasti hanno usato direttamente una porta e non per togliere il 5V del gas, (alcune centraline non reagiscono male non sentendo il segnale) ma chiudendo il segnale freni. Ovvero se non pedali la centralina vede che stai frenando. Già allora avevano in studio un arduino nano con DAC, questo poteva comunicare alla centralina un livello di tensone decisa dal arduino a seconda della programmazione. Io ho scelto la versione semplice ma ora quei ragazzi sono arrivati a livelli di avere velocità di crociera aiuto alla partenza... Ovvero una centralina che comanda la centralina(;
Senza nulla togliere al tuo lavoro, vorrei solo condividere il loro lavoro casomai a qualcuno servisse.
https://docs.google.com/document/u/0/d/1vuWHPP1zg_v8P2XIctBGFU_C81XpQcVdKZ1NSKF84EU/mobilebasic
|
adriM |
Inserito il - 14/06/2020 : 09:44:39 Gestisco l'attacco dell'acceleratore utilizzando il relay. Il relay è attivato per mezzo del pin 9. L'acceleratore è collegato direttamente alla centralina con negativo e segnale; il polo positivo è interrotto / collegato dal relay. Il pas della bici è alimentato (per ora, poi ci metterò uno step down da 36v a 5v) da una batteria al litio ex batteria del portatile, in parallelo con arduino e rileva il segnale dal pin analogico (A4). Ho provato a prendere l'alimentazione dal connettore del PAS della centralina, ma non funziona (nel mio caso) Qui sotto lo sketch
void setup() { Serial.begin(9600); pinMode(9,OUTPUT); pinMode(13,OUTPUT); pinMode(10,INPUT); pinMode(11,INPUT); } int pausa = 10; int A = 0; int B = 0; int ContaA = 0; int ContaB = 0; int limite = 50;
void loop() { A= 1; ContaA = 0; ContaB = 0; // resto in questo ciclo fino a che ho un segnale <> da 0 dal PAS e incremento ContaA while (A > 0 ) { A=analogRead(A4); if(A>0){A=1;} ++ContaA; // se i pedali sono fermi o girano troppo piano spengo if (ContaA > limite){ spegni() ; ContaA = 0; } delay (pausa); } // sono uscito dal ciclo perchè il segnale del PAS è = 0 // entro in questo ciclo e ci rimango fino a che ho un segnale = 0 dal PAS e incremento ContaB B = -1; ContaB = 0; while ( B < 1 ) { B=analogRead(A4); if(B>0){B=1;} ++ContaB; if( ContaB > limite ) { // i pedali sono fermi o vanno troppo lentamente spegni() ; ContaB = 0; } delay (pausa); } // Quando i pedali girano in avanti o indietro il PAS restituisce per tempi diversi un segnale = 0 o <>0 // Qui decido se i pedali girano in avanti o indietro // Ho 2 BPM con centraline e PAS eguali, ma in uno gira avanti quando ContaA > ContaB e nell'altro è il contrario... if ((ContaB > 1) and (ContaB > ContaA)) { accendi(); } else { spegni(); }
}
void spegni() { digitalWrite(9,LOW); } void accendi() { digitalWrite(9,HIGH); delay(100); } |
kenuser |
Inserito il - 14/06/2020 : 00:28:02 Bella pensata adriM Puoi condividere lo sketch? |
adriM |
Inserito il - 13/06/2020 : 22:40:39 La centralina è attiva e gestisce tutto. Ho solo staccato il cavetto del PAS della centralina e ho collegato allo spinotto apposito l'acceleratore. Però il cavetto che alimenta con 5 v. l'acceleratore a manetta sul manubrio è interrotto dal relay che a sua volta è comandato da Arduino. La parte lunga è stata quella di capire come leggere il segnale che arriva dal PAS posizionato sui pedali e come capire se i pedali girano avanti o indietro. |
Miura72 |
Inserito il - 13/06/2020 : 22:07:45 Se di elettronica non ci capisci niente ( COMPLIMENTI ) aver baipasato la centraline e aver fatto funzionare il motore con arduino tanto di cappello. |