Difference between revisions of "User:Massima"

From FlightGear wiki
Jump to: navigation, search
Line 41: Line 41:
  
 
<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).
 +
 +
 +
<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.

Revision as of 13:14, 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.