Innholdsfortegnelse:

Drivstoffeffektivitetsdetektor: 5 trinn
Drivstoffeffektivitetsdetektor: 5 trinn

Video: Drivstoffeffektivitetsdetektor: 5 trinn

Video: Drivstoffeffektivitetsdetektor: 5 trinn
Video: ТОП-10 лучших грузовиков США в SnowRunner? 2024, Juli
Anonim
Drivstoffeffektivitetsdetektor
Drivstoffeffektivitetsdetektor

Av: Danica Fujiwara og William McGrouther

Biler er den viktigste transportmåten i verden i dag. Spesielt i California er vi omgitt av gater, motorveier og bomveier som tusenvis av biler kjører daglig. Imidlertid bruker biler gass og California bruker mest bensin enn noen annen stat i USA, omtrent 4 500 liter per dag. For vårt CPE 133 -sluttprosjekt bestemte vi oss for å lage et system der det kunne spore hastigheten på en bil og fortelle om den overstiger den mest effektive hastigheten for den beste kjørelengde eller drivstofføkonomi. Dette prosjektet vil hjelpe sjåfører til å bli klar over drivstofføkonomien, noe som forhåpentligvis vil hjelpe dem å spare penger, bruke mindre gass og skape mindre forurensning i luften.

Trinn 1: Materialer

Materialer
Materialer
Materialer
Materialer
Materialer
Materialer
Materialer
Materialer

Materialer som trengs for dette prosjektet:

- Basys 3 FPGA

- Arduino Uno

- Brødbrett

- Adafruit BNO055 sensor for absolutt orientering

- Mann til mannstråd

Trinn 2: Forstå designet

Forstå designet
Forstå designet
Forstå designet
Forstå designet

Endelig tilstandsdiagram

Dette prosjektet har to forskjellige tilstander i diagrammet over endelige tilstander vist ovenfor. Lyset kan enten være på (representert med ‘1’) eller av (representert med ‘0’). Tilstanden endres avhengig av inngangen til sporingshastigheten (ts) og den konstante optimale hastigheten.

Black Box Diagram

Også ovenfor er det et Black Box -diagram over drivstoffeffektivitetsmodulen som inneholder skjemaet for hastighetskomparatoren og syv segmentdisplayet som diskuteres nærmere nedenfor. Denne VHDL-koden mottar en 8-bits inngang fra målingene til akselerometeret som er koblet til arduinoen.

Trinn 3: Koding av VHDL

For dette prosjektet er det tre VHDL -filer som konstruerer designet vårt, Fuel_Efficency_FinalProject -modulen, Speed_Comparator -modulen og sseg_dec -modulen hvor Speed_Comparator og sseg_dec er på lavere nivå for å utgjøre drivstoffeffektivitetsmodulen.

Hastighetskomparator -modulen

Denne modulen tar inn en 8-bits hastighet i miles per time og sammenligner den med den optimale hastigheten for minst mulig gassforbruk. Den gjennomsnittlige optimale hastigheten for en bils beste gass -kjørelengde er rundt 55 km / t og under. Dette kan imidlertid variere fra bil til bil som kan tilpasses i modulen. Linjen 45 med kode som kan endres for personlig optimalisering, vises nedenfor

if (sporing> "00110111") da

Hvor "00110111" (55 i binær) kan endres til et hvilket som helst 8-bits tall for din personlige bils ideelle hastighet for minst mulig drivstofforbruk.

Hvis hastigheten er over det optimale tallet, tennes lyset for å varsle om at bilen ikke bruker maksimal drivstoffeffektivitet.

Den sju segmenters displaymodul

Denne modulen tar inn en 8-biters hastighet i miles per time og viser hastigheten på displayet med syv segmenter. Dette vil tillate brukeren å vite hvor raskt de kommer til å vite om han eller hun trenger å bremse ned. Denne modulen ble gitt til oss i klassen vår og ble skrevet av Bryan mealy som inneholder komponentene bin2bcdconv som konverterer den binære 8-biters inngangen til BCD-form som er lettere å dekode og clk_div slik at displayet visuelt kan vise et tall med 3 sifre ved å endre anodeutgangen ved høy klokkefrekvens. Denne koden godtar et 8-biters tall, konverterer tallet til et lesbart display på basys 3-kortet.

Drivstoffeffektivitetsmodulen

Dette er hovedfilen som bruker modulene ovenfor som komponenter. Inngangene er klokken og sporingshastigheten. Klokken er bygget innenfor basys 3 -kortet og sporingshastigheten er gitt av arduinoens utgang som er koblet til The Analog signal pmod port (XADC). Hver bit av 8-biters sporingshastighet er kartlagt til portene vist i ledningsdelen i trinn 4. Andre Basys 3 -begrensninger finnes i Basys_3_Master.xdc.

Trinn 4: Koding av Arduino

Dette prosjektet bruker en hoved arduino -fil som krever bruk av flere biblioteker, hvorav noen allerede er i arduino -programmet, og andre må lastes ned enten fra denne instruerbare eller Adafruit -nettstedet (lenken nedenfor).

Biblioteker

lenke til Adafruit BNO055 side:

Adafruit har utviklet 2 biblioteker for bruk av BNO055, og gir eksempler på hvordan du bruker dem. I dette prosjektet skal vi bruke.getVector -funksjonen for å få arduinoen til å sende ut akselerometerets data.

Dette prosjektet bruker også noen biblioteker som allerede er installert i arduino -programmet, for eksempel mattebiblioteket.

Hovedfil

Denne filen bruker akselerometerdataene fra.getVector -funksjonen og bruker matematiske ligninger for å gjøre den til en hastighet i miles per time, som deretter sendes ut i 8 biter data til Basys 3 (se delen "Kabling av maskinvare" for mer informasjon).

Trinn 5: Koble til maskinvaren

Kabling av maskinvaren
Kabling av maskinvaren
Kabling av maskinvaren
Kabling av maskinvaren
Kabling av maskinvaren
Kabling av maskinvaren
Kabling av maskinvaren
Kabling av maskinvaren

Arduino ledninger

Arduinoen bør kobles til brødbrettet som de er på bildene ovenfor.

Basys 3 ledninger

Utgangene til arduinoen er kartlagt til inngangene til Basys 3 gjennom de analoge signal pmod JXADC -portene. Hver bit av 8-biters sporingshastighet kan kobles til en av pinnene vist på bildet ovenfor. Den minst signifikante biten (digital pin 7) blir koblet til ts (7) og den mest signifikante biten (digital pin 0) blir koblet til ts (0).

Anbefalt: