Cuprins:
- Pasul 1: Materiale
- Pasul 2: Înțelegerea designului
- Pasul 3: Codificarea VHDL
- Pasul 4: Codificarea Arduino
- Pasul 5: Cablarea hardware-ului
Video: Detector de eficiență a combustibilului: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
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 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
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
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:
Convertor de ieșire de 5V cu eficiență ridicată DIY: 7 pași
DIY Convertor de ieșire de 5V cu eficiență ridicată !: Am dorit o modalitate eficientă de a reduce tensiunile mai mari de la pachetele LiPo (și alte surse) la 5V pentru proiecte electronice. În trecut, am folosit module generice Buck de la eBay, dar controlul de calitate îndoielnic și lipsa numelui capacității electrolitice
Placă de conducere a motorului eficientă din punct de vedere al puterii: 5 pași
Placă de conducere a motorului eficientă din punct de vedere al energiei: Proiectul prezentat este o placă de circuit a motorului pas cu pas / conducătorului de motor cu IC driver de motor SN754410, care include unele caracteristici de economisire a energiei. Placa poate acționa 2 motoare de curent continuu sau un motor pas cu pas cu ajutorul circuitului de punte dual H din IC. SN754410 IC
Dezvoltare Java eficientă pentru Raspberry Pi: 11 pași (cu imagini)
Dezvoltare Java eficientă pentru Raspberry Pi: Acest manual descrie o abordare foarte eficientă pentru dezvoltarea programelor Java pentru Raspberry Pi. Am folosit abordarea pentru a dezvolta capabilități Java, de la suport pentru dispozitive de nivel scăzut la programe multi-thread și bazate pe rețea. Aprobarea
Lumină de creștere cu LED eficientă imprimată 3D de 30 USD: 4 pași
Lumină de creștere LED cu imprimare 3D eficientă de 30 USD: Aceasta este o lumină mică cu leduri tipărite în 3D pe care am creat-o pentru planta mea de legume. Proiectată pentru a fi cât mai ieftină posibil și pentru a vă permite să vă cultivați propriile alimente, dar pentru a oferi eficiența maximă și pentru a nu implica lipire. Este perfect să ridici nu foarte ușor d
Automatizare la domiciliu ieftină și eficientă cu Raspberry Pi: 11 pași (cu imagini)
Automatizare la domiciliu ieftină și eficientă cu Raspberry Pi: am dorit întotdeauna să pot controla luminile fără fir, dar opțiunile comerciale sunt de obicei scumpe. Luminile Philips Hue costă în jur de 70 USD, iar lămpile conectate WiFi sunt scumpe și ele. Acest tutorial vă va spune cum să controlați până la cinci lumini / l