
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05

Авторы: Даника Фудзивара и Уильям Макгрутер
Сегодня в мире автомобили являются основным средством передвижения. В частности, в Калифорнии мы окружены улицами, шоссе и платными дорогами, по которым ежедневно ездят тысячи автомобилей. Однако в автомобилях используется бензин, и Калифорния потребляет больше бензина, чем любой другой штат США, примерно 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).
Рекомендуемые:
Дешевый концентратор NMEA / AIS - мост RS232 к Wi-Fi для использования на борту: 6 шагов

Дешевый концентратор NMEA / AIS - мост RS232 к Wi-Fi для использования на борту: обновление от 9 января 2021 года - добавлено дополнительное TCP-соединение и повторное использование последнего соединения, если подключается больше клиентов. Обновление 13 декабря 2020 года - добавлена версия кода без конфигурации для лодок с существующими маршрутизаторами. Мост от AIS RS232 к WiFi
Как утилизировать телефоны Android для BOINC или складной установки без использования батарей: 8 шагов

Как утилизировать телефоны Android для BOINC или складного устройства без использования батарей: ПРЕДУПРЕЖДЕНИЕ: Я НИКОГДА НЕ НЕСУСЬ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПОВРЕЖДЕНИЯ, ВЫЯВЛЕННЫЕ ВАШЕМУ ОБОРУДОВАНИЮ, СЛЕДУЯ ЭТОМ РУКОВОДСТВУ. Это руководство более эффективно для пользователей BOINC (личный выбор / причины), его также можно использовать для СКЛАДЫВАНИЯ. Поскольку у меня мало времени, я
Практический PIR для домашнего использования: 7 шагов (с изображениями)

Практический PIR для домашнего использования: как и многие из вас, кто работает с проектами домашней автоматизации, я искал функциональный датчик PIR для автоматизации некоторых поворотов на поворотах в моем собственном доме. Хотя датчики PIR переключателя света были бы оптимальными, вы не можете согнуть угол. Ти
В поисках эффективности: 9 шагов

В поисках эффективности: конвертер BUCK на платформе " DPAK " Размер.Обычно начинающим разработчикам электроники или любителям нужен стабилизатор напряжения на печатной плате или макете. К сожалению, по простоте мы используем линейный стабилизатор напряжения, но его нет
Измерьте уровень топлива с помощью Arduino: 4 шага (с изображениями)

Измерьте уровень топлива с помощью Arduino: в сенсорном блоке обычно используется поплавок, подключенный к потенциометру, который обычно печатается чернилами в современном автомобиле. Когда резервуар опорожняется, поплавок опускается и скользит подвижным контактом по резистору, увеличивая его сопротивление. [2] Кроме того