Привет, ребята,
Я работаю над проектом, который включает в себя приложение Android, которое используется для
контроль / руля.
- Скорость: Когда вы наклоняете телефон вперед / назад (подача), он имитирует подачу газа и ломку.
- Направление: Когда вы наклоняете телефон влево / вправо (поворачивайте), он имитирует рулевое управление влево и вправо.
Я уже написал некоторый код, который, кажется, работает нормально. Но когда я посмотрел поближе, я обнаружил, что некоторые значения ведут себя странно.
Когда я наклоняю телефон вперед / назад, чтобы справиться со скоростью, она прекрасно работает, я получаю ожидаемые значения скорости и направления. Но когда я наклоняю телефон влево / вправо для управления направлением, кажется, что некоторые значения портятся. Когда он наклоняется влево / вправо, это не только меняет значение направления (крен), но также влияет на значение скорости (шаг).
Для дополнительной информации:
- Программирование для Android 2.2
- Устройство является Google Nexus One
- Удержание устройства в портретном положении
Наиболее актуальный код, который я использую для считывания значений датчика, выглядит следующим образом:
public void onSensorChanged(SensorEvent sensorEvent)
{
synchronized (this)
{
if (sensorEvent.sensor.getType() == Sensor.TYPE_ORIENTATION)
{
float azimuth = sensorEvent.values[0]; // azimuth rotation around the z-axis
float pitch = sensorEvent.values[1]; // pitch rotation around the x-axis
float roll = sensorEvent.values[2]; // roll rotation around the y-axis
System.out.println("pitch: " + pitch);
System.out.println("roll: " + roll);
System.out.println("--------------------");
// Convert the sensor values to the actual speed and direction values
float speed = (pitch * 2.222f) + 200;
float direction = roll * -2.222f;
Итак, когда я запускаю код и смотрю на напечатанные значения. При наклоне устройства влево / вправо это также влияет на значение высоты тона. Как так? И как я могу получить чистое значение высоты тона, когда "катится"? Таким образом, наклон телефона влево / вправо не влияет на значение высоты тона.
Любая помощь очень ценится.
С уважением