Jump to content

Полноценный самодельный TrackIR


FVMAD

Recommended Posts

В последнее время продвинутые китайские товарищи стали продавать модули GY-85 с магнетометром QMC5883 вместо HMC5883L. Этот магнетометр нисколько не хуже, просто он ... другой. Если ваш магнетометр выдает 0 0 0 вместо реальных данных, то замените файл Sensor.ino на файл из этого архива. Спасибо за помощь в тестировании Charas04.

https://sites.google.com/site/diyheadtracking/home/diy_ahrs_razor_20170701/download/Sensors.rar?attredirects=0&d=1

:thumbup:

Link to comment
Share on other sites

  • 1 month later...

Крайняя версия Razor AHRS + AHRS Razor AllIn1 [20180306].

Что нового:

-Упрощен выбор варианта сенсора в скетче.

-Поддержка нескольких новых сенсоров.

-Значительно улучшена синхронизация.

-Запоминание центровки на монитор в Ардуино.

-Многоязычный интерфейс.

-Добавлены команды для I2C сканнера.

-Добавлены команды для чтения температуры и давления.

Подробнее: https://sites.google.com/site/diyheadtracking/home/razor-ahrs-20180306

Link to comment
Share on other sites

В последнее время продвинутые китайские товарищи стали продавать модули GY-85 с магнетометром QMC5883 вместо HMC5883L. Этот магнетометр нисколько не хуже, просто он ... другой. Если ваш магнетометр выдает 0 0 0 вместо реальных данных, то замените файл Sensor.ino на файл из этого архива. Спасибо за помощь в тестировании Charas04.

https://sites.google.com/site/diyheadtracking/home/diy_ahrs_razor_20170701/download/Sensors.rar?attredirects=0&d=1

 

А если после калибровки пишет NaN? Проблемы с магнитомером? При этом I2C scanner определяет HMC5883L.

 

/* This file is part of the Razor AHRS Firmware */
//================================================
#define SketchVersion 20180306
#define SensorVariant 2       // GY-85
(ITG3200, ADXL345, HMC5883L)
#define Kp_YAW        1.20000
#define Ki_YAW        0.00002

tUnionCalibr Calibr {
 // -- YY/MM/DD hh:mm:[11/03/2018 12:31]:--
     0x18,0x03,0x11, 0x12,0x31,
 // -- magmode: ---------------------------
     standard,
 // -- magn_ellipsoid_center[3]: ----------
    -8.179688E+1,-1.221826E+1, 3.757798E+2,
 // -- magn_ellipsoid_transform[3][3]: ----
             NAN,         NAN,         NAN,
             NAN,         NAN,         NAN,
             NAN,         NAN,         NAN,
 // -- accmode: ---------------------------
     standard,
 // -- accel_ellipsoid_center[3]: ---------
    -1.340350E-2, 6.786116E-3,-1.012021E-1,
 // -- accel_ellipsoid_transform[3][3]: ---
     1.011485E+0, 6.034624E-2, 7.734731E-3,
     6.034624E-2, 9.960251E-1,-2.549111E-2,
     7.734731E-3,-2.549111E-2, 1.009106E+0,
 // -- gyrmode: ---------------------------
     standard,
 // -- gyr_center[3]: ---------------------
     1.776149E+0,-4.025897E+1, 4.378747E-1,
 // -- center_mode: -----------------------
     centerYawPitch,
 // -- orient_matrix[3][3]: ---------------
     -1,  0,  0,
      0, -1,  0,
      0,  0,  1,
     0xB0    //---- CS ----
 };
//------------------------------------------------

 

...Тут фея взмахнула волшебной палочкой, и у танка отвалилась башня...

Link to comment
Share on other sites

В Sensors.ino в 10й строке:

#define QMC5883 1 //для QMC5883

или

#define QMC5883 0 //для HMC5883L

И перекалибровать. При калибровке красный шарик должен двигаться, и данные изменяться.

Link to comment
Share on other sites

В Sensors.ino в 10й строке:

#define QMC5883 1 //для QMC5883

или

#define QMC5883 0 //для HMC5883L

И перекалибровать. При калибровке красный шарик должен двигаться, и данные изменяться.

 

Нет, с прошивкой под QMC даже не двигается во время калибровки. Так то хотя бы во время нее желтые точки рисуются, но потом при выборе просмотра standart или extended данные не отображаются, как на нижнем скрине.

И то, что всегда MagZ = 375.8, это норма?

ard1.thumb.jpg.af652751a41d1cefb25b5cfa700e9cbe.jpg

...Тут фея взмахнула волшебной палочкой, и у танка отвалилась башня...

Link to comment
Share on other sites

Нет, с прошивкой под QMC даже не двигается во время калибровки. Так то хотя бы во время нее желтые точки рисуются, но потом при выборе просмотра standart или extended данные не отображаются, как на нижнем скрине.

И то, что всегда MagZ = 375.8, это норма?

Зачем тогда спрашивал про Sensors.ino? В крайней версии [20180306] Sensors.ino нет. Вместо этого в файле Menu.h нужно указать #define SensorVariant 2 (для GY-85 с HMC5883L) или #define SensorVariant 9 (для GY-85 с QMC5883).

MagZ = 375.8 - нет неправильно. Должен меняться при вращении датчика. А длина вектора около 50 микротесла, до 2х раз больше. Возможно, магнитометр неисправен.

А NAN - это no assigned number (Несуществующее число). Переполнение.

Link to comment
Share on other sites

Зачем тогда спрашивал про Sensors.ino? В крайней версии [20180306] Sensors.ino нет. Вместо этого в файле Menu.h нужно указать #define SensorVariant 2 (для GY-85 с HMC5883L) или #define SensorVariant 9 (для GY-85 с QMC5883).

MagZ = 375.8 - нет неправильно. Должен меняться при вращении датчика. А длина вектора около 50 микротесла, до 2х раз больше. Возможно, магнитометр неисправен.

А NAN - это no assigned number (Несуществующее число). Переполнение.

 

Я понял, просто процитировал изначально неудачно. Спасибо за ответы, попробую другой датчик, в самой ардуине же проблемы быть не может?

...Тут фея взмахнула волшебной палочкой, и у танка отвалилась башня...

Link to comment
Share on other sites

Я понял, просто процитировал изначально неудачно. Спасибо за ответы, попробую другой датчик, в самой ардуине же проблемы быть не может?

Нет, Ардуино не причем. Акселерометр и гироскоп ведь работают. А этот неисправный датчик можно использовать, отключив магнетометр. Правда, будет дрейф по Yaw. Чтобы отключить магнетометр, достаточно в файле __HMC5883L.cpp закомментировать строки 9 и 10:

//#define Kp_YAW 1.2f

//#define Ki_YAW 0.00002f

Link to comment
Share on other sites

Добрый день.

Купил такой же датчик с QMC5883 - помог новый скетч от RAZOR и во вкладке Menu.h поменял

#define SensorVariant 2

на

#define SensorVariant 9

 

Всё откалибровалось всё отлично работает. Теперь вот глупый вопрос - а как назанчит управление взглядом в DCS? Там кроме TrackIR ничего повесить не получается.

Не бойся того кто обещает убить, бойся того кто обещает дружить - он первым воткнет нож в спину.

Link to comment
Share on other sites

Добрый день.

Купил такой же датчик с QMC5883 - помог новый скетч от RAZOR и во вкладке Menu.h поменял

#define SensorVariant 2

на

#define SensorVariant 9

 

Всё откалибровалось всё отлично работает. Теперь вот глупый вопрос - а как назанчит управление взглядом в DCS? Там кроме TrackIR ничего повесить не получается.

 

Нужно делать через Opentrack. TrackIR и Opentrack используют одноименную библиотеку NPClient.dll. Как это сделать посмотрите в Ютюбе, например в роликах от Ороховатского, например вот:

Link to comment
Share on other sites

  • 2 weeks later...

Всем привет. Почитал все посты выше и честно говоря не понял какие компоненты Arduino лучше выбрать для трекира.Если кому не сложно просьба посоветовать.

Link to comment
Share on other sites

Всем привет. Почитал все посты выше и честно говоря не понял какие компоненты Arduino лучше выбрать для трекира.Если кому не сложно просьба посоветовать.

- Arduino Nano v3.0

- GY-85 или GY-9250

- 2 метра 4х проводного кабеля.

Link to comment
Share on other sites

- Arduino Nano v3.0

- GY-85 или GY-9250

- 2 метра 4х проводного кабеля.

Уважаемый GO63, а с 9250 никаких отличий в калибровке нет? Установленный вместо 85-го 9250 плывет по Yaw, как ни калибруй и какой стороной датчик не располагай. На этой же платке 85 с QMC и HMC работают шикарно. Или датчик "кривой"?


Edited by Econ
Link to comment
Share on other sites

Проверьте в I2C scannere, должны определяться MPU6500 и AK8963. Может вам не тот модуль прислали? Магнитометр нормально калибруется? Rmax/Rmin должно быть не больше 1.1 после калибровки.

 

I2C scanner: https://sites.google.com/site/diyheadtracking/home/razor-ahrs-20180306/razor_i2c_scanner

Link to comment
Share on other sites

Проверьте в I2C scannere, должны определяться MPU6500 и AK8963. Может вам не тот модуль прислали? Магнитометр нормально калибруется? Rmax/Rmin должно быть не больше 1.1 после калибровки.

 

I2C scanner: https://sites.google.com/site/diyheadtracking/home/razor-ahrs-20180306/razor_i2c_scanner

 

Проверю. После калибровки ближе к 1.3 вроде было, поэтому и спрашивал, все ли нужно по инструкции делать.

 

И еще вопрос - в SensorVariant 7 GY-271 на GY-273 можно заменить без внесения изменений в скетчи?


Edited by Econ
Link to comment
Share on other sites

И еще вопрос - в SensorVariant 7 GY-271 на GY-273 можно заменить без внесения изменений в скетчи?

 

Небольшие изменения для этого нужны. Ждите, скоро будет вариант 11: GY521+GY273.

Link to comment
Share on other sites

Небольшие изменения для этого нужны. Ждите, скоро будет вариант 11: GY521+GY273.

Сканером 9250 определяется верно, MPU6500 и AK8963. Датчик бракованный попался. А бутерброд GY521+GY273 заработал отлично, поставил 7 вариант.

Link to comment
Share on other sites

А бутерброд GY521+GY273 заработал отлично, поставил 7 вариант.
Без изменений в скетче GY521+GY273 будет работать только если GY273 установить деталями вверх, как крылья бабочки.

 

Кстати и на GY-9250 можно установить магнитометр вторым этажом, но опять в скетче ковыряться придётся.

Link to comment
Share on other sites

Без изменений в скетче GY521+GY273 будет работать только если GY273 установить деталями вверх, как крылья бабочки.

 

Да, на гребенку посадить не получилось. Штырьком соединил SCL, остальные проводками.

 

Огромное спасибо за Ваш труд. Теперь, получается, трекер можно собрать за 5-6$.

Link to comment
Share on other sites

  • ED Team
Нет, Ардуино не причем. Акселерометр и гироскоп ведь работают. А этот неисправный датчик можно использовать, отключив магнетометр. Правда, будет дрейф по Yaw. Чтобы отключить магнетометр, достаточно в файле __HMC5883L.cpp закомментировать строки 9 и 10:

//#define Kp_YAW 1.2f

//#define Ki_YAW 0.00002f

 

Судя по программе калибровки у меня не работает акселерометр по оси Z. Всё остальное работает как надо, поэтому получается возврат в центр вместо удержания при повороте головы. (но это неточно)

Собственно вопрос, попробую отключить датчик акселерометра, что надо закомментировать для этого?

Второй вопрос - как собственно калибровать. Ну запустил, ну сохранил некий файл, дальше что?

Clbr_Accl.JPG.197d5e69939d146b700f1921342bcb54.JPG


Edited by Dzen

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...