Оглавление:

Детектор эффективности использования топлива: 5 шагов
Детектор эффективности использования топлива: 5 шагов

Видео: Детектор эффективности использования топлива: 5 шагов

Видео: Детектор эффективности использования топлива: 5 шагов
Видео: 14 июня 2023 г. 2024, Ноябрь
Anonim
Детектор эффективности использования топлива
Детектор эффективности использования топлива

Авторы: Даника Фудзивара и Уильям Макгрутер

Сегодня в мире автомобили являются основным средством передвижения. В частности, в Калифорнии мы окружены улицами, шоссе и платными дорогами, по которым ежедневно ездят тысячи автомобилей. Однако в автомобилях используется бензин, и Калифорния потребляет больше бензина, чем любой другой штат США, примерно 4 500 галлонов в день. Для нашего проекта CPE 133 Final мы решили создать систему, в которой он мог бы отслеживать скорость автомобиля и определять, превышает ли она наиболее эффективную скорость для максимального расхода топлива или экономии топлива. Этот проект поможет водителям осознать свою экономию топлива, что, в свою очередь, поможет им сэкономить деньги, использовать меньше газа и уменьшить загрязнение воздуха.

Шаг 1: материалы

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

Материалы, необходимые для этого проекта:

- Basys 3 FPGA

- Ардуино Уно

- Макетная плата

- Датчик абсолютной ориентации 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 кода, которую можно изменить для персональной оптимизации, показана ниже.

если (отслеживание> "00110111"), то

Где «00110111» (55 в двоичном формате) может быть изменено на любое 8-битное число для идеальной скорости вашего личного автомобиля с наименьшим расходом топлива.

Если скорость превышает оптимальное значение, загорится свет, сообщая, что автомобиль не использует максимальную топливную экономичность.

Семисегментный дисплейный модуль

Этот модуль измеряет 8-битную скорость в милях в час и отображает скорость на семисегментном дисплее. Это позволит пользователю узнать, с какой скоростью он будет знать, нужно ли ему или ей замедлиться. Этот модуль был предоставлен нам в нашем классе и был написан Брайаном Мили, который содержит компоненты 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).

Рекомендуемые: