Спидометр на ардуино: Спидометр для велосипеда на Arduino||Arduino-diy.com

Содержание

Как сделать свой собственный велосипедный спидометр с помощью Arduino

Сделайте свой спидометр

Сегодня, в XNUMX веке, практически у любого автомобиля есть собственный спидометр и одометр. Так обстоит дело с автомобилями, мотоциклами, некоторыми электронными велосипедами и т. Д. Кроме того, в различных магазинах приложений есть много приложений, которые позволят нам узнать, с какой скоростью мы едем и сколько километров мы преодолеваем, используя GPS мобильного устройства. Но в чем проблема этих приложений? Работает на устройстве, которое не всегда бывает самым дешевым. Как и почти во всем, решение проблемы могло быть создать собственный спидометр.

Все знают, сколько стоит айфон. Лично у меня он есть, и в течение нескольких месяцев я боялся упасть с велосипеда больше из-за телефона, чем из-за себя. Сейчас я использую Garmin, но любое устройство этой марки стоит сотни евро, что многие пользователи не могут или не хотят тратить. Если мы знаем, что делаем, иногда лучший вариант для нас - собрать собственное оборудование, и в этой статье мы покажем вам, как строить с нуля наш собственный одометр.

Спидометр и одометр для велосипедов

Requisitos

Для установки спидометра нам понадобятся:

  • Arduino UNO & Подлинный 1 (Товар не был найден.).
  • 1 ЖК-экран Adafruit RGB Blacklight - 16 × 2 (купить).
  • 2 12-мм кнопочных переключателя SparkFun купить.
  • 1 Ом резистор (купить).
  • 3 резистора 10 кОм (купить).
  • 1 однооборотный потенциометр 10 кОм (купить).
  • 1 датчик на эффекте Холла (купить).
  • Руки, время и терпение.

Для кого это руководство?

Как мы уже упоминали ранее, сегодня практически любой телефон на рынке имеет GPS и такое приложение, как Runtastic или Страва. Лично я бы не рекомендовал это руководство всем, у кого уже есть смартфон, если только вы не хотите создать спидометр самостоятельно. Ну, и убедитесь, что вы не сломаете свой телефон в результате несчастного случая.

Он также может быть нацелен на тех, у кого уже есть Arduino Starter Kit по другой причине и не желает раскошелиться на базовый велокомпьютер. Этот спидометр будет стоить чуть более 30 евро, поэтому цель в этом руководстве он должен быть у людей, которые не хотят тратить много денег и хотят иметь счет за километр, созданный своими руками.

Что будем производить

Мы собираемся изготовить одометр и спидометр для велосипедов, которые сообщат нам:

  • Пройденное расстояние в километрах.
  • Время активности в часах, минутах и ​​секундах.
  • Средняя скорость в км / ч.
  • Достигнута максимальная скорость.
  • Возможность записи до 99 кругов.

Как пользоваться этим полнофункциональным спидометром

Цепи спидометра

Как только мы закончили делать наш спидометр для велосипедов, мы можем включить его. В в первый раз мы начинаем это или мы делаем сброс Сообщение с текстом «НАЖМИТЕ КНОПКУ, ЧТОБЫ ЗАПУСТИТЬ» появится на ЖК-экране 16 × 2. Нажатие одной из кнопок Pause / Resume или Display Mode запустит первый период / круг.

Следующее, что мы увидим, это сообщение с надписью «БЕЗОПАСНО! (осторожно циркулируйте) в течение 2 секунд, но в этот временной интервал уже ведется запись. Когда сообщение исчезнет, ​​мы сможем увидеть пройденные километры, скорость рядом с буквой «S» (для «Скорость»), уже затраченное время во второй строке и среднее значение рядом с «А» (для «Среднее значение»). ").

Вся информация отображается в в реальном времени. Это относительно важно, если учесть, что упомянутые выше мобильные приложения вычисляют расстояние с помощью GPS, поэтому оно не отображается в реальном времени. Разница в том, что если у нас нет датчика на колесе, в мобильных телефонах мы видим скачок скорости, а в этом устройстве мы видим, что значения меняются постепенно, как в автомобиле. Упомянутые датчики должны быть Bluetooth и совместимы с мобильным устройством. И покупать их по отдельности обычно не очень дешево.

Отображает информацию в 4-х углах

Символ «+» будет отображаться в верхнем левом углу на 250 мс, когда он обнаружит один оборот колеса. Нажатие кнопки Display Mode изменит «A» второй строки на «M», что покажет нам Velocidad Максима чего мы достигли за этот круг / период.

Нажав кнопку Пауза / Возобновить остановят запись и сохранит текущий круг в памяти. После этого появится сообщение «ПАУЗА!». в течение 2 секунд, и результаты круга, который мы только что закончили, появятся с номером круга в верхнем левом углу экрана, за которым следует «Avg», показывающая среднюю скорость всего круга, и «Max» для максимальной скорости тур. Во второй строке мы увидим расстояние в километрах, за которым следует круг в часах, минутах и ​​секундах.

Возможность экономии до 99 кругов

Электронная схема спидометра (нажмите для увеличения).

Если мы нажмем кнопку Display Mode во время паузы, она перестанет работать. переключение между разными записанными кругами. При первом нажатии он покажет нам лучший круг из всех с буквой «T» в верхнем левом углу, в то время как другие нажатия переведут нас на 1, 2, 3 круг и т. Д., В зависимости от того, сколько кругов у нас есть. записано.

Если мы снова нажмем кнопку «Пауза», будет записана еще одна запись, но уже новый круг, и снова появится сообщение, которое просит нас осторожно перемещаться. Если мы снова нажмем кнопку «Пауза» и увидим сообщение «ЦИКЛ БЕЗОПАСНО!» круг не будет записан и устройство вернется в режим паузы, показывая данные последнего пройденного круга.

Этот спидометр может записать 99 кругов. Если мы дойдем до 100-го круга, оставшиеся данные будут сохранены на вершине 99-го круга. Что не изменится, так это то, что рекорды, достигнутые во время нашей активности, будут сохраняться, даже если данные с 99-го круга были стерты. То есть, если на 99 круге мы достигнем нашего рекорда и проедем 100-й круг, будут удалены только данные о средней скорости и расстоянии для 99 круга, но максимальная скорость останется.

В следующем видео вы можете увидеть, как работает этот спидометр для велосипедов. В программный код вы можете скачать его, нажав ЭТА ССЫЛКА и вы можете скачать схему, щелкнув правой кнопкой мыши и сохранив изображение в браузере.

больше информации.


GPS спидометр и одометр на Arduino + bluetooth трансивер

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

Для точного измерения пройденного пути я сразу подумал использовать GPS. Наивно полагая, что все получится, я установил в свой смартфон HTC Desire HD программу-логгер маршрута GPS и поехал.

После поездки, скинув информацию со смарта на комп, я был удивлен, насколько некачественно встроенный GPS приемник определяет свое местоположение. Маленькая частота обновлений координат и слабая антенна привели к тому, что даже в местах, где я двигался прямолинейно, со скоростью около 50 км/час, записанный трек выглядел как ломаная линия, а порой попадались восьмерки (вроде как я разворачивался и вдруг ехал назад, после чего снова разворот). В целом, конечно маршрут и измеренный пробег были примерно похожи на правду, но для калибровки бортовика такие измерения использовать я не мог.

Поразмышляв немного на эту тему, я пришел к выводу, что соберу-ка я сам GPS спидометр-одометр (далее девайс).

Это позволит убить массу зайцев одним выстрелом: откалибровать бортовик, познать азы работы с GPS приемниками, координатами и сопутствующими расчетами, ну и наконец, пощупать вживую известную платформу Arduino – именно на ней планировалось построить девайс.

По поводу Arduino – платформа известная, раскрученная, доступная, дешевая и удобная для использования. При этом обладает одним недостатком – среда разработки просто отвратительна. Она годится для детей и подростков, желающих познакомиться с программированием микропроцессоров, но никак для серьезной работы. К отсутствию массы, привычных в нормальных средах разработки, возможностей, можно добавить еще и омерзительный внешний вид нативной среды разработки для Arduino. Тем не менее, на момент постройки устройства я всего этого не знал, и потому программа писалась именно в этой среде.

Забегая вперед скажу, что я стал часто использовать борды Arduino в своих проектах, но программы стал писать в своем любимом компиляторе CodeVisionAVR, и заливаю ее в Arduino с помощью разработанной мной утилиты, встраиваемой в интерфейс компилятора. Я напишу отдельную статью касательно этого вопроса в ближайшем будущем.

Ну, вернемся к нашим баранам. Сердцем прибора стал борт Arduino Uno:

В качестве приемника GPS я использовал борд SparkFun основанный на чипе Venus638FLPx:

Приемник замечательный. Из основных достоинств могу отметить его 65 канальную архитектуру, широкий диапазон напряжений питания, возможность подключения резервного питания (что обеспечить быстрый старт при возобновлении основного питания), высокую частоту обновлений координат (до 20 Гц) и т.д.

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

Для индикации измерений использовался обычный экран 16×2:

Кроме того, раз уж пошла такая пьянка, в систему был добавлен Bluetooth передатчик HC-05 (pinout):

По нему, всю информацию, полученную от GPS приемника, планировалось переправлять как есть, что позволило бы использовать девайс в качестве внешнего GPS приемника для смартфона или ноутбука.

Сам модуль HC-05 доступен по цене 5-7 долларов за штуку и продается везде. К сожалению, работа с ним полна геморроя, потому как выпускает эти модули нынче каждый третий китаец, и делают они их все немного по разному, так, что найти 100%-но соответствующий даташит нереально. В итоге Bluetooth передатчик получается нормально запустить и настроить после нескольких циклов проб и ошибок.

Важно отметить, что для работы передатчика важно подтянуть к питанию ноги reset и wake-up, а также подсоединить к земле все GND.

Питать все это дело я решил он литий-полимерного аккумулятора на 3.7 вольт. За сим потребовался преобразователь напряжения (step-up) до 5 вольт, а также зарядное устройство для аккумулятора через USB порт:

   

Ну и наконец – антенна, первая, что попалась под руку:

Все вышеназванные детали были соединены вот таким образом (надеюсь, я не ошибся – девайс строился на лету, так что схему я рисовал по памяти):

В итоге из рассыпухи break-up бордов получилась вот такая лапша:

Снаружи:

После того, как девайс был готов, была написана прошивка, последнюю версию которой можно сказать здесь.

Кратенько о прошивке.

При включении, после заставки, на экране высвечивается сообщение No fix detected. Оно будет продолжать высвечиваться, пока девайс не сможет определить собственные координаты.

Как только это произойдет, они тут же высветятся на экране, вместе с текущей скоростью и азимутом движения.

Левой кнопкой можно менять режим отображения данных на экране. Возможности:

  • Координаты и азимут движения

  • Пробег, текущая и максимальная скорости

  • Время и дата

  • Напряжение на батарейке

Длительным нажатием на правую кнопку можно обнулить одометр.

Девайс постоянно мониторит напряжение батареи, и как только оно упадет ниже 3.2 вольт, девайс перейдет в режим отображения напряжения на экране. При этом перейти на другой экран станет невозможно.

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

Кроме того, если в процессе работы ухудшится прием GPS и девайс начнет терять сигнал, высветиться сообщение DATA LOSS.

Подсчет пройденного расстояния производится по методу Great Circle distance calculation – HAVERSINE. В силу специфики гражданского GPS, измерения пробега получаются наиболее точными при движении по трассе. Хотя с хорошей антенной и в городе точность получается довольно точными. При контрольной проверке по карте, погрешность составила пару сотен метров на 50 километров пути.

Передача данных по Bluetooth осуществляется параллельно основной работе девайса, и может быть полезна, к примеру, пользователям смартфонов на Android. Точность и чувствительность девайса в разы лучше оных на встроенном в смартфон GPS модуле, и потому, при помощи бесплатной программы Bluetooth GPS можно заставить все остальные программы, пользующиеся GPS для работы использовать данные приходящие по Bluetooth, вместо данных со встроенной антенны.

Кроме того, вместо телефона к Bluetooth можно подключить компьютер и пользоваться им в качестве инструмента для записи и анализа маршрута, в том числе в реальном времени.

После окончательной сборки и проверка девайса, я смог, наконец, с большой точностью откалибровать свой Multitronics.

Теперь активно пользую девайс при путешествиях на джипах по бездорожью – удобно измерять пройденные расстояния, чтобы не сбиться с маршрута.

Ну вот пожалуй и все. Буду рад ответить на вопросы.

Простой GPS спидометр

Простой GPS спидометр


Николай Большаков, RA3TOX

           Целью данного проекта было желание создать простой для повторения спидометр для автомобиля (велосипеда, мотоцикла, самоката) на основе недорогого GPS-модуля. После поиска и испытаний нескольких конструкций остановился на конструкции, реализованой на основании проекта "Arduino GPS Speedometer With a Ks0108 - 128x64 GLCD display" (https://www.instructables.com/id/Arduino-GPS-speedometer-with-a-ks0108-128x64-GLCD-/). Основой устройства является плата Arduino, GPS-приемник и графический LCD-индикатор.

           Я постарался до минимума упростить конструкция. Вместо платы Arduino использовал микроконтроллер ATmega328. Отказался от кварцевого резонатора и применил внутреннюю синхронизацию. Вместо графического индикатора применил 7-сегментный индикатор.

           Получилась вот такая схема.

Для проекта нам понадобятся:

- GPS-приемник (любой, например NEO6MV2).
- Микроконтроллер ATmega328.
- 7-сегментный четырехразрядний светодиодный индикатор с общим катодом.
- 4 резистора (10К - 1 шт., 1К - 3 шт.).
- Монтажная плата.
- ISP программатор (USBasp).

           Вся конструкция у меня собрана на макетной плате. Питание осуществляется от 5-ти вольтового USB адаптера для автомобиля. Если спидометр применяете на велосипеде, то можно его запитать от трех батареек формата АА (4,5 В) или четырех аккумуляторов (1,2 В х 4). Потребляемый устройством ток около 120 мА. Корпус для всей конструкции - на Ваше усмотрение. Можно установить на плате стабилизатор напряжения на 5 вольт и питать спидометр от бортовой сети автомобиля.

На фотографии моё размещение элементов на плате.
Микроконтроллер и 7-сегментный индикатор находятся на одной стороне платы один над другим и подключаются через панельки.

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

Для желающих выполнить устройство на печатной плате привожу примерный эскиз.
Вид со стороны печатных проводников, все элементы снизу.

           Можно собрать устройство и на модуле Arduino. Скетч для конструкции найдёте в первоисточнике, который указан в начале статьи. Соответствие портов Arduino и выводов микроконтроллера указаны на приведенной схеме (используются только цифровые порты). При прошивке платы Arduino не забудьте установить библиотеку TinyGPS.

           Ещё можно попытаться использовать более дешевый микроконтроллер ATmega8. Схема при этом не меняется, т.к. цоколевка микроконтроллеров совпадает. Я скомпилировал файл (см.ниже) и для такого варианта, но не проверял работоспособность на практике.

Файлы для прошивки (HEX):
Для микроконтроллера ATmega328 (внутренняя синхронизация)
Для микроконтроллера ATmega8 (внутренняя синхронизация)

Фьюзы для микроконтроллере ATmega328P с внутренним генератором на 8 МГц в программе AVRDUDE-PROG привожу на рисунке.

           Следует отметить, что данная конструкция является хорошей заготовкой для расширения функций. Можно добавить переключатель и отображать некоторые други данные получаемые со спутника. Например: время, азимут, высоту над уровнем моря, пройденную дистанцию и т.п. Свободных портов у микроконтроллера для этих целей достаточно.

Удачи и творческих успехов.
73! Октябрь 2017 г.

Публикация в других источниках разрешена со ссылкой на автора и сайт "Радиофанат" - http://rfanat.ru

Используйте Arduino и ESP8266, чтобы сделать спидометр лайков в Instagram

Будет весело проверять эффективность ваших постов в Instagram! Мы сделаем небольшой инструмент, который будет показывать количество лайков за минуту ваших постов. В этой статье вы узнаете, как получать данные с веб-страниц через ESP8266 и отправлять их в Arduino для анализа и запуска других исполнительных механизмов. В конце статьи вы узнаете:

● Подключите ESP8266 к Интернету и получайте данные с веб-страниц.

● Используйте Arduino для чтения данных ESP8266 и их анализа.

● Получать данные из социальных сетей, таких как Instagram.

● Создайте небольшой инструмент, который покажет, как быстро набираются лайки в Instagram.

Необходимые компоненты

● ElectroPeak ESP8266 ESP-01

● Плата для разработки Arduino Nano.

● Конвертер FTDI USB в TTL

● Серводвигатель с металлической шестерней TowerPro MG995 55G

● Arduino IDE

Введение в ESP8266

Во многих проектах очень полезными функциями являются беспроводное соединение, доступ в Интернет и удаленное управление. ESP-8266 - это недорогой микроконтроллер с полным TCP / IP (протоколом управления передачей и интернет-протоколом), 32-битным MCU, 10-битным АЦП и другими различными интерфейсами, такими как PWM, HSPI и I2C для обеспечения микроконтроля. Устройство может подключаться к сети Wi-Fi. Это одно из лучших решений для добавления Wi-Fi в проект.

Этот микроконтроллер оснащен модулями различных типов, такими как ESP-01, ESP-12 или другими платами для разработки, такими как NodeMCU devkit, Wemos и Adafruit Huzzah. Разница заключается в их контактах, компонентах, необходимых для простоты использования, и цене. Микроконтроллер имеет 32 контакта, 16 из которых являются GPIO; количество предоставляемых GPIO зависит от модели. Для ESP-01 это всего два контакта. При использовании ESP-8266 вам понадобится последовательный интерфейс для связи и программирования. Простые модули обычно не имеют последовательного преобразователя (обычно рекомендуется FTDI, но можно использовать и другие преобразователи), он должен предоставляться отдельно. Встроенный регулятор напряжения, светодиод и подтягивающие или понижающие резисторы - это другие особенности, которые могут иметь некоторые модели; самая низкая цена среди всех этих модулей - ESP-01, который теперь наш выбор.

ESP-01 - это первый модуль в esp-8266. Он имеет всего два контакта GPIO и требует источника питания 3,3 В. В нем нет регулятора напряжения, поэтому он должен иметь надежный источник питания. У него нет преобразователя, поэтому вам понадобится преобразователь USB в TTL. Преобразователь этого модуля (и других типов ESP) должен быть в режиме 3,3 В. Причина этого в том, что преобразователь генерирует сквозные импульсы 0 и 1. Напряжение этих импульсов должно позволять идентифицировать ESP, поэтому проверьте перед покупкой. Из-за ограниченного количества контактов GPIO и их низкого тока (12 мА каждый) нам может потребоваться больше контактов или больше тока; поэтому мы можем легко использовать Arduino с модулем для доступа к его контактам ввода-вывода (еще один Чтобы получить доступ к большему количеству контактов GPIO, нужно подключить очень тонкие провода на микросхеме к нужным вам разъемам, но это не очень хорошее и безопасное решение). Если вы не хотите использовать другие печатные платы, вы можете спроектировать или использовать схемы для увеличения тока.

Для получения дополнительной информации посетите следующее:https://www.yiboard.com/thread-1062-1-1.html

Квазианалоговый спидометр с прошивкой своими руками

        После того как спидометр с квазианалоговой шкалой стал комерческим, то из интернета сразу пропали его исходники и прошивки,без которых спидометр было не построить. Было решено создать прибор по функциям похож на его прибор. Но прибор вышел на многофункциональней, чем прибор МАМЕДА. И так,переходим к просмотру-схема спидометра+одометр с прошивкой своими руками.

 

 

 

Схема устройства:

 

Отображение:

1: Общий пробег от 0 до 999 999 км. Не значащие нули не высвечиваются.

2: Суточный пробег от 0 до 999, 99 км. Десятки, сотни метров (при переполнении сброс на нули).

3: Сервисный счетчик до замены масла. Остаток пробега до замены масла от 10 000 км. до 0, по умолчанию. В меню можно выставить любой.

Функции:

    1: Сервисный (желтый) светодиод . При остатке до замены масла 100 км. начинает мигать, а при 0 загорается постоянно.

   2: Выход на зуммер. При достижении определенной скорости единовременно подает четыре коротких сигнала. Скорость при которой срабатывает зуммер, выставляется в меню от 0 до 999 км. г.

   3: Выход для управления реле света. При начале движения появляется сигнал на включение ближнего света или ходовых огней. При остановке огни будут продолжать гореть еще 5 минут, чтобы избежать светового шоу в тянучках и на светофорах. Больше пяти минут в тянучках и на светофорах не стоим, а если и стали, то это очень редко и не так страшно, если огни погаснут. Время можно выставить в меню от 0 до 99 минут. При «0» свет не будет включаться!

   4: При включении ближнего света индикаторы и светодиоды притухают на 50%. Можно изменить в меню от 0 до 99%.

Управление:

      1: В обычном режиме коротким нажатием на кнопку, переходим на отражение

«общий одометр – суточный одометр – остаток пробега до замены масла»

   И так по кругу, при этом незначащие нули не светятся.

   В режиме суточного одометра длительное (более 2 секунд) нажатие на кнопку вызовет сброс счетчика на 0,00

   В режиме остаток до замены масла длительное (более 2 секунд) нажатие на кнопку вызовет сброс счетчика то на 10 000.

   В режиме общего одометра длительное (более 2 секунд) нажатие на кнопку вызовет переход в сервисное меню.

   Сигналом перехода будет мигающая надпись на индикаторе спидометра “od.c"(od. common - од. общий), меню настройки общего стартового пробега. Он будет мигать 10 секунд, в течение этого времени нужно провести последующие действия. Если ничего не делать, после окончания 10 секунд одометр возвращается в исходное состояние, общий одометр, из любой точки программирования,

 Регулировка от 0 до 999 999. По умолчанию выставлено 0 км.

    Короткое нажатие вызовет переход к следующему меню “od.d" (od. daily - од. суточный), меню установки суточного стартового пробега. (Если уж точно хотите выставить стартовый пробег)    Регулировка от 0 до 9 999.99. По умолчанию 0.00 км.

   Далее переход в меню “od.o" (od. oil - од. масла), меню установки пробега до замены масла, регулировка от 0 до 999 999. По умолчанию 10 000 км.

   Далее переход в меню "diu" (data interface unit - блок интерфейса данных), меню настройки количества импульсов на 1 метр пути, регулировка от 1 до 19. По умолчанию 6 имп.м.

   Далее переход в меню "SPd" (speed - скорость), меню установки скорости при котором сработает зуммер, регулировка от 0 до 999. По умолчанию 80 км. ч.

   Далее переход в меню "L. OF" (lamp off - выключить лампы), меню установки времени, по истечении которого выключается ближний свет, регулировка от 0 до 99 минут, при значении 00 свет включаться не будет. По умолчанию 5 минут.

   Далее переход в меню "HAb" (Here Adjustment - Здесь Регулирование, brightness –яркость), меню установки яркости индикаторов при включенных габаритах. Если в этот момент включены габариты, то можно наблюдать какая будет яркость индикаторов, регулировка от 0 до 99%. По умолчанию 50%

   Далее выход из сервисного режима.

   Программирование в сервисном режиме;

 В меню “od.c", длительное нажатие (более 2 сек.) кнопки переведет нас к установке общего пробега, “od.c" перестанет мигать и на индикаторе одометра появится мигающий первый разряд, не значимые нули засветятся. Короткими нажатиями выставляем километры стартового пробега.

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

   Аналогичные действия и в других меню. После 10 секунд от последнего действия одометр перейдет к начальному состоянию!

   Запуск:

   После включения зажигания на 2 секунды загораются все сегменты индикаторов и все светодиоды, показывая исправность.

   Далее в течение 2 секунд на индикаторе спидометра проходит бегущая строка с именем разработчика прошивки и знаком UA, а на индикаторе одометра слово "HELLO".

   Далее еще на 2 секунды задерживается "UА HELLO". После этого прибор переходит в рабочий режим.

 

Первые две секунды нужны для диагностики элементов индикации.

Вторые две секунды заставки, обязательное условие разработчика программного обеспечения! Третьи две секунды мое обязательное условие. Я так ХОЧУ!

Удаляться и меняться не будет!!! Кому не нравится, не начинайте проект!!!

 

   Прибор и прошивка были проверены и обкатаны на макете, и все работает безупречно.

   Индикаторы применены с общим АНОДОМ (меняться тоже не будет!!!), они не являются дефицитом, и приобрести их возможно в любом интернет магазине.

    В архиве есть проект в ПРОТЕУСЕ, и там выставлены точные частоты для соответствующей скорости. После 40 км\ч и до 80 км\ч, спидометр будет показывать на 1 км\ч больше. 90 – 120 + 2 км\ч. 130 -150 + 3 км\ч. 150 - 180 + 4 км\ч. и так далее. В реальной ситуации отклонение от истинной скорости может достигать до + 5 км/ч. в интервале от 10 до 100 км\ч. и +10 км\ч. в интервале 100 - 200 км\ч. Все заводские спидометры имеют большую погрешность!

    Вот выдержка с форума на эту тему:

Одометры всех видов установленные на транспортные средства не относятся к классу точных приборов. Для каждого вида данных приборов установлены допустимые погрешности. Надо учитывать, что данные погрешности установлены только для самих приборов, все конструктивные изменения, а так же физический износ некоторых узлов автомобиля в эту погрешность не включены. Также, по техническим требованиям ЕЭК ООН N39 спидометры не могут занижать показания, поэтому и одометр конструктивно связанный со спидометром так же, как правило, дает завышенные показания. Средняя погрешность спидометра по правилам ЕЭК ООН N39 (ГОСТ Р 41.39-99) может быть только положительной и не превышать истинную скорость движения более чем на 10%+6 км/ч

   Также есть текстовый файл с скоростью и частотами округленными до целого числа.

   Формула расчета частоты с датчиком 6 импульсов до третьего знака 1.667 * ХХХ

( где ХХХ нужна скорость )

Скачать файл проекта

GPS спидометр с функцией трэкера — СделайСам — Витебск

Наш коллега-самодельщик Константин Репников самостоятельно сконструировал и собрал GPS-спидометр. Спасибо ему за идею и за подробную информацию о проекте!

Готовое устройство периодически отсылает местоположение, через GPRS, на сайт https://shareobj.com, где можно отслеживать позицию трекера в реальном времени.

GPS спидометр с функцией трэкера.

Разрабатывался и применяется как вело-спидометр, но может применяться на любом транспорте, никаких ограничений нет.

Использованы модули:

1. Arduino Nano 3.0
2. SSD1306 128×64
3. SIM800L
4. VK2828U8G5LF, VK2828U7G5LF и др

Управление:

Кнопка 1 — переключает режимы по кругу, при нажатии более 3 секунд выключает спидометр
Кнопка 2 — функционал зависит от режима

Режимы:

1) Отображение скорости
на экране отображается скорость, километраж и время в пути
кнопка 2 переключает километраж и время в пути
при нажатии более 3 секунд сбрасывает километраж, время в пути и сохраняет результаты в памяти
2) Отображение времени
на экране отображается время и дата
кнопка 2 при нажатии более 3 секунд начинает переключать часовой пояс по кругу, переиод 500мс
3) Отображение координат
на экране отображаются текущие координаты и общее пройденное растояние
кнопка 2 при нажатии более 5 секунд сбрасывает общее пройденное растояние
4) Отображение сохраненных результатов
на экране отображается дата и время сохранения, пройденое растояние и время в пути, максимальная скорость
кнопка 2 переключает сохранения по кругу
5) Отображения состояния GSM модуля
на экране отображается период передачи данных на сайт и IMEI модуля
возможный период передачи 5, 10, 15, 30, 45, 60 секунд
если модуль выключен IMEI не отображается
кнопка 2 отсылает USSD запрос для получения баланса
при нажатии более 3 секунд меняется период передачи или отключается GSM модуль

В коде полно мусора, но с большего, комментирован…

GPS_Speedometer.7z

GPS спидометр — Меандр — занимательная электроника

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

Функции:

  • GPS Спидометр
  • GPS координаты
  • Одометр
  • Текущий пробег, время в пути.
  • Данные о предыдущей поездке.
  • Суточный пробег
  • Максимальная скорость
  • Тахометр
  • Моточасы
  • Вольтметр
  • Температура двигателя с индикацией перегрева
  • Часы

В приборе используется:

Большой ЖКИ фирмы МЭЛТ 20×4 с размером рабочего поля 123мм на 43мм.

GPS приемник MC-1513.

Датчик температуры DS18B20.

 

Кнопка 1 служит для переключения режимов отображения (Главный экран->координаты->одометры->счетчик моточасов).

Кнопка 2 сбрасывает все накопленные данные (нужно удерживать нажатой в момент подачи питания).

 

Испытания пока проводились только на автомобиле (зима) и надо сказать, что он там прижился.

«Камни».

При пропадании питания все накопленные данные записываются в энергонезависимую память.

Момент выключения определяется с помощью компаратора.

При использовании, в качестве резервного питания, конденсатора 2200мкФ удавалось записать только 4 байта. С ионистором на 1F устройство работает после отключения питания около 18 секунд, но поскольку испытания проводились в машине при минусовой температуре, оказалось, что емкость ионистора падала в 10 раз. Хотя везде написано про их широкий температурный диапазон. В помещении свободно хватало ионистора в 0.1F.

Модуль GPS MC-1513, при наличии на выходе RXA напряжения меньше 3.6 вольта, не подает признаков жизни, видимо так он определяет наличие подключения к принимающему устройству. (Два дня отнял…). Надо ещё сказать, что при минусовой температуре GPS перестает ловить спутники.

На данный момент не решена только одна задача:

При кратковременном отключении питания (а контроллер продолжает работать от ионистора) происходит вызов процедуры сохранения данных. Но после выхода из нее не редко происходит зависание контроллера. Положение спасает Watch Dog таймер без каких либо последствий для информации, но факт существования проблемы остается.

СПИДОМЕТР И ОДОМЕТР СДЕЛКИ -

Работа над проектом проста. Также очень важно понимать это для создания проекта. В основном устройство состоит из геркона или магнитного переключателя, установленного на раме цикла, и магнита, установленного на одной из спиц. Когда колесо вращается, магнит запускает переключатель при каждом обороте. Сигнал поступает на Arduino, который считает количество вращения и находит пройденное расстояние (вы должны предварительно ввести диаметр вашего цикла).Arduino также измеряет время и вычисляет скорость. Затем выходной сигнал Arduino поступает на ЖК-дисплей, где он отображается в милях в час (вы можете преобразовать его, если хотите).

Полный проект обойдется вам примерно в 5-10 долларов в зависимости от места, в котором вы живете. Велоспидометр также потребует умеренных навыков пайки и послеобеденного времени. Итак, без лишних слов, материалы для сборки -:

1. Плата arduino - я получил 330 рупий, что составляет около 5 долларов, но для программирования pro mini вам также понадобится arduino uno или usb для ttl (как запрограммировать arduino pro mini с uno) или, если у вас его нет, используйте arduino micro или arduino uno.

2.Arduino 16 × 2 lcd (150 рупий или 2.3 $)

3.7805 регулятор напряжения (увеличивает контроль над контрастностью, нет существенной разницы - опционально)

4. 2x переключателя для подсветки и включения (опционально)

5.220 резистор

6. тримерный потенциометр 10 кОм

7. женские и мужские разъемы, если вы хотите, чтобы геркон был съемным

8. геркон

9. провод

10. переключатель мгновенного действия для изменения режимов

11.Конденсатор 0,1 мкФ для уменьшения дребезга кнопки

Резистор 12,10 кОм

Вам потребуются инструменты

1. паяльник

2. припой

3. корпус

4. режущий инструмент, например дремель для вырежьте отверстия в корпусе для установки ЖК-дисплея и набейте

5. Горячий клей или любой клей для крепления различных компонентов.

Шаг 3: КОД

Перед тем, как перейти к электронике, было бы хорошо прошить код, чтобы потом вам не приходилось бороться между проводами

прошейте данный код на Arduino, но НЕ ЗАБЫВАЙТЕ УСТАНАВЛИВАЙТЕ ДИАМЕТР ВАШЕГО ЦИКЛА.

Для получения дополнительной информации: СПИДОМЕТР И ОДОМЕТР DIY

Спидометр Arduino с использованием датчика Холла и магнита

Вы когда-нибудь задумывались, как работает спидометр? В этом уроке мы покажем вам, как построить свой собственный спидометр, измеряя магнитные импульсы, генерируемые дисковым магнитом, расположенным на вращающемся колесе.


АППАРАТНОЕ ОБЕСПЕЧЕНИЕ:

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ:

Шаг 1: Подключения
  • Подключите Wireling TinyShield к TinyScreen +.
  • Используйте длинный 5-контактный кабель Wireling для подключения датчика Холла к порту 0 на Wireling TinyShield.
  • Подключите TinyScreen + к компьютеру с помощью кабеля micro USB.

Шаг 2: Программное обеспечение
  • Откройте IDE Arduino и выберите TinyScreen + в меню «Инструменты» -> «Плата».
  • Убедитесь, что вы подключены к правильному порту. Перейдите в Инструменты -> Порт и выберите порт, содержащий «TinyScreen +».»Номер порта может отличаться.

Шаг 3: Код
  • Загрузите код и необходимые зависимости из раздела «Программное обеспечение» выше.
  • Обратите внимание, что вам, скорее всего, потребуется изменить некоторые постоянные параметры, расположенные в начале программы:
  • Постоянное логическое значение USE_MPH позволяет вам выбирать между английской и метрической системами как для ввода WHEEL_DIAMETER, так и для вывода скорости.
  • Убедитесь, что вы установили параметр WHEEL_DIAMETER, так как он важен для получения точных результатов.В отличие от купленных в магазине спидометров для колес разных размеров, вы можете указать точное значение.
  • RPM_SAMPLE_PERIOD позволяет вам контролировать, насколько далеко в прошлом программа включает показания датчиков. Не стесняйтесь экспериментировать с тем, как это значение влияет на ваши результаты.
  • После изменения этих параметров загрузите код в TinyScreen +, используя кнопку загрузки в верхнем левом углу интерфейса Arduino IDE. (на фото ниже)


Шаг 4: Аппаратное обеспечение
  • Для измерения скорости необходимо разместить дисковый магнит где-нибудь на вращающемся колесе.На велосипедах обычное место на спицах. Мы прикрепили наш на винт, торчащий из колеса самоката. Если магнитных поверхностей нет, возможно, вам придется приклеить магнит изолентой. Не кладите дисковый магнит на обод, если у вас есть тормозные колодки.
  • Датчик Холла необходимо разместить где-нибудь на раме автомобиля. Убедитесь, что датчик установлен таким образом, чтобы магнит подходил очень близко к передней части при каждом повороте. Сильный магнит обеспечит расстояние 5-6 дюймов, в то время как слабый магнит может быть в пределах 2 дюймов или меньше.
  • Установите TinyScreen + под любым углом обзора.

Вот и все! Надеемся, вам понравился этот простой проект спидометра!


Как всегда, если у вас есть какие-либо вопросы или отзывы, пишите нам по адресу [email protected] .

Покажите нам, что вы делаете, отметив @TinyCircuits в Instagram, Twitter или Facebook, чтобы мы могли показать это!

Спасибо, что сделали с нами!

Мэтью Макмиллан: Arduino - Цифровой спидометр

У меня в машине есть все приборы для вторичного рынка, а недавно умер мой спидометр.Стрелка просто упала до нуля, пока я ехал по шоссе. С тех пор я использую свой Garmin GPS в качестве спидометра, но его карты действительно устарели, и я предпочитаю использовать Waze на своем iPhone для навигации. Я хотел отказаться от Garmin, но тогда у меня не было бы спидометра. Я подумал, что это будет забавный проект - попытаться построить дешевый спидометр с использованием Arduino Uno и какого-нибудь цифрового дисплея.

Я купил зеленый 7-сегментный дисплей с рюкзаком I2C и цветной TFT ЖК-дисплей 2,2 дюйма от Adafruit, чтобы поэкспериментировать.

7-сегментный
2,2-дюймовый TFT-дисплей
Поиграв с обоими дисплеями, я обнаружил, что TFT-дисплей не обновляется достаточно быстро. (на самом деле я просто не знаю, как заставить его обновляться достаточно быстро). Перерисовка на TFT заставила цифры мигать, что очень раздражало. Я могу использовать TFT-экран для отображения другой информации, которую не нужно часто обновлять, например средней скорости и пройденного расстояния.7-сегментный сработал хорошо, поэтому я сосредоточился на его использовании. Библиотека светодиодных рюкзаков Adafruit для 7-сегментного дисплея довольно проста в использовании. Записывать числа на 7-сегментный дисплей почти так же просто, как на серийный отпечаток. Единственная проблема, с которой я столкнулся, - это регулировка яркости. Функция яркости в их библиотеке у меня не работала. В итоге я смотрю на код в их библиотеке, написав свою собственную функцию.

Рюкзак на 7-сегментном дисплее позволяет управлять им с помощью Arduino с использованием протокола I2C (также называемого двухпроводным интерфейсом).Без рюкзака I2C вам пришлось бы напрямую контролировать все восемь сегментов каждого числа, которые использовали бы все контакты на Arduino, или вам пришлось бы придумать какой-то другой метод, который, вероятно, в конечном итоге будет очень похож на то, что сделал Adafruit. Каждая модель Arduino имеет определенные контакты, которые используются для I2C. На пинах Uno для этого используются аналоговый 4 и аналог 5. См. Страницу библиотеки Wire для получения дополнительной информации о I2C.

Что такое VSS?


Большинство современных автомобилей с компьютерным управлением с конца 1990-х годов имеют датчик, называемый VSS или датчик скорости транспортного средства.Расположение датчика варьируется, но все они делают одно и то же, а именно подсчитывают количество оборотов какой-либо части трансмиссии. На моей машине VSS находится в коробке передач. Выходной сигнал VSS представляет собой некоторое количество импульсов на милю в прямоугольном сигнале 5 В постоянного тока. Первым шагом в этом проекте было выяснить, сколько импульсов на милю выдает мой VSS. Это число варьируется от производителя автомобиля к производителю автомобиля, а иногда и от модели к модели. Я нашел компанию, которая производит системы круиз-контроля на вторичном рынке, и их руководство по установке содержало список автомобилей и количество импульсов VSS на милю.Значение импульсов на милю может варьироваться от 2000 до 38600. VSS на моем автомобиле выдает 4000 ppm, что кажется обычным значением, но вы должны выяснить правильное значение для вашего конкретного автомобиля, иначе показания будут неправильными. . Вы также можете обратиться к их руководству по установке, чтобы узнать расположение сигнального провода VSS. Важно, чтобы вы только касались провода VSS, а не прерывали его полностью. ЭБУ двигателя и трансмиссии также используют этот сигнал.

Время для математики


Итак, теперь я знаю, что мой VSS выдает 4000 импульсов на милю.Затем мне нужно выяснить, как преобразовать это в мили в час. Посмотрев на пример кода о том, как измерять импульсы, я решил, что буду считать импульсы VSS за одну секунду. С этой информацией я мог затем преобразовать количество импульсов в мили в час. Сначала я преобразовал один час (час из миль в час) в секунды, которые равны 3600. Затем разделите количество импульсов на милю на количество секунд (4000/3600). Затем вы делите количество импульсов, подсчитанных датчиком, на это значение. Вот моя окончательная формула:
 мили в час = количество импульсов / (импульсы VSS на милю / период времени) 

Построение прототипа


Я начал с Arduino Uno и Adafruit Protosheild.Взломал старый USB-кабель для подключения 7-сегментного дисплея. Для этого отлично подойдет USB-кабель. Два провода для I2C и два провода большего калибра для питания и заземления. Я отрезал концы USB-кабеля и зачистил каждый из проводов. Я залудил провода припоем, чтобы вставить их прямо в макетную плату, и добавил термоусадочную трубку для снятия напряжения. Вот схема подключения по Фритзингу:
- Соедините 'C' (CLK) на дисплее с аналоговым # 5. (Леонардо Цифровой # 3, Мега цифровой # 21)
- Подключите «D» (DAT) на дисплее к аналоговому №4.(Leonardo Digital # 2, Mega digital # 20)
- Подключите GND на дисплее к общей земле
- Подключите VCC + на дисплее к питанию + 5V

- Датчик VSS на автомобиле подключается к Digital # 5

- Аналоговый № 0 используется для измерения фотоэлемента (светозависимого резистора)

Вот так выглядит разводка

Я быстро сделал небольшой картонный корпус для 7-сегментного дисплея, чтобы защитить его от солнца.


После того, как я протестировал его ночью, я решил добавить фотоэлемент (светозависимый резистор) для управления яркостью дисплея.Чтобы добиться правильного изменения яркости, потребовалась некоторая настройка. Первоначально яркость дисплея колебалась с каждым проходом уличного фонаря. Я изменил код, чтобы использовать в среднем 30 значений уровня света. Таким образом яркость меняется медленно.

Вот как это выглядит в моей машине днем.


а ночью

Код


Репозиторий github находится здесь https://github.com/matt448/arduino/tree/master/Speedometer_7seg
Код для секции аппаратного подсчета импульсов взят прямо из примера 18.7 в кулинарной книге Arduino. Насколько я понимаю, это работает: чип ATmega имеет несколько аппаратных таймеров. Этот код использует таймер на Digital # 5 на UNO. Часть кода TCCR1B устанавливает биты на этом таймере, чтобы настроить его на подсчет импульсов. Затем код ожидает одну секунду и считывает, сколько импульсов было сохранено в аппаратном счетчике. Затем аппаратный счетчик сбрасывается на ноль для следующего цикла. Имейте в виду, что этот код написан специально для Arduino Uno. Его нужно будет изменить для работы с другими досками.

Вот текущая версия кода в целом.


Полученные результаты

Я проверил свой новый спидометр по GPS, и он оказался правильным по деньгам. Он также реагирует немного быстрее, чем GPS, и работает внутри гаража, в отличие от GPS. Пользуюсь им уже около месяца, работает отлично. Единственный минус, который я обнаружил, - это то, что дисплей не читается, когда солнце светит прямо на него, что не очень часто из-за корпуса. Я изучаю другие варианты отображения теперь, когда у меня есть кое-что, что работает.Дисплеи VFD кажутся хорошим вариантом. Еще я пока возился с TFT-дисплеем 2.2 ". Вот видео работы спидометра

Следующие шаги

Я планирую спаять все соединения на перфорированной плате, которую я превратил в своего рода щит. Мне нужно положить его в коробку и засунуть куда-нибудь в приборную панель. В настоящее время я питаю устройство от источника питания 12 вольт на USB, который подключается к гнезду прикуривателя. Я мог бы разобрать его и упаковать внутренности блока питания вместе с Uno.
Цифровой спидометр

- Joe's Projects

Для электроники я использовал детали, которые в основном уже лежали. Дисплей представляет собой четырехзначный семисегментный светодиодный рюкзак Adafruit и соответствующий светодиодный дисплей. У меня были под рукой и синий, и белый дисплеи. Я начал с белого, но он слишком вымывался на солнце и переключился на синий.

Рюкзак Adafruit легко подключить, поскольку он является устройством I2C. Ему просто нужны два провода для питания и два провода для связи I2C.

Аппаратное обеспечение, отвечающее за управление дисплеем и мониторинг датчика Холла, - это Arduino. Я использовал Mega 2560, что для этого слишком много (Uno подойдет), но я буду расширять его для других проектов и хотел бы дополнительные контакты для будущего использования.

Я также купил дешевый блок питания от 12 В до 5 В на Amazon. Он используется для питания Arduino от электрической системы автомобиля, когда вспомогательное реле включено.

Подключение очень простое:

  • Датчик Холла: 5 В и земля от источника питания Arduino или понижающего преобразователя, а оставшийся провод идет к контакту прерывания на Arduino.

  • Дисплей: 5 В и земля от блока питания понижающего напряжения, а также провода часов и связи от Arduino.

  • Питание Arduino; 5в и земля от блока питания понижающего.

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

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

Я только что купил 3D-принтер, поэтому логично было напечатать корпус. Тот, который я сделал, довольно прост, он состоит из двух частей, между которыми зажат экран.Я оставил место за дисплеем для проводов, выемку сбоку для проводов, идущих к Arduino, и встроил зажим в нижнюю часть корпуса, чтобы его можно было прикрепить к выступу нактоуза. Я разработал корпус в Modo, экспортировал две части в виде файлов STL, нарезал их в Cura и распечатал на своем Ender 3 Pro в ABS. ABS потребовалось несколько попыток, которые, наконец, были решены с помощью лака для волос и ограждения (на данный момент фото-палатка), чтобы слои не разделялись.

Дисплей просто крепится на нактоуз перед спидометром.Черный ABS хорошо сочетается с ним и не тает под жарким солнечным светом, как PLA.

Если хотите, вы можете использовать двигатель постоянного тока для поворота спидометра. Контроллер двигателя Pololu легко справится с этой задачей, если вы найдете подходящий двигатель постоянного тока, который может вращаться с низкой и высокой скоростью, необходимой для спидометра. Поскольку в будущем я планирую построить полностью цифровую комбинацию приборов, я решил использовать светодиодный дисплей. Это также придает уходу немного больше ощущения «Назад в будущее».

Я решил поддерживать на дисплее десятые доли мили в час, в основном для целей отладки, и потому что у меня было четыре цифры дисплея для работы. Я выяснил, что шина была около 80 дюймов в диаметре, но это оказалось достаточно грубым, чтобы спидометр отклонялся на несколько миль в час по сравнению со спидометром на основе GPS на моем телефоне. Вместо этого я нашел точный размер моих задних шин 225 / 60r15 в Google (80,242 дюйма), использовал его для вычисления окружности шины и, следовательно, расстояния, пройденного за один оборот, и разделил это на 16 (количество зубьев), чтобы получить пройденное расстояние на зуб.

Подсчет импульсов

Программное обеспечение Arduino предприняло несколько попыток. Моя первая попытка заключалась в подсчете количества импульсов за четверть, половину или полную секунду в обработчике прерывания. Это сработало, но на кольце VSS недостаточно зубцов для получения достаточно точных показаний. Например, он будет прыгать между чем-то вроде 36,2 и 38,1, всегда перемещаясь по этим шагам и никогда между ними. Если бы я считал импульсы в течение более длительного периода времени, я бы получил более точную скорость, но дисплей обновлялся бы реже.Решил попробовать другой маршрут.

Время между импульсами

Лучшим решением было подсчитать время, прошедшее между зубцами, проходящими через датчик. Arduino имеет счетчик микросекунд с точностью до четырех микросекунд, что на порядки меньше, чем время прохождения зуба даже на скорости 100 миль в час. Я был обеспокоен тем, что очень маленькие числа (импульсы на милю) и очень большие числа (расстояние на зуб в милях) превысят разрешение 32-битного поплавка на Arduino, но это было в пределах допустимого диапазона.

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

Есть несколько способов сгладить входной сигнал датчика. Один из них - усреднение импульсов вместе, но для правильного выполнения этого вам потребуется некоторое количество отсчетов, вероятно, сохраненных в скользящем буфере, и во время отображения вы должны сложить отсчеты и разделить их на общее количество. Я не хотел заниматься этим, поэтому искал другое решение.

При поиске в Google был обнаружен экспоненциальный фильтр в библиотеке Megunolink для Arduino. Библиотека делает гораздо больше, но все, что мне было нужно, - это функция фильтра.Это работает путем применения нового значения к ранее отфильтрованному значению, придавая больший вес самому новому значению, в результате чего получается сглаженное значение, которое по-прежнему отдает предпочтение последнему вводу. Вы можете установить вес фильтра, чтобы решить, насколько важно последнее значение в уравнении. После некоторой работы я обнаружил, что 20 - лучший компромисс между плавностью и временем обновления.

Тем не менее, в сигнале все еще был небольшой шум. Этот шум проявляется в виде скачков скорости на 20 или более миль в час по сравнению с текущей фактической скоростью.Я почти уверен, что это был просто шум в сигнале датчика Холла от длинного провода. Случайный всплеск напряжения будет интерпретироваться как новый импульс от датчика Холла, что даст ошибочный всплеск скорости. Я заменил три провода на экранированный кабель, атакуя экран на землю блока питания понижающего преобразователя (другой конец не подключен, что гарантирует, что он действует как антенна для ложных сигналов).

Чтобы избежать изменения значения, когда я пытался его отобразить, я использовал изменчивые переменные для времени импульса и сохранил отфильтрованное значение в другой переменной.Эта переменная была прочитана основным циклом и сохранена в локальной переменной в атомарном блоке, чтобы прерывание не могло случайно изменить ее, пока мы читали ее. По сути, это те же меры защиты, что и при написании многопоточного кода на компьютере.

Дисплей

Семисегментный дисплей довольно тривиально управляется библиотекой семисегментных дисплеев рюкзака Adafruit. Сначала я просто использовал print () для отправки ему целых чисел, но решил, что мне нужен дисплей с фиксированной точкой.Когда нет скорости, на дисплее будет отображаться 0,0.

Для этого я вычисляю скорость в милях в час из периода импульсов, умножаю на 10, затем преобразую число с плавающей точкой в ​​целое число, чтобы удалить оставшуюся десятичную часть. Затем я очищаю буфер дисплея и передаю целое число на дисплей по одной цифре за раз, включая десятичную точку для второй цифры справа. Это сработало отлично. Такой способ установки цифр по одной - один из примеров библиотеки Adafruit.

Мне также нужно было справиться с ситуацией, когда машина не движется.В таких ситуациях спидометр будет считывать последнюю скорость за последний период импульса, которая будет близка к нулю, но не на самом деле. Я исправил это, очистив дисплей до 0,0, если с момента последнего считывания импульса прошло более 1/4 секунды.

Код Arduino настроен на обновление дисплея только восемь раз в секунду. Это дает мгновенное отображение, не тратя все время только на обновление дисплея.

Еще я хотел добавить небольшую анимацию запуска. Это простой дисплей, поэтому вы не можете много сделать.Я просто включил центральный горизонтальный сегмент цифр, гоняясь справа налево и обратно, прежде чем переключиться на 0,0. Это простой цикл с операторами delay (), который запускается только при запуске и должен происходить только до того, как автомобиль действительно начал движение.

Дисплей имеет пятнадцать уровней яркости (плюс выкл.), Которые можно настроить с помощью программного обеспечения. Первоначально я пытался установить его на 10 или около того, но при дневном свете это было слишком тускло. Я закончил употребление в 13, что не слишком ослепляет по ночам.Даже на этом уровне он будет вымываться на солнце, но в основном это связано с тем, насколько яркой остальной дисплей является, когда светодиоды выключены. Я мог бы добавить фотосенсор для затемнения дисплея в зависимости от окружающего света, но меня это устраивает.

Спидометр Arduino менее чем за 15 долларов США

Всем привет!
------------------------------------------------- -------------------------------------------------- -----------------------------------
Спидометр :
Идея заключалась в том, чтобы ознакомиться с игрой и запустите KISS.Итак, прежде чем решить, где разместить в макете, я планирую «портативный» (чтобы его можно было использовать также в модульном макете во время собраний?)

Используемый Micro - это маленький и дешевый Nano, которого более чем достаточно для этого простого приложения:
http://www.ebay.com/itm/5PCS-USB-Nano-V3-0-ATmega328-16M-5V-Micro- controller-Ch440G-board-For-Arduino-A- / 201152975734? ssPageName = ADME: L: OU: IT: 3160

Механически будет базироваться на пластиковой планке, удерживающей два ИК-датчика на концах:
http: // www.ebay.com/itm/Infrared-reflective-Photoelectric-Switch-IR-Barrier-Line-Track-sensor-TCRT5000L-/310536079942?ssPageName=ADME:L:OU:IT:3160
Я заказал еще несколько запасных датчиков TCRT5000 (в случае, если это сработает) для установки где-нибудь по пути в будущем.
Если эти датчики демонстрируют недостаточную чувствительность на разумном расстоянии ... Я также заказал пару:
http://www.ebay.com/itm/Smart-car-Obstacle-avoidance-Infrared-Sensor-module- Отражающий фотоэлектрический- / 400494756580? SsPageName = ADME: L: OU: IT: 3160

«Мозг» можно расположить на панели (кабина или держатели карт?), И я планирую небольшой ЖК-дисплей и аудиоплату для генерации предварительно записанных голосовых сообщений.
Детали проекта и стоимость (более-менее!):
- 1 x Arduino Nano = 4 доллара.
- 2 платы ИК-датчиков = 3 $.
- 1 x ЖК-дисплей, 2 строки x 20 символов = 5

долларов США

- 1 аудиоплата (опция) = 3

$

------------------------------------------------- -
ИТОГО = 15

$

http://www.ebay.com/itm/IIC-I2C-TWI-SP-I-Serial-Interface1602-16X2-Character-LCD-Module-Display-Blue-/310565065847?ssPageName=ADME:L:OU: IT: 3160
Плата звукового голосового генератора в качестве опции.... предупредить операторов!
http://www.ebay.com/itm/ISD1820-Sound-Voice-Recording-Playback-Module-With-Mic-Sound-Audio-Loudspeaker-/200958077647?ssPageName=ADME:L:OU:IT:3160

Project
Чтобы синхронизировать вывод прерывания D2 (прерывание 0), поскольку внутренний таймер Arduino не является полностью надежным, я пробую аналоговый выход ШИМ D3, подключенный напрямую к выводу прерывания D2.
Аналоговые выходы ШИМ имели очень устойчивую прямоугольную волну 490 Гц . Рабочий цикл определяется значением, записанным на аналоговый вывод.(т.е. - 0 - ноль вольт, 127 - рабочий цикл 50%, 255 - высокий логический уровень / 5В).

Также я ограничиваю максимальное время измерения между двумя датчиками максимум 60 секундами, а расстояние между датчиками "настроено аппаратно" для измерения скорости поезда в пределах 1/50 или 1/100 (выбирается перемычкой или просто подключается программно) масштабной мили ( или км) оба отображаются на ЖК-дисплее.
Означает, что вам необходимо установить 2 ИК-датчика на определенном расстоянии (в зависимости от требуемого масштаба и разрешения).
Расстояние между датчиками для N и HO указано здесь:

Масштаб - масштабная миля (дюйм) - 1/50 мили (дюйм) - 1/100 мили (дюйм)
N 396.000 7,920 3,960
HO 728,276 14,566 7,283

Масштаб

- Масштаб Км (см) - 1/50 км (см) - 1/100 Км (см)
N 625,00 12,50 6,25
HO 1149,43 22,99 11,49

Например, в масштабе N, если вы используете интервал 1/100 мили, вам необходимо разместить датчики на расстоянии 3,96 дюйма друг от друга.
Если вашей конкретной шкалы нет в списке, вам необходимо рассчитать правильный интервал, разделив 63360 (количество дюймов в миле) на коэффициент вашей шкалы, а затем разделив полученный результат на выбранный интервал (50, 100).

Точность устройства зависит от того, насколько точно расположены датчики!
Ошибки расстояния между датчиками можно свести к минимуму, выбрав самый длинный интервал, подходящий для вашей компоновки и масштаба.
Кроме того, ИК-датчики используют доступное окружающее освещение. Монтаж их в туннелях или темных углах макета не работает . Лучше всего выбрать хорошо освещенную часть макета, где источник света исходит сверху и «внутри» макета. Если источник света находится «за пределами» планировки, проходящий мимо человек может вызвать срабатывание устройства.(эта информация взята со страницы TCS TrainSpeed)

Расчет скорости очень прост. Например:

  • , если датчики установлены в масштабе 1/100 мили :
    10 / (время в 1/10 секунды)) x 3,6 = км / ч; Км / ч x 16093 =
  • миль / ч
  • Если датчики находятся на 1/50 шкалы мили:
  • 5 / (время в 1/10 секунды)) x 3,6 = км / ч; Км / ч x 16093 = миль / ч

Примечание: Для лучшего отображения скорости разрешения моя процедура прерывания считает 1/10 секунды вместо секунд.

В конце концов, я наконец нашел время, чтобы написать какое-то программное обеспечение (ну, я признаю, что не очень хорошее, но, по крайней мере, кажется, работает хорошо)
В качестве первого теста я подключил две кнопки вместо двух ИК датчики.
А программа позаботится сейчас только о направлении left_right (от датчика 1 к датчику 2).
Следующим шагом будет завершение эскиза с возможностью обнаружения движения в обратном направлении на той же дорожке.
И ... сделай ПО лучше "Статус машины"!
Также я подключил светодиод для отображения времени 1/10 секунды во время измерения, и на данный момент использую Serial Monitor вместо последней ЖК-библиотеки...
Ну, у нас еще много свободного времени для завершения, но ... Я развлекаюсь сейчас, и это был основной прицел!
См. Прикрепленный список эскизов на нынешнем этапе эволюции ... (скачать файл PDF)
Позже ... второй раздел ... но никаких обещаний относительно графика!

Приложение Размер
speedometer2_listing.pdf 73,72 KB
layout.jpg 172.83 КБ

Создайте свой собственный велосипедный спидометр Arduino

Если вам интересно узнать, как создавать свои собственные электронные устройства с использованием Arduino, вот отличный проект от Instructables, который будет тренировать ваш мозг, а также ваши ноги. Это велосипедный спидометр Arduino, который рассчитает, насколько быстро вы двигаетесь на велосипеде.

В этом проекте используется магнитный переключатель (также называемый герконом) для измерения скорости одного из колес велосипеда.Arduino вычисляет миль в час и отправляет эту информацию на ЖК-экран на руле во время езды. Он совместим с любым типом велосипеда / колеса, просто введите радиус колеса в прошивку, чтобы откалибровать устройство для вашей настройки.

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

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

И, конечно, вы можете настроить.Как отмечает один из комментаторов Instructables: «Вы также можете довольно просто добавить GPS и возможности ведения журнала. Таким образом, вы могли видеть, насколько быстро вы идете и куда. С этими данными вы могли начать прогнозировать, сколько времени это займет у вас, основываясь на во сколько вы уезжаете, а мы едем. Хотя вы можете купить спидометр дешевле, это дает вам платформу для добавления более крутых вещей ".

Как сделать свой собственный велосипедный спидометр с Arduino

Сделайте свой спидометр

Сегодня, в XNUMX веке, практически любое транспортное средство оснащено собственным спидометром и одометром.То же самое и с автомобилями, мотоциклами, некоторыми электронными велосипедами и т. Д. Кроме того, в различных магазинах приложений есть множество приложений, которые позволят нам узнать, насколько быстро мы едем и сколько километров мы проезжаем, используя GPS-навигатор. мобильное устройство. Но в чем проблема этих приложений? Работает на устройстве, которое не всегда бывает самым дешевым. Как и практически во всем, решением проблемы могло стать создание собственного спидометра .

Все знают, сколько стоит айфон. Лично у меня он есть, и в течение нескольких месяцев я боялся упасть с велосипеда больше из-за телефона, чем из-за себя.Сейчас я использую Garmin, но любое устройство этой марки стоит сотни евро, что многие пользователи не могут или не хотят тратить. Если мы знаем, что делаем, иногда лучший вариант для нас - собрать собственное оборудование, и в этой статье мы покажем вам, как строит с нуля собственный одометр.

Спидометр и одометр для велосипедов

Требования

Для установки спидометра нам понадобится:

  • Arduino UNO & Genuine 1 (товаров не найдено.).
  • 1 Adafruit RGB Blacklight LCD - 16 × 2 (купить).
  • 2 кнопочных переключателя SparkFun 12мм купить.
  • Резистор на 1221 Ом (купить).
  • 3 резистора 10кОм (купить).
  • 1 потенциометр однооборотный 10 кОм (купить).
  • 1 Датчик Холла (купить).
  • Руки, время и терпение.

Для кого это руководство?

Как мы уже упоминали ранее, сегодня практически любой телефон на рынке имеет GPS и приложение, такое как Runtastic или Strava.Лично я бы не рекомендовал это руководство всем, у кого уже есть смартфон, если только вы не хотите создать спидометр самостоятельно. Ну, и убедитесь, что вы не сломаете свой телефон в результате несчастного случая.

Он также может быть нацелен на тех, кто уже имеет Arduino Starter Kit по другой причине и не хочет раскошелиться на базовый велокомпьютер . Этот спидометр будет иметь общую стоимость чуть более 30 евро, поэтому цель этого руководства должна быть у людей, которые не хотят тратить много денег и хотят иметь счет за километраж, созданный своими руками.

Что будем производить

Мы собираемся изготовить одометр и спидометр для велосипедов, которые сообщат нам:

  • Пройденное расстояние в километрах.
  • Время активности в часах, минутах и ​​секундах.
  • Средняя скорость в км / ч.
  • Достигнутая максимальная скорость.
  • Возможность записи до 99 кругов.

Как пользоваться полнофункциональным спидометром

Цепи спидометра

Когда мы закончим производство нашего спидометра для велосипедов, мы можем его включить. в первый раз запускаем его или делаем сброс Сообщение с текстом «НАЖМИТЕ КНОПКУ, ЧТОБЫ ЗАПУСТИТЬ» появится на ЖК-экране 16 × 2. Нажатие одной из кнопок Pause / Resume или Display Mode запустит первый период / круг.

Следующее, что мы увидим, - это сообщение "ЦИКЛ БЕЗОПАСНО!" (осторожно циркулируйте) в течение 2 секунд, но в этот временной интервал уже ведется запись. Когда сообщение исчезнет, ​​мы сможем увидеть пройденные километры, скорость рядом с «S» (для «Скорость»), уже затраченное время во второй строке и среднее значение рядом с «A» (для «Среднее» ").

Вся информация отображается в режиме реального времени . Это относительно важно, учитывая, что упомянутые выше мобильные приложения рассчитывают расстояние с помощью GPS, поэтому оно не отображается в реальном времени. Разница в том, что если у нас нет датчика на колесе, в мобильных телефонах мы видим скачок скорости, а в этом устройстве мы видим, что значения меняются постепенно, как в автомобиле. Указанные датчики должны иметь Bluetooth и быть совместимыми с мобильным устройством.И покупать их по отдельности обычно не очень дешево.

Отображает информацию в четырех углах

Символ «+» появится в верхнем левом углу на 250 мс, когда он обнаружит один оборот колеса. Нажатие кнопки «Display Mode» изменит «A» второй строки на «M», что покажет нам максимальную скорость , которой мы достигли за этот круг / период.

При нажатии кнопки Пауза / Возобновление запись останавливается и текущий круг сохраняется в памяти.Сообщение "ПАУЗА!" Затем появится. в течение 2 секунд, и результаты круга, который мы только что закончили, появятся с номером круга в верхнем левом углу экрана, за которым следует «Avg», показывающая среднюю скорость всего круга, и «Max» для максимальной скорости тура. . Во второй строке мы увидим расстояние в километрах, за которым следует круг в часах, минутах и ​​секундах.

Сохраняет до 99 кругов

Электронная схема спидометра (Нажмите для увеличения).

Если мы нажмем кнопку Display Mode во время паузы, произойдет переход между разными записанными кругами .При первом нажатии он покажет нам лучший круг из всех с буквой «T» в верхнем левом углу, в то время как другие нажатия перенесут нас на 1, 2, 3 круг и т. Д., В зависимости от того, сколько кругов у нас есть. записано.

Если мы снова нажмем кнопку «Пауза», будет записана еще одна запись, но уже новый круг, и снова появится сообщение, которое просит нас осторожно передвигаться. Если мы снова нажмем кнопку «Пауза» и увидим сообщение «ЦИКЛИРУЙТЕ БЕЗОПАСНО!» круг не будет записан , и устройство вернется в режим паузы, показывая данные последнего пройденного круга.

Этот спидометр может записать 99 кругов . Если мы дойдем до 100 круга, оставшиеся данные будут сохранены в верхней части круга 99. Что не изменится, так это то, что рекорды, достигнутые во время нашей активности, будут сохраняться, даже если данные с 99 круга были стерты.

Добавить комментарий

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