INHOUDSOPGAWE:

Brandstofdoeltreffendheidsdetektor: 5 stappe
Brandstofdoeltreffendheidsdetektor: 5 stappe

Video: Brandstofdoeltreffendheidsdetektor: 5 stappe

Video: Brandstofdoeltreffendheidsdetektor: 5 stappe
Video: Основные ошибки при возведении перегородок из газобетона #5 2024, November
Anonim
Brandstofdoeltreffendheidsdetektor
Brandstofdoeltreffendheidsdetektor

Deur: Danica Fujiwara en William McGrouther

Motors is vandag die belangrikste vervoermiddel ter wêreld. In Kalifornië word ons spesifiek omring deur strate, snelweë en tolpaaie waarop duisende motors daagliks ry. Motors gebruik egter gas en Kalifornië gebruik die meeste petrol as enige ander staat in die VSA, ongeveer 4 500 liter per dag. Vir ons finale CPE 133 -projek het ons besluit om 'n stelsel te skep waarin u die spoed van 'n motor kan volg en kan bepaal of dit die doeltreffendste snelheid vir die beste gasverbruik of brandstofverbruik oorskry. Hierdie projek sal bestuurders help om bewus te word van hul brandstofverbruik, wat hulle hopelik kan help om geld te bespaar, minder gas te gebruik en minder besoedeling in die lug te veroorsaak.

Stap 1: materiaal

Materiaal
Materiaal
Materiaal
Materiaal
Materiaal
Materiaal
Materiaal
Materiaal

Materiaal benodig vir hierdie projek:

- Basys 3 FPGA

- Arduino Uno

- Broodbord

- Adafruit BNO055 Absolute Oriëntasie Sensor

- Manlike tot manlike drade

Stap 2: Begrip van die ontwerp

Verstaan die ontwerp
Verstaan die ontwerp
Verstaan die ontwerp
Verstaan die ontwerp

Eindige staatsdiagram

Hierdie projek het twee verskillende toestande binne die eindtoestanddiagram hierbo. Die lig kan óf aan (verteenwoordig deur '1') óf uit (verteenwoordig deur '0'). Die toestand verander na gelang van die inset van die spoorsnelheid (ts) en die konstante optimale spoed.

Black Box diagram

Hierbo is ook 'n Black Box -diagram van die module vir brandstofdoeltreffendheid, wat die skema bevat van die snelheidsvergelyker en die sewe segment -vertoning wat verder bespreek word. Hierdie VHDL-kode ontvang 'n 8-bis insette van die metings van die versnellingsmeter wat aan die arduino gekoppel is.

Stap 3: Kodering van VHDL

Vir hierdie projek is daar drie VHDL -lêers wat ons ontwerp opstel, die Fuel_Efficency_FinalProject -module, die Speed_Comparator -module en die sseg_dec -module waar Speed_Comparator en die sseg_dec op die laer vlak is om die Fuel Efficiency -module uit te maak.

Die spoedvergelykermodule

Hierdie module neem 'n 8-bis-snelheid in myl per uur in en vergelyk dit met die optimale snelheid vir die minste gasverbruik. Die gemiddelde optimale spoed vir 'n motor se beste gasafstand is ongeveer 55 km / h. Dit kan egter van motor tot motor wissel, wat binne die module aangepas kan word. Die reël 45 van kode wat verander kan word vir persoonlike optimalisering, word hieronder getoon

if (dop> "00110111") dan

Waar '00110111' (55 in binêre) na enige 8-bis nommer verander kan word vir die ideale spoed van u persoonlike motor vir die minste brandstofverbruik.

As die spoed die optimale nommer oorskry, sal die liggie aanskakel om aan te dui dat die motor nie die maksimum brandstofdoeltreffendheid gebruik nie.

Die Seven Segment DisplayModule

Hierdie module neem 'n 8-bis-snelheid in myl per uur in en vertoon die spoed op die sewesegmentweergawe. Dit sal die gebruiker in staat stel om te weet hoe vinnig hy wil weet of hy of sy moet vertraag. Hierdie module is aan ons gegee in ons klas en is geskryf deur Bryan mealy wat die komponente bin2bcdconv bevat wat die binêre 8-bis-invoer omskakel in BCD-vorm wat makliker is om te dekodeer en clk_div sodat die skerm visueel 'n getal met 3 syfers kan vertoon deur die uitset van die anode teen 'n hoë klokfrekwensie te verander. Hierdie kode aanvaar 'n 8-bis getal, skakel die getal om in 'n leesbare skerm op die basys 3-bord.

Die module vir brandstofdoeltreffendheid

Dit is die hooflêer wat die modules hierbo as komponente gebruik. Die insette is die klok en die spoorsnelheid. Die horlosie is gebou op die basys 3 -bord en die opsporingsnelheid word gegee deur die uitset van die arduino wat gekoppel is aan die analoog sein pmod -poort (XADC). Elke bietjie van die 8-bis-opsporingsnelheid word na die hawens in die bedradingafdeling in stap 4 gekies. Ander Basys 3 -beperkings kan gevind word binne Basys_3_Master.xdc.

Stap 4: Kodering van Arduino

Hierdie projek gebruik een hoof -arduino -lêer wat die gebruik van verskeie biblioteke vereis, waarvan sommige reeds in u arduino -program is, en ander moet van hierdie instruksionele of die Adafruit -webwerf afgelaai word (skakel hieronder).

Biblioteke

skakel na Adafruit BNO055-bladsy:

Adafruit het 2 biblioteke ontwikkel vir die gebruik van die BNO055, en gee voorbeelde van hoe om dit te gebruik. In hierdie projek sal ons die.getVector -funksie gebruik om die data van die versnellingsmeter van die arduino af te laai.

Hierdie projek maak ook gebruik van sommige biblioteke wat reeds in die arduino -program geïnstalleer is, soos die wiskundebiblioteek.

Hooflêer

Hierdie lêer gebruik die versnellingsmeterdata van die.getVector -funksie en gebruik wiskundige vergelykings om dit in myl per uur in 'n snelheid te verander, wat dan in 8 stukkies data na die Basys 3 gestuur word (sien die afdeling "Bedrading van die hardeware" vir meer inligting inligting).

Stap 5: Bedrading van die hardeware

Bedrading van die hardeware
Bedrading van die hardeware
Bedrading van die hardeware
Bedrading van die hardeware
Bedrading van die hardeware
Bedrading van die hardeware
Bedrading van die hardeware
Bedrading van die hardeware

Arduino Bedrading

Die Arduino moet aan die broodbord gekoppel word, soos op die foto's hierbo.

Basys 3 Bedrading

Die uitsette van die arduino word deur die analoog sein pmod JXADC -poorte aan die insette van die Basys 3 gekarteer. Elke bietjie van die 8-bis spoorsnelheid kan gekoppel word aan een van die penne wat in die prent hierbo getoon word. Die minste betekenisvolle bit (digitale pen 7) word met ts (7) verbind en die belangrikste bit (digitale pen 0) word met ts (0) verbind.

Aanbeveel: