Salve a tutti, vi scrivo perché sto seguendo un corso nel quale devo presentare un progetto a scelta personale, l'importante è utilizzare l'ATMEGA8535 (è un microcontrollore). Come progetto ho scelto di realizzare un computer di bordo (chiaramente non di un bmw con navigatore satellitare, per intenderci) che implementi alcune funzioni abbastanza elementari e mostra i risultati delle elaborazioni su un display. Premetto che non voglio assolutamente link di schemi già pronti, il progetto voglio (l'ho scelto io apposta) e devo farlo da me, e oltretutto devo anche montarlo e provarlo davvero. Siccome il post e la spiegazione che vi scrivo è piuttosto dettagliata (lunga), se volete, saltate alla fine del post dove troverete direttamente la mia richiesta d'aiuto.
SPIEGAZIONI PROGETTO
------------------------------------
La prima funzione è una sorta di misura del consumo dell'auto, misurato in km/l (quanti km potrebbe percorrere l'auto con 1 litro di carburante).
In realtà il calcolo tiene conto anche dello sforzo del motore, perché potrei consumare di meno se una salita la faccio in terza e l'auto mi assorbe 2 ml di benzina, anziché mettere la 4a e sentire che l'auto singhiozza e beve benzina a dismisura.
Deve quindi non solo mostrare il dato km/l sul display, ma anche una barra che varia tra un valore minimo (0) e un valore massimo di efficienza che il computer calcola da solo in base allo stile di guida. Il valore viene calcolato in maniera "safe", ovvero sceglie il valore massimo in base alle ultime 10 misure (ragionevolmente alte) effettuate entro una fascia di valori. Ogni volta che trova un valore di efficienza alto (non necessariamente più grande delle altre 10 misure memorizzate) elimina la misura più vecchia ed inserisce la nuova.
Questo per ovvie ragioni: se memorizzassi di volta in volta solo il valore di consumo minimo abbinato alla velocità massima (quindi un punto di ottimo più alto rispetto a quello memorizzato in precedenza), sarebbe una catastrofe, poiché se lanciassi la macchina a 150 km/h consumando X, schiacciando poi la frizione, il motore in poco tempo si porterebbe a basso regime, consumando poco, e il computer calcolerebbe un consumo bassissimo abbinato ad una velocità di 120-130 km/h, settando un valore di fondoscala che sarebbe impossibile raggiungere nella normale guida a motore agganciato, e quindi viaggiando normalmente, il computer mostrerebbe la barra di efficienza quasi sempre vicino allo 0.
Invece, per evitare questi picchi le misure vengono rinnovate. Inoltre bisogna tener presente che lo spazio percorso o la velocità devono stare nell'espressione matematica al numeratore, perché se sono fermo ad un semaforo lo spazio percorso o la velocità è 0 e il consumo o diverso da zero, quindi l'efficienza (chiamiamola così) è zero (sono fermo e consumo). Se fossero spazio o velocità al denominatore, uscirebbe un valore infinito (errore del computer, da evitare possibilmente).
Altra funzione: mostrare l'autonomia residua dell'auto, dunque visualizzare quanti km può percorrere l'auto con quella quantità di carburante nel serbatoio in quel dato punto di lavoro.
Poi come terza funzione volevo implementare quella che c'è sulle auto di formula 1, ovvero, la barra di scorrimento che sale in base al numero di giri e indica quando cambiare marcia, e sarebbe anche semplice, un encoder angolare per i giri del motore e via, ma poi cambia da auto ad auto e dovrei inserire qualcosa che permetta all'utente di tarare, quindi pulsanti etc... troppo tempo. Mi sembra in ogni caso più una stupidaggire, anzi, vi chiedo un suggerimento su qualcosa di più serio, questa la scarterei come terza funzione. Un amico mi ha suggerito il Cruise Control ma ho bocciato l'idea perché dovrei intervenire con attuatori o comunque sulla centralina, e lo scopo del progetto è quello di dare la possibilità al guidatore di avere informazioni, non di attuare qualcosa in automatico.
RICHIESTA D'AIUTO
------------------------------- Il professore mi ha riferito che vi sono 2 flussi di carburante, uno dal serbatoio al motore e l'altro dal motore al serbatoio, perché l'auto assorbe più benzina di quanta ne serva e poi la rimanda indietro. Bisogna dunque prendere 2 segnali da sensori di flusso e farne la differenza, ma ha aggiunto il prof. che le due quantità sono molto simili, quindi non è facile effettuare questa differenza.
Domande:
1) Ci sono già i sensori nell'auto? Parlo di qualunque auto non necessariamente nuova, ad esempio la mia è una lancia Y elefantino blu del 2000. Vi chiedo questo perché credo che la centralina per regolare il flusso del carburante dovrà pur avere una sorta di feedback o comunque dei sensori. Se si, mi dite quali sono e se si posso trovare in qualche modo le caratteristiche di questi sensori? Come posso leggere da essi i valori, senza la loro caratterizzazione?2) Per conoscere il carburante residuo, mi basta il normale sensore a lancetta dell'auto (estrapolando opportunamente il segnale elettrico) oppure ne serve uno più preciso e specifico?
3) Per calcolare i km/l che l'auto può percorrere viaggiando a quel punto di lavoro, dovrei calcolare il rapporto km_percorsi su litri di carburante bruciati. Il problema è che se prendo i km dalla velocità (km/h) devo integrare nel tempo, ma come faccio a conoscere il tempo? Cioè come ricavo che i 2 ml assorbiti 1 secondo fa, sono stati già bruciati, se il flusso di benzina è continuo? Quanto è il deltaT? Secondo voi sarebbe una soluzione se facessi direttamente velocità/litri_consumati? Dico questo perché anziché integrare la velocità nel tempo (per avere lo spazio) e integrare il flusso nel tempo (per avere la quantità), potrei metterli direttamente in rapporto, i tempi si eliderebbero... ma forse sbaglio, perciò chiedo lumi.4) Suggerimenti per altre funzioni oltre alle 2 elencate sopra?
Grazie anticipatamente, spero di ricevere una vostra risposta e spero di terminare presto il progetto (dubito, ma se mi ci metto d'impegno, lo finisco prima che finisca il corso e mi porto avanti altri esami).
Artemis