GNSS/NMEA 0183 О навигационных модулях, парсинге NMEA данных и навигации для микроконтроллеров STM32

  Рет қаралды 8,093

Vladimir Medintsev

Vladimir Medintsev

Күн бұрын

Пікірлер: 49
@Michael_Kaa
@Michael_Kaa 4 жыл бұрын
Спасибо! Вы очень мотивируете меня не лениться, а идти писать код!
@gutyaaaaa
@gutyaaaaa 4 жыл бұрын
Спасибо. Лично для меня очень актуальная информация
@tornilua6520
@tornilua6520 4 жыл бұрын
Спасибо, много полезной информации, очень классные примеры
@igor_v_kuznetsov
@igor_v_kuznetsov 4 жыл бұрын
Очень познавательно. Поверхностно знал, но не все
@igor0242
@igor0242 4 жыл бұрын
Большое спасибо за информацию! Для меня она очень интересна.
@slgraf2
@slgraf2 4 жыл бұрын
Года 3 назад тоже игрался с GPS модулем. И написал на PIC офигенные часы, которые сами настраиваются ))
@intelektum
@intelektum 4 жыл бұрын
Если проект не закрыт, может исходниками поделитесь ?
@slgraf2
@slgraf2 4 жыл бұрын
@@intelektum Откопал )) char hh[3], mm[3], ss[3], buf[18], a[1]; int8 t1, h, m, s; int1 f1; lcd_init(); lcd_putc(" MOSCOW TIME"); t1 = 0; f1=0; while(TRUE) { if(f1 == 1) { if(buf[3] == 'M' && buf[4] == 'C') { a[0] = buf[17]; hh[0] = buf[6]; hh[1] = buf[7]; hh[2] = '\0'; mm[0] = buf[8]; mm[1] = buf[9]; mm[2] = '\0'; ss[0] = buf[10]; ss[1] = buf[11]; ss[2] = '\0'; h = atoi(hh); m = atoi(mm); s = atoi(ss); h = h + 3; if(h >= 24) h = h - 24; lcd_gotoxy(1,2); printf(LCD_PUTC, " %02u %02u %02u %c", h, m, s, a[0]); f1=0; } f1 = 0; t1 =0; } if(kbhit(PORT1)) { if(fgetc(PORT1) == '$') { while(!kbhit(PORT1) && t1 < 19) { buf[t1] = fgetc(PORT1); t1++; } f1 =1; t1 = 0; } } } Это было написано в среде CCS PICC для дисплея 1602 (вроде) просто поиграться. где-то даже видео есть работы этого кода #use rs232(UART1,baud=9600,parity=N,bits=8,stream=PORT1) // Это в h-файле
@RadioTexnik
@RadioTexnik 4 жыл бұрын
Больше спасибо! Как раз планирую GSM tracker замутить) контент очень интересный! Лайк!
@МитяЯрков-ц1п
@МитяЯрков-ц1п 4 жыл бұрын
Владимир спасибо за парсер!
@Avrora707
@Avrora707 3 жыл бұрын
Делал я как-то парсер для EVA8-M. Вначале взял NMEA и маленько прифигел, от их запятых, букв и цифр. Забил и сделал на GNSS - там байтовая строка и никаких символов и цифр, которые для начала надо еще конвертировать из чара с цифру
@ruslangabitov5202
@ruslangabitov5202 4 жыл бұрын
Спасибо большое. Недавно нарвался на ваш канал и залип уже дня на 4. Тонны бесценной информации! Если пики и атмелы ещё как-то представлены, то по стмам очень грустно. Ардуино-подход меня раздражает: есть вопрос - подключи библиотеку. А как оно работает, почему - авторы материалов, как правило такие вопросы не освещают. Только "кровавый советский режим" готовил инженеров, готовых разобраться с любым вопросом и объяснить его другим. Ещё раз вам спасибо. Отдельная благодарность за делители. Не любит мир микроконтроллеров "плавающую точку". А тут такое красивое решение. Под капотом - целые числа, а в конце - одно преобразование к float, да и то, только если необходимо. Кстати, если использовать двоичный делитель, а не десятичный, можно умножение/деление сдвигом заменить. Нужно это обдумать. Ещё одно огромное спасибо за ваш труд. Здоровья и счастья.
@semax5263
@semax5263 4 жыл бұрын
А поднималась ли в ваших видео тема того,как правильно делать замер питания процессором аккумуляторов-батареек в портативных устройствах с выводом объема оставшегося заряда на экран? Логичное прямое решения - замер с помощью АЦП напряжения с элемента питания часто даёт переменные результаты,результат чего скачки в отображении величины заряда.
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
Если у вас АЦП дает "скачки" значит делаете что-то не так. Ну и фильтрацию никто не отменял.
@semax5263
@semax5263 4 жыл бұрын
Вполне допускаю, что делаю неправильно и не учитываю какие-то особенности, поэтому и спрашиваю не было ли у вас видео посвященному вопросу измерения питания элементов питания в портативных приборах и если не было, то возможно вам было бы интересно об этом рассказать в будущем. Скачки в основном того плана, что устройство показывает разряд. Но стоит выключить -включить устройство показывает вполне еще заряженный элемент.
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
@@semax5263 Нет, по измерению заряда ничего не было.
@raminsattarov5705
@raminsattarov5705 4 жыл бұрын
Здравствуйте. Спасибо за полезные информации. Можете рассказывать о том что как принимаете sentence на uart ?
@taraserker_isr
@taraserker_isr 4 жыл бұрын
Спасибо.
@ОбычныйЧеловек-щ7м
@ОбычныйЧеловек-щ7м 4 жыл бұрын
Вы в Южно-Сахалинске живёте? Часто мелькает город.
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
Южно-Сахалинск это мой любимый город. Я туда отдыхать езжу и за корюшкой.
@korskantevin
@korskantevin Жыл бұрын
спасибо. а может посоветуете также библиотеку для encode nmea? нужен обратный процесс. тоже для stm32
@VladimirMedintsev
@VladimirMedintsev Жыл бұрын
Так ее написать дело 10 минут. Структуру в строку преобразовать очень просто.
@ДмитрийЯровицын-ь8ж
@ДмитрийЯровицын-ь8ж 4 жыл бұрын
Хорош контент!
@НиколайКрасиков-ы8й
@НиколайКрасиков-ы8й 4 жыл бұрын
Можно какой-то проект сделать типа прием этих координат на stm32f4discovery и вывод на дисплей или хотя бы в терминал? Я так понимаю должно быть какой-то передатчик, который будет отправлять NMEA, а на stm32 какой-то приемник, который будет принимать их и парсить, да? А какой приемник можно подключить или сделать на stm32 подскажи? Я новичок, но очень интересно, хочется разобраться. Напиши пожалуйста поподробнее)
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
Для этого проекта нужен: 1. Навигационный приемник. Тут вариантов масса. В видео на 01:50 показан навигационный приемник на базе GSM модуля MC65, на самом деле подойдет абсолютно любой навигационный модуль с Aliexpress они там от 200 рублей начинаются. Ну к примеру - GY-NEO-6M-V2 2. В качестве платы на которой вы будете расшифровывать и как-то визуализировать данные вы свободно можете использовать ЛЮБУЮ плату типа discovery с любым экраном. 3. Подключение 2 провода rx - tx интерфейса uart и 2 провода питание.
@НиколайКрасиков-ы8й
@НиколайКрасиков-ы8й 4 жыл бұрын
@@VladimirMedintsev А принимать откуда NMEA? Найти Эмулятор данных NMEA или что, передатчик какой-то? Так понял по вашему сообщению как выглядит примерно схема.
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
@@НиколайКрасиков-ы8й Не понял, вы меня троллить пытаетесь что-ли? Ну взяли бы в интернете статью прочитали про то как работает спутниковая навигация. В небе болтаются спутники группировок Глонасс, GPS и так далее. Их много. Они передают сигналы. Есть модули типа GY-NEO-6M-V2 которые антенной ловят сигнал со спутников и делают его математическую обработку. Эти модули имеют разную цену, она зависит от точности. Минимальная 200 - 500 рублей. Такой модуль на выходе дает поток данных NMEA. Вы берете этот поток заводите его на плату discovery и дальше обрабатываете или визуализируете как вам угодно.
@НиколайКрасиков-ы8й
@НиколайКрасиков-ы8й 4 жыл бұрын
@@VladimirMedintsev Извините, не капли, я просто только начал путь в МК и во всем , что связано с Радио/программированием. Спасибо большое, что объяснили!
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
Ну просто навигация это не то, с чего стоит начинать свой путь. Выберите что-нибудь проще и попробуйте.
@golyakoff
@golyakoff 4 жыл бұрын
Здравствуйте, очень полезно, спасибо, вообще, открыл ваш канал и не нарадуюсь (пришел в МК и электронику из высокоуровнего программирования, трудновато, если честно... пытаюсь вырасти из Ардуино - не нравится бесструктурный подход к коду - наверное, профдеформация))). Есть идея маленького учебного проекта для себя (и, разумеется, масс), сделать трекер для авто-/мотопутешествия с последующей выгрузкой трека (в gpx-формате). Буду очень признателен за критику соображений: Если я правильно понял идею, на скорости движения автомобиля имеет смысл запрашивать часто, наверное, не реже 1 Гц, чтобы графически трек на дорогу ложился красиво. Писать этим координаты надо... В память по размеру страницы флешки, причем в каком-то виде сокращённом формате. А дальше с флешки уже конвертим на лету в gpx при подключении телефона по какой-то беспроводной сети к спец приложению... Помня ваше видео о планировании "проекта" и стадии "торгов" (поиске компромиссов) - наверное нужно одёрнуть себя и начать с простого - просто класть напрямую на флешку готового gpx? Фишка мой разработки - поставил и забыл, устройство пишет треки по движению и позволяет его скачать в телефон при обнаружении телефона поблизости. Понятно, что не ноу-хау, но если честно, все стараются залить трек к себе и доступ по подписке. А у меня полный альтруизм))) Буду рад критике, советам, может ещё какие-то полезные мысли по теме? Спасибо!
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
Если вы говорите, что пришли из высокоуровневого программирования и уже имеете профдеформацию, значит есть опыт. А если опыт есть то вы можете за пару часов накидать приложение на андроид (да хоть в том же Qt) и работать и вести лог в своем телефоне. И все, ваши потребности закрыты. И пусть он (телефон) у себя данные хранит или на сервер кидает, да вообще все что хотите. А если все таки вам по каким то причинам обязательно это делать именно с микроконтроллерами, то надо понимать, что скорости даже самых простых микроконтроллеров вполне хватает для обработки и 10 и 100 раз в секунду этого несчастного парсинга, преобразования координат, вычисления векторов перемещения и ещё и для записи всего этого в сжатом формате. Так что суть вопроса не совсем понятна как и цель. Просто я почему скептически к этому отношусь. Вы делаете устройство, значит надо просчитать его энергопотребление, а там сразу два устройства это sd карточка (ну или флешка) и модуль gps являются достаточно прожорливыми. И это что теперь с собой электростанцию возить и заряжать каждый день. Закончится все это тем, что человек забудет зарядить. Так что на мой взгляд иногда проще совместить с телефоном и не плодить устройства с дублирующими функциями.
@golyakoff
@golyakoff 4 жыл бұрын
@@VladimirMedintsev , спасибо за ваш ответ, отрезвляете прагматизмом, это - полезно. Надеюсь, я не отнял много времени, вы как-будто немного раздражены. Цель - протестировать идею соображениями опыта - достигнута. В начале пути очень мало возможности оценить критически, насколько жизнеспособную вещь ты затеял. Ещё раз спасибо и удачи каналу!
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
Я не раздражен, я на самом деле опечален. Я все мечтаю о чем-то таком масштабном необычном и интересном, а народ продолжает делать трекеры. Ничего личного. Просто ворчу.
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
@@golyakoff Есть кстати хорошая бизнес идея. Делаем миниатюрные трекеры и вешаем их на стада баранов. А потом данные на сервер и треку присваиваем уникальный код. Этот код печатаем QR кодом и крепим на баранину при продаже. И любой желающий заходит на сайт "Где Гулял Мой Шашлык" и может оценить маршруты своего шашлыка. Опять таки поддержка производителей.
@golyakoff
@golyakoff 4 жыл бұрын
​@@VladimirMedintsev Вот же ж... я на самом деле с минуту пытался понять, иронизируете вы про баранов и трекер или нет (признаться, до сих пор допускаю, что так и есть). Однако, это мне напомнило двухгодичной давности выступление Марка Руссиновича на MS Build. Он рассказывал про возможные перспективы использования блокчейн-технологии в схожей сфере. Идея заключалась в том, что добросовестные поставщики, например, товаров ограниченного срока жизни (тут как раз баранина и шашлык сыграли), могли бы с помощью технологии блокчен гарантировать неподдельности информации в ключевых временных точках жизни товара. Транзакции приёма-передачи товара в каждом промежуточном узле, накладываясь "поверх" предыдущих транзакций, "гарантирует" их "достоверность". И вы вечером пьёте молоко, будучи уверенными, что оно в 6:17 ещё гуляло по лужайке, в 10:40 было разлито в пакеты, в 12:35 отгружено поставщику и т.д... Бизнес-идея за бизнес-идею ) Вообще, кстати, выступление мне было интересно доступным объяснением, как мир bitcoin устроен, гуглится по словам "microsoft ignite russinovich blockchain".
@sovchem1275
@sovchem1275 4 жыл бұрын
Будет куда интереснее и доходнее сделать код-подмену координат GPS/ГЛОНАС и выложить на фрикере ;) 1000-5000$ за прибор в лет расхватают! По сути нужен эмуль спутника долбящий нужные координаты на 1-2вт На гитхабе есть рабочий проект, но выполнен на ноуте, а нужна автономность. Сам бы сделал, но времени.. :(((
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
у меня проблемы с ВЧ частью. я сильно плохо в этом соображаю.
@sovchem1275
@sovchem1275 4 жыл бұрын
Просто коммент для статистики
@kavajno
@kavajno 2 жыл бұрын
Супер
@ИгорьАслаев
@ИгорьАслаев 4 жыл бұрын
а что мешает запрашивать информацию с частотой 10 Гц ?
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
А зачем? в навигаторе, в коптере я понимаю. А в отслеживании местоположения груза вам это для чего надо?
@ИгорьАслаев
@ИгорьАслаев 4 жыл бұрын
@@VladimirMedintsev вопрос не в том, для чего, а в том, что мешает ? Если чип готов отдавать инфу с частотой 10 Гц, то не вижу проблем запрашивать у него информацию с той же частотой. Или, в чем я не прав ? Протокол обмена я не обсуждаю... что есть - с тем и работаю
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
В моем конкретном случае мешает энергопотребление. У меня устройство просыпается, получает координаты с желаемой точностью обрабатывает и снова засыпает. Мне лишние движения не нужны. да и у контроллера тоже есть чем заняться.
@ИгорьАслаев
@ИгорьАслаев 4 жыл бұрын
@@VladimirMedintsev так в том то и дело, что вы про это не сказали. Я думаю, если вы делаете обзоры для новичков, нужно эти нюансы описывать. А опытных зрителей это только смущает. примите это, как взвешенную критику. Или не принимайте )
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
@@ИгорьАслаев На самом деле я всегда рад критике, но здесь уж простите ее нету, потому, что я так же не сказал и о том, на каких скоростях работают эти модули, я ничего не сказал о настройках UART и упустил еще огромное количество деталей касательно самого протокола. Более того, некоторые мелочи я исказил. Уместить все мелочи в одном видео просто невозможно. Вам кажется важным одно, другим людям совершенно другое. В этом наверное и прелесть мы все разные.
So Cute 🥰 who is better?
00:15
dednahype
Рет қаралды 19 МЛН
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 120 МЛН
“Don’t stop the chances.”
00:44
ISSEI / いっせい
Рет қаралды 62 МЛН
Une nouvelle voiture pour Noël 🥹
00:28
Nicocapone
Рет қаралды 9 МЛН
So Cute 🥰 who is better?
00:15
dednahype
Рет қаралды 19 МЛН