Спидометр gps arduino: GPS-спидометр и одометр [Амперка / Вики]

Содержание

GPS ТРЕКЕР, СПИДОМЕТР, ОДОМЕТР И СПУТНИКОВЫЕ ЧАСЫ. ПРОЕКТ НА АРДУИНО. — voltNik

Страница проекта: https://github.com/voltnik/GPS-speed-tracker

Обзор на 3Д принтер: https://www.youtube.com/watch?v=l0Fw1vF3B60

Схема проекта:

Привет друзья, у нас с вами над головой летает большое количество разных космических аппаратов. Среди них есть примерно 90 крайне полезных навигационных спутников американской системы GPS, российской ГЛОНАСС, европейской Галилео и китайской БэйДоу. И сегодня мы будем ловить с них сигнал.

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

Радиосигнал распространяясь со скоростью света доходит до Земли с задержкой   от 60 до 90 миллисекунд, это зависит от удаления спутника. Зная точное расположение источника радиосигнала по задержке времени его распространения можно узнать точное расстояние до спутника. И далее по триангуляции расстояний до нескольких известных объектов можно узнать где вы находитесь в пространстве.

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

Замер расстояний до каждого последующего спутника повышает точность позиционирования и сегодня она составляет от 1 до 3 метров при стандартной видимости около 10 навигационных спутников.

С теорией разобрались, перейдем к практике. Сейчас отдельно продаются разные навигационные модули. Самые простые и древние поддерживают только сигналы от американской GPS системы наблюдая, в среднем 5-7 спутников. Более продвинутые модули могут принимать сигнал еще и от российской группировки ГЛОНАСС, повышая общее количество наблюдаемых спутников в среднем в два раза. Также в продаже есть модули, совмещенные с компасом, они используются для точной навигации и поддержания курса.

На экране моего телефона видны спутники разных навигационных систем. Кружки это GPS, треугольники — ГЛОНАСС, а звездочки это китайская БэйДоу. Таким образом мой телефон поддерживает три разные навигационные системы и совмещая сигналы от них, повышает точность определения местоположения. Сейчас над моей головой находится 28 спутников, а доступен сигнал только от 7. Т.е. мой телефон уже заранее знает где находится каждый спутник. А отсутствующий сигнал от 21 спутника значит, что они находятся вне зоны прямой видимости. Навигационный сигнал очень слабый, от слова ВАЩЕ, он почти не отражается, его блокирует рельеф местности, здания, крыша автомобиля – любой металл у вас над головой или сбоку. Даже идущий за окном снег мешает хорошему приему.

Для реализации проекта понадобится ряд электронных модулей: программируемая платформа Arduino Nano, OLED экран 128 на 32 точки (он подключается по шине I2C), GPS модуль для подключения по UART, любой литиевый аккумулятор емкостью выше 200 миллиампер, защитно-зарядный модуль для лития и повышающий преобразователь для того чтобы получить 5 вольт. У меня тут три разных типа, подойдет любой. Еще планировал использовать цветной RGB светодиод для индикации состояния, но по ходу проекта отказался от этого.

Подключаем экран к Ардуино и сталкиваемся с первой трудностью. Стандартная библиотека OLED экрана занимает 20 кБ, это 70% памяти микроконтроллера и практически не оставляет места для программы. Ранее я собирал высотомер и столкнулся с тем что любая новая строчка кода приводит к переполнению памяти и зависанию микроконтроллера при работе. Поэтому буду использовать значительно более легкую библиотеку. В ней нет работы с графикой и доступен только вывод текста на OLED экран, а занимает она всего 1 кБ памяти.

Отдельно подключаю GPS модуль к макетной плате и вижу первые навигационные данные – сигнал из космоса пойман и обработан. Теперь делаю вывод информации на экран. Класс! Видит 4 спутника, теперь 3, и снова 4, уже 5! Для лучшего приема GPS модуль висит за окном на проводе.

Во время разработки проекта я использовал GPS модули разных типов. Простые GPS и совмещенные GPS c Глонасс. Пришлось провести ряд многочасовых экспериментов для проверки на стабильность работы. Модули оказались рабочими, а вот с программными библиотеками пришлось повозится. Пробовал несколько разных библиотек, и TinyGPS+ оказалась единственной, которая работала сразу со всеми модулями GPS.

Вообще библиотека занимается разбором протокола NMEA, по-простому парсит данные, которые выплевывает GPS модуль два раза в секунду. Вот так выглядит не обработанный поток данных.

В итоге моя прошивка позволяет подключать практически любой GPS модуль по UART с протоколом передачи данных NMEA. По сути это большинство модулей, у которых есть пины RX и TX. Рекомендую брать именно модуль GPS с Глонасс, он видит больше спутников, поэтому точность у него выше. Ссылки на все комплектующие и модули есть в описании к этому видео.

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

Далее напряжение нужно повысить, экран и GPS модуль питаются от 5 вольт. Это будем делать с помощью повышающего преобразователя напряжения. Такие обычно устанавливаются в повербанки для того чтобы поднять напряжения с 3.7 до 5 вольт. Я буду использовать маленький зеленый модуль, он может выдавать ток до 300 мА и его более чем достаточно для этого проекта.

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

Измеряю размеры всех модулей и пытаюсь расположить их максимально компактно. Но как я не старался, тонкий экран никак не увязывался с широким GPS приемником. Поэтому решил заменил экран на другой OLED 128х64 точки. Так получается эргономичнее и кнопочку можно большую поставить. OLED экраны полностью совместимы и требуют минимальной коррекции кода, поэтому прошивки будут доступны на обе версии устройства с маленьким экраном и с большим.

Схема сборки простая. Нужно подключить экран к шине I2C это пины А4 и А5, gps модуль подключается к программному serial порту на пинах D3 и D4. Кнопка на пин D7. Питание от аккумулятора через защитный модуль тащим на выключатель, далее на повышающий преобразователь, и подключаем на 5 вольт Ардуино.

Для удобного размещения компонент буду использовать зеленую макетную плату 7 на 3 сантиметра. Чтобы экран не висел на разъеме устанавливаю его на пластиковые стойки спейсеры на 5 миллиметров. Между экраном и кнопкой будет находится GPS приемник. С обратной стороны платы будет установлен контроллер Ардуино, аккумулятор и защитная плата. Аккумулятор буду использовать тонкий литий на 350 миллиампер, если не ошибаюсь такие используются в электронных сигаретах, но как я уже сказал можно использовать любой литиевый аккумулятор.

Заново все замеряю, промеряю и готовлю проект корпуса для печати на 3Д принтере. Буквально 15 минут на сайте TinkerCAD и проект готов к печати. Переношу файл на флешке, запускаю и погнали. Время печати составляет около 40 минут, это первый пристрелочный корпус для примерки размещения модулей.

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

Если вы еще не видели, то рекомендую посмотреть мой подробный видео обзор на 3Д принтер и нюансы 3Д печати, ссылка на видео тоже будет в описании.

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

Плата идеально устанавливается внутрь корпуса, крепления сошлись, кнопка не заедает. С одного торца есть отверстие под разъем Ардуино Нано, а с другой стороны для зарядки аккумулятора. Оно оказалось, немного уже, поэтому расширяю его скальпелем.

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

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

Далее снизу расположится контроллер Ардуино, зарядка лития и сам аккумулятор.

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

Пора паять. Запаиваю первый контакт экрана на плату, примерка – все правильно и можно запаять остальные три контакта. Теперь кнопка. И обязательно счищаем флюс щеткой. Запаиваю провода на модуль защиты аккумулятора.

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

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

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

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

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

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

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

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

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

Далее запаиваю все торчащие провода согласно схеме, на контроллер Arduino Nano.

Готово, теперь нужно залить прошивку. Подключаем Ардуино к компьютеру, заходим на страницу проекта, ссылка на него есть в описании видео. Качаем архив, распаковываем файлы, устанавливаем библиотеки, открываем нужную версию прошивки для экрана на 32 или на 64 точки и загружаем ее в контроллер. Все, заработало с первого раза! Данные с GPS прут. Круто!

Устанавливаю контроллер на свое место, включаю автономное питание… иииииииииии.. нифига. Светодиод питания на Ардуино горит, а экран не включился. И вот так случился трындец, причину которого я не знаю до сих пор. У меня ушло несколько часов работы чтобы заставить трекер работать автономно от встроенного аккумулятора.

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

Зарядил на нем аккумулятор и поставил трекер на окно ловить спутники. Через три минуты он словил сигнал от 4 спутников и определил местоположение. Ну что, значит работает и наверно можно собрать? Меняем повышающий преобразователь, видимо мелкий сильно шумит по питанию.

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

Все, провода скрутил в косички чтобы избежать наводок. Иии… эта гадина опять не включилась. Точнее включилась и сразу зависла с артефактами на экране. Столько часов работы и все в пустую. Замена преобразователя не помогла.

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

Методом последовательного отключения удалось выяснить, что виноват в этом OLED экран – но почему, я так и не понял. Решение нашлось внезапно. Во время очередной проверки автономного питания я случайно подал на пин VIN 5 вольт. Замечу что этот пин !не! предназначен для подачи питания 5 вольт и требует напряжение от 7 до 12 вольт.

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

Заодно решил проверить ток потребления. От 5 вольт трекер кушал около 70 миллиампер. А от 4 вольт через повышающий преобразователь получилось около 110 миллиампер. Таким образом моего маленького аккумулятора на 350 миллиампер хватит на три часа автономной работы. И это я еще питание не оптимизировал, можно срезать вечно горящие светодиоды и еще сэкономить батарею.

Трекер стал полностью стабильно работать, оставил его на окне и спустя несколько минут он словил 4 спутника. Отлично

Если вам интересно помочь мне разобраться в причине странного поведения Ардуино, то вот вам вводная:

1 – Трекер работает если его запитать через USB разъем Ардуино.

2 – Трекер зависает и не включается если запитать его через пин Ардуино 5V подав на него напряжение 5 вольт от любого источника питания.

3 – Трекер зависает и не включается если подать на него 7 вольт и более через пин Ардуино VIN.

4 – Трекер работает если его запитать не стандартными 5 вольтами через тот же самый пин VIN.

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

На главном экране после загрузки сверху отображается текущее время и дата по Гринвичу, вторая строка — это текущая скорость 0.3 километра в час и максимальное значение скорости которое было зафиксировано со времени включения — 26 километров в час. На третьей строке текущее расстояние до нулевой точки 530 метров и максимальное удаление которое было достигнуто с момента включения — 580 метров. На четвертой строке одометр, показывает 923 метра и используемое количество спутников.

Нижняя строка chars – это количество данных принятых с GPS модуля.

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

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

Перейдем к тестированию. Сейчас трекер видит 12 спутников. Выставляю текущую нулевую точку и сбрасываю одометр в ноль. Тоже самое делаю на автомобильном одометре. Проехав 1.2 километра по спидометру автомобиля, я увидел на GPS трекере те же самые 1205 метров. Текущее расстояние до нулевой точки по прямой составляет 0.93 километра. И вот по карте те самые 930 метров, пока все точно.

Решил замерить более длинную дистанцию. Опять сбрасываю показания в нули на трекере и автомобиле. Проехав 8.4 километра, я обнаружил на трекере дистанцию пути меньше – всего 7974 метра. При этом текущее расстояние до нулевой точки составляет 4.930 метров. Проверим по карте, получается очень точно, те же самые 4.930 метров. Непонятно, только почему тогда одометр врет на 400 метров и какой именно одометр врет, на машине или GPS.

Ладно, пора уже напечатать заднюю крышку и будем снова тестировать. Закрываю. Вес законченного устройства получился 55 грамм, много, но не критично – в конце покажу как можно уменьшить.

Приехал на каток и решил замерить скорость хоккеиста. Блин, чехлы ему еще для скорости нужно снять. Получилась лютая скорость, прямо «русская ракета» — 5 километров в час. Пешком ходил, а все потому что потолок на катке фольгой отражающей утеплен для удержания холода. Сигнал от спутников есть, но он не точный.

Давайте проведем последний тест с помощью мобильного телефона. Телефон видит 7 спутников, а трекер 9. Запускаю логгирование и сбрасываю одометр на трекере. Ну.. погнали. Проехав три километра телефон и трекер показывали идентичные значения на одометре. 3017 против 3021 метра – это супер результат, я не ожидал такой точности.

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

А вот одометр глюканул, аж на целых 12 тысяч километров. Некисло так. Ранее у меня при отладке программы уже проскакивал такой глюк и трекер разом перемещало на 7 тысяч километров. Придя домой я создал в Google точку с нулевой широтой и долготой. Оказалось, она находится в Атлантическом океане, недалеко от побережья Ганы. Замерив расстояние от нее до своего местоположения я и получил те самые 7 тысяч километров. Получается от GPS модуля иногда проскакивают нули по координатам. Это легко можно исправить, добавив всего одно условие в код программы. И более этого глюка при тестах не наблюдалось.

Считаю, что трекер получился афигенный, это мой первый опыт прямой работы с GPS модулями. Зачем он нужен? Такой трекер может выполнять роль автономного спидометра или независимого одометра. Его можно разместить на велосипед, автомобиль, игрушку или квадрокоптер. Также он позволяет измерять расстояние по прямой до заданной точки, значения нулевой хранятся в энергонезависимой памяти. Запоминает максимально достигнутые значения скорости и удаления. Делает это все автономно и не зависит ни от кого кроме спутников. Ну и конечно же это часы точного времени. Мне же он нужен для измерения максимальной скорости и максимального удаления от объектов. Точно, надо еще высоту на экран добавить, чтобы замерять как высоко поднялся!

Поговорим о том, как можно уменьшить вес, проще всего это сделать, собирая трекер на платформе Arduino Pro Mini на 3.3 вольта. Тогда вам не понадобится повышающий преобразователь, вместо него будет маленький линейный стаб на 3.3 вольта, GPS модуль без проблем работает от этого напряжения, а на экране нужно будет обойти стабилизатор питания.

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

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

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

Спасибо за просмотр, всем удачи и до встречи в новых видео! Пока-пока!

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 — 128×64 GLCD display» (https://www.instructables.com/id/Arduino-GPS-speedometer-with-a-ks0108-128×64-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

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

Как сделать свой собственный велосипедный спидометр с помощью 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 спидометр

Подключиться к YouTube?

OK

youtu.be/92TefSsz7gY

Подключиться к YouTube?

OK

youtu.be/fu7nlxfjkf8

1. Пошаговое звуковое оповещение при достижении интересующих скоростей.

2. Можно включить фильтрацию данных скорости. Показания с включенным фильтром более инертны чем с выключенным. ФИЛЬТР ОБЯЗАТЕЛЬНО НУЖНО ВКЛЮЧАТЬ ПРИ ЕЗДЕ НА ВЕЛОСИПЕДЕ, ПРОБЕЖКЕ ИЛИ ПЕШЕЙ ПРОГУЛКЕ.

3. G-метр. На основе изменения скорости рассчитывается ПРИБЛИЗИТЕЛЬНОЕ ускорение. Плюсы GPS-G-метра: ненужно неподвижно фиксировать iPhone или подключать iPhone к компьютеру машины, измерения могут быть сделаны тайно, например при тест драйве. Меньшая точность компенсируется несколькими измерениями. Ускорение рассчитывается только при выключенном фильтре. Измерения нельзя делать поблизости с высокими домами, в горах, в лесу.

4. Большие и яркие цифры.

5. HUD (в темное время суток и пасмурную погоду скорость показывается в отражении лобового стекла).

6. Возможна работа в фоне. Постоянная работа GPS в фоновом режиме может значительно сократить срок службы аккумулятора.

7. Диаграммы скорости и ускорения. Длинна диаграммы около 24 часов непрерывной езды.

8. Одометр.

9. Высотомер.

10. Время, продолжительность пути и продолжительность текущей остановки. Продолжительность текущей остановки обнуляется после 20 секунд движения.

11. Показ треков на карте.

12. Сохранение треков.

13. Компас (Курс).

14. Угол наклона.

15. Угол посадки/взлета самолета.

16. Подробная статистика по любому участку пути.

17. Экспорт пути в KMZ или GPX файл.

18. Экспорт таблицы статистики треков в CSV файл.

19. Загрузка и показ на карте маршрута (плана пути) вместе с треком. Для этого, на компьютере, используя онлайн сервис (например www.gpsies.com/createTrack.do) создайте маршрут, экспортируйте его в файл CSV (KML, GPX). Название файла обязательно должно начинаться с «Route». Перенесите файл через iTunes в приложение. Далее маршрут можно выбрать внизу списка треков. По линии маршрута можно успешно ехать без загруженной карты.

20. Экспорт и импорт файлов через iTunes и Email.

21. Путевые точки (описание, выбор цвета, ключевые слова, фото, аудио записи).

22. Общая база путевых точек (примечаний) с фильтром.

23. Кнопки управления музыкой.

24. Нет раздражающей рекламы.

25. Дизайн имитирующий ретро прибор.


Настройка звукового оповещения

• «70! 80!! 100!!!» — один звуковой сигнал при превышении 70, непрерывный сигнал после 80, и другой непрерывный сигнал (более неприятный) после 100.

• «80! 90» подобно «80! 90!!».

• «70!! 80. 90!!» — непрерывный сигнал в диапазоне скорости 70-80, и непрерывный сигнал при превышении 90.

• «100!!! 100.» — один сигнал при превышении 100.

• В начале строки можно написать комментарий, например «Ливень 50!!!».

• Напишите любое слово без цифр (например «OFF») и используйте для отключения контроля скорости.

• Если через iTunes добавить WAV файл с именем сигнала (например «!.wav» или «!!!.wav»), то звучать будет ваш файл. Подключите iPhone к компьютеру, затем iTunes > iPhone > Программы > Прокрутите вниз страницы к «Общие файлы». Приложение нужно будет перезагрузить.


ВАЖНО!!!

1. При езде рядом с высокими домами (также в горах, в лесу) с выключенным фильтром, возможны ложные скачки скорости (когда спутник то зарывается, то открывается). В этом случае лучше включить фильтр. ФИЛЬТР ОБЯЗАТЕЛЬНО НУЖНО ВКЛЮЧАТЬ ПРИ ЕЗДЕ НА ВЕЛОСИПЕДЕ, ПРОБЕЖКЕ ИЛИ ПЕШЕЙ ПРОГУЛКЕ.

2. Спидометры автомобилей часто завышают скорость, иногда на 10%. Это связано с диаметром колес. Поэтому GPS-спидометры при большой скорости точнее чем спидометры автомобилей. Чем больше скорость тем точнее GPS-спидометр.

3. При начале работы ЛЮБОГО GPS-спидометра, возможны кратковременные ложные показания.

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

5. Время работы от аккумулятора (iPhone 5S, очень слабое внешнее освещение, 100% => 20%):

Фоновый режим (спящий iPhone): ~ 9 ч
Спидометр (скорость, расстояние): ~ 4 ч
Карта с треком: ~ 2 ч 30 мин

Голосовое сообщение о достижении интересующих скоростей. Около 25* языков (Русский, English, Deutsch, 日本語, Español, Français, Italiano, العربية, ไทย, Nederlands, Português, Polski, Ελληνικά, Bahasa Indonesia, Svenska, Türkçe, 한국어, Magyar, Čeština, Dansk, Suomi, Română …). Можно одновременно слушать музыку и получать сообщения о скорости движения. Оценить основные функции можно скачав бесплатный спидометр.


Зачем нужно голосовое сообщение

1. Сообщение о превышении допустимой скорости.

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

3. Контроль скорости когда нет возможности или неудобно смотреть на экран телефона, например во время пробежки, катания на роликах, на велосипеде, на лыжах.

4. Контроль скорости при езде с большой скоростью, когда очень опасно отвлекаться от дороги.

5. Скрытый от окружающих контроль скорости через наушники.


Правила указания читаемой скорости

• «50,80-» — чтение скорости при пересечении 50 и при каждом изменении скорости после 80.

• «+25,-30» — чтение скорости при пересечении 25 (во время ускорения) и при пересечении 30 (во время торможения).

• «10-20» подобно «10,11,12,…19,20».

• «0-10-60,70-5-» подобно «0,10,20,30,40,50,60,70,75,80,85…».

• «-10-10-40,+70-5-» подобно «-10,-20,-30,-40,+70,+75,+80,+85…».

Бортовой компьютер и множество других полезных для авто Arduino-проектов своими руками

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

Содержание

[ Раскрыть]

[ Скрыть]

Идеи для авто на основе маленькой платы с маленьким процессором — Arduino

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

БК

С помощью платы Arduino можно соорудить автомобильный бортовой компьютер, который сможет:

  • рассчитать расход горючего;
  • вывести информацию о температуре антифриза;
  • рассчитать скорость движения, а также расстояние поездки;
  • вывести потраченное горючее за определенный километраж;
  • определить обороты мотора и т.д (автор видео — канал Arduino Tech PTZ).

Помимо устройства Arduino вам также потребуется жидкокристаллический модуль, адаптер Блютуз НС-05, а также сканер ELM327 и резисторное устройство на 10 кОм. Разумеется, необходимо приготовить и звуковой индикатор, монтажные провода и сам корпус устройства.

Процедура сборки осуществляется следующим образом:

  1. Сначала настраиваем Блютуз адаптер. К пинам устройства нужно припаять провода — к двум нижним и верхним контактам.
  2. Сам модуль подключается к плате для настройки, для этого необходимо открыть программу Arduino IDE 1.0.6 или любую другую версию, после его залить скетч в схему через USB-выход.
  3. Когда загрузка будет завершена, нужно зайти в меню Сервис — Монитор порта и выставить скорость 9600.
  4. Затем собирается схема с платой, адаптером и заранее подготовленным дисплеем. Сначала подключается Блютуз адаптер.
  5. После этого в схему добавляется дисплей. Более подробное описание подключения вы найдете на фото ниже.
  6. Резисторный элемент на 10 кОм используется для управления яркостью и контрастностью дисплея. Поэтому при первом подключении вы можете заметить, что изображения нет, если это так, то его нужно просто настроить путем поворота резистора.
  7. Далее, производится подключение дополнительной клавиши, которая будет выполнять функцию переключения экранов с информацией. Один контакт от кнопки идет к элементу GND, второй — к контакту 10. Чтобы подключить бипер, плюсовой контакт соединяется с 13 пином, а минусовой — с GND.
  8. Затем, используя то же программное обеспечение Arduino IDE 1.0.6, нужно залить скетч. Теперь вам остается только настроить бортовой компьютер и подключить его к автомобилю.

Фотогалерея «Схема подключения БК»

GPS-трекер

Чтобы собрать GPS-трекер на базе Arduino, вам потребуется:

  • сама плата, процесс описан на примере модели Mega 2560;
  • модуль GSM/GPRS, который будет использоваться для передачи данных на сервер;
  • а также Arduino GPS-приемник, в примере мы рассмотрим модель SKM53 (автор видео об изготовлении трекера на примере платы SIM 808 — канал Alex Vas).

Как производится подключение схемы:

  1. Сначала осуществляется подключение модуля к основной плате, по умолчанию установлена скорость передачи данных 115200.
  2. После подключения нужно включить девайс и установить одинаковую скорость для всех портов — как последовательных, так и программных.
  3. GSM передатчик подключается к контактам 7 и 8 на основной микросхеме.
  4. Затем производится настройка модуля путем ввода команд. Все команды мы описывать не будем, их и так можно найти в Интернете без проблем. Рассмотрим только самые основные. AT+SAPBR=3,1,«CONTYPE»,«GPRS» — команда определяет тип подключения, в данном случае это GPRS. AT+SAPBR=3,1,«APN»,«internet.***.ru», где *** — это адрес оператора мобильной сети, который будет использоваться. AT+HTTPINIT — по этой команде производится инициализация HTTP.
  5. Нужно отметить один нюанс — при написании серверной составляющей интерфейса, желательно предусмотреть прием и выведение данных для нескольких адаптеров. Нужно установить переключатель на три позиции, это даст возможность получать данные от восьми автомобилей.
  6. Затем производится написание скетча на микросхеме. Сам скетч также можно найти в Сети, писать его необязательно. Учтите, если будут использоваться два активных последовательных порта, это может привести к ошибкам в передачи и отправке информации.

Парктроник

Чтобы соорудить парктроник, вам потребуются такие составляющие:

  • сама микросхема;
  • ультразвуковое устройство, в данном случае это дальномер HC-SR04:
  • шесть светодиодных элементов;
  • шесть резисторных элементов сопротивлением на 220 Ом;
  • соединительные провода типа «папа-папа»;
  • пьезодинамический элемент;
  • макетная схема для сборки.
Элементы для сборки парктроника на Arduino

Процедура сборки выглядит следующим образом:

  1. Для начала на макетной схеме необходимо установить светодиодные элементы, подготовленные заранее. Отрицательный контакт у всех светодиодов будет общим. Короткий контакт — катод — следует подключить к отрицательной шине, которая имеется на макетной плате.
  2. К более длинным контактам диодов, то есть анодам, необходимо подключить резисторные элементы на 200 Ом, если вы не будете их использовать, это приведет к перегоранию диодов.
  3. На центральной части производится монтаж ультразвукового устройства. На этом контроллере есть четыре контакта. Vcc — это контакт питания на пять вольт, Echo — это выходной контакт, Trig — это вход, а GND — это заземление.
  4. После того, как дальномер будет установлен, к его выходам следует подключить проводку. В частности, контакт Echo подключается к выходу 13, Trig — к 12 контакту. GND, соответственно, необходимо соединить с заземлением, которое имеется на схеме контроллера, а оставшийся выход Vcc соединяется с 5-вольтовым питанием на плате Arduino.
  5. После выполнения этих действий нужно соединить проводку с контактами резисторных элементов. А также они подключаются последовательным образом к пинам на плате — используются пины от 2 до 7.
  6. Следующим этапом будет подключение пьезопищалки, которая и будет предупреждать водителя о приближении к препятствию. Минусовой выход, как вариант, можно будет объединить с отрицательным контактом установленного ранее дальномера. Что касается положительного контакта, то он соединяется с пином под номером 11 на микросхеме.
  7. Для того, чтобы устройство в конечном итоге работало в нормальном режиме, дополнительно нужно будет написать, после чего загрузить код программы в плату. В этом коде необходимо точно указать дистанцию, при приближении к которой начнут загораться диодные элементы и будет срабатывать пищалка. Причем тональность пищалки должна быть разной, чтобы водитель мог узнать, когда приближение к препятствию будет критическим. Сам код либо пишется самостоятельно, либо берется уже готовый вариант из Интернета. Вариантов скетчей очень много, вам нужно только выбрать наиболее подходящий для вашего устройства (автор видео — канал Arduino Prom).

Заключение

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

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

Видео «Как соорудить систему управления электродвигателем печки?»

Из видео ниже вы сможете узнать, как обустроить климат-контроль путем доработки регулятора отопительной системе на примере автомобиля ВАЗ 2115 (автор ролика — Иван Никульшин).

 Загрузка …

Простой GPS-спидометр с регистрацией данных

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

Характеристики

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

Точно так же вы можете добавить часы с левой стороны, используя процедуру displaySpeed ​​() в качестве шаблона.

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

Аппаратное обеспечение

Список деталей охватывает все детали, но в целом этот проект не является критичным для его компонентов. Я использовал контроллер Freetronics EtherTen, потому что в него уже встроена SD-карта.Вы можете использовать Arduino Nano и сделать корпус немного меньше. Мой совет: используйте то, что у вас есть под рукой.

Программное обеспечение

Программное обеспечение очень простое: «Setup () инициализирует последовательный порт оборудования (для отладки), последовательный порт программного обеспечения (соединение GPS), драйвер SD и дисплей. Если вы получаете только мусор от вашего GPS, проверьте скорость передачи в «ss.begin ()». Все мои модули работают со скоростью 9600 бод , но некоторые старые модули начинаются с 4800.

Loop () проверяет входящий поток на наличие допустимых сообщений NMEA.После получения действительного сообщения оно разбирается библиотекой tinygps, а данные форматируются в строку, разделенную запятыми, для записи на SD-карту. После записи данных дисплей обновляется. Это происходит примерно каждую секунду.

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

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

Репозиторий Git также содержит небольшой скрипт Python «export-gpx.py», который принимает вывод csv от регистратора и записывает файл garmin gpx (это xml). Его можно импортировать в Strava и т. Д.

Construction

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

Большинство современных модулей имеют светодиод, который будет мигать синхронно с выходным сигналом GPS «PPS». Когда нет действительных данных, он обычно горит постоянно, но начинает мигать, когда данные доступны. Это отличный способ протестировать ваше устройство внутри корпуса.

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

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

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

Монтаж готового изделия зависит от вас. Я использовал липкую ленту, чтобы прикрепить ее к корзине для переноски на передней части велосипеда.

После поездки выключите регистратор и извлеките SD-карту. Используйте export-gpx.py для создания файла gpx (не сохраняйте его на SD-карте!).

Теперь вы можете загрузить файл на карты Google и спланировать свое путешествие.

Вы можете сделать это, войдя на maps.google.com, выбрав «Ваши места», «Карты» и «Создать новую карту».

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

Щелкните «Импорт», чтобы загрузить файл gpx.Google займет около минуты, чтобы обработать ваши данные, а затем предоставить вам новый трек вашего путешествия.

Я не показываю окончательный результат карты из соображений конфиденциальности.

GPS-спидометр с использованием Arduino Pro Micro

 #include 
#include 
#include 
#include 
#include 
#include 

#define OLED_RESET 4
Дисплей Adafruit_SSD1306 (OLED_RESET);

#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2


#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH 16

char timeinmin [32];
String speedinkm;
int f = 0;
int действительный = 0;
static const uint32_t GPSBaud = 9600;
TinyGPSPlus gps;



void Display_data () {
  отображать.clearDisplay ();
  // тесты отображения текста
  display.setTextSize (3);
  display.setTextColor (БЕЛЫЙ);
  if (f <10) {display.setCursor (103,0);}
  если (е> = 10) {если (е <100) {display.setCursor (85,0);} else {display.setCursor (67,0); }}
  display.println (speedinkm);
  display.setTextSize (1);
  display.setTextColor (БЕЛЫЙ);
  display.setCursor (95,22);
  display.println («км / ч»);
  display.setTextSize (2);
  display.setTextColor (БЕЛЫЙ);
  display.setCursor (0,17);
  display.println (время в мин);
   display.setTextSize (1);
  отображать.setTextColor (БЕЛЫЙ);
  display.setCursor (0,8);
  display.println («Время»);
    if (valid == 0) {
   display.setTextSize (1);
  display.setTextColor (БЕЛЫЙ);
  display.setCursor (25,0);
  display.println («Синхронизация»);
    }
        if (действительно! = 0) {
   display.setTextSize (1);
  display.setTextColor (БЕЛЫЙ);
  display.setCursor (25,0);
  display.println ("");
    }
  display.display ();
  задержка (2000);
    }
    
  
  
 
установка void ()
{Serial.begin (115200);
  Serial1.begin (GPSBaud);
   display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // инициализируем с адресом I2C 0x3C (для 128x32)
  }

пустой цикл ()
{
  Время (GPS.время);
действительный = gps.location.lat ();
f = круглый (gps.speed.kmph ());
speedinkm = Строка (е);
Серийный принт (speedinkm);
  Serial.println ();
  smartDelay (500);
  Данные дисплея();
}

статическое пустое время (TinyGPSTime & t)
{
    
    sprintf (времяinmin, "% 02d:% 02d", t.hour (), t.minute ());
  // timeinmin [0] = '1';
   // timeinmin [1] = '9';
    Serial.print (время в мин);
    //Serial.print ("");
   // Serial.print (timeinmin [1]);
    int temp1 = (int) timeinmin [0];
    temp1 = temp1-48;
    temp1 = temp1 * 10;
    temp1 = temp1 + ((int) timeinmin [1] -48);
    temp1 = temp1 + 5;
    если (temp1> = 24) {temp1 = temp1-24;}
    char a [2];
    itoa (temp1, a, 10);
    timeinmin [0] = a [0];
   timeinmin [1] = a [1];
   
}

static void smartDelay (длинное мс без знака)
{
  беззнаковый длинный старт = millis ();
  делать
  {
    в то время как (Serial1.доступный())
      gps.encode (Serial1.read ());
  } while (millis () - начало <мс);
}

static void printFloat1 (float val, bool valid, int len, int prec)
{
  если (! действительный)
  {
    в то время как (len-> 1)
      Серийный.принт ('*');
    Серийный принт ('');
  }
  еще
  {
    Serial.print (val, prec); серийный.
    int vi = abs ((int) val);
    int flen = Prec + (значение <0,0? 2: 1); //. а также -
    flen + = vi> = 1000? 4: vi> = 100? 3: vi> = 10? 2: 1;
    для (int i = flen; i  0)
    sz [len-1] = '';
  Серийный.печать (sz);
  smartDelay (0);
}

static void printDateTime (TinyGPSDate & d, TinyGPSTime & t)
{
  если (! d.isValid ())
  {
    Serial.print (F ("**********"));
  }
  еще
  {
    char sz [32];
    sprintf (sz, "% 02d /% 02d /% 02d", d.month (), d.day (), d.year ());
    Серийный принт (sz);
  }
  
  если (! t.isValid ())
  {
    Serial.print (F ("********"));
  }
  еще
  {
    char sz [32];
    sprintf (sz, "% 02d:% 02d:% 02d", t.hour (), t.minute (), t.second ());
    Серийный принт (sz);
  }

  printInt (d.age (), d.isValid (), 5);
  smartDelay (0);
}

статическая пустота printStr (const char * str, int len)
{
  int slen = strlen (стр);
  для (int i = 0; i   

GPS-спидометр с использованием Arduino Pro Micro

 #include 
#include 
#include 
#include 
#include 
#include 

#define OLED_RESET 4
Дисплей Adafruit_SSD1306 (OLED_RESET);

#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2


#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH 16

char timeinmin [32];
String speedinkm;
int f = 0;
int действительный = 0;
static const uint32_t GPSBaud = 9600;
TinyGPSPlus gps;



void Display_data () {
  отображать.clearDisplay ();
  // тесты отображения текста
  display.setTextSize (3);
  display.setTextColor (БЕЛЫЙ);
  if (f <10) {display.setCursor (103,0);}
  если (е> = 10) {если (е <100) {display.setCursor (85,0);} else {display.setCursor (67,0); }}
  display.println (speedinkm);
  display.setTextSize (1);
  display.setTextColor (БЕЛЫЙ);
  display.setCursor (95,22);
  display.println («км / ч»);
  display.setTextSize (2);
  display.setTextColor (БЕЛЫЙ);
  display.setCursor (0,17);
  display.println (время в мин);
   display.setTextSize (1);
  отображать.setTextColor (БЕЛЫЙ);
  display.setCursor (0,8);
  display.println («Время»);
    if (valid == 0) {
   display.setTextSize (1);
  display.setTextColor (БЕЛЫЙ);
  display.setCursor (25,0);
  display.println («Синхронизация»);
    }
        if (действительно! = 0) {
   display.setTextSize (1);
  display.setTextColor (БЕЛЫЙ);
  display.setCursor (25,0);
  display.println ("");
    }
  display.display ();
  задержка (2000);
    }
    
  
  
 
установка void ()
{Serial.begin (115200);
  Serial1.begin (GPSBaud);
   display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // инициализируем с адресом I2C 0x3C (для 128x32)
  }

пустой цикл ()
{
  Время (GPS.время);
действительный = gps.location.lat ();
f = круглый (gps.speed.kmph ());
speedinkm = Строка (е);
Серийный принт (speedinkm);
  Serial.println ();
  smartDelay (500);
  Данные дисплея();
}

статическое пустое время (TinyGPSTime & t)
{
    
    sprintf (времяinmin, "% 02d:% 02d", t.hour (), t.minute ());
  // timeinmin [0] = '1';
   // timeinmin [1] = '9';
    Serial.print (время в мин);
    //Serial.print ("");
   // Serial.print (timeinmin [1]);
    int temp1 = (int) timeinmin [0];
    temp1 = temp1-48;
    temp1 = temp1 * 10;
    temp1 = temp1 + ((int) timeinmin [1] -48);
    temp1 = temp1 + 5;
    если (temp1> = 24) {temp1 = temp1-24;}
    char a [2];
    itoa (temp1, a, 10);
    timeinmin [0] = a [0];
   timeinmin [1] = a [1];
   
}

static void smartDelay (длинное мс без знака)
{
  беззнаковый длинный старт = millis ();
  делать
  {
    в то время как (Serial1.доступный())
      gps.encode (Serial1.read ());
  } while (millis () - начало <мс);
}

static void printFloat1 (float val, bool valid, int len, int prec)
{
  если (! действительный)
  {
    в то время как (len-> 1)
      Серийный.принт ('*');
    Серийный принт ('');
  }
  еще
  {
    Serial.print (val, prec); серийный.
    int vi = abs ((int) val);
    int flen = Prec + (значение <0,0? 2: 1); //. а также -
    flen + = vi> = 1000? 4: vi> = 100? 3: vi> = 10? 2: 1;
    для (int i = flen; i  0)
    sz [len-1] = '';
  Серийный.печать (sz);
  smartDelay (0);
}

static void printDateTime (TinyGPSDate & d, TinyGPSTime & t)
{
  если (! d.isValid ())
  {
    Serial.print (F ("**********"));
  }
  еще
  {
    char sz [32];
    sprintf (sz, "% 02d /% 02d /% 02d", d.month (), d.day (), d.year ());
    Серийный принт (sz);
  }
  
  если (! t.isValid ())
  {
    Serial.print (F ("********"));
  }
  еще
  {
    char sz [32];
    sprintf (sz, "% 02d:% 02d:% 02d", t.hour (), t.minute (), t.second ());
    Серийный принт (sz);
  }

  printInt (d.age (), d.isValid (), 5);
  smartDelay (0);
}

статическая пустота printStr (const char * str, int len)
{
  int slen = strlen (стр);
  для (int i = 0; i   

Jaycar-Electronics / GPS-Speedometer: отслеживайте свои поездки с помощью GPS-спидометра с использованием Arduino и модуля GPS

Используя наш Arduino-совместимый модуль GPS и экран TFT, этот проект отображает основную информацию GPS, такую ​​как долгота, широта, высота, скорость и расстояние, пройденное от точки A до B. Информация хранится на SD-карте, которую можно экспортировать и просматривать. через Google Maps. Питание от micro-USB для удобного отключения зарядного устройства телефона, пока вы находитесь в машине.

  • Из-за ограниченного размера Arduino мы разделили код на два кодовых блока:
    • gps_speedo для спидометра gps
    • gps_recorder записать поездку gps
  • В то время как - это , которые можно уместить в один эскиз, но это мало подходит для начинающих. Тем не менее, вы можете попробовать и посмотреть, что вы можете вызвать в воображении. Мы обнаружили, что этот способ более простой и легкий для вас, не беспокоясь об удалении загрузчиков или иным образом.

Спецификация

Кол-во Товар Описание
1 XC4430 Duinotech Леонардо
1 XC3712 Модуль GPS-приемника
1 XC4630 2,8-дюймовый ЖК-экран TFT.
Односторонний и двусторонний скотч
Предлагаемые дополнительные услуги
  • WW4345 Проволока (любой цвет)
    • Очень тонкий провод, идеально подходящий для небольших сборок.
  • XC4983 SD-карта 8 ГБ.
    • Используется для записи данных GPS.

Необходимое программное обеспечение и библиотеки

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

Банкноты
  • NeoGps и NeoHWSerial необходимы для запуска модуля GPS, библиотека NeoHWSerial - это настраиваемая библиотека, которой еще нет в диспетчере библиотек, но она необходима для включения обработки прерываний на линии Serial .

  • Вы должны изменить строку 150 NMEAGPS_cfg.h , чтобы читать:

  #define NMEAGPS_INTERRUPT_PROCESSING
  
  • Вы также должны изменить 159-161 из GPSport.h , чтобы читать:
 #include  // Обработка в стиле прерывания NeoSerial или NeoSerial1
  // # include  // <- ПО УМОЛЧАНИЮ. Требуются два специальных контакта
  // # include  // AltSoftSerial с обработкой прерывания (см. документацию) 
  • MCUFRIEND_kbv необходимо изменить для работы с нашим модулем TFT.Подробнее здесь

  • SdFat предоставляет нам интерфейс с файловыми системами FAT32 , а также предоставляет шину SoftwareSPI . Мы используем SoftSPI из-за того, что у Леонардо нет контактов SPI на 10 ~ 13, как у традиционных UNO. Эта библиотека идеально подходит для наших нужд.

  • Чтобы включить, измените строку 85 из документов / библиотек / SdFat / src / SdFatConfig.h на:

 #define ENABLE_SOFTWARE_SPI_CLASS 1 

Таблица соединений

GPS-модуль Экран TFT
TX Pin0 (без маркировки, рядом с J2)
VCC 5V
ЗЕМЛЯ ЗЕМЛЯ

Вот и все, одно подключение (кроме питания)

Сборка

Чтобы устройство было аккуратным и организованным, мы прикрепляем модуль GPS под TFT-экраном.кажется, есть только одна связь, это нетривиально.

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

Лента немного прозрачная, поэтому мы раскрасили ее для вас

Затем мы удалим паяные соединения с модуля GPS, если вы не уверены, следуйте руководству

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

Соединения с модулем GPS, который был приклеен двусторонней лентой к модулю TFT

И последнее - антенна. Для этого есть два места, в зависимости от того, хотите ли вы покалечить своего Леонардо или нет. Я решил сделать это, сняв разъем ISCP с Леонардо, оставив место для антенны под нижней частью экрана TFT и используя небольшой кусок ленты, чтобы удерживать ее на месте.при желании вы также можете расположить ее в стороне, но не толкайте ее слишком сильно, так как антенный вывод очень тонкий и не рассчитан на нагрузку.

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

Вот и все! все готово.

Программирование

Программирование

сделано за вас, так что просто скачайте код и загрузите его из Arduino.Убедитесь, что вы выбрали правильную плату ( Yun или Leonardo ) и правильный порт.

В верхней части кода находится TZ_OFFSET , который установлен на 39600 - это 39600 секунд от всемирного координированного времени или +11 часов AEDT для сиднейского летнего времени. Используйте это, чтобы изменить свой часовой пояс, чтобы он отображал правильное время, например:

Использовать

Программа GPS_speedo загрузится и автоматически сообщит вам ваше местоположение и скорость. GPS_recorder сохранит информацию о вашей поездке на SD-карту в стандартном формате KVML , который используется в Google Maps.

Вклад

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

Скачать бесплатно файл в формате STL. GPS-спидометр с максимальной и средней скоростью • 3D-печать объекта ・ Культы

?

Творческое качество: 0.0/5 (0 голосов)

Оценка участников по пригодности для печати, полезности, уровню детализации и т. Д.

Ваш рейтинг: 0/5 Удалить

Ваш рейтинг: 0/5

  • 916 Просмотры
  • 0 нравится
  • 5 загрузки

3D описание модели

Универсальный и небольшой GPS-спидометр с питанием от Arduino, увеличенным основным дисплеем скорости, а также дисплеями Max и Average.

Он должен быть прочным и довольно простым в сборке.

Он оснащен светодиодами для быстрой индикации состояния.

Вот видео

Это было разработано для печати на чем-то вроде прозрачного. Моя светится в темноте PLA. Большинство лампочек и тому подобное просвечивают через корпус, поэтому дырок меньше.

#BOM:

Модуль GPS

Экран

Powerboost 1000c

Переключатель

Разъем USB

Некоторые неопиксели

Я использовал кусок длинной полосы, но они подойдут лучше.

Батарея или батареи, которые умещаются в пространстве шириной 80 мм и толщиной 8 мм при макс. Я подключил 3 ячейки по 60348 900 мАч, каждая имеет плату защиты.

Достаточно места для ячейки 18650.

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

Исходный код для Arduino прилагается! Назначение контактов указано в коде Arduino вверху.

Использует 6 самонарезающих винтов M3x8 мм для закрытия разъема USB и 4 для фиксации экрана.

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

Для этого есть дополнительный монтажный зажим. Распечатайте это сейчас. К нему также прилагается зажим для ремня. Монтажные отверстия на задней панели имеют размер 103x80 мм для саморезов M3.

Это использует библиотеку TinyGPS ++ и может быть изменено.

Купить готовый агрегат можно здесь

Получите последний код для модуля на Github здесь

# Спасибо!

  • Обновлено 22.04.2020 В корпус добавлены 3 мм, чтобы освободить место для аккумулятора 18650. Это значительно упростит поиск хорошего источника питания! Также переделал и перезагрузил код Arduino с помощью 3DFabXYZ, см. Комментарии!

Информация о файле 3D-принтера

  • Формат 3D-дизайна : STL Детали папки Закрывать
    • Speedo _-_ Back_CoverSpeedo-1.STL
    • Speedo _-_ GPS_Speedo_Front-1.STL
    • Speedo _-_ Mounting_ClipSpeedo-1.STL
    • Speedo _-_ Зажим для ремняSpeedo-1.STL
  • Дата публикации : 2020.10.07 в 20:15

Лицензия

CCBY

Теги

Создатель

Я дизайнер, инженер и техник-электронщик, работаю над 3D-принтерами и печатаю в качестве хобби.

У меня есть многолетний опыт, и я построил несколько собственных 3D-принтеров.

НАЙДИТЕ нас в Discord! https://discord.gg/2DepCgtvp8


Бестселлеры категории Гаджеты


Хотели бы вы поддержать культы?

Вы любите Культы и хотите помочь нам продолжить приключение самостоятельно ? Обратите внимание, что мы небольшая команда из 3 человек , поэтому очень просто поддержать нас поддерживать деятельность и создавать будущие разработки .Вот 4 решения, доступные всем:

  • РЕКЛАМА: Отключите блокировщик баннеров AdBlock и нажимайте на наши рекламные баннеры.

  • ПРИСОЕДИНЕНИЕ: Делайте покупки в Интернете, нажимая на наши партнерские ссылки здесь Amazon или Aliexpress.

  • ПОЖЕРТВОВАТЬ: Если хотите, вы можете сделать пожертвование через PayPal здесь.

  • СЛОВО РОТА: Пригласите своих друзей прийти, откройте для себя платформу и великолепные 3D-файлы, которыми поделились сообщество!

Arduino GPS Спидометр Одометр Светодиодный дисплей | Arduino | Электроника | GPS | Микроконтроллер | Схема расположения печатной платы

Arduino с GPS-спидометром и одометром со светодиодным дисплеем для использования в гонках на суше.Проект предназначен для ПРОЕКТИРОВАНИЯ, СТРОИТЕЛЬСТВА И ОТГРУЗКИ 2-Х ЕДИНИЦ.

Непрерывное отображение скорости от 0-500 + миль / ч:

Трехзначный дисплей скорости с шагом 1 миля в час.

Непрерывное отображение расстояния по прямой от исходной точки:

Максимальное расстояние от 0,0 до 9,9 миль.

2-значный дисплей с шагом 0,1 мили.

Максимальная скорость определяется нажатием кнопки (удерживайте для отображения)

Сброс исходной точки и пиковой скорости с помощью другой кнопки (удерживайте 10 секунд для сброса)

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

Ускорение от 0 до 500 миль / ч за 60 секунд. Отображение скорости и расстояния должно соответствовать минимальной задержке и быть стабильным, чтобы легко читать без быстрого мерцания (оценка обновления дисплея 0,7 секунды).

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

Питание от 11 до 14 В постоянного тока.Все светодиоды загораются на 10 секунд при включении для проверки работоспособности.

Мне нужно построить 2 единицы. Компоненты могут быть незакрепленными. Изготовлю корпус и крепеж. У меня есть возможность обработки с ЧПУ.

Требуется документация: мне нужен список компонентов, данные поставщика и цена. Также программный код и файлы печатной платы для редактирования.

Приемник GPS должен быть быстрым и точным для расчета скорости. Оборудование должно быть очень надежным и способным работать в условиях повышенной вибрации при температуре до 40 ° C.

Все оборудование должно быть сгруппировано с 3-значным дисплеем скорости. Кабель длиной 700 мм соединяет его с 2-значным дисплеем одометра. К кнопкам подключается кабель 180 мм. Узел также должен работать с отключенным дисплеем одометра.

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

Сообщите мне, если потребуется дополнительная информация или у вас есть альтернативные предложения.

Видео с аналогичной функцией GPS Arduino Speedometer:

[войдите, чтобы просмотреть URL]

[войдите, чтобы просмотреть URL]

Это предпочтительный дисплей:

Зеленый светодиод - самый яркий, но он открыт для альтернативных дисплеев:

[Войти, чтобы просмотреть URL], searchweb201602_5_10152_10151_10065_10344_10068_10130_10342_10547_10325_10343_10546_10340_10548_10341_5012515_10696_5012615_10084_10083_10618_10307_10131_10132_10133_10059_100031_10103_10624_10623_10622_10621_10620, searchweb201603_51, ppcSwitch_5 & algo_expid = 302c85b9-11f9-412c-9930-5cd23d55eb6a-2 & algo_pvid = 302c85b9-11f9-412c-9930-5cd23d55eb6a & priceBeautifyAB = 0

предпочтительные кнопки:

[войдите, чтобы просмотреть URL]

Обратите внимание: любые заявки, не включающие стоимость сборки и доставки в Сидней, Австралия, рассматриваться не будут.

привет и спасибо.

Навыки : Arduino, электроника, GPS, микроконтроллер, макет печатной платы

Подробнее: проект с большим матричным светодиодным дисплеем, светодиодный дисплей с текстовым эффектом вспышки, проектирует цифровой будильник с использованием схемы светодиодного дисплея, спидометр arduino, проект спидометра arduino gps, спидометр raspberry pi gps, автомобильный спидометр arduino, спидометр arduino gps 7 сегмент, спидометр arduino uno gps, крошечный спидометр gps, код спидометра arduino gps, установка небольшого светодиодного дисплея 232, программирование vbnet, драйвер матричного светодиодного дисплея, схемы последовательных светодиодных дисплеев, светодиодный дисплей Java для последовательной связи, светодиодный экран для внештатных разработчиков программного обеспечения, проект светодиодного дисплея с матрицей, проект светодиодного дисплея, светодиодный дисплей vb netrs232, светодиодный дисплей связи rs vb

( 1 отзыв ) Кингсгроув, Австралия

ID проекта: # 17681043

Учебное пособие по

Arduino GPS: Как использовать модуль GPS с Arduino | Стрелка.com

До появления спутников связи люди перемещались, используя звезды, карты и даже наземные средства навигации LORAN (не путать с LoRaWAN ). Когда спутник начал путешествовать по земному шару и излучать радиосигналы, инженеры поняли, что они могут использовать несколько спутниковых сигналов для триангуляции положения человека на Земле. Исходя из этого и после огромного объема работы, Соединенные Штаты разработали систему спутникового позиционирования, которую мы теперь знаем как глобальную систему позиционирования или GPS.

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

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

Материалы проекта Arduino Uno GPS:

- Плата Arduino (мы использовали Uno )

- GPS модуль и антенна u-blox NEO-6

- последовательный кабель USB-TTL

- WS2812B Светодиод «NeoPixel» RGB и перемычки

- Программное обеспечение, как указано в этой статье

Начало работы: как проверить, работает ли модуль GPS

Подпись: Программное обеспечение U-blox.Обратите внимание на зеленый значок подключения в верхнем левом углу экрана

Мы сосредоточились на использовании модуля GPS с Arduino, но вам следует начать с проверки правильности работы GPS.

1. Подключите антенну к GPS-прибору.

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

3. Подключите кабель USB-TTL к компьютеру.

4. Подключите питание и заземление кабеля к источнику питания и заземлению USB-модуля.

5.Подключите кабель TTL Rx к GPS Tx, а TTL Tx к GPS Rx.

Чтобы убедиться, что вы получаете какой-то сигнал, откройте com-порт с помощью Arduino IDE (установите его, если у вас его нет) и установите для него скорость передачи данных GPS (мы использовали 9600). Вы, вероятно, не поймете вывод данных, но если GPS принимает или выдает последовательный сигнал, вы увидите своего рода индикацию «доказательства жизни». Чтобы дополнительно проверить работоспособность вашего GPS, выполните следующие действия:

1. Загрузите программу u-blox .

2. Подключитесь через TTL и выберите соответствующий com-порт, как в Arduino IDE.

3. Подключитесь с помощью значка штекера в верхнем левом углу интерфейса.

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

Если вы хотите проверить точность, введите данные в строку поиска Google Maps в числовом формате: широта, долгота. Вы получите показания в нескольких футах от вашего текущего местоположения, возможно, даже в помещении.

GPS-модуль для подключения к Arduino

Затем выполните следующие действия, чтобы подключить модуль GPS к плате Arduino:

1. Загрузите библиотеку TinyGPSPlus с GitHub, затем добавьте ее как библиотеку .zip в свою среду разработки Arduino.

2. Откройте «DeviceExample» под примерами и измените скорость GPSBaud на подходящую для вашего устройства (протестированное устройство - 9600).

3. Отправьте этот код на плату Arduino.

4. Подключите контакт VCC GPS к контакту GPS + 5V от Arduino, а GND к GND.

5. Подключите Rx к контакту 3 Arduino, а Tx - к контакту 4 Arduino.

6. Откройте последовательный порт на скорости 115200 бод, и вы должны увидеть координаты широты и долготы, а затем дату и всемирное координированное время (UTC), которое вам нужно будет скорректировать в соответствии с вашим местоположением.

7. Чтобы подтвердить настройку, подтвердите свое местоположение с помощью карт Google.

Использование Arduino GPS в качестве спидометра

Подпись: Arduino GPS остановился на столе.

С платой Arduino вы можете использовать свой GPS-модуль для выхода за рамки считывания координат; вы даже можете настроить свое устройство на реагирование на его условия. Библиотека TinyGPS предоставляет множество значений времени и положения .

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

- Красный будет обозначать остановку движения (значение скорости 0)

- желтый обозначает скорость до 5 километров в час.

- Зеленый предназначен для любой скорости, превышающей 5 километров в час.

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

1. Установите библиотеку Adafruit NeoPixel .

2. Загрузите и установите Speed-RGB.ino из этого каталога.

3. Подключите цифровой вход одиночной лампы RGB к контакту 5 Arduino, земля к земле, а контакт + 5V к + 5V на плате Arduino.Если это мешает подаче 5 В на ваш модуль GPS, вы можете вместо этого запитать его от источника 3,3 В на Arduino.

Подпись: Остановка, медленная ходьба, более быстрая ходьба / бег. Обратите внимание на размытость, которая увеличивается со скоростью

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

Оставить комментарий

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