User:Massima: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
<big><big><big>'''HATIRE HEADTRACK (a little guide)'''</big></big></big>
[[User:Massima/Howto:Hatire_head_tracker]]
 
I write this guide to help anyone to use hathire in any sim/game. Let’s start with hw and sw requirements.
 
<big>'''HARDWARE:'''</big>
 
1. a MPU9250 device preferring a 5V tolerant device, i did not test a 9255;
[[File:Mpu9250.png|thumb|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);
[[File:Pro-micro.png|thumb|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.
 
 
<big>'''SOFTWARE'''</big>
 
<big>'''''WINDOWS:'''''</big>
 
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:
[[File:Win setup.png|thumb|Win setup1]][[File:Win setup2.png|thumb|Win setup2]]
 
 
<big>'''''LINUX:'''''</big>
 
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”'';
 
<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>'''CONNECTIONS'''</big>
 
A visual scheme is available on the edtracker site, anyway you need the following connections:
 
{| class="wikitable"
|-
! 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.
 
[[File:My headtrack built.jpg|thumb|my headtrack built]]
 
<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.
 
<big>'''CALIBRATE THE MPU9250 (be aware from EM sources)'''</big>
 
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.

Latest revision as of 15:13, 28 March 2020