Turinys:

Kuro efektyvumo detektorius: 5 žingsniai
Kuro efektyvumo detektorius: 5 žingsniai

Video: Kuro efektyvumo detektorius: 5 žingsniai

Video: Kuro efektyvumo detektorius: 5 žingsniai
Video: ⚡ Дерзкий антирейтинг: топ-10 НЕнадёжных дизелей по мнению "АвтоСтронг-М". 2024, Liepa
Anonim
Kuro efektyvumo detektorius
Kuro efektyvumo detektorius

Autoriai: Danica Fujiwara ir William McGrouther

Automobiliai šiandien yra pagrindinė transporto rūšis pasaulyje. Konkrečiai, Kalifornijoje mus supa gatvės, greitkeliai ir mokami keliai, kuriais kasdien važiuoja tūkstančiai automobilių. Tačiau automobiliai naudoja dujas, o Kalifornija naudoja daugiausiai benzino nei bet kuri kita JAV valstija, maždaug 4 500 galonų per dieną. Mūsų CPE 133 galutiniam projektui nusprendėme sukurti sistemą, pagal kurią ji galėtų sekti automobilio greitį ir pasakyti, ar jis viršija efektyviausią greitį, kad būtų pasiekta geriausia dujų rida ar degalų ekonomija. Šis projektas padėtų vairuotojams suvokti degalų taupymą, o tai savo ruožtu padėtų sutaupyti pinigų, sunaudoti mažiau dujų ir mažiau teršti orą.

1 žingsnis: medžiagos

Medžiagos
Medžiagos
Medžiagos
Medžiagos
Medžiagos
Medžiagos
Medžiagos
Medžiagos

Šiam projektui reikalingos medžiagos:

- Basys 3 FPGA

- Arduino Uno

- Bandomoji Lenta

- „Adafruit BNO055“absoliučios orientacijos jutiklis

- laidai nuo vyrų iki vyrų

2 žingsnis: supraskite dizainą

Dizaino supratimas
Dizaino supratimas
Dizaino supratimas
Dizaino supratimas

Baigtos būsenos diagrama

Šis projektas turi dvi skirtingas būsenas aukščiau pateiktoje baigtinių būsenų diagramoje. Šviesa gali būti įjungta (žymima „1“) arba išjungta (žymima „0“). Būsena kinta priklausomai nuo sekimo greičio (ts) įvesties ir pastovaus optimalaus greičio.

Juodosios dėžės schema

Taip pat aukščiau yra degalų naudojimo efektyvumo modulio juodosios dėžės diagrama, kurioje yra greičio palyginimo priemonės ir septynių segmentų ekrano schema, kuri toliau aptariama toliau. Šis VHDL kodas gauna 8 bitų įvestį iš akselerometro, prijungto prie arduino, matavimų.

3 žingsnis: VHDL kodavimas

Šiam projektui yra trys VHDL failai, kurie sukuria mūsų dizainą, „Fuel_Efficency_FinalProject“modulis, „Speed_Comparator“modulis ir „sseg_dec“modulis, kur „Speed_Comparator“ir „sseg_dec“yra žemesnio lygio, kad sudarytų kuro efektyvumo modulį.

Greičio palyginimo modulis

Šis modulis įsisavina 8 bitų greitį myliomis per valandą ir lygina jį su optimaliu greičiu, sunaudojant mažiausiai dujų. Vidutinis optimalus greitis, kai automobilis nuvažiuoja daugiausiai dujų, yra apie 55 mylių per valandą ir mažesnis. Tačiau tai gali skirtis priklausomai nuo automobilio, kurį galima pritaikyti modulyje. Kodo 45 eilutė, kurią galima pakeisti asmeniniam optimizavimui, parodyta žemiau

jei (stebėjimas> „00110111“) tada

Kai „00110111“(55 dvejetainis) gali būti pakeistas į bet kurį 8 bitų skaičių, kad būtų užtikrintas idealus jūsų automobilio greitis, kad būtų sunaudojamos mažiausiai degalų.

Jei greitis viršija optimalų skaičių, lemputė įsijungs, pranešdama, kad automobilis nenaudoja maksimalaus degalų naudojimo efektyvumo.

Septynių segmentų ekrano modulis

Šis modulis užima 8 bitų greitį myliomis per valandą ir rodo greitį septynių segmentų ekrane. Tai leistų vartotojui žinoti, kaip greitai jie ketina žinoti, ar jam reikia sulėtinti greitį. Šį modulį mums davė mūsų klasė ir jį parašė Bryanas Mealy, kuriame yra komponentai bin2bcdconv, kuris konvertuoja dvejetainį 8 bitų įvestį į BCD formą, kurią lengviau iššifruoti ir clk_div, kad ekrane būtų galima vizualiai parodyti 3 skaitmenų skaičių keičiant anodo išėjimą dideliu laikrodžio dažniu. Šis kodas priima 8 bitų skaičių, kuris paverčia jį skaitomu ekranu pagrindinėje 3 plokštėje.

Kuro efektyvumo modulis

Tai yra pagrindinis failas, kuriame aukščiau esantys moduliai naudojami kaip komponentai. Jo įvestys yra laikrodis ir sekimo greitis. Laikrodis yra pastatytas „basys 3“plokštėje, o sekimo greitį lemia arduino išvestis, prijungta prie analoginio signalo pmod prievado (XADC). Kiekvienas 8 bitų sekimo greičio bitas susiejamas su 4 žingsnio laidų skyriuje rodomais prievadais. Kitus „Basys 3“apribojimus rasite „Basys_3_Master.xdc“.

4 žingsnis: „Arduino“kodavimas

Šiame projekte naudojamas vienas pagrindinis arduino failas, kuriam reikia naudoti kelias bibliotekas, kai kurios iš jų jau yra jūsų arduino programoje, o kitos turi būti atsisiųstos iš šios instrukcijos arba „Adafruit“svetainės (nuoroda žemiau).

Bibliotekos

nuoroda į „Adafruit BNO055“puslapį:

„Adafruit“sukūrė 2 bibliotekas, skirtas naudoti BNO055, ir pateikia pavyzdžių, kaip jas naudoti. Šiame projekte mes naudosime funkciją.getVector, kad arduino išvestų akselerometro duomenis.

Šiame projekte taip pat naudojamos kai kurios bibliotekos, jau įdiegtos programoje „arduino“, pvz., Matematikos biblioteka.

Pagrindinis failas

Šis failas naudoja pagreičio matuoklio duomenis iš funkcijos.getVector ir naudoja matematines lygtis, kad paverstų jį greičiu myliomis per valandą, kuris vėliau bus išvestas 8 bitų duomenų į „Basys 3“(daugiau žr. Skyrių „Aparatūros prijungimas“). informacija).

5 žingsnis: Aparatūros prijungimas

Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas

„Arduino“laidai

„Arduino“turėtų būti prijungtas prie duonos lentos, kaip parodyta aukščiau esančiose nuotraukose.

Pagrindai 3 Laidai

Arduino išėjimai susieti su „Basys 3“įėjimais per analoginį signalo pmod JXADC prievadą. Kiekvienas 8 bitų sekimo greičio bitas gali būti prijungtas prie vieno iš kaiščių, pavaizduotų paveikslėlyje aukščiau. Mažiausiai reikšmingas bitas (skaitmeninis kaištis 7) prijungiamas prie ts (7), o reikšmingiausias bitas (skaitmeninis kaištis 0) prijungiamas prie ts (0).

Rekomenduojamas: