Б.г.>> мне сделали визатор
apakhom> класс!!!
apakhom> мечта!
apakhom> а где почитать про создание csv? прог-а платная?
Нет, всё самописное, на бесплатной версии юнити. Отдельно распространяемый исполняемый модуль весит что-то типа 66 мегабайт, в архиве вдвое меньше. Бесплатная Юнити в виде, пригодном для модификации этого визатора, жрёт на диске что-то типа трёх гигабайт.
Файл csv - это простой текстовый файл, для импорта в эксель. Его тоже делает самописная программа (но уже моя) из того, что в шестнадцатиричном виде сбрасывает по последовательному порту прошивка моей системы управления.
Кватернионы там в формате с фиксированной запятой, 2.30, то есть, целые 32-разрядные числа. Запись 2.30 означает, что из 32 бит на целую часть отведено 2 знака, на дробную - остальные 30. То есть, представимое число от -2 до +2-(2
-31). Чтобы их перевести в плавучку, их надо поделить на 2
30. Это уже делает скрипт внутри "визатора"
Модуль кватерниона, используемого для описания ориентации, всегда должен быть равен 1, но, в процессе вычислений он может оказываться и больше, поэтому для страховки на целую часть отведено 2 бита.
я теперь хочу научить его самостоятельно садиться на последовательный порт и парсить поток 16-ричных цифр, который по нему идёт.
То есть, по порту идут строчки вида
40000000000000000000000000000000FFED0013FFE4FF33002519FC00FD26B30002E91F
40000000FFFFF782000031C4FFFF41D6FFFD000E002CFF37002919FC00FD26B30002E920
40000003FFFFF62C0000566E00006CA90018000C0050FF38003019FC00FD26B30002E921
А после преобразования получаются строчки вида
W;X;Y;Z;gyro X;gyro Y;gyroZ;acc X;acc Y;acc Z;temp;range;gyr_zext;motion;x2;y2;timer
1073741824 ; 0 ; 0 ; 0 ;-19 ; 19 ;-28 ;-205 ; 37 ; 6652 ; 253 ; 0 ; 9907 ; 0; 2 ;-23 ;-2145452032
1073741824 ;-2174 ; 12740 ;-48682 ;-3 ; 14 ; 44 ;-201 ; 41 ; 6652 ; 253 ; 0 ; 9907 ; 0; 2 ;-23 ;-2145386496
1073741827 ;-2516 ; 22126 ; 27817 ; 24 ; 12 ; 80 ;-200 ; 48 ; 6652 ; 253 ; 0 ; 9907 ; 0; 2 ;-23 ;-2145320960
"Визатор" читает только первые четыре значения, ибо это они - компоненты кватерниона. Дальше идут "сырые" угловые скорости, до интегрирования, дальше - данные акселерометра по осям, дальше неинтересно.
Можно видеть, что в третьей строчке скалярная часть кватерниона "выскочила" за 1 (точнее, 2
30) - это будет исправлено при следующем нормировании.