• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Подключение датчиков типа 10-DOF - акселерометр, гироскоп, магнитометр, температура, давление...

pvp

New member
Вам бы не городить винегрет - любой современны смартфон дает ваши данные на 100 Гц.
Не, на машину я смартфон, а тем более, несколко не прикручу - жалко. Тем более, что трёхосевые дус и акселерометр - не все датчики в этой системе.
Да, и, может, не стоит отклоняться, от темы :)
 

pvp

New member
Руками - это условно.
Ну с этого и надо начинать. Что руки - это не руки вовсе.
Как понимаю, вы хотите меня уговорить использовать I2C не получить результата :)
Ни в коем случае! Я ещё в здравом уме! Но, стоит отметить, что у модуля на фото в первом посте, по-моему, выведена только I2C.
Я использовал I2C исключительно потому, что эта шина выведена на моих IMUшках.
Наиглавнейшая задача была - научиться правильно обрабатывать acc + gyro.
 

pvvx

Активный участник сообщества
1% - думаю, это не страшно. Сколько пакетов пропустили - во столько раз увеличили dt при расчёте очередного шага.
Вот видите - вам всё равно. А у меня потеря источника и далее неопределенности. Это как потеря цели при множественных целях.
 

pvp

New member
Может для вашего авто это и подойдет. Там всё равно какие данные оно будет получать, а какие не получит.
Пока не попробую по Wi-Fi - точно не скажу.
А потеря UDP при вай-фае - это общая проблема, либо только для ESP характерная?
 

pvvx

Активный участник сообщества
Пока не попробую по Wi-Fi - точно не скажу.
А потеря UDP при вай-фае - это общая проблема, либо только для ESP характерная?
Общая. Вот например у меня дома (в городе) источников wifi всегда более 20 и очень близких AP не менее 5-ти. А иногда достигает и сотен, когда люди приходят с работы - каждый телефон - источник. Они думаете будут ждать когда ваше сообщение передастся?
 

pvvx

Активный участник сообщества
Но, стоит отметить, что у модуля на фото в первом посте, по-моему, выведена только I2C.
Там выведен SPI и I2C. Подписи только так запутывают. Он по этому и выбран. Тем более графики даны именно с данного модуля.
А тестирование было сделано при загрузке кода в IRAM ESP8266, без всяких SDK и WiFi (flash отключена) чтобы быстрее отладить и сориентироваться по загрузке CPU.
Примерно этим кодом RamWorldHSPI.zip
Вот дальше надо это переносить в систему (в мою web-свалку) и прикручивать передачу и частичную обработку. Этот вопрос тут и выясняется - а надо оно кому нибудь? Для моих задач реализация немного другая и точно тут не нужна.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Ну, видимо мне надо...
В Web-свалку добавлен оверлей 10dof.ovl
esp8266web/ovls/10dof at master · pvvx/esp8266web · GitHub

Передача данных по UDP от 10-DOF GY-91
(акселерометр, гироскоп, магнитометр, температура, давление)
Опрос по SPI 100 замеров x,y,z (через FIFO) в секунду,
вывод 10 UDP пакетов в секунду, в каждом 10 замеров.
 

pvp

New member
Спасибо! Будет время - прикручу к своему модулю IMU.
[Пока ковыряю SmartConfig (точнее - реализую сам, так как китайский - вообще не работает, когда роутер - это телефон, на котором и запускается их же андроид-приложение), чтобы прикрутить его к Вашему MinSDK.]
 

pvvx

Активный участник сообщества
Будет время - прикручу к своему модулю IMU.
А как предполагается обрабатывать поток данных из UDP? Есть какая обработка на javascript для визуализации?
Хотелось бы закинуть что-то в Web самого модуля, чтобы отображало на експлорере эти данные в 3D, а не только с помощью специального ПО на компе... Пока не решил это и не вижу как сделать...
 

pvp

New member
А как предполагается обрабатывать поток данных из UDP? Есть какая обработка на javascript для визуализации?
Пока не решил это и не вижу как сделать...
Приглядитесь на скриншот моего ПО. Там в левом верхнем углу отображёна инерциальная система отсчёта. Наглядно показывает наклоны и повороты модуля IMU. Её и возьмите. Там - совместная обработка дусов и акселерометров. Всё работает корректно (плывёт только курсовой угол, но и его можно "завиксировать", если учитывать показания магнетометра). Там не используется никаких специальных библиотек. Рисование только при помощи .Net System.Drawing.Graphics.DrawLine() на поверхности GDI+. Надеюсь, рисование линий на канвасе (или как это называется в JS) есть в базовом JS?
 
Последнее редактирование:

pvvx

Активный участник сообщества
Приглядитесь на скриншот моего ПО. Там в левом верхнем углу отображёна инерциальная система отсчёта. Наглядно показывает наклоны и повороты модуля IMU. Её и возьмите. Там - совместная обработка дусов и акселерометров. Всё работает корректно (плывёт только курсовой угол, но и его можно "завиксировать", если учитывать показания магнетометра). Там не используется никаких специальных библиотек. Рисование только при помощи .Net System.Drawing.Graphics.DrawLine() на поверхности GDI+. Надеюсь, рисование линий на канвасе (или как это называется в JS) есть в базовом JS?
Вопрос в том, как перерабатывать UDP. Стандартных средств у браузеров нет. Городить WebRTC на ESP чревато несовместимостями... А иметь специализированное ПО на борту встроенного web-сервера в ESP для всех систем - это тоже не метод. Для передачи в WebRTC требуется поддержка RTP и RTCP... На этом всё и стоит.
 
Последнее редактирование:

pvp

New member
Что есть WebRTC? Да не нужны никакие фремворки. Просто принимать UDP пакеты на компе. Это ведь просто.
Я ведь предложил обработку пакетов UDP на компе уже, средствами JavaScript.
Никакого специализиррованного ПО на борту встроенного web-сервера не требуется. Только то, что уже написано Вами в этом оверлее + java script'ы для приёма UDP пакетов (UDP server) и рисования.

P.S. Мы, видимо, не понимаем друг друга и говорим о разных вещах ;)
 
Последнее редактирование:

pvvx

Активный участник сообщества
Что есть WebRTC? Да не нужны никакие фремворки. Просто принимать UDP пакеты на компе. Это ведь просто.
Я ведь предложил обработку пакетов UDP на компе уже, средствами JavaScript.
Никакого специализиррованного ПО на борту встроенного web-сервера не требуется. Только то, что уже написано Вами в этом оверлее + java script'ы для приёма UDP пакетов (UDP server) и рисования.

P.S. Мы, видимо, не понимаем друг друга и говорим о разных вещах ;)
Javascript не открывает UDP соединение и имеются проблемы с приемом бинарных потоков и его форматированию из UDP соединения в виде совместимости с разными браузерами. WebRTC - это протокол передачи данных реального времени и пытается стать стандартом, доступным из любого браузера для обработки данных таких соединений в javascript.
Графики рисовать умеет любой, знакомый с javascript. В этом проблем нет.

WebRTC (real-time communications) — стандарт, который позволяет передавать аудио, видео и другие данные браузеру в режиме реального времени без установки дополнительных плагинов. Базируется на UDP с поддержкой RTP и RTCP.
 
Последнее редактирование:

pvp

New member
Javascript не открывает UDP соединение...
Да уж, почитал сейчас... Ох уж эти паранойи с безопасностью...
Да и с WebRTC (в JS), как я понял, не так всё гладко по тем же причинам.

Ну хорошо, тогда остаётся использовать TCP соединение, не так ли? Ну хоть на столе-то будет работать, в качестве демки только.
 

pvvx

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

Ну хорошо, тогда остаётся использовать TCP соединение, не так ли? Ну хоть на столе-то будет работать, в качестве демки только.
А c TCP бинарные данные только в Websocket. Ну его ещё не прикрутил... к оверлеям в web-свалке.
 

pvvx

Активный участник сообщества
а если в виде csv передавать или вам только бинарные данные подходят, java библиотека визуализации Data-Driven Documents (d3js.org) поддерживает csv.
Только бинарные, т.к. желательно увеличение потока до предела производительности ESP8266 и при этом требуется максимальная скорость передачи информации от анализируемого датчика в сторонний обработчик...
Стандартная задача телемеханики.
 
Сверху Снизу