Sisällysluettelo:
- Vaihe 1: Materiaalit
- Vaihe 2: Suunnittelun ymmärtäminen
- Vaihe 3: VHDL -koodaus
- Vaihe 4: Arduinon koodaus
- Vaihe 5: Laitteiston kytkentä
Video: Polttoainetehokkuuden ilmaisin: 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Kirjailija: Danica Fujiwara ja William McGrouther
Autot ovat nykyään tärkein kulkuväline maailmassa. Erityisesti Kaliforniassa meitä ympäröivät kadut, valtatiet ja maksulliset tiet, joilla tuhannet autot ajavat päivittäin. Autot käyttävät kuitenkin kaasua ja Kalifornia käyttää eniten bensiiniä kuin mikään muu Yhdysvaltojen osavaltio, noin 4500 gallonaa päivässä. CPE 133 Final -projektia varten päätimme luoda järjestelmän, jossa se voi seurata auton nopeutta ja kertoa, ylittääkö se tehokkaimman nopeuden parhaan kaasun mittarilukeman tai polttoainetalouden saavuttamiseksi. Tämä hanke auttaisi kuljettajia ymmärtämään polttoainetaloutensa, mikä puolestaan toivottavasti auttaisi heitä säästämään rahaa, käyttämään vähemmän kaasua ja saastuttamaan ilmaa.
Vaihe 1: Materiaalit
Tähän projektiin tarvittavat materiaalit:
- Basys 3 FPGA
- Arduino Uno
- Leipälauta
- Adafruit BNO055 absoluuttinen suunta -anturi
- uros -urosjohdot
Vaihe 2: Suunnittelun ymmärtäminen
Äärellinen tilakaavio
Tässä projektissa on kaksi eri tilaa edellä esitetyssä äärellisessä tilakaaviossa. Valo voi olla joko päällä (edustaa "1") tai pois päältä (edustaa "0"). Tila vaihtuu seurannanopeuden (ts) syötetyn tulon ja vakionopeuden mukaan.
Mustan laatikon kaavio
Yllä on myös polttoainetehokkuusmoduulin musta laatikkokaavio, joka sisältää kaavion nopeusvertailusta ja seitsemän segmentin näytöstä, joista keskustellaan tarkemmin alla. Tämä VHDL-koodi vastaanottaa 8-bittisen tulon arduinoon liitetyn kiihtyvyysmittarin mittauksista.
Vaihe 3: VHDL -koodaus
Tässä projektissa on kolme VHDL -tiedostoa, jotka rakentavat suunnittelumme, Fuel_Efficency_FinalProject -moduuli, Speed_Comparator -moduuli ja sseg_dec -moduuli, jossa Speed_Comparator ja sseg_dec ovat alemmalla tasolla polttoainetehokkuusmoduulin muodostamiseksi.
Nopeuden vertailumoduuli
Tämä moduuli ottaa 8-bittisen nopeuden mailia tunnissa ja vertaa sitä optimaaliseen nopeuteen pienimmän kaasun kulutuksen osalta. Keskimääräinen optimaalinen nopeus auton parhaalle kaasukilometrille on noin 55 mph ja alle. Tämä voi kuitenkin vaihdella autosta toiseen, ja sitä voidaan muokata moduulin sisällä. Koodirivi 45, joka voidaan muuttaa henkilökohtaista optimointia varten, näkyy alla
jos (seuranta> "00110111") sitten
Missä “00110111” (55 binäärinä) voidaan muuttaa mihin tahansa 8-bittiseen numeroon henkilökohtaisen autosi ihanteellisen nopeuden saavuttamiseksi pienimmällä polttoaineenkulutuksella.
Jos nopeus ylittää optimaalisen luvun, valo syttyy ja ilmoittaa, että auto ei käytä suurinta polttoainetehokkuutta.
Seitsemän segmentin näyttömoduuli
Tämä moduuli ottaa 8-bittisen nopeuden mailia tunnissa ja näyttää nopeuden seitsemän segmentin näytössä. Näin käyttäjä voi tietää, kuinka nopeasti he tietävät, onko hänen tarpeen hidastaa vauhtia. Tämä moduuli annettiin meille luokassamme, ja sen kirjoitti Bryan mealy, joka sisältää komponentit bin2bcdconv, joka muuntaa binäärisen 8-bittisen tulon BCD-muotoon, joka on helpompi purkaa ja clk_div, jotta näyttö voi näyttää visuaalisesti 3-numeroisen numeron muuttamalla anodilähtöä korkealla kellotaajuudella. Tämä koodi hyväksyy 8-bittisen numeron, joka muuntaa numeron luettavaksi näyttöksi basys 3 -kortilla.
Polttoainetehokkuusmoduuli
Tämä on päätiedosto, joka käyttää yllä olevia moduuleja osina. Sen tulot ovat kello ja seurantanopeus. Kello on rakennettu basys 3 -korttiin ja seurannanopeuden määrittää arduinon ulostulo, joka on kytketty analogiseen signaalipodod -porttiin (XADC). Jokainen 8-bittisen seurantanopeuden bitti yhdistetään portteihin, jotka näkyvät johdotusosassa vaiheessa 4. Muita Basys 3 -rajoituksia löytyy osoitteesta Basys_3_Master.xdc.
Vaihe 4: Arduinon koodaus
Tämä projekti käyttää yhtä arduino -päätiedostoa, joka edellyttää useiden kirjastojen käyttöä, joista osa on jo arduino -ohjelmassasi ja toiset on ladattava joko tästä ohjeesta tai Adafruit -verkkosivustolta (linkki alla).
Kirjastot
linkki Adafruit BNO055 -sivulle:
Adafruit on kehittänyt kaksi kirjastoa BNO055: n käyttöön ja antaa esimerkkejä niiden käytöstä. Tässä projektissa käytämme.getVector -toimintoa, jotta arduino lähettää kiihtyvyysmittarin tiedot.
Tämä projekti käyttää myös joitain arduino -ohjelmaan jo asennettuja kirjastoja, kuten matematiikkakirjastoa.
Päätiedosto
Tämä tiedosto käyttää.getVector -funktion kiihtyvyysmittarin tietoja ja käyttää matemaattisia yhtälöitä muuttaakseen sen nopeudeksi mailissa tunnissa, joka sitten lähetetään 8 bittiä dataa Basys 3: een (katso lisätietoja "Laitteiston kytkentä" -osiosta) tiedot).
Vaihe 5: Laitteiston kytkentä
Arduino -johdotus
Arduino tulee kytkeä leipälautaan, kuten yllä olevissa kuvissa.
Perus 3 Johdotus
Arduino -lähdöt yhdistetään Basys 3: n tuloihin analogisen signaalin pmod JXADC -porttien kautta. Jokainen 8-bittisen seurantanopeuden bitti voidaan kytkeä johonkin yllä olevan kuvan mukaisista nastoista. Vähiten merkitsevä bitti (digitaalinen nasta 7) kytketään liittimeen ts (7) ja merkittävin bitti (digitaalinen nasta 0) kytketään liittimeen ts (0).
Suositeltava:
Vedenpinnan ilmaisin: 7 vaihetta
Vedenpinnan ilmaisin: Ultraäänianturi toimii samoilla periaatteilla kuin tutkajärjestelmä. Ultraäänianturi voi muuntaa sähköenergian akustisiksi aaltoiksi ja päinvastoin. Kuuluisa HC SR04 -ääni -anturi tuottaa ultraääniaaltoja 40 kHz: n taajuudella
Projeto IoT - Sistema -ilmaisin De Fumaça: 5 vaihetta
Projeto IoT - Sistema Detector De Fumaça: IntroduçãoO Sistema Detector de Fumaça koostuu uma solução IoT com tai objetivo de lupa tai valvonta hälytyksistä incêndio de residências através de um applicativo Android. O projeto ja baseado em um microcontrolador que se comunica com a nu
Raspberry Pi -suorittimen kuorman ilmaisin: 13 vaihetta
Raspberry Pi -prosessorin kuormitusilmaisin: Kun Raspberry Pi (RPI) on ajettu ilman päätä ilman konsolinäyttöä, mitään erityisiä visuaalisia indikaattoreita ei ole käytettävissä, jotta RPI todella tekee jotain
Raspberry Pi -suorittimen lämpötilan ilmaisin: 11 vaihetta (kuvilla)
Raspberry Pi -suorittimen lämpötilan ilmaisin: Aiemmin olin ottanut käyttöön yksinkertaisen vadelma pi (jäljempänä RPI) -toimintatilan ilmaisinpiirin. Tällä kertaa selitän hyödyllisemmän indikaattoripiirin RPI: lle, joka toimii päättömästi (ilman näyttöä). Suorittimen lämpötila
Vedenpinnan ilmaisin Arduinon avulla TinkerCadissa: 3 vaihetta
Vedenpinnan ilmaisin Arduinon avulla TinkerCadissa: Tämä artikkeli käsittelee täysin toimivaa vedenpinnan ohjainta, joka käyttää Arduinoa. Piiri näyttää veden tason säiliössä ja kytkee moottorin PÄÄLLE, kun vedenpinta laskee ennalta määrätyn tason alapuolelle. Piiri kytkeytyy automaattisesti