Cuprins:

Detector de eficiență a combustibilului: 5 pași
Detector de eficiență a combustibilului: 5 pași

Video: Detector de eficiență a combustibilului: 5 pași

Video: Detector de eficiență a combustibilului: 5 pași
Video: TUTORIAL: cum accesezi meniul ascuns / secret la VW Passat B7 (2010 - 2015) 2024, Noiembrie
Anonim
Detector de eficiență a combustibilului
Detector de eficiență a combustibilului

De: Danica Fujiwara și William McGrouther

Mașinile sunt principalul mod de transport din lume astăzi. Mai exact, în California, suntem înconjurați de străzi, autostrăzi și drumuri cu taxă pe care circulă zilnic mii de mașini. Cu toate acestea, mașinile folosesc gaz, iar California folosește cea mai mare benzină decât orice alt stat din SUA, aproximativ 4, 500 galoane pe zi. Pentru proiectul nostru CPE 133 Final, am decis să creăm un sistem în care să poată urmări viteza unei mașini și să spună dacă depășește cea mai eficientă viteză pentru cel mai bun kilometraj de combustibil sau economie de combustibil. Acest proiect îi va ajuta pe șoferi să devină conștienți de economia lor de combustibil, ceea ce, la rândul său, îi va ajuta să economisească bani, să folosească mai puțin gaz și să creeze mai puțină poluare în aer.

Pasul 1: Materiale

Materiale
Materiale
Materiale
Materiale
Materiale
Materiale
Materiale
Materiale

Materiale necesare acestui proiect:

- Baza 3 FPGA

- Arduino Uno

- Pană de pâine

- Senzor de orientare absolut Adafruit BNO055

- fire de la bărbați la bărbați

Pasul 2: Înțelegerea designului

Înțelegerea proiectării
Înțelegerea proiectării
Înțelegerea proiectării
Înțelegerea proiectării

Diagrama statului finit

Acest proiect are două stări diferite în cadrul diagramei de stare finită prezentată mai sus. Lumina poate fi aprinsă (reprezentată prin „1”) sau oprită (reprezentată prin „0”). Starea se schimbă în funcție de intrarea vitezei de urmărire (ts) și a vitezei optime constante.

Diagrama cutiei negre

De asemenea, mai sus există o diagramă Black Box a modulului de eficiență a combustibilului care conține schema comparatorului de viteză și a afișajului cu șapte segmente, care sunt discutate în continuare mai jos. Acest cod VHDL primește o intrare de 8 biți de la măsurătorile accelerometrului care este conectat la arduino.

Pasul 3: Codificarea VHDL

Pentru acest proiect, există trei fișiere VHDL care construiesc proiectarea noastră, modulul Fuel_Efficency_FinalProject, modulul Speed_Comparator și modulul sseg_dec unde Speed_Comparator și sseg_dec sunt la nivelul inferior pentru a compune modulul de eficiență a combustibilului.

Modulul de comparare a vitezei

Acest modul are o viteză de 8 biți în mile pe oră și îl compară cu viteza optimă pentru cel mai mic consum de gaz. Viteza optimă medie pentru cel mai bun kilometraj de benzină al unei mașini este de aproximativ 55 mph și mai puțin. Cu toate acestea, aceasta poate varia de la o mașină la alta, care poate fi personalizată în cadrul modulului. Rândul 45 de cod care poate fi modificat pentru optimizarea personală este prezentat mai jos

if (urmărire> "00110111") atunci

În cazul în care „00110111” (55 în binar) poate fi schimbat la orice număr de 8 biți pentru viteza ideală a mașinii dvs. personale pentru un consum minim de combustibil.

Dacă viteza depășește numărul optim, lumina se va aprinde notificând că mașina nu folosește consumul maxim de combustibil.

Modulul de afișare cu șapte segmente

Acest modul preia o viteză de 8 biți în mile pe oră și afișează viteza pe afișajul cu șapte segmente. Acest lucru ar permite utilizatorului să știe cât de repede va ști dacă trebuie să încetinească. Acest modul ne-a fost dat în cadrul clasei noastre și a fost scris de Bryan mealy care conține componentele bin2bcdconv care convertește intrarea binară de 8 biți în formă BCD care este mai ușor de decodat și clk_div, astfel încât afișajul să poată arăta vizual un număr cu 3 cifre prin schimbarea ieșirii anodice la o frecvență mare de ceas. Acest cod acceptă un număr de 8 biți care convertește numărul într-un afișaj lizibil pe placa de bază 3.

Modulul de eficiență a combustibilului

Acesta este fișierul principal care folosește modulele de mai sus ca componente. Intrările sale sunt ceasul și viteza de urmărire. Ceasul este construit în cadrul plăcii de bază 3, iar viteza de urmărire este dată de ieșirea arduino, care este conectată la portul de semnal analogic pmod (XADC). Fiecare bit al vitezei de urmărire pe 8 biți este mapat la porturile afișate în secțiunea de cablare la pasul 4. Alte constrângeri Basys 3 pot fi găsite în Basys_3_Master.xdc.

Pasul 4: Codificarea Arduino

Acest proiect folosește un fișier arduino principal care necesită utilizarea mai multor biblioteci, dintre care unele sunt deja în programul dvs. arduino, iar altele trebuie descărcate fie de pe acest site instructiv, fie de pe site-ul web Adafruit (link mai jos).

Biblioteci

link către pagina Adafruit BNO055:

Adafruit a dezvoltat 2 biblioteci pentru utilizarea BNO055 și oferă exemple de utilizare a acestora. În acest proiect vom folosi funcția.getVector pentru ca arduino să scoată datele accelerometrului.

Acest proiect folosește, de asemenea, unele biblioteci deja instalate în programul arduino, cum ar fi biblioteca de matematică.

Fișier principal

Acest fișier folosește datele accelerometrului din funcția.getVector și folosește ecuații matematice pentru a-l transforma într-o viteză în mile pe oră, care este apoi trimisă în 8 biți de date la Bazele 3 (consultați secțiunea „Cablarea hardware-ului” pentru mai multe informație).

Pasul 5: Cablarea hardware-ului

Cablarea hardware-ului
Cablarea hardware-ului
Cablarea hardware-ului
Cablarea hardware-ului
Cablarea hardware-ului
Cablarea hardware-ului
Cablarea hardware-ului
Cablarea hardware-ului

Cablare Arduino

Arduino ar trebui să fie conectat la panou, așa cum sunt în imaginile de mai sus.

Baza 3 Cablare

Ieșirile arduino sunt mapate la intrările Basys 3 prin semnalul analogic pmod porturi JXADC. Fiecare bit al vitezei de urmărire pe 8 biți poate fi conectat la unul dintre pinii afișați în imaginea de mai sus. Bitul cel mai puțin semnificativ (pinul digital 7) se conectează la ts (7) și bitul cel mai semnificativ (pinul digital 0) se conectează la ts (0).

Recomandat: