Съдържание:

Детектор за разход на гориво: 5 стъпки
Детектор за разход на гориво: 5 стъпки

Видео: Детектор за разход на гориво: 5 стъпки

Видео: Детектор за разход на гориво: 5 стъпки
Видео: Колко километра ще измине с 5 литра гориво? | AUDI 80 2024, Ноември
Anonim
Детектор за разход на гориво
Детектор за разход на гориво

От: Даника Фудживара и Уилям Макгроутър

Автомобилите са основният начин на транспорт в света днес. По -конкретно, в Калифорния сме заобиколени от улици, магистрали и пътища с такса, по които хиляди коли се движат ежедневно. Автомобилите обаче използват газ, а Калифорния използва най -много бензин от всяка друга държава в САЩ, приблизително 4 500 галона на ден. За нашия окончателен проект CPE 133, решихме да създадем система, в която да може да следи скоростта на автомобил и да каже дали тя надвишава най -ефективната скорост за най -добър пробег на газ или икономия на гориво. Този проект ще помогне на шофьорите да осъзнаят икономията на гориво, което от своя страна се надяваме да им помогне да спестят пари, да използват по -малко газ и да създадат по -малко замърсяване на въздуха.

Стъпка 1: Материали

Материали
Материали
Материали
Материали
Материали
Материали
Материали
Материали

Необходими материали за този проект:

- Basys 3 FPGA

- Arduino Uno

- Платформа

- Сензор за абсолютна ориентация Adafruit BNO055

- Мъжки към мъжки проводници

Стъпка 2: Разбиране на дизайна

Разбиране на дизайна
Разбиране на дизайна
Разбиране на дизайна
Разбиране на дизайна

Диаграма на крайното състояние

Този проект има две различни състояния в диаграмата за крайни състояния, показана по -горе. Светлината може да бъде включена (представена с „1“) или изключена (представена с „0“). Състоянието се променя в зависимост от входа на проследяващата скорост (ts) и постоянната оптимална скорост.

Диаграма на черна кутия

Също така по -горе има диаграма в черна кутия на модула за ефективност на горивото, която съдържа схемата на компаратора на скоростта и седемсегментния дисплей, които са допълнително обсъдени по -долу. Този VHDL код получава 8-битов вход от измерванията на акселерометъра, който е свързан към arduino.

Стъпка 3: Кодиране на VHDL

За този проект има три VHDL файла, които изграждат нашия дизайн, модул Fuel_Efficency_FinalProject, модул Speed_Comparator и модул sseg_dec, където Speed_Comparator и sseg_dec са на по -ниското ниво, за да съставят модула за ефективност на горивото.

Модул за сравняване на скоростта

Този модул приема 8-битова скорост в мили в час и я сравнява с оптималната скорост за най-малко количество консумация на газ. Средната оптимална скорост за най -добрия пробег на газ в колата е около 55 мили в час и под. Това обаче може да варира от автомобил до автомобил, което може да бъде персонализирано в рамките на модула. Редът 45 на кода, който може да бъде променен за лична оптимизация, е показан по -долу

if (проследяване> "00110111") тогава

Където „00110111“(55 в двоичен формат) може да бъде променено на произволен 8-битов номер за идеалната скорост на вашия личен автомобил за най-малък разход на гориво.

Ако скоростта е над оптималното число, светлината ще се включи, уведомявайки, че колата не използва максимален разход на гориво.

Модулът за седем сегмента на дисплея

Този модул приема 8-битова скорост в мили в час и показва скоростта на седем сегментния дисплей. Това би позволило на потребителя да знае колко бързо ще разбере дали трябва да забави темпото. Този модул ни беше даден в нашия клас и беше написан от Bryan mealy, който съдържа компонентите bin2bcdconv, който преобразува двоичния 8-битов вход в BCD форма, която е по-лесна за декодиране и clk_div, така че дисплеят да може визуално да показва число с 3 цифри чрез промяна на анодния изход при висока тактова честота. Този код приема 8-битово число, преобразува числото в четим дисплей на дъската basys 3.

Модулът за икономия на гориво

Това е основният файл, който използва модулите по -горе като компоненти. Неговите входове са часовникът и скоростта на проследяване. Часовникът е вграден в платката basys 3 и скоростта на проследяване се определя от изхода на arduino, който е свързан към порта за аналогов сигнал pmod (XADC). Всеки бит от 8-битовата скорост на проследяване се съпоставя с портовете, показани в секцията за окабеляване в стъпка 4. Други ограничения на Basys 3 могат да бъдат намерени в Basys_3_Master.xdc.

Стъпка 4: Кодиране на Arduino

Този проект използва един основен файл arduino, който изисква използването на няколко библиотеки, някои от които вече са във вашата програма arduino, а други трябва да бъдат изтеглени или от тази инструкция, или от уебсайта на Adafruit (връзката по -долу).

Библиотеки

връзка към страницата на Adafruit BNO055:

Adafruit е разработил 2 библиотеки за използване на BNO055 и дава примери за това как да ги използвате. В този проект ще използваме функцията.getVector, за да изведем от arduino данните на акселерометъра.

Този проект също използва някои библиотеки, вече инсталирани в програмата arduino, като например математическата библиотека.

Основен файл

Този файл използва данните от акселерометъра от функцията.getVector и използва математически уравнения, за да го превърне в скорост в мили в час, която след това се извежда в 8 бита данни към Basys 3 (вижте раздела "Окабеляване на хардуера" за повече информация).

Стъпка 5: Окабеляване на хардуера

Окабеляване на хардуера
Окабеляване на хардуера
Окабеляване на хардуера
Окабеляване на хардуера
Окабеляване на хардуера
Окабеляване на хардуера
Окабеляване на хардуера
Окабеляване на хардуера

Окабеляване на Arduino

Arduino трябва да бъде свързан към основната платка, както е на снимките по -горе.

Basys 3 Окабеляване

Изходите на arduino са картографирани към входовете на Basys 3 през аналоговия сигнал pmod JXADC портове. Всеки бит от 8-битовата скорост на проследяване може да бъде свързан към един от щифтовете, показани на снимката по-горе. Най -малко значимият бит (цифров извод 7) се свързва с ts (7), а най -значимият бит (цифров извод 0) се свързва с ts (0).

Препоръчано: