====== 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