Телеметрия (часть 1)
Всё идет своим чередом, будет готово - выложу 😃
Пора интегрировать код GPS в Атмегу, но есть пара вопросов.
Можно задать несколько вопросов гуру по GPS?
-
Правильно ли я предполагаю, что все GPS-модули по дефолту передают на 4800/8/N/1 или 9600/8/N/1 в NMEA (я решил не связываться с внутренними форматами) и достаточно при инициализации перебрать в USART эти режимы и по получении корректных пакетов остановиться на нужном режиме?
-
Правильно ли я предполагаю, что все GPS-модули по дефолту сразу передают пакеты GPRMC (pекомендуемый минимум GPS данных) один раз в секунду (или некоторые чаще) по дефолту, без дополнительных телодвижений со стороны атмеги?
-
Правильно ли я предполагаю, что некоторые GPS-модули по дефолту вместе с GPRMC передают раз в секунду всякие прочие пакеты типа GPGLL, GPGGA?
-
Для отображения
- направления на точку старта (графически)
- расстояния до точки старта
- величины текущей скорости
- направления движения (графически)
достаточно GPRMС с кое-какой математикой.
Имеет ли смысл выводить на экран дополнительные параметры типа DOP, количества спутников и т.д., или перечисленного выше достаточно?
- Какие телодвижения надо совершать со стороны атмеги, чтобы ежесекундно получать дополнительные пакеты типа GPGSA, GPGSV?
- Правильно ли я предполагаю, что все GPS-модули по дефолту передают на 4800/8/N/1 или 9600/8/N/1 в NMEA (я решил не связываться с внутренними форматами) и достаточно при инициализации перебрать в USART эти режимы и по получении корректных пакетов остановиться на нужном режиме?
Не так, чтобы абсолютно все, но основаня масса приемников умеют выдавать NMEA. Скорость передачи при этом ничем не гарантирована, и зависит от настроек, сохраняемых обычно в nvram/flash/etc.
Однако, из чисто практических соображений, можно работать только на 4800; - эту скорость должен поддерживать любой приемник.
- Правильно ли я предполагаю, что все GPS-модули по дефолту сразу передают пакеты GPRMC (pекомендуемый минимум GPS данных) один раз в секунду (или некоторые чаще) по дефолту, без дополнительных телодвижений со стороны атмеги?
“Дефолт” тут - понятие относительное.
Все приемники, умеющие NMEA, гарантированно умеют передавать RMC. Однако [строго так же, как и со скоростью], будут ли они передавать этот кадр - зависит от сохраняющихся настроек.
- Правильно ли я предполагаю, что некоторые GPS-модули по дефолту вместе с GPRMC передают раз в секунду всякие прочие пакеты типа GPGLL, GPGGA?
Передается тот набор, который был заказан через PGRMO (или иным способом). Передачу любого sentence’а можно включить и выключить соответствующей командой.
- Для отображения
- направления на точку старта (графически)
- расстояния до точки старта
- величины текущей скорости
- направления движения (графически)
достаточно GPRMС с кое-какой математикой.
Имеет ли смысл выводить на экран дополнительные параметры типа DOP, количества спутников и т.д., или перечисленного выше достаточно?
Для расчетов RMC вполне достаточно (равно как и любого другого кадра, содержащего широту и долготу), но количество видимых спутников показывать все-же полезно, чтобы можно было визуально оценить “перспективы” работы в данном конкретном месте. Имеет ли смысл отображать скорость (которая “over ground”) - вопрос вкуса.
Вообще, лучшая стратегия - это уметь обрабатывать как можно больше разных кадров, складывая принятые в них одинаковые поля в одни и те же переменные, но “достаточный набор” - это GPRMC и GPGGA (из первого - если нужно - берутся скорость и курс, из вторгого - высоты и количество спутников). Эти два кадра умеют выдавать подавляющее большинство приборов.
- Какие телодвижения надо совершать со стороны атмеги, чтобы ежесекундно получать дополнительные пакеты типа GPGSA, GPGSV?
Никаких. Будучи однократно настроен, любой NMEA-enabled приемник передает заказанный набор кадров сам.
Чтобы не привязываться к какому-то конкретному приемнику (или группе приемников), операцию программирования имеет смысл отдать на откуп пользователю (как минимум, потому, что не все приемники, умеющие выдавать nmea, умеют его и принимать).
Ок, спасибо!
Значит, USART на атмеге навечно прошивается на асинхронный прием на 4800/N/1, и понеслась 😃
Прикрутил отображение информации с GPS на экран, стараясь, чтобы всё было максимально наглядно.
Система отсчета на “карте” связана с Землей, север всегда сверху.
Стрелка - текущий курс самолета.
Кружочек на “карте” - направление из центра карты на “базу” - точку старта. Кружочек ползает по границе карты, между стрелкой и рамкой.
Слева от “карты” - количество спутников.
Справа от “карты” - удаление от “базы” - точки старта. Удаление считается на плоскости, то есть, при полете самика в 300 метрах над головой удаление будет нулевым.
Картинка:
И маленький ролик:
Стрелка и кружочек на ролике пока крутятся от балды. Математика в целом готова, но всё не могу достать паяльник и собственно подключить модуль.
Высоты по показаниям GPS и скорости по показаниям GPS, наверное, не будет. Для этого есть датчики давления.
Пойдёт?
Прикрутил отображение информации с GPS на экран, стараясь, чтобы всё было максимально наглядно.
Пойдёт?
обалденно!
если я правильно понимаю, сей девайс (вернее, прошивка) заточен под определенное разрешение камеры? Видимо, я пропустил это, читая форум и Ваш блог.
Заточка только под 625 строк у ТВ-сигнала. Любая PAL камера пойдет. NTSC не пойдет.
smalltim, мне кажется информация о количестве спутников лишняя.
Для служебной инфы наверное надо внедрить кнопку, по которой будет отображатся всякая информация.
А вообще отличные результаты!
Привет Smalltim, результаты Вашей работы впечатляют, а можно какнить заказать такую штучку у Вас? Я вот прямо готов.
Кстати, иметь высоту и скорость от GPS неплохо, не все любят навешивать доп датчики давления и т.п. А расход mAh умеет показывать?
Пора интегрировать код GPS в Атмегу, но есть пара вопросов.
Можно задать несколько вопросов гуру по GPS?
-
Не все. Обычно скорость 9600, но бывает и 19200 и 4800. У некоторых приёмников (типа LEA-LA) настраивается лапками, у более продвинутых можно управлять конфигом через порт. В любом случае, надо смотреть доку на конкретный приёмник.
-
Это правильнее называть строками. Обычный набор строк RMC, GGA, VTG. Остальные по желанию производителя.
-
Скорее не некоторые, а все 😃
-
Я обычно вывожу режим ориентации none/2D/3D. Это более информативно, чем число спутников. Число спутников ничего не значит - они могут быть, но приёмник их не пользует. А вот от режима ориентации зависит всё - релевантность высоты, точность по горизонтали.
-
Никаких. Приёмники начинают слать пакеты сразу же. Обычно по дефолту они шлют всё, что умеют. Далее можно влезть в настройки и отключить ненужное, чтобы МК не дёргать лишними данными Вот, я снимал с LEA-4H в разных режимах:
Начальное, состояние, ещё не определено НИЧЕГО:
$GPGGA,0,00,99.99,*48
$GPGSA,A,1,99.99,99.99,99.99*30
$GPGSV,1,1,01,05,35*7B
$GPGLL,V,N*64
$GPZDA,00,00*48
$GPRMC,V,N*53
$GPVTG,N*30
Определено время, дата:
$GPGGA,130309.00,0,00,99.99,*6E
$GPGSA,A,1,99.99,99.99,99.99*30
$GPGSV,1,1,01,05,33*7D
$GPGLL,130309.00,V,N*42
$GPZDA,130309.00,04,03,2008,00,00*63
$GPRMC,130310.00,V,040308,N*72
$GPVTG,N*30
Три спутника зелёные, но определения ещё нет:
$GPGGA,130551.00,0,03,13.44,*64
$GPGSA,A,1,12,05,14,13.47,13.44,1.00*01
$GPGSV,2,1,05,12,07,027,36,05,07,043,38,17,28,14,29,056,38*4F
$GPGSV,2,2,05,02,26*7A
$GPGLL,130551.00,V,N*49
$GPZDA,130551.00,04,03,2008,00,00*68
$GPRMC,130552.00,V,040308,N*72
$GPVTG,N*30
Есть 2D ориентация.
$GPGGA,130559.00,5402.49037,N,03816.97447,E,1,03,13.47,486.4,M,13.6,M,*60
$GPGSA,A,2,12,05,14,13.51,13.47,1.00*06
$GPGSV,2,1,05,12,07,027,37,05,07,043,38,17,29,14,29,056,39*4E
$GPGSV,2,2,05,02,27*7B
$GPGLL,5402.49037,N,03816.97447,E,130559.00,A,A*6D
$GPZDA,130559.00,04,03,2008,00,00*60
$GPRMC,130600.00,A,5402.49098,N,03816.97437,E,0.904,234.07,040308,A*67
$GPVTG,234.07,T,M,0.904,N,1.675,K,A*37
Есть 3D ориентация.
$GPGGA,131721.00,5402.25746,N,03816.70816,E,1,06,3.75,229.6,M,13.6,M,*52
$GPGSA,A,3,12,05,14,01,30,17,4.91,3.75,3.17*0D
$GPGSV,3,1,11,20,53,281,18,31,43,109,12,07,023,32,32,31,096,17*7E
$GPGSV,3,2,11,23,26,227,19,05,08,038,36,14,25,056,33,01,55,064,34*74
$GPGSV,3,3,11,30,06,056,28,17,23,302,35,11,53,224,22*47
$GPGLL,5402.25746,N,03816.70816,E,131721.00,A,A*6B
$GPZDA,131721.00,04,03,2008,00,00*6C
$GPRMC,131722.00,A,5402.25751,N,03816.70816,E,0.018,040308,A*71
$GPVTG,T,M,0.018,N,0.033,K,A*2A
Ещё пример 3D ориентации:
$GPGGA,131259.00,5402.26208,N,03816.70657,E,1,05,3.75,241.7,M,13.6,M,*53
$GPGSA,A,3,12,05,30,17,14,5.76,3.75,4.38*0E
$GPGSV,3,1,10,20,51,280,20,31,42,112,19,12,07,025,34,32,32,095,18*7B
$GPGSV,3,2,10,05,08,040,37,30,05,057,24,17,23,304,31,14,27,056,33*77
$GPGSV,3,3,10,11,55,226,21,23,26*48
$GPGLL,5402.26208,N,03816.70657,E,131259.00,A,A*66
$GPZDA,131259.00,04,03,2008,00,00*66
$GPRMC,131300.00,A,5402.26217,N,03816.70658,E,0.152,241.34,040308,A*64
$GPVTG,241.34,T,M,0.152,N,0.281,K,A*30
Привет Smalltim, результаты Вашей работы впечатляют, а можно какнить заказать такую штучку у Вас? Я вот прямо готов.
Кстати, иметь высоту и скорость от GPS неплохо, не все любят навешивать доп датчики давления и т.п. А расход mAh умеет показывать?
Присоединяюсь. Тоже хочется прикупить такой девайс. Если это не возможно, то нельзя ли документацию подробную, не за бесплатно конечно.
Какую документацию вы хотите? Читайте в теме, все необходимые файлы для постройки выложены.
Какую документацию вы хотите? Читайте в теме, все необходимые файлы для постройки выложены.
По подключению GPS компаса…
А компас еще тока подключают, как я понял …
Хотел как всегда уточнить, планируется ли новая платка или будет очередной проводок к меге?
По подключению GPS компаса…
Там не компас. GPS приёмник вычисляет курс математически, по точкам. При нулевой скорости его так мотать будет, что ой 😃 Считается, что все параметры, завязаные на скорости, начинают быть релевантными начиная с 5-10 км/ч. По этому я бы привязал показания GPS к датчику скорости (по давлению) и на малых скоростях просто не показывать часть оных.
Люди, поделитесь рабочей программой EAGLE. Накачал кучу, ни одна путем не пашет! 😠
напиши под какую ось, разработки smalltim под форточки точно открывает это ftp://ftp.cadsoft.de/eagle/program/4.16r2/eagle-win-eng-4.16r2.zip
напиши под какую ось, разработки smalltim под форточки точно открывает это ftp://ftp.cadsoft.de/eagle/program/4.16r2/eagle-win-eng-4.16r2.zip
Винда XPsp2. Скачал. Не запускается. Ни в лицензионном режиме, ни в свободном. Закидывает красными рамками.
Тут где то писалось что он в определенную папку должен быть установлен, не помню какую вот только…
но мне точно помогало.
>Хотел как всегда уточнить, планируется ли новая платка или будет очередной проводок к меге?
Будет работать с проводком к меге. Но проводков уже слишком много, да и помехи надо окончательно убить. Поэтому после вылизывания прошивки будет новая платка.
>Тут где то писалось что он в определенную папку должен быть установлен, не помню какую вот только…
но мне точно помогало.
Да в любую папку, только без русских букв и не длинную. Ну, например, c:\avia или d:\vasya\pupkin
>все параметры, завязаные на скорости, начинают быть релевантными начиная с 5-10 км/ч.
Да, при очень маленькой скорости относительно земли я собираюсь гасить стрелку. То же самое с указателем на базу: если самик ближе, скажем, 10 метров, то указатель гасится.
… блин, всё никак не могу придумать, как половчее циферки из ASCII в 32-битные целые переводить, да чтоб код был покомпактнее, да чтоб не завязываться на фиксированное количество знакомест, а то разные GPS приемники разное количество точек после запятой выдают. Кстати, посчитал, 4 разрядов после запятой достаточно, 5-й, выдаваемый напромер u-bloxами отброшу. Одна десятитысячная доля минуты в широте дает 18 см по земле, куда еще точнее, когда сам GPS приемник точность плюс-минус 2-3 метра выдает ? 😃
Dikoy:
Смотрю на Ваши данные. Блин, если GPS приемник вздумает произвольно из 2D в 3D и обратно переключаться в полете, в зависимости от расположения спутников, то показания широны-долготы будут скакать, и судя по Вашим данным, сильно, на 500 метров туда-сюда. Надо будет запоминать базовые координаты в режиме 2D и в 3D, и в зависимости от текущего режима приемника, сравнивать текущие координаты с 2D или c 3D координатами.