Spisu treści:

Detektor zużycia paliwa: 5 kroków
Detektor zużycia paliwa: 5 kroków

Wideo: Detektor zużycia paliwa: 5 kroków

Wideo: Detektor zużycia paliwa: 5 kroków
Wideo: Mercedes-Benz C200 1.5 184 KM (AT) - pomiar zużycia paliwa 2024, Listopad
Anonim
Detektor zużycia paliwa
Detektor zużycia paliwa

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
Materiały
Materiały
Materiały
Materiały
Materiały
Materiały
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

Zrozumienie projektu
Zrozumienie projektu
Zrozumienie projektu
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 sprzętu
Okablowanie sprzętu
Okablowanie sprzętu
Okablowanie sprzętu
Okablowanie sprzętu
Okablowanie sprzętu
Okablowanie sprzętu
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: