Spisu treści:
- Krok 1: Materiały
- Krok 2: Zrozumienie projektu
- Krok 3: Kodowanie VHDL
- Krok 4: Kodowanie Arduino
- Krok 5: Okablowanie sprzętu
Wideo: Detektor zużycia paliwa: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
Autorzy: Danica Fujiwara i William McGrouther
Samochody są obecnie głównym środkiem transportu na świecie. W szczególności w Kalifornii otaczają nas ulice, autostrady i drogi płatne, po których codziennie jeżdżą tysiące samochodów. Jednak samochody zużywają gaz, a Kalifornia zużywa najwięcej benzyny niż jakikolwiek inny stan w USA, około 4500 galonów dziennie. Na potrzeby naszego projektu CPE 133 Final postanowiliśmy stworzyć system, w którym będzie on mógł śledzić prędkość samochodu i określać, czy przekracza ona najbardziej efektywną prędkość, zapewniając najlepszy przebieg na gazie lub oszczędność paliwa. Ten projekt pomógłby kierowcom uświadomić sobie ich oszczędność paliwa, co z kolei, miejmy nadzieję, pomoże im zaoszczędzić pieniądze, zużywać mniej gazu i generować mniej zanieczyszczeń w powietrzu.
Krok 1: Materiały
Materiały potrzebne do tego projektu:
-Basys 3 FPGA
- Arduino Uno
- Deska do krojenia chleba
- Czujnik bezwzględnej orientacji Adafruit BNO055
- Przewody męskie na męskie
Krok 2: Zrozumienie projektu
Diagram stanu skończonego
Ten projekt ma dwa różne stany na diagramie stanów skończonych pokazanym powyżej. Światło może być włączone (reprezentowane przez „1”) lub wyłączone (reprezentowane przez „0”). Stan zmienia się w zależności od wprowadzonej prędkości śledzenia (ts) i stałej prędkości optymalnej.
Schemat czarnej skrzynki
Powyżej znajduje się również schemat czarnej skrzynki modułu zużycia paliwa, który zawiera schemat komparatora prędkości i wyświetlacza siedmiosegmentowego, które zostały omówione poniżej. Ten kod VHDL otrzymuje 8-bitowe wejście z pomiarów akcelerometru podłączonego do arduino.
Krok 3: Kodowanie VHDL
W przypadku tego projektu istnieją trzy pliki VHDL, które tworzą nasz projekt, moduł Fuel_Efficency_FinalProject, moduł Speed_Comparator i moduł sseg_dec, gdzie Speed_Comparator i sseg_dec znajdują się na niższym poziomie, tworząc moduł Fuel Efficiency.
Moduł porównawczy prędkości
Moduł ten pobiera prędkość 8-bitową w milach na godzinę i porównuje ją z prędkością optymalną dla najmniejszego zużycia gazu. Średnia optymalna prędkość dla najlepszego przebiegu samochodu na benzynie wynosi około 55 mil na godzinę i mniej. Jednak może się to różnić w zależności od samochodu, co można dostosować w module. Wiersz 45 kodu, który można zmienić w celu osobistej optymalizacji, pokazano poniżej
jeśli (śledzenie > "00110111") wtedy
Gdzie „00110111” (55 w systemie binarnym) można zmienić na dowolną 8-bitową liczbę dla idealnej prędkości Twojego samochodu osobowego przy najmniejszym zużyciu paliwa.
Jeśli prędkość przekroczy optymalną wartość, światło zaświeci się, informując, że samochód nie zużywa maksymalnego zużycia paliwa.
Siedmiosegmentowy moduł wyświetlacza
Moduł ten pobiera prędkość 8-bitową w milach na godzinę i wyświetla prędkość na siedmiosegmentowym wyświetlaczu. Dzięki temu użytkownik wiedziałby, jak szybko będzie wiedział, czy musi zwolnić. Ten moduł został nam przekazany w naszej klasie i został napisany przez Bryana mealy'ego, który zawiera komponenty bin2bcdconv, który konwertuje binarne 8-bitowe dane wejściowe do postaci BCD, która jest łatwiejsza do zdekodowania i clk_div, aby wyświetlacz mógł wizualnie pokazywać liczbę z 3 cyframi poprzez zmianę wyjścia anodowego przy wysokiej częstotliwości taktowania. Ten kod akceptuje liczbę 8-bitową, konwertuje liczbę na czytelny wyświetlacz na płycie bazowej 3.
Moduł efektywności paliwowej
To jest główny plik, który wykorzystuje powyższe moduły jako komponenty. Jego wejściami są zegar i prędkość śledzenia. Zegar jest wbudowany w płytkę basys 3, a prędkość śledzenia jest podawana przez wyjście arduino, które jest podłączone do portu pmod sygnału analogowego (XADC). Każdy bit 8-bitowej szybkości śledzenia jest mapowany na porty pokazane w sekcji okablowania w kroku 4. Inne ograniczenia Basys 3 można znaleźć w Basys_3_Master.xdc.
Krok 4: Kodowanie Arduino
Ten projekt używa jednego głównego pliku arduino, który wymaga użycia kilku bibliotek, z których niektóre są już w twoim programie arduino, a inne należy pobrać z tej instrukcji lub ze strony internetowej Adafruit (link poniżej).
Biblioteki
link do strony Adafruit BNO055:
Adafruit opracowała 2 biblioteki do wykorzystania BNO055 i podaje przykłady, jak z nich korzystać. W tym projekcie będziemy używać funkcji.getVector, aby arduino wyprowadzało dane z akcelerometru.
Ten projekt wykorzystuje również niektóre biblioteki już zainstalowane w programie arduino, takie jak biblioteka matematyczna.
Główny plik
Ten plik używa danych akcelerometru z funkcji.getVector i używa równań matematycznych, aby przekształcić je w prędkość w milach na godzinę, która jest następnie wysyłana w postaci 8 bitów danych do Basys 3 (więcej informacji znajduje się w sekcji „Okablowanie sprzętu”). Informacja).
Krok 5: Okablowanie sprzętu
Okablowanie Arduino
Arduino powinno być podłączone do płytki stykowej tak, jak na powyższych zdjęciach.
Okablowanie Basys 3
Wyjścia arduino są mapowane na wejścia Basys 3 przez porty analogowego sygnału pmod JXADC. Każdy bit 8-bitowej prędkości śledzenia można podłączyć do jednego z pinów pokazanych na powyższym obrazku. Najmniej znaczący bit (pin cyfrowy 7) jest podłączany do ts(7), a najbardziej znaczący bit (pin cyfrowy 0) jest podłączany do ts(0).
Zalecana:
Zmniejszenie zużycia energii baterii dla Digispark ATtiny85: 7 kroków
Zmniejszenie zużycia energii baterii dla Digispark ATtiny85: lub: Uruchamianie Arduino z baterią monetową 2032 przez 2 lata.Używając płytki Digispark Arduino po wyjęciu z pudełka z programem Arduino, pobiera ona 20 mA przy napięciu 5 woltów. 2000 mAh będzie działać tylko przez 4 dni
Sygnał alarmowy zużycia energii Shelly: 8 kroków
Sygnał alarmowy zużycia energii Shelly: OSTRZEŻENIE Ta instrukcja musi być wykonana przez kogoś, kto ma dobre umiejętności jako elektryk. Nie biorę żadnej odpowiedzialności za zagrożenia dla ludzi lub rzeczy. zużycie przekracza t
Automatyczny dozownik wody do śledzenia zużycia: 6 kroków
Automatyczny dozownik wody do śledzenia zużycia: Cześć! Kilka miesięcy temu siedziałem w swoim pokoju i zastanawiałem się, jaki projekt chcę wykonać na zadanie szkolne. Chciałem stworzyć coś, co mi odpowiada i przyniesie korzyści w przyszłości. Nagle do pokoju weszła mama i
Zmierz poziom paliwa za pomocą Arduino: 4 kroki (ze zdjęciami)
Zmierz poziom paliwa za pomocą Arduino: Jednostka czujnikowa zwykle używa pływaka połączonego z potencjometrem, zwykle drukowanego atramentu w nowoczesnym samochodzie. Gdy zbiornik się opróżnia, pływak opada i przesuwa ruchomy styk wzdłuż rezystora, zwiększając jego opór.[2] Ponadto
Miernik zużycia energii elektrycznej CHINT + ESP8266 i matryca Led MAX7912: 9 kroków (ze zdjęciami)
Miernik zużycia energii elektrycznej CHINT + ESP8266 & Matrix Led MAX7912: Tym razem powrócimy do ciekawego projektu, pomiaru zużycia energii elektrycznej w sposób inwazyjny za pomocą miernika CHINT DDS666 Mono faza, technicznie jest to licznik mieszkaniowy lub mieszkaniowy, który już mamy prezentowany w poprzednim t