Покрытие от RawValues до значений для гироскопа в wiimotion plus - Wiimotelib 1.8 beta
С помощью:
Wiimote.WiimoteState.MotionPlusState.RawValues;
Я могу извлечь исходные значения гироскопа из WiiMotion plus. Однако эти значения для ускорения вращения являются совершенно произвольными и мало пригодны для меня, поскольку они стоят.
Я полагаю, что:
Wiimote.WiimoteState.MotionPlusState.Values;
даст мне данные в g, как в случае с данными акселерометра из wiimote в библиотеке Wiimote. К сожалению, когда я использую это, я не получаю данных, x, y и z все равны нулю.
Может кто-нибудь объяснить, как преобразовать необработанные значения в значимые g, или пролить свет на то, почему я не могу получить информацию в обычном режиме.
1 ответ
Если вы используете WiimoteLib, это потому, что это бета-версия; преобразование из RawValues в значения по-прежнему является заглушкой. Я использовал эту технику нормализации: 1. Откалибруйте Motionplus (т.е. найдите необработанное значение, соответствующее нулю; я делаю это, удерживая его неподвижным в течение некоторого времени) 2. Для каждого последующего считывания необработанного значения я вычитаю нулевое значение из это, чтобы получить "относительное" необработанное значение. 3. Затем я масштабирую это значение, используя http://wiibrew.org/wiki/Wiimote/Extension_Controllers (проверяя yaw_fast, pitch_fast и т. Д.), Где числовые значения вычисляются с использованием меры (необработанное значение 8192 соответствует 595 градусам). /s) 4. Я суммирую все эти значения с течением времени (дискретное интегрирование), чтобы получить угол обзора относительно начальной ориентации.
Когда я проверил это, повернув wiimote в направлении рыскания на 90 градусов и обратно, я получил хороший соответствующий график. Но мои значения не в масштабе, и я понятия не имею, как преобразовать его, не зная максимального значения (т.е. значение, которое соответствует 360 градусов) Может быть, я должен выполнить еще несколько тестов,
но если у кого-то есть другие идеи, я тоже жду...