Главная » Статьи » Проекты

Направлятор

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

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

 Схема строится на микроконтроллере ATMega64 с тактированием от внешнего кварцевого резонатора на 11,0592 МГц. За работу с GPS отвечает NEO-6M от U-blox, это хоть и старенький, но очень распространенный и недорогой модуль с достаточно точным определением координат. Информация выводится на дисплей от Nokia 3310 (5110). Еще в схеме присутствуют магнитометр HMC5883L и акселерометр ADXL335, о них расскажу позже.

 Итоговая схема устройства

 

печатная плата:

 

 Схема и плата спроектированы в системе EasyEDA, глянуть на проект можно здесь

 

  

 

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

 Включение и выключение устройства происходит длинным нажатием на кнопку S5. После включения и поиска спутников (при холодном старте может уйти до 10 минут или даже больше) мы можем посмотреть текущие координаты, нажав на кнопку S2.

 

 Координаты конечной точки можно посмотреть нажав на кнопку S3.

 

 Нажав кнопку S4 попадаем в меню сохранения точки. Сохранить точку можно двумя способами: сохранить текущие координаты

  

 

или же забить координаты вручную

   

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

 

 

 Вернуться в режим следования к точке можно по короткому нажатию на кнопку S5

 

 

 Теперь об использовании магнитометра и акселерометра. Для расчета азимута используются данные полученные с GPS приемника, поэтому в случае если рассчитать координаты не возможно (например если спутники не видны или их мало) пропадает возможность и рассчитать направление в котором нужно двигаться, чтобы придти к точке. И первоначально моя задумка была в том, чтобы использовать магнитометр как вспомогательное средство для указания курса.  Но столкнулся с некоторыми трудностями.

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

 Во-вторых, заметно сказывается различие магнитного склонения в разных частях Земли. Например в Поволжье магнитное склонение составляет 13°, а на другом конце страны склонение уже 11° и в другую сторону.  А ведь есть еще и магнитное наклонение - когда линии магнитного поля входят или выходят под углом к горизонту, и много других факторов влияющих на показания.

 

     

<<< расчет >>>

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

 

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

 

 И напоследок немного фоток с уличных испытаний

    

 

Используемые компоненты

GPS модуль NEO-6M

ЖК дисплей

Магнитометр HMC5883

Акселерометр ADXL335

 

Исходники и прошивка

 

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

        

 

UPD:

вот такой получился корпус для направлятора

 

 Архив с файлами модели (SolidWorks + STL)

 

 Обновил прошивку, исключив из схемы акселерометр и магнитометр. Теперь по нажатию на кнопку S1 будет выводится информация о напряжении на аккумуляторе, время и дата по UTC, а также азимут (по сути тот же компас).

 

Скачать обновленную прошивку

 

Категория: Проекты | Добавлено: 11.02.2017
Просмотров: 45554 | Комментарии: 75 | Теги: HMC5883L, atmega64, GPS, схемы | Рейтинг: 5.0/10
Всего комментариев: 751 2 3 »
+1   Спам
75 max   (04.10.2019 13:58) [Материал]
> Помогите пожалуйста, может ли кто-нибудь скинуть не компилированный код прошивки? Буду очень благодарен

http://avrproject.ru/112/napravlyator-v1/napravljator.zip

74 JollyFox   (01.10.2019 22:32) [Материал]
Помогите пожалуйста, может ли кто-нибудь скинуть не компилированный код прошивки? Буду очень благодарен

73 nexus974   (06.03.2019 20:04) [Материал]
По поводу инверсной подсветки нашел оригинальное решение- старая добрая К555ЛН1. и все становится на свои места

72 nexus974   (06.03.2019 16:20) [Материал]
Коллеги, премного благодарен за ценные советы) Скажите, можно ли переинвертировать диоды в подсветке дисплея, чтобы не покупать и не ждать новый? Если нет да и бес с ними, конечно же) поставлю в разрыв кнопку на размыкание. все равно штучный экземпляр для себя)

71 milcin68   (04.03.2019 02:46) [Материал]
exersizze писал: На плате есть батарейка, которая поддерживает сохраненые параметры предыдущих поисков, и за счет этого происходит более быстрое определение координат. Возможно что эта батарейка уже дохлая.
- это работает только в оригинальных модулях, в китайских многое урезано при подключении модуля к компьютеру по UART ни какие настройки изменить нельзя.
eeprom которая стоит на модуле и к которой подключена батарейка стоит для красоты почему то она пустая и никакие данные в нее не прописываются.

на оригинальном модуле можно включить даже спутники GLONASS

+1   Спам
70 milcin68   (04.03.2019 02:36) [Материал]
вот такой нужно заказывать дисплей отверстия для пайки с двух сторон https://ru.aliexpress.com/item/Free-shipping-1pcs-New-Module-Blue-backlight-84-48-84x84-LCD-adapter-PCB-for-Nokia/32526061324.html?spm=a2g0s.9042311.0.0.274233edHgawop

а изначально у меня был такой отверстия с одной стороны на нем инверсное управление подсветкой https://ru.aliexpress.com/item/1pcs-White-Backlight-84-48-84x84-LCD-Display-Module-Adapter-PCB-for-Nokia-5110-for-Arduino/2051637522.html?spm=a2g0s.9042311.0.0.274233edDPL9do

+1   Спам
69 milcin68   (04.03.2019 02:28) [Материал]
nexus974 спрашивал:
- 2) при включении постоянно горит подсветка дисплея. погасает при нажатии любой из тактовых кнопок и через некоторое время снова загорается.

- Не подходит дисплей, то же так накололся инверсное управление подсветкой.

- индикатор заряда показывает 2.7 вольта стоят резисторы из схемы напряжение отображается корректно

- Тестер определяет 3.7 вольт

полностью заряжённый АКБ 4.2 вольта при 3,6 мой выключается
заряжать можно через такой модуль https://ru.aliexpress.com/item/Smart-Electronics-5V-Micro-USB-1A-18650-Lithium-Battery-Charging-Board-With-Protection-Charger-Module-for/32615930404.html?spm=a2g0s.9042311.0.0.274233ed2lidNj

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

- батарея от nokia 3310 оригинальная из тф, но уже изрядно постаревшая держит в телефоне трое суток в дивайсе работала 14 часов.

батарейка купленная в магазине держит 3 -4 часа))))))))

68 nexus974   (21.02.2019 20:48) [Материал]
Доброго времени суток!
К вопросу о питании от аккумулятора. Прикупил двухконтактный Li-ion 3.7V 950mA . Заряженный . Подцепляю к девайсу -не запускается. Подключаю внешний источник питания(зарядка от сотового)-запускается. Куда кивать? Чего не хватает? Не полностью заряжен аккум? Тестер определяет 3.7 вольт

0  
67 exersizze   (16.01.2019 23:59) [Материал]
1. Долго может искать потому-что каждый раз модуль стартует в "холодную". На плате есть батарейка, которая поддерживает сохраненые параметры предыдущих поисков, и за счет этого происходит более быстрое определение координат. Возможно что эта батарейка уже дохлая. 
По моим наблюдениям в облачную погоду gps тоже хорошо работает, не думаю что причина в этом.
2. На открытой местности плюс минус пять метров. Когда наблюдал за показаниями дома, тогда набегало прилично, что-то тоже порядка сотни метров. 
3. Уже и не помню конкретных цифр, но пока отлаживал часто заряжать не приходилось.

66 nexus974   (16.01.2019 23:37) [Материал]
спасибо за оперативный ответ. Буду пробовать. Если вы не против, добавлю еще несколько вопросов.
1) Иногда очень долго ищет сигнал. Возможно для этого gps модуля это нормально, я не уверен. как он вообще реагирует на облачную погоду например?
2) какова его приблизительная точность? +/-. Иногда как только сигнал он поймал,в кружке на компасе могут индицироваться показания от 80 до 200 метров.
3) какова ваша приблизительная оценка продолжительности работы девайса от полностью заряженного аккума? каков ток потребления?

Заранее благодарен)

0  
65 exersizze   (16.01.2019 23:08) [Материал]
Привет!
1. В первую очередь надо проверить появляется ли сигнал на PE7 при подаче питания. Если появляется - разбираться дальше по цепочке: открывается ли транзистор Q2 и есть ли напряжение на входе PD1
2. Подсветка вырубается по таймеру, гарантировано при переполнении таймера на выводе PA1 появляется высокий уровень. Дело может быть в нерабочем таймере микроконтроллера, но судя по описанию все же происходит переключение, только в обратную сторону. Поэтому возникла мысль, не инвертирован ли на дисплее светодиод? Проверьте дисплей, подключите к нему только питание и подведите к выводу Light напряжение. У всех дисплеев 3310 которые были у меня, подсветка горела при подключении к выводу light минуса.
3. Попробуйте уменьшать номинал резистора R9, должно помочь
4. Согласен.

64 nexus974   (16.01.2019 21:54) [Материал]
Привет и глубокий респект автору!
Повторил ваш девайс. Все заработало. Но есть кой -какие вопросы если вы не против.
1) отказывается включаться долгим нажатием на кнопку вкл. Пришлось поставить обычный тумблерок на включение. нога 26 по питанию подтянута. не понимаю в чем беда. прошивку два раза заливал

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

3) индиктаор заряда показывает 2.7 вольта при полностью заряженном аккуме. Я так понимаю процессор читает не уровень заряда аккума, а напряжение питания на понижающем стабилизаторе напряжения.

4) неплохо было бы добавить цепь зарядки аккума, чтобы не вытаскивать аккум каждый раз из корпуса при разрядке

63 milcin68   (14.01.2018 06:58) [Материал]
Приветствую, а может кто время подправить?
что бы не по Гринвичу а +3 часа сделать.

+1   Спам
62 milcin68   (23.11.2017 01:28) [Материал]
И снова здравствуйте)))
Сегодня вновь все повторилось как в #60 посте неисправность нашёл осциллографом не было обмена с TX дело оказалось в протраве дорожки, хоть дорога и была облужена под бугорком олова был не контакт.
в архиве замеры на схеме, так же дорисовал резистор,
моя печатка под односторонний текстолит,
переходная плата для TL866 из TQFP в дип 40, прошивка автора и фьюзы.
https://cloud.mail.ru/public/GyVe/2UVKfHi5j
Автору огромное Спасибо!!! за проделанный труд.

61 milcin68   (22.11.2017 03:17) [Материал]
беру свои слова назад, я ничего не понимаю
прошил снова обновленную прошивку и все работает
ни то чип от нагрева восстановился, ни то кварц.
ведь до этого все делал то же самое не работал.

60 milcin68   (22.11.2017 02:25) [Материал]
отвечу сам себе,
26 pin надо подтягивать к питанию.
фьюзы в моем посте выставлены правильно.
залил первую версию прошивки все работает.
с обновленной прошивкой не входит в режим следования,
не выходит на кнопку S1 ни в меню ни из подменю.
кнопка S5 не реагирует на кратковременное нажатие, но на длительное все таки выключает .
может вообще зависнуть на надписи направлятор, и не отображать стрелку следования.

59 milcin68   (21.11.2017 01:18) [Материал]
нужно ли подтягивать 26 pin к питанию?
правильно ли я выставил фьюзы?
https://cloud.mail.ru/public/MezW/bRFFRhZUV

ситуация такая прошил по ISP а в конце верификацию не проходил, после нескольких попыток вообще выдал ошибку виндус и чип закрылся.

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

неправильно выставлены фьюзы или что то с чипом?

+1   Спам
58 milcin68   (18.11.2017 22:54) [Материал]
Приветствую участников!
моя версия платы под односторонний текстолит https://cloud.mail.ru/public/7DxC/9SDidDkpv
и под красный модуль GY-NEO6MV2
и маленький момент с дисплеем, надо заказывать чтобы контакты были с двух сторон,
а то я заказал с контактами с одной стороны, и теперь под мою печатку его только на шлейфе можно подключить.

0  
57 exersizze   (05.11.2017 23:54) [Материал]
alex182, исходник в архиве в конце статьи
ELK, нет.

56 alex182   (05.11.2017 19:05) [Материал]
exersizze
а можно мне исходник новой прошивки
то есть исправленный без магнитометра и акселерометра

55 ELK   (04.11.2017 19:57) [Материал]
exersizze сможешь сделать прошивку для AtMega328 (без акселерометра и магнитометра), если не трудно?

0  
54 exersizze   (16.10.2017 10:33) [Материал]
Запросто, только мне оно особо не надо.

53 ELK   (13.10.2017 20:11) [Материал]
exersizze, как насчет того, чтобы использовать что-нибудь кроме AtMega64, может Mega 328?

52 rom-i   (06.09.2017 20:39) [Материал]
Получил второй NEO6. Повезло Китайцу, что первой сторокой идет RMC. Направлятор заработал. Но в модуле нельзя ни чего изменить. Китаяц обманул, и спор ему. Снял прошивку с ппзу 24С32. Оказалось, что стоит она чисто для внешнего вида(как в оригинале). В ней нет ни чего, и для Китайского модуля не надо. Продолжает работать без нее, без изменений. Все расчитано на лоха. По картинкам на Али не определиш какой модуль стоит(NEO, или КИТАНЕО). Наклейка такая же на железке. Если на Китайскую плату припаять оригинальный модуль, все будет OK. Работа направлятора понравилась. Китайсий модуль тож не совсем плох. Спутники ловит даже в подвале деревянного дома. Для других разработок милое дело.

51 rom-i   (21.08.2017 15:29) [Материал]
Проект появлялся, и попробовал переписать пругу под седьмую строку. Конкретного форума на Bascom avr не нашел. Упираюсь в буфер обмена по UART.Сама переменная Stryng на меге32 позволяет 600 символов. Но как выковорить ее из буфера, не знаю. Попытки все не удачны. Компилятор берет, в железе не работает. Протеус не может работать в реальном времени. Тем более прошивка использует power down. Сон меги до нажатия на кнопку. Протеус сл сном работать не может. Нужен ответ опытного программиста. Как из буфера достать седьмую строку ответа. Вообще заказал еще модуль NEU6. Китаяц кричит, что можно менять установки. Обошелся в 475 р. Но не факт, что не закончится спором. В дешевых модулях доступ к памяти закрыт. Есть вариант выпаять ее, и прошить отдельно. Но где взять прошивку. Ведь там чип используется не NEO.По этому знают тока Китайцы. Или достучаться до программиста на Баском авр. На бейсике нет каких-то кодов. Он довольно прост. Но нужно искать правильный подход.

0  
50 exersizze   (20.08.2017 21:18) [Материал]
Ну зачем же забрасывать?) Изучайте язык, оптимизируйте код под себя.

49 алексей1984   (18.08.2017 18:09) [Материал]
очень жаль, что же остается забросить данный проект?((( в программировании полный ноль.

48 rom-i   (17.08.2017 16:44) [Материал]
Ни чего с лишними строками сделать не получится. Это такие модули продают на Али. Там есть подпись down. То есть с модуля можно только считывать. Которые можно программировать стоят дороже. Они как бы оригинальные.

47 алексей1984   (21.07.2017 20:40) [Материал]
у меня тоже модуль шлет 10 строк, лишние никак не могу отключить, не подскажите как?

46 алексей1984   (21.07.2017 18:31) [Материал]
Помогите пожалуйста, собрал сей девайс, при включении проходит заставка, выходит компас и уходит в вечный поиск, на кнопки никак не реагирует. при припаивании резистора на 26 ногу контроллера приборчик даже не включается, подскажите куда копать? подключал по uart gps модуль рабочий.

1-30 31-60 61-75
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]






авторизация