User:Massima: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 40: Line 40:


5. Restart udev as root with ''“service udev restart”'';
5. Restart udev as root with ''“service udev restart”'';


<big>'''TRICKS:'''</big>you could have problem flashing the code on board try, while you press load, to reset the board connecting for a while RST with GND (windows and linux), remove modemmanager (linux). Perhaps if arduino IDE doesn’t start you need to  make the main binary executable with ''“chmod +x /path/filename”''(linux).
<big>'''TRICKS:'''</big>you could have problem flashing the code on board try, while you press load, to reset the board connecting for a while RST with GND (windows and linux), remove modemmanager (linux). Perhaps if arduino IDE doesn’t start you need to  make the main binary executable with ''“chmod +x /path/filename”''(linux).
Line 64: Line 65:


[[File:My headtrack built.jpg|thumb|my headtrack built]]
[[File:My headtrack built.jpg|thumb|my headtrack built]]


<big>'''THE CODE'''</big>
<big>'''THE CODE'''</big>


I would say thanks to @hideakitai for his library (https://github.com/hideakitai), it is the only that gives us pitch, roll, yaw. I traslate them in a binary format used by hatire. So install its library in the library manager.
I would say thanks to @hideakitai for his library (https://github.com/hideakitai), it is the only that gives us pitch, roll, yaw. I traslate them in a binary format used by hatire. So install its library in the library manager.


<big>'''CALIBRATE THE MPU9250 (be aware from EM sources)'''</big>
<big>'''CALIBRATE THE MPU9250 (be aware from EM sources)'''</big>
Line 106: Line 109:


DO NOT ENTER DATA FOR THE ACCELEROMETER, they are commented in that file.
DO NOT ENTER DATA FOR THE ACCELEROMETER, they are commented in that file.


5. Load the code!!! you can cange the magnetic declination for your country (http://www.magnetic-declination.com) too.
5. Load the code!!! you can cange the magnetic declination for your country (http://www.magnetic-declination.com) too.
Line 131: Line 135:
<big>'''LINKS'''</big>
<big>'''LINKS'''</big>


A link on the main opentrack is available [https://github.com/opentrack/opentrack/wiki/Built-a-Hatire-headtracker-with-a-MPU9250 here].
A link on the main opentrack site is available [https://github.com/opentrack/opentrack/wiki/Built-a-Hatire-headtracker-with-a-MPU9250 here].


All useful stuff are available [https://drive.google.com/drive/folders/15HhIHfoJ6WcMU1nhQ93dDLvj_SIr3SEa?usp=sharing here] on my gdrivespace, there is an opentrack debian package too.
All useful stuff are available [https://drive.google.com/drive/folders/15HhIHfoJ6WcMU1nhQ93dDLvj_SIr3SEa?usp=sharing here] on my gdrive space, there is an opentrack debian package too.

Revision as of 17:27, 26 March 2020

HATIRE HEADTRACK (a little guide)

I write this guide to help anyone to use hathire in any sim/game. Let’s start with hw and sw requirements.

HARDWARE:

1. a MPU9250 device preferring a 5V tolerant device, i did not test a 9255;

Mpu9250

2. an arduino board, you can choose any kind but if your MPU works at 3.3V, you need a board with a 3.3V pin. I use this pro micro board 3.3V and 5V (it runs at 4.68V);

Pro-micro

3. a push button;

4. i used classic Dupont wires and some Dupont core plus and DuPont plastic shell plug chief.

Obviously this is not the only way to connect it, see http://edtracker.org.uk/ you could use a breadboard or a PCB. I use wires because i can disassemble it if needed.


SOFTWARE

WINDOWS:

1. install arduino IDE and drivers for your board;

2. connect your board and open device manager as amministrator→ ports (right click) → properties → port setting:

Win setup1
Win setup2


LINUX:

1. download the arduino IDE, unpack somewhere;

2. connect your arduino, open a terminal and type: “lsusb”. You get something like this: “Bus 003 Device 008: ID 2341:8037 Arduino SA Arduino Micro”. Yours will be different;

3. as root create a file in “/etc/udev/rules.d”. Call it “52-arduino.rules”, inside put:

 SUBSYSTEM=="usb", ATTR{idVendor}=="2341", ATTR{idProduct}=="8037", MODE="0666", GROUP="plugdev", SYMLINK+="arduino arduino_micro"

4. IdVendor and idProduct could be different for your board.

5. Restart udev as root with “service udev restart”;


TRICKS:you could have problem flashing the code on board try, while you press load, to reset the board connecting for a while RST with GND (windows and linux), remove modemmanager (linux). Perhaps if arduino IDE doesn’t start you need to make the main binary executable with “chmod +x /path/filename”(linux).


CONNECTIONS

A visual scheme is available on the edtracker site, anyway you need the following connections:

MPU9250 Arduino Board button Arduino Board
VCC 5V RST
GND GND GND
SDA SDA (pin 2 for micro)*
SCL SCL (pin 3 for micro)*
  • pins change for different boards.
my headtrack built


THE CODE

I would say thanks to @hideakitai for his library (https://github.com/hideakitai), it is the only that gives us pitch, roll, yaw. I traslate them in a binary format used by hatire. So install its library in the library manager.


CALIBRATE THE MPU9250 (be aware from EM sources)

The first step needs to open the sketch called “calibration” (file→ examples→ MPU9250), load it and open the serial console:

1. Keep the MPU9250 on the table, horizontal, don’t move it!! so it will calibrate the accelerometer and gyroscope;

2. soon you will read “Mag Calibration: Wave device in a figure eight until done!”. Now rotate it for 360° describing a sphere, fast, rotate it in every position;

3. at the end save datas like these:

< calibration parameters >

  accel bias [g]: 

13.85, 68.24, -206.36

 gyro bias [deg/s]: 

-5.79, -3.03, -2.47

   mag bias [mG]: 

-39.82, 77.82, -422.38

   mag scale []: 

1.04, 1.02, 0.94


4. Open my sketch “mpu9250-hatire” and change values, with yours:

 mpu.setGyroBias(0, -5.79);
 mpu.setGyroBias(1, -3.03);
 mpu.setGyroBias(2, -2.47);
 mpu.setMagBias(0, -39.82);
 mpu.setMagBias(1, +77.82);
 mpu.setMagBias(2, -422.38);
 mpu.setMagScale(0, +1.04);
 mpu.setMagScale(1, +1.02);
 mpu.setMagScale(2, +0.94);

DO NOT ENTER DATA FOR THE ACCELEROMETER, they are commented in that file.


5. Load the code!!! you can cange the magnetic declination for your country (http://www.magnetic-declination.com) too.


IMPORTANT: if you change your environment near the magnetometer (like closer parts, headphones), you need to recalibrate it. Otherwise your HT will work badly. My issue, i worked and calibrated my HT with a mini-breadboard. When i switched to a compact solution (see the image at first page), my HT didn’t work correctly but recalibrating did the trick.


TEST

Now it is time to test your system. The loaded code never freezes, my tests platform:

Debian testing+opentrack 2.3.11 unstable+FlighGear 2019.1.1 → running time 1h 35 min;

Windows10+opentrack daily build+Falcon BMS 4.34.3→ running time 1h 25 min;

When you push the button start for the first time you can observe a strange movement of the squid, push the stop and start button again and again.


SETUP

I share my opentrack setting ini files then you can edit yaw, pitch, roll curves but i strong suggest you, everytime, to center the position of the tracker (options → output → custom center position).


LINKS

A link on the main opentrack site is available here.

All useful stuff are available here on my gdrive space, there is an opentrack debian package too.