sonyps4.ru

Arduino спидометр время в пути. Установка геркона на колесо

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

Для точного измерения пройденного пути я сразу подумал использовать 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 Nano, а что касается стрелки, то она будет приводиться в движение небольшим серводвигателем. Данные о скорости движения считываются с колеса с помощью геркона - бесконтактного переключателя. Впрочем, подобным образом можно сделать спидометр и для любого другого транспорта. Самоделка , по словам автора очень простая и требует минимальное количество материалов.

Материалы и инструменты для самоделки:
- микроконтроллер Arduino Nano;
- серводвигатель;
- геркон;
- пластиковые хомуты;
- постоянный магнит (автор использовал от компьютерного жесткого диска);
- светодиод красного цвета;
- один резистор на 1 кОм;
- один резистор на 22 Ом;
- пластиковая коробка для создания корпуса;
- провода;
- паяльник;
- материалы для создания механической части спидометра, винтики, ножницы, горячий клей и прочее.













Процесс изготовления велосипедного спидометра:

Шаг первый. Электронная схема самоделки
Электронная схема устройства очень простая и понятна даже интуитивно. Все, что нужно сделать, это подключить все элементы так, как указано на картинке. На схеме есть резистор на 220 Ом, он используется для подключения светодиода. Что касается резистора на 10 кОм, то через него подключается переключатель.

Сервопривод здесь будет вращаться стрелку спидометра, а когда будет достигаться определенная (по словам автора максимальная) скорость, то на спидометре будет загораться красная лампочка.




Шаг второй. Устанавливаем элементы в корпус
Все компоненты размещены в одном корпусе, здесь установлен и серводвигатель и контроллер. Корпус можно подобрать любой, самое главное, чтобы в него все поместилось. Далее нужно просверлить с наружной стороны два отверстия. Через одно будет выходить вал серводвигателя, а в другое будет установлен красный светодиод, сигнализирующий о максимальной скорости движения. С другой стороны надо не забыть сделать отверстия для того чтобы вывести кабель USB, а также провод от геркона. Когда все сделано, все элементы внутри нужно зафиксировать горячим клеем, особенно это касается серводвигателя. Собирается корпус также горячим клеем, его нужно тщательно загерметизировать от попадания воды.
































Шаг третий. Делаем циферблат
Циферблат можно сделать из листа картона или пластика. Автор не стал рисовать на нем цифры, а просто сделал черточки. В контроллере можно задать любые значения для каждой из этих черточек. К примеру, если стрелка будет на первой, это может означать скорость 5 км/ч, на второй 10 км/ч и так далее. Циферблат приклеивается к пластиковому корпусу. Что касается стрелки, то она устанавливается на вал серводвигателя. Стрелку можно сделать как с картона, так и с пластика или жести.




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


Шаг пятый. Прошивка и настройка устройства

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

Первая отметка у автора означает скорость движения в 8 км/ч, вторая 19 км/ч, а третья 24 км/ч. Что же касается максимальной скорости движения, то она составляет 36 км/ч. При достижении этой величины на спидометре загорается светодиод красного цвета. Но каждый может сам для себя настроить устройство под любую скорость.


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

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

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




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

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


Инструменты и комплектующие для сборки

Инструменты и комплектующие для установки

Коробочка от губки для обуви
Сверло, ножницы, паяльник
Плотный картон, Маркер
Зубочистка, краска
Термоусадочная трубка
Клеевой пистолет и суперклей


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


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


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

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

Хотите отследить скорость на велосипедной прогулке? Тогда эта инструкция для вас!

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

Необходимые элементы

Электросхема

Электросхема проекта приведена ниже.

Она состоит из трех переключателей:

1. Один подключен к питанию 9 вольт

Установка Arduino и обвязки в бокс

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

Велосипед со спидометром на дороге!

Не забывайте про правила поведения велосипедистов на дороге! Несмотря на ваш прекрасный Arduino спидометр, следите за транспортом и людьми!


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



Загрузка...