Выводим скорость на лобовое стекло автомобиля

Очень крутые новинки появляются с определенным постоянством в мире машиностроения. Одна из таких новинок - это проецирование скорости на лобовое стекло, первыми эту фишку использовали в BMW. Идея урока появилась у одного радиолюбителя, когда он оставил листок бумаги с текстом в своей машине, возле лобового окна.

Он был удивлен, когда отражение текста было совершенно читаемым.  В итоге было принято решение попытаться отразить нечто более полезное, чем просто лист бумаги.

В реализации данного урока, как не странно, помогло обнаружение довольно недорогих модулей GPS и светодиодных матричных дисплеев для Arduino.

Шаг 1: Комплектующие для устройства

Нам как обычно понадобятся несколько разных комплектующих. Конечно основа всего - это наша Arduino.

Ниже список комплектующих и примерные цены на эти модули по которым их можно найти:

  • Arduino - Arduino Pro Mini 5V/16Mhz (примерная стоимость - $1,80)
  • Модуль GPS - чип модуля Ublox Neo-M8N UART TTL Smart GPS антенна с двойным приемником ГЛОНАСС ($6,90)
  • Светодиодный матричный дисплей - MAX7219 точечный матричный модуль для микроконтроллера Arduino ($3,75)
  • Фоторезистор - 5549 светочувствительный резистор LDR 5MM ($0.70 за 20 шт)
  • Понижающий преобразователь напряжения - Mini360 DC-DC ($0,33)
  • Резисторы
  • Провода
  • Светодиоды

Arduino. Можно использовать любого типа. Был выбран этот маленький китайский клон. Он работает с логикой 5 В TTL. Если вы используете тот же тип, что и в уроке - вам понадобится USB для TTL-конвертера для загрузки кода в Arduino. Просто для загрузки, для нормальной работы не требуется.

Модуль GPS. На eBay или AliExpress существует множество дешевых модулей GPS. Большинство из них работает на 3,3 В. Но лучше заплатить немного больше и купить логический модуль 5 Вт TTL. Таким образом, не нужны переключатели уровня для связи Rx/Tx, и нужен только один модуль понижающего преобразователя напряжения 12В в 5В. Интегрированная антенна выгодна и может принимать спутники GPS, GLONASS и BAIDOU.

Дисплей. Для целей урока приобретенный модуль слишком большой. Для получения правильной информации о скорости необходимо отобразить три цифры. Есть не так уж много водителей, которые могут разогнаться быстрее чем 999 км/ч. Для отображения половина этого модуля достаточна. К счастью гаджет является модульным и может быть разделен, например, ручной пилой.

Шаг 2: Схема устройства и сборка

Существует опциональное использование двух или одного светодиода для индикации блокировки GPS. В случае двух светодиодов на контактах D8 и D9 подключены зеленый и красный светодиоды. Зеленый означает 2D-исправление, красный означает 3D-исправление. После, примерно,  5 месяцев использования можно сказать, что они не нужны. Но существует также возможность использовать Pps-штырь из модуля GPS - если GPS заблокирован, появляются импульсы 5 В (длительность одной секунды если фиксировано).

Несколько слов о мощности - все компоненты питаются от 5В. Поэтому нужно сделать 5В от 12В (или 24В) от мощности платы. Хороший опыт работы с преобразователем DC-DC, упомянутым выше. Он маленький, дешевый и может обрабатывать ток до 2А. Это намного больше, чем нужно. Устройство имеет расход около 150 мА. Выходное напряжение преобразователя регулируется маленьким винтом - убедитесь, что это 5В перед подключением Arduino и остальной части устройства. Входное напряжение, которое вы можете взять, например, из гнезда прикуривателя в вашем автомобиле или от розетки вашего радио. Но будьте осторожны.

Шаг 3: Программируем Arduino

Код для Arduino ниже:

Библиотека для последовательной связи должна быть общей библиотекой SoftwareSerial. В уроке использована библиотека NeoSWSerial, потому что она немного меньше. Вы даже можете использовать Rx / TX контакты Arduino и избегать SoftwareSerial, но в этом случае вы должны соответственно изменить код.

Библиотека для матричного дисплея - PAROLA (https://github.com/MajicDesigns/MD_Parola). Позволяет отображать зеркальный текст только по одной команде.

GPS - модуль дает в текстовом режиме прямую информацию о времени, положении, исправлении, количестве спутников, скорости и т.д. Он определяется протоколом NMEA. Были испробованы некоторые библиотеки парсеров GPS, но принято решение напрямую разобрать сообщения NMEA, чтобы получить необходимую информацию. В основном потому, что все оцененные библиотеки были слишком большими и предоставляли много ненужной информации.

Скорость отображается в км/ч. Если вы хотите использовать мили в час, внесите изменения в код.

Шаг 4: Итоговое видео

В итоге у вас должно получится устройство, принцип действия которого показан на рисунке выше. Небольшое видео, которое демонстрирует итоговый результат - ниже:

Спасибо за интерес. Желаем вам отличных проектов! Подписывайтесь на нашу группу ВКонтакте и оставляйте в ней комментарии к данному уроку.

Ардуино+
Больше интересного ↓