====== Head Tracking ======
* plán:
* vzít arduino a nějaký obvod akcelerometrem, gyroskopem... použít pro rozhlížení v kokpitu
* [[https://github.com/nodep/wht|wireless head tracker]]
* [[https://vimeo.com/32898673|AHRS / head-tracking using SparkFun 9DOF Razor IMU or 9DOF Sensor Stick - via USB and Bluetooth]]
* https://mbientlab.com/
* [[http://diyhacking.com/arduino-mpu-6050-imu-sensor-tutorial/|komplexní návod s MPU 6050]]
* MPU 9250
* lehce sehnatelný na ebay, kolem 120 kč
* https://github.com/kriswiner/MPU-9250
* https://github.com/Snowda/MPU9250
* http://www.lucidarme.me/?p=5057
* [[http://www.himix.lt/arduino/arduino-pro-micro-and-mpu-9250|knihovna, projekt 9250 jako myš]]
* MPU 9255
* kolem 150 kč, prý nástupce 9250, 9150?
* The new MPU-9255 is the company’s first generation 9-axis activity detection part, working in conjunction with the AAR™ activity detection library.
* The AAR library is required to leverage the full capabilities of this chip. The AAR library is compiled with ATMEL studios for Cortex M4 (ATSAM4LS4A) chipset only.
* The AAR library can be downloaded in our Developers Corner, after signing a click through SLA along with API Document and Integration Guide.
* GY-85 9DOF IMU
* https://www.youtube.com/watch?v=QpO1Wty3F3I
* The MPU-9150 is the MPU-6050 with an extra magnetometer in the chip.
* http://www.sureshjoshi.com/embedded/invensense-imus-what-to-know
* The MPU-6050 is higher power, lower noise, and larger package versus the MPU-6500. Most of your code should port over, but some low power features are different and will need to be recoded in. Basic data acquisitions shouldn’t have changed.
* The MPU-9150 contains the MPU-6050 and an AK8975 magnetometer from AKM. The MPU-9250 contains a MPU-6500 and AK8963. The same differences between gyro/accel are the same you see with 6050 v. 6500. The magnetometer on the MPU-9250 is a little better across the board.
* If I understood the datasheet correctly I think the MPU6050 only has gyro and accelerometer (6 DOF) while the GY-86 is 10DOF and has compass (which helps IMU headtracking alot)
* FreeIMU
* nějaký open hardware + knihovny
* http://www.varesano.net/projects/hardware/FreeIMU
* FreePIE
* sw emulátor různých zařízení.. zkrátka simulace třeba TrackIR, vstup z libovolného zařízení
* http://andersmalmgren.github.io/FreePIE/
* EDTRACKER
* http://www.edtracker.org.uk/index.php
* vypadá zajímavě, využívá MPU 9250 + arduino
* [[https://github.com/roberttwomey/bluetooth-headtracker|bluetooth-headtracker]]
* [[https://hackaday.io/project/24897-head-tracker#menu-description|Wireless headtrack]] [[https://github.com/CaptainStouf/headtracker_gy80|zdrojáky]]
* [[https://www.rcgroups.com/forums/showthread.php?1677559-DIY-Headtracker-(Easy-build-No-drift-OpenSource)|DIY open headtracker]]
===== EDTracker =====
* http://www.edtracker.org.uk/index.php
* vypadá zajímavě, využívá MPU 9250 + arduino
* [[http://www.edtracker.org.uk/index.php/diy/build-it/breadboard|zapojení]] je velice jednoduché, pouze se spojí arduino s MPU
* Arduino VCC (5v USB power) --> VCC pin on MPU board
* Arduino pin 10 --> one side of switch (button)
* Arduino Pin 7 --> INT pin on MPU board
* Arduino Pin 3 --> SCL pin on MPU board
* Arduino Pin 2 --> SDA pin on MPU board
* Finally, join all the following pins as a common earth/ground
* 3x GND pins on Arduino
* GND on MPU board
* AD0 on MPU board
* The *other* side of the switch that you wired up to pin 10 above
* edtracker předpokládá, že MPU je čipem nahorů, jinak se to chová dívně
* firmware lze nahrát přes arduino IDE nebo EDTracker GUI
* [[http://www.edtracker.org.uk/index.php/downloads/category/4-gui|EDTracker GUI]] slouží také pro kalibraci, je pouze pro Windows
* kalibruje se magneto,
* detekuje se min/max otáčením ve všech možných směrech
* a nastavením citlivosti (cca 75%)
* následně se klikne na save a vykreslí se model koule
* červená je původní, zelená je nová kalibrace
* body by měly být zhruba rovnoměrně rozložené, jinak opakovat
* autogyro - 20s se nesmí hýbat s MPU
* EDTracker GUI komunikuje přes sériovou linku [[https://github.com/brumster/EDTracker2/blob/master/EDTracker2_9250/EDTracker2_9250/EDTracker2_9250.ino|příkazy]]:
* **r**\n - provede 20s autogyro
* **R**\n - provede vycentrování (jako stisk tlačítka)
* **I**\n - vypíše fw a hodnoty
* identifikátor firmware
* Yaw scale (115.19), Pitch scale (50.19), Smoothing (36)
I EDTrackerMag V4.0.5
s 0 115.19 50.19 0.36
q -97.843750 18.796875 0.203125 0.9837646484375 0.0091552734375 0.0192871093750 0.0091552734375 0.9210205078125 0.0181884765625 0.0192871093750 0.0181884765625 0.9653320312500
O 2
* **C**XXYYZZ\n - nastaví scale a smoothing
* XX je Yaw scale, 2B int
* YY je Pitch scale, 2B int
* ZZ je Smoothing, 2B číslo
* **t**\n - přepíná lineární/exponenciální osy
* **P**\n - v dalším přenosu je přemapování os, například
50 0A P.
24 8A E7 B3 04 0D 00 85 E0 B5 FF 9E 00 B6 FF 87 $Šçł...…ŕµ˙ž.¶˙‡
E2 95 00 63 FF 6B FF E4 1E 7B 1F 4B 00 9E 00 4B â•.c˙k˙ä.{.K.ž.K
00 79 1D 95 00 9E 00 95 00 E4 1E 0A .y.•.ž.•.ä..
* problémy
* ve Windows i Linux blbne inicializace.
* pokud odpojím zařízení a znovu připojím, tak někdy pouze 3x červeně blikne a pak už nic
* vypadá to, jakoby nefungovala komunikace mezi MCU a MPU
* nevím kdy to udělá, ani jak ten stav opravit
* někdy pomůže
* dát bezpečně odebrat před odpojením z USB
* připojit do jiného USB portu
* zkoušet to prostě pořád dokola s různými prodlevy mezi připojením
* v linuxu nejde použít v xplane
* v kalibraci to ještě tak nějak funguje, ale jak zapnu hru, tak se to úplně zblázní
* v tom zblázněném režimu už nic nepomáhá
* xpl nejspíš provede nějakou divnou akci.. třeba moc rychlé odpojení a připojení?
* TODO
* zkusit nahrát novější fw (GUI má jen 4.0.5, github má 4.1.0) přes arduino IDE
* zkusit upgradovat ostatní knihovny
* zda není nějaký fix v usbhid atd...
* zjistit z jaké verze arduina to vychází, zjistit si diff, a pak aktualizovat :)
* udělat vlastní kalibrační software přes sériovou linku
* vymodelovat krabičku pro moje prototypové PCB
* držák na krabičku na sluchátka https://www.thingiverse.com/thing:2069608