Sommario:

Rilevatore di efficienza del carburante: 5 passaggi
Rilevatore di efficienza del carburante: 5 passaggi

Video: Rilevatore di efficienza del carburante: 5 passaggi

Video: Rilevatore di efficienza del carburante: 5 passaggi
Video: Ecco come funziona un modulo di alimentazione del carburante (animazione 3D) 2024, Dicembre
Anonim
Rilevatore di efficienza del carburante
Rilevatore di efficienza del carburante

Di: Danica Fujiwara e William McGrouther

Le automobili sono oggi il principale mezzo di trasporto nel mondo. In particolare, in California, siamo circondati da strade, autostrade e strade a pedaggio che migliaia di auto percorrono ogni giorno. Tuttavia, le auto usano il gas e la California usa la maggior quantità di benzina rispetto a qualsiasi altro stato degli Stati Uniti, circa 4.500 galloni al giorno. Per il nostro progetto CPE 133 Final, abbiamo deciso di creare un sistema in cui potesse tracciare la velocità di un'auto e dire se supera la velocità più efficiente per il miglior chilometraggio del gas o il risparmio di carburante. Questo progetto aiuterebbe i conducenti a prendere coscienza del loro risparmio di carburante, che a sua volta, si spera, li aiuterebbe a risparmiare denaro, utilizzare meno gas e creare meno inquinamento nell'aria.

Passaggio 1: materiali

Materiali
Materiali
Materiali
Materiali
Materiali
Materiali
Materiali
Materiali

Materiali necessari per questo progetto:

- Basi 3 FPGA

- Arduino Uno

- Tagliere

- Sensore di orientamento assoluto Adafruit BNO055

- Cavi maschio-maschio

Passaggio 2: comprensione del design

Capire il design
Capire il design
Capire il design
Capire il design

Diagramma a stati finiti

Questo progetto ha due diversi stati all'interno del diagramma degli stati finiti mostrato sopra. La luce può essere accesa (rappresentata da '1') o spenta (rappresentata da '0'). Lo stato cambia a seconda dell'input della velocità di tracciamento (ts) e della velocità ottimale costante.

Diagramma della scatola nera

Anche sopra c'è un diagramma Black Box del modulo Efficienza carburante che contiene lo schema del comparatore di velocità e del display a sette segmenti che sono ulteriormente discussi di seguito. Questo codice VHDL riceve un input a 8 bit dalle misurazioni dell'accelerometro che è collegato all'arduino.

Passaggio 3: codifica VHDL

Per questo progetto, ci sono tre file VHDL che costruiscono il nostro design, il modulo Fuel_Efficient_FinalProject, il modulo Speed_Comparator e il modulo sseg_dec dove Speed_Comparator e sseg_dec sono al livello inferiore per formare il modulo Fuel Efficiency.

Il modulo comparatore di velocità

Questo modulo acquisisce una velocità a 8 bit in miglia orarie e la confronta con la velocità ottimale per il minor consumo di gas. La velocità media ottimale per il miglior chilometraggio del gas di un'auto è di circa 55 mph e meno. Tuttavia, questo può variare da auto a auto che può essere personalizzata all'interno del modulo. La riga 45 del codice che può essere modificata per l'ottimizzazione personale è mostrata di seguito

if (tracking > "00110111") allora

Dove "00110111" (55 in binario) può essere modificato in qualsiasi numero a 8 bit per la velocità ideale della tua auto personale per la minima quantità di consumo di carburante.

Se la velocità supera il numero ottimale, la spia si accenderà avvisando che l'auto non sta utilizzando la massima efficienza del carburante.

Il modulo display a sette segmenti

Questo modulo acquisisce una velocità a 8 bit in miglia orarie e visualizza la velocità sul display a sette segmenti. Ciò consentirebbe all'utente di sapere quanto velocemente saprà se ha bisogno di rallentare. Questo modulo ci è stato dato all'interno della nostra classe ed è stato scritto da Bryan mealy che contiene i componenti bin2bcdconv che converte l'input binario a 8 bit in formato BCD che è più facile da decodificare e clk_div in modo che il display possa visualizzare visivamente un numero con 3 cifre modificando l'uscita anodica ad una frequenza di clock elevata. Questo codice accetta un numero a 8 bit e converte il numero in un display leggibile sulla scheda basys 3.

Il modulo Efficienza del carburante

Questo è il file principale che usa i moduli sopra come componenti. I suoi input sono l'orologio e la velocità di tracciamento. L'orologio è costruito all'interno della scheda basys 3 e la velocità di tracciamento è data dall'uscita dell'arduino che è collegata alla porta pmod del segnale analogico (XADC). Ciascun bit della velocità di tracciamento a 8 bit è mappato alle porte mostrate nella sezione di cablaggio al punto 4. Altri vincoli di Basys 3 possono essere trovati all'interno di Basys_3_Master.xdc.

Passaggio 4: codifica Arduino

Questo progetto utilizza un file arduino principale che richiede l'uso di diverse librerie, alcune delle quali sono già nel tuo programma arduino e altre devono essere scaricate da questo tutorial o dal sito Web di Adafruit (link sotto).

Biblioteche

collegamento alla pagina Adafruit BNO055:

Adafruit ha sviluppato 2 librerie per l'utilizzo del BNO055 e fornisce esempi di come utilizzarle. In questo progetto useremo la funzione.getVector per fare in modo che arduino emetta i dati dell'accelerometro.

Questo progetto utilizza anche alcune librerie già installate nel programma arduino, come la libreria matematica.

File principale

Questo file usa i dati dell'accelerometro dalla funzione.getVector e usa equazioni matematiche per trasformarlo in una velocità in miglia orarie, che viene poi emesso in 8 bit di dati al Basys 3 (vedi la sezione "Cablaggio dell'hardware" per maggiori informazione).

Passaggio 5: cablaggio dell'hardware

Cablaggio dell'hardware
Cablaggio dell'hardware
Cablaggio dell'hardware
Cablaggio dell'hardware
Cablaggio dell'hardware
Cablaggio dell'hardware
Cablaggio dell'hardware
Cablaggio dell'hardware

Cablaggio Arduino

L'Arduino dovrebbe essere collegato alla breadboard come nelle immagini sopra.

Basi 3 Cablaggio

Le uscite dell'arduino sono mappate agli ingressi del Basys 3 tramite le porte di segnale analogico pmod JXADC. Ciascun bit della velocità di tracciamento a 8 bit può essere collegato a uno dei pin mostrati nell'immagine sopra. Il bit meno significativo (pin digitale 7) viene connesso a ts(7) e il bit più significativo (pin digitale 0) viene connesso a ts(0).

Consigliato: