Kazalo:

Detektor porabe goriva: 5 korakov
Detektor porabe goriva: 5 korakov

Video: Detektor porabe goriva: 5 korakov

Video: Detektor porabe goriva: 5 korakov
Video: Mathematics with Python! Evaluating Polynomials 2024, November
Anonim
Detektor porabe goriva
Detektor porabe goriva

Avtor: Danica Fujiwara in William McGrouther

Avtomobili so danes glavni način prevoza po svetu. Natančneje, v Kaliforniji smo obdani z ulicami, avtocestami in cestninskimi cestami, po katerih se dnevno vozi na tisoče avtomobilov. Vendar avtomobili uporabljajo plin, Kalifornija pa porabi največ bencina kot katera koli druga država v ZDA, približno 4500 litrov na dan. Za naš projekt CPE 133 Final smo se odločili ustvariti sistem, v katerem bi lahko sledil hitrosti avtomobila in povedal, ali presega najučinkovitejšo hitrost za najboljšo kilometrino goriva ali porabo goriva. Ta projekt bi voznikom pomagal, da se zavedajo svoje porabe goriva, kar bi jim upalo prihraniti denar, porabiti manj plina in ustvariti manj onesnaževanja zraka.

1. korak: Materiali

Materiali
Materiali
Materiali
Materiali
Materiali
Materiali
Materiali
Materiali

Materiali, potrebni za ta projekt:

- Basys 3 FPGA

- Arduino Uno

- Ogledna plošča

- Adapruit BNO055 senzor absolutne orientacije

- Moški na moške žice

2. korak: Razumevanje zasnove

Razumevanje oblikovanja
Razumevanje oblikovanja
Razumevanje oblikovanja
Razumevanje oblikovanja

Diagram končnega stanja

Ta projekt ima dva različna stanja v zgoraj prikazanem diagramu končnih stanj. Lučka je lahko vklopljena (predstavljena z »1«) ali izklopljena (predstavljena z »0«). Stanje se spreminja glede na vnos hitrosti sledenja (ts) in konstantne optimalne hitrosti.

Diagram črne škatle

Zgoraj je tudi diagram črne škatle modula za učinkovitost porabe goriva, ki vsebuje shemo primerjalnika hitrosti in prikazovalnika sedmih segmentov, ki sta nadalje obravnavana. Ta koda VHDL prejme 8-bitni vhod iz meritev merilnika pospeška, ki je povezan z arduinom.

3. korak: Kodiranje VHDL

Za ta projekt obstajajo tri datoteke VHDL, ki sestavljajo našo zasnovo, modul Fuel_Efficency_FinalProject, modul Speed_Comparator in modul sseg_dec, kjer sta Speed_Comparator in sseg_dec na nižji ravni, ki sestavljata modul za učinkovitost porabe goriva.

Modul primerjalnika hitrosti

Ta modul sprejme 8-bitno hitrost v miljah na uro in jo primerja z optimalno hitrostjo za najmanjšo porabo plina. Povprečna optimalna hitrost za največjo kilometrino plina v avtomobilu je okoli 55 km / h in manj. Vendar se to lahko razlikuje od avtomobila do avtomobila, ki ga je mogoče prilagoditi znotraj modula. Spodaj je prikazana vrstica 45 kode, ki jo je mogoče spremeniti za osebno optimizacijo

if (sledenje> "00110111") potem

Kjer lahko "00110111" (55 v binarnem sistemu) spremenite v poljubno 8-bitno število za idealno hitrost vašega osebnega avtomobila za najmanjšo porabo goriva.

Če je hitrost nad optimalno številko, se prižge lučka, ki opozarja, da avto ne porabi največje porabe goriva.

Sedem segmentni prikazovalni modul

Ta modul sprejme 8-bitno hitrost v miljah na uro in prikaže hitrost na zaslonu sedmih segmentov. To bi uporabniku omogočilo, da ve, kako hitro bo vedel, ali mora upočasniti. Ta modul nam je bil dan v našem razredu, napisal pa ga je Bryan mealy, ki vsebuje komponente bin2bcdconv, ki pretvori binarni 8-bitni vhod v obliko BCD, ki jo je lažje dekodirati, in clk_div, tako da lahko zaslon vizualno prikaže številko s 3 števkami s spreminjanjem izhoda anode pri visoki taktni frekvenci. Ta koda sprejema 8-bitno število in pretvori številko v berljiv prikaz na plošči basys 3.

Modul za učinkovitost porabe goriva

To je glavna datoteka, ki uporablja zgornje module kot komponente. Njegovi vhodi so ura in hitrost sledenja. Ura je vgrajena v ploščo basys 3, hitrost sledenja pa je podana z izhodom arduino, ki je priključen na vrata analognega signala pmod (XADC). Vsak bit 8-bitne hitrosti sledenja je preslikan na vrata, prikazana v razdelku ožičenja v 4. koraku. Druge omejitve Basys 3 najdete v Basys_3_Master.xdc.

4. korak: Kodiranje Arduina

Ta projekt uporablja eno glavno datoteko arduino, ki zahteva uporabo več knjižnic, od katerih so nekatere že v vašem programu arduino, druge pa je treba prenesti s tega navodila ali s spletnega mesta Adafruit (spodnja povezava).

Knjižnice

povezava do strani Adafruit BNO055:

Adafruit je razvil 2 knjižnici za uporabo BNO055 in navede primere njihove uporabe. V tem projektu bomo uporabljali funkcijo.getVector, da arduino odda podatke merilnika pospeška.

Ta projekt uporablja tudi nekatere knjižnice, ki so že nameščene v programu arduino, na primer matematično knjižnico.

Glavna datoteka

Ta datoteka uporablja podatke merilnika pospeška iz funkcije.getVector in z matematičnimi enačbami spremeni hitrost v miljah na uro, ki se nato v 8 bitih podatkov pošlje v Basys 3 (za več informacij glejte razdelek »Ožičenje strojne opreme«). informacije).

5. korak: Ožičenje strojne opreme

Ožičenje strojne opreme
Ožičenje strojne opreme
Ožičenje strojne opreme
Ožičenje strojne opreme
Ožičenje strojne opreme
Ožičenje strojne opreme
Ožičenje strojne opreme
Ožičenje strojne opreme

Arduino ožičenje

Arduino je treba priključiti na ploščo, kot je na zgornjih slikah.

Basys 3 Ožičenje

Izhodi arduina so preslikani na vhode Basys 3 skozi vrata analognih signalov pmod JXADC. Vsak bit 8-bitne hitrosti sledenja je mogoče priključiti na enega od zatičev, prikazanih na zgornji sliki. Najmanjši bit (digitalni pin 7) se poveže s ts (7), najpomembnejši bit (digitalni pin 0) pa se poveže s ts (0).

Priporočena: