Arduino для BAIT BOAT...

Probelzaelo
yus12:

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

При этом каждый новый замер прибавляем к буферу(очереди), а самый старый ставший 11 отнимаем, и так по кругу, по принципу fifo , чтобы реально усреднить выборку и не привязываться к каждой отдельной десятке. Еще очень не лишним будет вообще выкидывать из учета самые крайние значения замеров экстремумы, самые минимумы и самые максимумы - выбросы, тк в них практически гарантировано лишь дополнительная погрешность.

yus12
Probelzaelo:

При этом каждый новый замер прибавляем к буферу(очереди), а самый старый ставший 11 отнимаем, и так по кругу, по принципу fifo , чтобы реально усреднить выборку и не привязываться к каждой отдельной десятке. Еще очень не лишним будет вообще выкидывать из учета самые крайние значения замеров экстремумы, самые минимумы и самые максимумы - выбросы, тк в них практически гарантировано лишь дополнительная погрешность.

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

Еще обратил бы внимание на то, что большенство библиотек отрабатывает именно gps координаты. Ублоксы 8 поколения хорошо выдают gps+Глонасс, а он имеет другие префиксы в начале строки координат.

Для того, чтобы серийный порт не особо тормозил плату (в большинстве примеров в цикле ожидается значение от серийного порта). Если увеличить скорость с 9600 до 115200 думаю скорость обработки так же будет существенно выше. Я лично сейчас перешел на stm32, там отлично помогает DMA и настройка всевозможных прирываний.

Панкратов_Сергей
appolinari:

Я писал о том что среда ардуино не верно работает с типом “float”.

Разве?

appolinari:

Я пытался использовать ардуинку для подобного проекта, но ни чего хорошего из этого не вышло. Ардуино не сильно любит числа с плавающей точкой и, из за этого страдает точность позиционирования…

yus12:

Для большинства чипов точность до 2 метров. Если брать ублоксы с префиксом P точность будет до 2 сантиметров.

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

Мы ж не точность GPS рассматривали.

yus12:

Для того, чтобы серийный порт не особо тормозил плату (в большинстве примеров в цикле ожидается значение от серийного порта). Если увеличить скорость с 9600 до 115200 думаю скорость обработки так же будет существенно выше. Я лично сейчас перешел на stm32, там отлично помогает DMA и настройка всевозможных прирываний.

На лодке с избытком достаточно атмеги.
У людей Атмега успевает обрабатывать гироскоп, акселерометр, GPS и в реальном времени отрисовывать видео телеметрии.

yus12
Панкратов_Сергей:

Мы ж не точность GPS рассматривали.

Вы писали про 2 см, а я пишу о том, что и они не играют роли за исключением некоторых чипов.

Панкратов_Сергей
yus12:

Вы писали про 2 см,

Когда?
Вы когда на кого то ссылаетесь- постарайтесь понять о чем там речь идет…

alex195822

Сколько читаю, не могу въехать - стандартный Ардупилот с роверовской прошивкой чем не угодил? По точкам плавает, домой возвращается, всю мыслемую телеметрию передает.

appolinari

Вернитесь к истокам… Человек спросил про возможность получать данные с GPS на ардуино и передавать их на другую, подобную платку… Отсюда весь сыр - бор… Про ардупилот вопроса не было. Видимо есть какие либо причины того. Возможно это было бы лучше, чем пытаться освоить что то другое. Я, видимо по глупости ответил, что у меня (к стати не у меня одного) не сложилось с не целочисленными переменными… Потом появился высший разум и предложил считать попугаями. Обещал, что позже объяснит подробнее. Ждём.

Панкратов_Сергей
appolinari:

Я, видимо по глупости ответил,

appolinari:

Отсюда весь сыр - бор…

Так вот точнее.

appolinari:

Потом появился высший разум и предложил считать попугаями. Обещал, что позже объяснит подробнее. Ждём.

Дерзите и еще и что то ждете?

esau
alex195822:

Сколько читаю, не могу въехать - стандартный Ардупилот с роверовской прошивкой чем не угодил? По точкам плавает, домой возвращается, всю мыслемую телеметрию передает.

Смотрел в сторону ардупилота ,но есть два гемора . Если использовать планшет или телефон под андройдом ,то не все USB OTG , таскать на рыбалку комп,ну это полный изврат ,по крайней мере для меня . По точкам плавать эт конечно хорошо ,а летать еще лучше ,но хочется свести все к минимализму и практичности , тобишь вывести просто координаты на LCD 20x4 (HD44780) ведь мест прикормки не так много ,и записать пару координат не составит труда

Панкратов_Сергей
alex195822:

Сколько читаю, не могу въехать - стандартный Ардупилот с роверовской прошивкой чем не угодил?

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

esau:

По точкам плавать эт конечно хорошо ,а летать еще лучше ,но хочется свести все к минимализму и практичности , тобишь вывести просто координаты на LCD 20x4 (HD44780) ведь мест прикормки не так много ,и записать пару координат не составит труда

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

appolinari
Панкратов_Сергей:

Так вот точнее.
Агрессивный невежда… Еще и что то ждете?

Уважаемый, неагрессивный вежда, научитесь обращаться к людям так, как вы хотели бы, чтобы обращались к вам. Вы на этом форуме наковыряли почти 13 тысяч сообщений, большинство из которых - обливание грязью других участников этого форума. Тот факт, что в каких либо вопросах вы эрудированны больше, чем ваши собеседники, не даёт вам право гадить им на голову. Вы же не голубь, в конце то концов. Знаете как сделать, так - объясните. Нет желания, не встревайте. Просто перечитайте свои собственные сообщения и примерьте их на себя… Если вы способны взглянуть на вещи со стороны, вы меня поймёте. Прошу не выдёргивать фраз из этого сообщения и не перетасовывать их. За сим, прошу меня извинить, если я был излишне резок. Обязуюсь впредь сдерживать свои эмоции.

П. С.
К стати, теорию с попугаями, я бы реально хотел послушать. Ибо у меня осталась одна не реализованная идея, связанная с GPS модулем, и я - таки да хочу её допилить.

esau
Панкратов_Сергей:

Зачем запоминать кучу цифр а потом и вводить?
Нужно лишь запоминать номер точки. А координату пусть запоминает контроллер на кораблике. А передает нужный курс и расстояние, если рулить планируете вручную.

В ручную ,я в програмировании не силен, так если простой скетч бегущих огней или часов ,с паяльникам дружу и неплохо а вот с контролерами не сложилось . Чтоб разрядить обстановку скидываю результаты,механика готова ,осталось дождаться акумы два по 6а липо,ну и низ покрасить (идея есть интересная)

Панкратов_Сергей
esau:

В ручную ,я в програмировании не силен,

В сложности разница чрезвычайно малая, того что вы замышляли и того что предлагаю я.

esau
Панкратов_Сергей:

В сложности разница чрезвычайно малая, того что вы замышляли и того что предлагаю я.

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

yus12
Панкратов_Сергей:

Когда?
Вы когда на кого то ссылаетесь- постарайтесь понять о чем там речь идет…

О чем вы пишите я понимаю. Этот форум не для одного человека, я пробую внести ясность для других участников сообщества. Большенство здесь выражаются как могут и главное, чтобы это было максимально понятно другим участникам. Судя по Вашим высказываниям, никто ничего не понимает и непонятно что хочет сделать.
И по теме, Ардуино как раз сделали с целью, чтоб она была восприимчива и легка использовании как детский конструктор. Ее обсуждение должно быть примерно на этом же уровне. Я согласен с тем, что можно расплавить пластик (уйти от стандартных подходах и писать не посредственно в регистры контролера и переодически использовать асемблерные вставки).

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

Панкратов_Сергей
yus12:

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

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

yus12:

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

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

yus12:

Ее обсуждение должно быть примерно на этом же уровне.

Потому и не получается ардупилот, а получается что флоат мешает.

yus12
Панкратов_Сергей:

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

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

Панкратов_Сергей:

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

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

esau

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

Панкратов_Сергей

Ой ли… Тут многие писать начали когда я еще не знал что такое программирование. Эта тема открыта когда я делал первые шаги в программировании, как любитель.
И вы, в том числе, программирование начали изучать ранее меня.
Кто кому про регистры и таймеры должен объяснять?😃

yus12
Панкратов_Сергей:

Потому и не получается ардупилот, а получается что флоат мешает.

Мне атмел не зашла, у потопал в сторону stm32 с HAL.
Хочу одну штуку в свой проект закинуть, нашел хороший скетч для ардуино, но необходима помощь в понимании настроек таймеров.

Вот такой код для AVR_ATmega32U4

noInterrupts(); // disable all interrupts
//1472uS
TCCR4A = 0; //normal port mode
TCCR4B = 0;
TCNT4 = 0;
// //1472uS
//OCR3A = 0x016F;
//712uS
OCR4A = 0xB1;
//TCCR4B |= (1 << WGM32); // CTC mode
TCCR4B |= (1 << CS42) |(1 << CS41) | (1 << CS40); // 64 prescale
TIMSK4 |= (1 << OCIE4A); // enable timer compare interrupt
interrupts(); // enable all interrupts

Реально буду благодарен за помощь
Интересует чистота в герцах и prescale как я понял с комментариев 64

Панкратов_Сергей
esau:

что плохого в том чтоб использовать готовое решение

Плохое в том что развития не будет. Вот теме три года- а выхода ноль.