доктор Вандершпигель (
wunderwaffe) wrote2021-11-01 08:26 am
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Entry tags:
Как лучше исследовать то, что происходит в фильтре?
Гнать сырые данные в комп и разбираться с ними детально, т.к. я не очень понимаю что происходит - не секу тему и не вьезжаю в фишку.
Скорость I2C по умолчанию - 100 кбит/сек что примерно соответствует 115200 бод для СОМ-порта, т.е. можно гнать данные более-менее как IMU их отдает, если успевает* Полный цикл в ардуине с матобработкой занимает 6-7 мс, т.е. если принять то условие, то для передачи 2 байта на три оси на 3 датчика = 18 байт, а для передачи 18 байт каждые 1000мс/(6-7)мс достаточно 1000мс / 6мс * 18 байт * 10 бит/байт(для передачи) ~ 25000-30000 бод.
Т.е. по грубым прикидкам два из трех или три из четырех измеренных значений ардуиной не обрабатываются.
Поэтому можно
1) сделать ардуину мостом I2C -> COM порт, и колупаться с сырыми данными в компе
2) Считывать непосредственно I2C, например с помощью RaspberryPi, поставить на него Лазарус и колупаться там.
Раскопал пылившийся на полке Raspberry Pi 3 Model B 1GB RAM, обновил систему и поставил Лазарус, как написано вот здесь -
https://wiki.freepascal.org/Lazarus_on_Raspberry_Pi
(работа Лазаруса с I2C и прочими I/O описана там же)
Включение I2C и подключение модуля Troyka -
https://github.com/Shatki/pyTroykaIMU
________________
* данные по датчикам - https://wunderwaffe.dreamwidth.org/33872.html#cutid1
Скорость I2C по умолчанию - 100 кбит/сек что примерно соответствует 115200 бод для СОМ-порта, т.е. можно гнать данные более-менее как IMU их отдает, если успевает* Полный цикл в ардуине с матобработкой занимает 6-7 мс, т.е. если принять то условие, то для передачи 2 байта на три оси на 3 датчика = 18 байт, а для передачи 18 байт каждые 1000мс/(6-7)мс достаточно 1000мс / 6мс * 18 байт * 10 бит/байт(для передачи) ~ 25000-30000 бод.
Т.е. по грубым прикидкам два из трех или три из четырех измеренных значений ардуиной не обрабатываются.
Поэтому можно
1) сделать ардуину мостом I2C -> COM порт, и колупаться с сырыми данными в компе
2) Считывать непосредственно I2C, например с помощью RaspberryPi, поставить на него Лазарус и колупаться там.
Раскопал пылившийся на полке Raspberry Pi 3 Model B 1GB RAM, обновил систему и поставил Лазарус, как написано вот здесь -
https://wiki.freepascal.org/Lazarus_on_Raspberry_Pi
(работа Лазаруса с I2C и прочими I/O описана там же)
Включение I2C и подключение модуля Troyka -
https://github.com/Shatki/pyTroykaIMU
________________
* данные по датчикам - https://wunderwaffe.dreamwidth.org/33872.html#cutid1