Электронный спидометр своими руками на основе arduino. Велосипедный спидометр на Arduino. Установка геркона на колесо

Электронный спидометр своими руками на основе arduino. Велосипедный спидометр на Arduino. Установка геркона на колесо

01.03.2019

Что такое гаджет и виджет?

Гаджет - это устройства, которые как-бы дополняют другие устройства. Примером гаджетов может быть USB подстветка для клавиатуры, подставка для ноутбука, держатель для мышки и так далее. Смысл в том, что они вроде бы и сами по себе устройства, но без основного прибора они не имеет смысла обычно.

Так же сейчас стали относить к гаджетам уже такие приборы, которые могут "существовать" и без основного устройства. К ним относят планшеты, коммуникаторы, фотоаппараты, плееры и ещё куча всего такого "маленького и нужного".

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

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

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

Как установить гаджет/виджет в Windows XP

Итак, папка для гаджетов находится по пути {буква_системного_диска} -> Program Files -> Windows Sidebar -> Gadgets

Теперь обращаем внимание на архив с гаджетом. Внутри содержится файл с расширением .gadget . Этот архив нужно разархивировать либо в любое место, либо напрямую в созданную папку.


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


Теперь переходим на Рабочий стол и в Боковой панели кликаем на +


В коллекции должен уже присутствовать наш гаджет (если всё сделали правильно) и остается только либо два раза кликнуть на нём, либо нажать ПКМ и выбрать "Добавить":


На заметку :
Гаджет, распакованный в папку C:\Program Files\Windows Sidebar\Gadgets может не отображаться в меню, а если его переместить в C:\Users\Имя пользователя\AppData\Local\Microsoft\Windows Sidebar\Gadgets, прекрасно отображается сразу.

Как добавить гаджет/виджет в Windows 7

В "семерке" ничего дополнительного ставить не нужно. Нужно лишь скачать гаджет, распаковать его и запустить файл с расширением .gadget . В ответ можете получить сообщение вида:


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

Все установленные гаджеты можно посмотреть кликнув на свободном месте Рабочего стола и выбрать «Гаджеты»:


Для активации и установки гаджета, просто перенесите его на любое место:


либо два раза щелкните по нему.

Если у Вас нет пункта "Гаджеты" при клике ПКМ по Рабочему столу, то идем по пути Пуск -> Панель управления -> Программы и компоненты -> Включение или отключение компонентов Windows и ставим галочку Платформа гаджетов Windows .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В итоге из рассыпухи 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.

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

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

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

Для подсчета скорости вращения колеса используется бесконтактный магнитный выключатель (геркон). При прохождении мимо него постоянного магнита, сигнал поступает на Arduino , здесь то и происходит расчет скорости в милях или километрах в час, как результат на дисплее появляются цифры, они и показывают скорость. Установить такое устройство можно на любое колесо, причем даже не велосипедное. Главное - правильно указать радиус колеса, ведь именно на основе этих данных происходит расчет скорости.

Материалы и инструменты для изготовления:
- микроконтроллер Arduino;
- магнитный выключатель (геркон);
- резистор (10 кОм, 1/4 ватта);
- провод;
- батарея на 9В;
- LCD дисплей;
- макетная плата для распайки;
- два переключателя.

Еще понадобится фанера, винты, некоторое количество инструмента. Ну и само собой программное обеспечение Arduino IDE.

Процесс сборки:

Шаг первый. Электрическая схема спидометра
Всего в схеме используется три переключателя. Один переключатель управляет питанием 9В. Второй переключатель отвечает за работу LCD экрана, с помощью него его можно включать или выключать. Ну и наконец, магнитный выключатель геркон, он замыкает цепь в том случае, если колесо делает один полный оборот.
В проекте используется LCD монитор фирмы Parallax, он подключается к плате с помощью трех пинов. На один пин подается 5В, второй подключается к земле, ну а третий выход является цифровым, он отмечен цифрой 1.
Резисторы на 10 кОм играют в системе роль защиты, чтобы не произошло перегрузки. Нельзя подключать землю и плюс 5В к Arduino напрямую.


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




Шаг третий. Установка и подключение геркона
Геркон представляет собой два элемента, это переключатель и постоянный магнит. С геркона выходит два провода, когда на него действует магнитное поле, то небольшой магнитный элемент внутри переключателя перемещается и замыкает цепь.
Между пином A0 и землей на макетной плате нужно установить резистор 1 кОм. Концы провода подключаются к выходам A0 и 5V.
















Что касается механической части, то геркон устанавливается следующим образом. На спицу колеса крепится постоянный магнит. Сам же геркон устанавливается на вилку колеса напротив магнита. Между герконом и магнитом должно быть небольшое расстояние, иначе он не будет работать. Далее провода подключаются к выходам распаянной платы, и происходит проверка работоспособности. Когда магнит будет проходить возле геркона, Arduino должна выдать ~ 1023. Если система не работает, будет отображаться 0.






В оболочке Arduino IDE нужно открыть серийный монитор (Tools - Serial Monitor) и запустить проверку. Если сигнала при вращении колеса нет, нужно заменить магнит на более мощный или же сократить расстояние между датчиком и магнитом.
Если сигнал есть, можно загружать код для проверки. Когда колесо не крутится, должно отображаться значение 0.00. При вращении колеса скорость должна отображаться в милях в час.





Шаг четвертый. Проверка и установка LCD

Чтобы установить дисплей, нужно взять дополнительный шилд. Рельсу нужно припаять к контактам «мама» на выходе protoshield. Для подключения экрана используется три контакта, он должен быть плотно установлен на рельсах.










На задней стороне LCD экрана можно найти два переключателя, а также потенциометр. Переключатели нужно перевести в такое положение, как указано на картинке. Потенциометр же используется для ручной регулировки контраста экрана.








После установки дисплей можно проверить. Если все сделано правильно, то на экране появится надпись «Hello World». Вполне возможно, что с первого раза это не получится и придется заново «перезалить» скетч.

Шаг пятый. Подсветка спидометра
Теперь нужно подсоединить тумблер подсветки. Это делается так, как указано на картинках. Нужно не забыть соединить резистор на 10 кОм с зелеными и черными проводами. Далее эти провода подключаются к одному контакту выключателя, а ко второму подключается красный провод.
Красный провод является питанием, он подключается к Arduino 5V. Зеленый провод подключается к D2, а другая сторона резистора к земле.






Шаг шестой. Питание спидометра
В цепи с питанием нужно использовать переключатель. Черный контакт от батареи подключается к земле, а плюсовой через переключатель подключается к выходу Vin.




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

Здесь описывается цифровой прибор, измеряющий скорость движения автомобиля и частоту вращения коленвала его двигателя. Индикатором служит ЖК-дисплей типа 1602А, он стандартный, на основе контроллера HD44780.

Обозначение 1602А фактически значит, что он на две строки по 16 символов в строке. Индикатор был куплен на «Aliexpress», найден по запросу «HD44780» (цены от 81 рубля). Как уже сказано, у данного индикатора есть две строки. Так вот, в верхней строке прибор показывает скорость движения автомобиля, а в нижней - частоту вращения коленвала двигателя.

В отличие от многих бортовых компьютеров, таких как «Орион-БК» и подобных, а так же, приборов со светодиодными семисегментными индикаторами, этот ЖК-дисплей при включенной подсветке дает очень четкое изображение, отлично видное как на свету, так и ночью в темноте, что особенно важно при автомобильной эксплуатации.

В основе схемы прибора лежит готовая плата ARDUINO UNO, на которой расположен микроконтроллер ATMEGA328, а так же вся его «обвязка», необходимая для его работы, включая USB-програм-матор и источник питания.

Стоимость ARDUINO UNO на том же «Aliexpress» начинается от 200 рублей. Описание платы ARDUINO UNO, а так же программного обеспечения для неё, и подключения к персональному компьютеру приводится автором в Л.1, так что, если кто не в курсе что такое ARDUINO и «с чем его едят», обязательно прочтите сначала статью в Л.1.

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

Принципиальная схема

Прибор может работать только в автомобиле с инжекторным двигателем (в карбюраторных датчика скорости нет, а датчик зажигания есть далеко не во всех). Схема прибора показана на рисунке 1. На этом рисунке плата ARDUINO UNO показана схематично как «вид сверху».

Рис. 1. Принципиальная схема спидометра и тахометра на базе Arduino.

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

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

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

Программа

Программа на C++ с подробными комментариями приведена в таблице 1. Действие программы основано на измерении периода импульсов, поступающих с датчиков, и последующего расчета скорости и частоты вращения коленвала.

Таблица 1. Исходный код программы.

Для работы используется функция pulseln , которая измеряет в микросекундах длительность положительного либо отрицательного перепада входного импульса. Так что, для того чтобы узнать период нужно сложить длительность положительного и отрицательного полупериодов.

где Т - период в секундах, a F - скорость в км/час. Поскольку период измерен в микросекундах фактически формула:

Если датчик на 2500 импульсов на км (японский), то формула будет такой:

Соответственно, учитывая, что период измерен в микросекундах:

Для измерения частоты вращения коленчатого вала используется формула:

где Т - период в секундах, a F - частота вращения коленвала в оборотах в минуту. Поскольку период измерен в микросекундах фактически формула такая:

Затем, результаты выводятся в соответствующие строки ЖК-дисплея. Единицы измерения указаны как «km/h» и «оЬ/тіп» (если не нравится, можете изменить).

Если входного сигнала нет, например, включили зажигание, но двигатель не завели, не поехали, то в строках, где нет сигнала, будет надпись «inf».

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

Либо заниматься экспериментальным подгоном числа, которое делится на период, сверяясь со стрелочным спидометром, что весьма хлопотно, или невозможно, если штатный спидометр неисправный (что и могло стать причиной изготовления данного прибора).

Но лучше все же узнать параметры датчика скорости. А потом рассчитать число, которое в программе делится на период. Обозначим это число X, а количество импульсов на километр N. Тогда X можно рассчитать по такой формуле:

X = 3600000000 / N

Например, если датчик дает, допустим, 2500 импульсов на километр:

Х= 3600000000 / 2500 = 1440000

Или, если датчик дает 6000 импульсов на километр:

Х= 3600000000 / 6000 = 600000

В заключение

Если прибор дает сбои, может потребоваться оптимизация режима работы входных каскадов на транзисторах VT1 и VT2, соответственно, подбором сопротивлений резисторов R3 и R6, а так же емкостей конденсаторов С2 и СЗ.

Каравкин В. РК-12-16.

Литература:

1. Каравкин В. Ёлочная мигалка на ARDUINO как средство от боязни микроконтроллеров». РК-11-2016.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows