Ничего не найдено :(
    В гостях у Самоделкина! » Электроника » Arduino » Умный GPS спидометр для автомобиля

    Умный GPS спидометр для автомобиля


    В закромах «родины» завалялся GPS модуль, купленный когда-то для экспериментов.
    Возникла идея пристроить его в авто, но показывать координаты и скорость движения – это слишком просто. Задача формулировалась так:
    - возможность размещения дисплея перед водителем;
    - показ текущей скорости;
    - отслеживание текущей скорости движения авто и расчет порога ближайшей разрешенной скорости;
    - отображение рассчитанного порога скорости (ближайшего допустимого из списка значений типовых ограничений: 40, 50, 60, 70, 80, 90, 100, 110, 130 км/ч);
    - предупреждение водителя звуком и цветом светодиода при достижении порогового значения скорости, в том числе: предупреждение о превышении порога на 15 км/ч – 18 км/ч – желтым светом; предупреждение о превышении порога на 19 и более км/ч – красным светом;
    - прибор должен работать без сети интернет.

    Общее описание

    Итак, у нас должен получиться легкий прибор, работающий от бортовой сети легкового автомобиля. Прибор можно разместить в удобном месте перед глазами водителя, чтобы текущая скорость всегда была бы в поле зрения.
    Прибор состоит из разборного корпуса и электронной начинки. Корпус печатается на 3D принтере. Электронные компоненты размещаются внутри корпуса.

    При включении прибора в левой части дисплея показывается текущий порог скорости. В правой части отображается текущая скорость. Во время поиска спутников в правой части по периметру бегает один сегмент.
    Кнопка выполняет следующие функции:
    - однократное короткое нажатие – переключение в левой части дисплея отображения значения установленного порога/числа найденных спутников или выключение левой части;
    - долгое нажатие – вкл/выкл звука (точка в 3-м справа разряде показывает текущее состояние – если горит, то звук включен);

    Материалы и инструменты

    Для самоделки нам понадобятся следующие инструменты и материалы:
    - 3D принтер;
    - черный пластик для 3D принтера;
    - паяльник с припоем;
    - цветные соединительные провода;
    - автомобильное зарядное устройство для телефона (для подключения питания микроконтроллера);
    - электронные компоненты (ссылки приведены исключительно в информационных целях):
    --- Совместимый микроконтроллер Nano v3.0 для Arduino, с загрузчиком, USB-драйвером CH340, 16 МГц, ATMEGA328P – 1 шт.;
    --- Модуль GPS NEO6MV2 – 1 шт.;
    --- 8-значный цифровой дисплей MAX7216 – 1 шт.;
    --- прямоугольные светодиоды 4-х цветов (красный, желтый, синий и зеленый) - по 1 шт. каждого цвета;
    --- резистор 120-150 ом (зависит от параметров светодиодов) – 4 шт.
    --- пассивный зуммер – 1 шт.;
    --- микропереключатель 6x6 высота кнопки 4-6 мм – 1 шт.

    Шаг первый: печать корпуса

    Корпус прибора состоит из 2-х частей: основание и внешний короб-крышка. Файлы для печати можно скачать по ссылке ниже:
    korpusgps.rar [205.87 Kb] (скачиваний: 43)


    Оба элемента печатаются черным пластиком (желательно ABS) со стандартным или высоким качеством. Основание печатается горизонтально, короб – вертикально. Поддержки при печати не использовались. Однако для вертикальной печати желательно использовать режим «брим» или печатать на подложке во избежание отслаивания детали от стола принтера.


    После печати детали нужно обработать (при необходимости) наждачной бумагой.
    Основание должно плотно входить в короб. Если основание выпадает из него, то можно дополнительно закрепить сверху короб саморезом М2x6 мм (для этого в основании предусмотрен соответствующий упор с отверстием).

    Шаг второй: монтаж электронных компонентов

    Электронные компоненты соединяются в соответствии со схемой

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

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

    - к цифровому дисплею с тыльной стороны припаиваются соединительные провода, дисплей устанавливается (длинным «плечом» влево) в посадочное место;

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



    Все соединения нужно заизолировать термоусадочной трубкой.
    Микроконтроллер помещается в специальную нишу с выводом USB коннектора в левую сторону.


    GPS модуль размещается в правой части основания. Антенна совмещается с модулем и закрепляется сверху GPS модуля термоусадочной трубкой или скотчем.

    Зуммер размещается внутри основания.
    При необходимости и после проверки работоспособности прибора детали внутри основания можно точечно закрепить с помощью термоклеевого пистолета.
    На основание одевается короб – прибор готов к следующему шагу.


    Шаг третий: программирование

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

    Для программирования МК Вам нужно:
    - скачать скетч по ссылке (ссылка на архив: gps_speed_v2.rar [7.5 Kb] (скачиваний: 170) ), загрузить в Arduino IDE;
    - подключить МК к ПК USB-шнуром;
    - подключить требуемые в скетче библиотеки (если они не установлены);
    - скомпилировать скетч;
    - загрузить скомпилированный код в МК.
    После загрузки Ваш прибор должен заработать.

    Сначала GPS модуль ищет спутники (при этом мигает синий светодиод). После нахождения спутников синий светодиод светится постоянно.
    Внимание! Спутники видимы GPS модулем только на открытом пространстве. В помещении (особенно в панельном доме) модуль скорее всего спутники не найдет. Если спутники видны, то GPS модуль находит их в течение 1 минуты.

    Отладочная и диагностическая информация может быть включена (смотрите скетч и комментарии в нем) и отслежена через монитор Arduino IDE.

    Состав и настройка параметров также описана в комментариях в скетче.

    Шаг четвертый: тестирование

    После сборки и программирования прибора можно провести тестирование на авто.
    Для питания прибора используется зарядное автомобильное устройство (или повербанк).
    Прибор располагается на «торпедо» перед водителем и в процессе езды показывает пороговую и текущую скорости.

    Если скорость меньше пороговой + 15 км/ч, то горит зеленый светодиод.
    При достижении порога скорости (порог +15 км/ч) зажигается желтый светодиод, пищит длинными гудками зуммер.
    При превышении порога на 19 и более км/ч начинает моргать красный светодиод и включается учащенный писк зуммера.
    Если прибор находится в таком состоянии более 10 секунд (время настраивается в скетче), то он автоматически переводит порог скорости на следующий подходящий уровень, считая, что водитель едет с разрешенной на участке скоростью (с учетом допуска 15 км/ч).
    Кнопка на приборе управляет звуком и позволяет переключать информацию на цифровом дисплее. В скетче также описаны ее функции.


    Заключение

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

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

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

    Закрепить GPS спидометр перед водителем можно в нужной позиции двухсторонним скотчем.

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

    Говорящий СТОП 2в1 на автомобиль

    9.5
    Идея
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    9.7
    Описание
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    9.7
    Исполнение
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    Итоговая оценка: 9.61 из 10 (голосов: 12 / История оценок)

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

    11 комментариев
    AntiviRus #92182 Автор
    Цитата: Гость Кирилл
    Помогите пожалуйста при компеляции выдает ошибку я зделал все по инструкции не помогло подскажите что делать ?


    Нужно исправить в указанной строке: вместо написать 3. Т.е. должно быть так:
     for (byte i = 0; i < 3; i++) valDig[i] = ' ';
    Этот оператор находятся в файле GPS_Speed_v2.ino - в строке 539

    Гость Кирилл #92125

    Помогите пожалуйста при компеляции выдает ошибку я зделал все по инструкции не помогло подскажите что делать ?


    C:\Users\USER\Documents\Arduino\sketch_feb03a\params.ino: In function 'displayMaxSat(unsigned char, unsigned char)':

    C:\Users\USER\Documents\Arduino\sketch_feb03a\GPS_Speed_v2.ino:539:48: warning: iteration 3 invokes undefined behavior [-Waggressive-loop-optimizations]

             for (byte i = 0; i < 4; i++) valDig[i] = ' '; //массив для вывода скорости по символам

                                          ~~~~~~~~~~^~~~~

    C:\Users\USER\Documents\Arduino\sketch_feb03a\GPS_Speed_v2.ino:539:28: note: within this loop

             for (byte i = 0; i < 4; i++) valDig[i] = ' '; //массив для вывода скорости по символам

                              ~~^~~

    C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\main.cpp: In function 'main':

    C:\Users\USER\Documents\Arduino\sketch_feb03a\GPS_Speed_v2.ino:539:48: warning: iteration 3 invokes undefined behavior [-Waggressive-loop-optimizations]

             for (byte i = 0; i < 4; i++) valDig[i] = ' '; //массив для вывода скорости по символам

                                                    ^

    C:\Users\USER\Documents\Arduino\sketch_feb03a\GPS_Speed_v2.ino:539:28: note: within this loop

             for (byte i = 0; i < 4; i++) valDig[i] = ' '; //массив для вывода скорости по символам


    AntiviRus #85090 Автор
    Цитата: Гость Андрей
    AntiviRus, Приветствую, получилось разобраться с ошибкой, Спасибо!!!




    ok

    Гость Андрей #85072
    AntiviRus, Приветствую, получилось разобраться с ошибкой, Спасибо!!!



    AntiviRus #84855 Автор
    Цитата: Гость Андрей
    Здравствуйте ! я севсем не силен в программировании, поэтому возникли вопросы и ошибки при компиляции((( 'getParamsEEPROM' was not declared in this scopeподскажите как исправить


    Здравствуйте! Сообщение говорит о том, что компилятор не находит функцию getParamsEEPROM. Возможно, что Вы не скопировали из архива второй файл params.ino. У Вас на компьютере должна быть папка GPS_Speed_v2, а в ней 2 файла: GPS_Speed_v2.ino  и   params.ino.
    Когда Вы из Arduino IDE открываете проект (файл GPS_Speed_v2.ino (его имя всегда должно совпадать с именем папки, в которой он находится)), то у Вас появится 2 закладки с именами этих файлов. Проверьте, что это именно так.

     

    AntiviRus #84854 Автор
    Цитата: Гость Дмитрий

    как включить режим отладки? 


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

    //***************** ОТЛАДКА

    bool _debug = false;                     // режим показа отладочных сообщений

    bool _debug_speed = false;               // режим отладки скорости (ввод значений из монитора порта)

    //***************** ОТЛАДКА



    Гость Андрей #84812
    Здравствуйте ! я севсем не силен в программировании, поэтому возникли вопросы и ошибки при компиляции((( 'getParamsEEPROM' was not declared in this scope подскажите как исправить
    Гость Дмитрий #76513

    как включить режим отладки? 

    Гость Гость #66987

    Попробуем сделать!

    AntiviRus #66942 Автор
    Цитата: Avtorun
    уберечь от лишних штрафов


    Точно-точно, для того и делалось  :-)

    Avtorun #66930

    Весьма интересное оформление! Стоит попробовать сделать подобную вещь, это может уберечь от лишних штрафов

    Привет, Гость!


    Зарегистрируйтесь

    Или войдите на сайт, если уже зарегистрированы...

    Войти

    Добавьте самоделку

    Добавьте тему

    Онлайн чат

    Последние комментарии

    Все комментарии