Difference between revisions of "Bluetooth Headtracker"

From Robert-Depot
Jump to: navigation, search
(Software)
 
(32 intermediate revisions by the same user not shown)
Line 1: Line 1:
https://farm9.staticflickr.com/8567/16281491925_66cc3868bf_z_d.jpg
+
 
 +
<h1>NOTE: this has been superceded by  https://github.com/roberttwomey/bluetooth-headtracker. Please go there for supercollider code, etc.</h1>
 +
 
 +
https://farm9.staticflickr.com/8567/16281491925_66cc3868bf.jpg
 +
 
 +
A bluetooth, rechargeable, 10DOF head-tracking device  for use with the [http://www.ambisonictoolkit.net/ Ambisonic ToolKit (ATK)], motion capture, and [[Pan-Tilt]] camera systems. This is the second prototype.
 +
 
 +
__TOC__
  
 
=Hardware=
 
=Hardware=
Line 10: Line 17:
 
*LiPo Charger - https://www.sparkfun.com/products/10217 (note you need to cut off the JST connector to fit it in the enclosure)
 
*LiPo Charger - https://www.sparkfun.com/products/10217 (note you need to cut off the JST connector to fit it in the enclosure)
 
*Small quantity of stranded ribbon cable.
 
*Small quantity of stranded ribbon cable.
 +
 +
One of the following, needed to program the arduino. (One use only! Borrow from a friend?)
 +
*FTDI Basic 3.3V - https://www.sparkfun.com/products/9873
 +
*FTDI Cable 3.3V - http://www.adafruit.com/product/70
 +
 +
You can also choose to leave the LiPo charger out of the enclosure for small space savings.
  
 
=Software=
 
=Software=
This project uses the [[FreeIMU http://www.varesano.net/projects/hardware/FreeIMU]] code to interface with the various motion sensors. You should only have to upload the FreeIMU_quaternion code once. Be sure to change the baud rate to max for Arduino Pro Mini, 38400 bps.
+
This project uses the [http://www.varesano.net/projects/hardware/FreeIMU FreeIMU] library to read the motion sensors and calculate sensor-fused orientation.  
 +
 
 +
==Arduino==
 +
We are using the straight FreeIMU_quaternion example from FreeIMU v0.4. This reads the attached sensors, calculates the AHRS quaternion, and transmits via serial print.
 +
I've attached a copy of the FreeIMU_quaternion code here with the baud rate set to 38400, the max rate for the Arduino Pro Mini.  
 +
 
 +
You should only need to upload this to your arduino once.
 +
 
 +
[[:File:FreeIMU_quaternion.zip]]
  
=Applications=
 
 
==Processing==
 
==Processing==
 +
This is the demo app in Processing included with FreeIMU v0.4.
 +
#With the headtraker powered on, pair your computer with the bluefruit device.
 +
#Change the serial port screen to match your bluefruit device, for example ''/dev/tty.AdafruitEZ-Link3e2f-SPP'' on my system.
 +
#Run the example. Press 'h' to store the home position.
 +
[[:File:FreeIMU_cube.zip]]
 +
 
==Python==
 
==Python==
 +
Simple python program to read from the IMU headtracker and record to file. Additionally opens second serial device and feeds values to pan-tilt camera in matching orientation.
 +
 +
[[:File:head_through.zip]]
 +
 
==Supercollider==
 
==Supercollider==
 +
coming soon... :)
 +
 +
=Enclosure=
 +
https://farm8.staticflickr.com/7538/16255567716_410f1b46dc_z_d.jpg
 +
 +
==3d Printing==
 +
Solidworks Files - [[:File:btht_solidworks.zip]]
 +
 +
STL Files - [[:File:btht_enclosure_stl.zip]]
 +
==Assembly Instructions==
 +
 
=Reference=
 
=Reference=
==other intertial Measmurement Units==
+
==other intertial Measurement Units==
  
 
Head-tracking with the MPU6050
 
Head-tracking with the MPU6050
Line 29: Line 70:
 
Example with Arduino Nano
 
Example with Arduino Nano
 
*http://www.geekmomprojects.com/mpu-6050-dmp-data-from-i2cdevlib/
 
*http://www.geekmomprojects.com/mpu-6050-dmp-data-from-i2cdevlib/
==GY-80===
+
 
 +
GY-80
 
*https://github.com/vshymanskyy/GY80
 
*https://github.com/vshymanskyy/GY80
===GY-86===
+
 
http://ecx.images-amazon.com/images/I/61laK%2BDIwfL._SL1500_.jpg
+
GY-86
 
*http://amzn.com/B00KDMJBFK
 
*http://amzn.com/B00KDMJBFK
  

Latest revision as of 13:33, 15 December 2016

NOTE: this has been superceded by https://github.com/roberttwomey/bluetooth-headtracker. Please go there for supercollider code, etc.

16281491925_66cc3868bf.jpg

A bluetooth, rechargeable, 10DOF head-tracking device for use with the Ambisonic ToolKit (ATK), motion capture, and Pan-Tilt camera systems. This is the second prototype.

Hardware

Built with simple, ready to order parts from common suppliers. Purchase 1 each of the following:

One of the following, needed to program the arduino. (One use only! Borrow from a friend?)

You can also choose to leave the LiPo charger out of the enclosure for small space savings.

Software

This project uses the FreeIMU library to read the motion sensors and calculate sensor-fused orientation.

Arduino

We are using the straight FreeIMU_quaternion example from FreeIMU v0.4. This reads the attached sensors, calculates the AHRS quaternion, and transmits via serial print. I've attached a copy of the FreeIMU_quaternion code here with the baud rate set to 38400, the max rate for the Arduino Pro Mini.

You should only need to upload this to your arduino once.

File:FreeIMU_quaternion.zip

Processing

This is the demo app in Processing included with FreeIMU v0.4.

  1. With the headtraker powered on, pair your computer with the bluefruit device.
  2. Change the serial port screen to match your bluefruit device, for example /dev/tty.AdafruitEZ-Link3e2f-SPP on my system.
  3. Run the example. Press 'h' to store the home position.

File:FreeIMU_cube.zip

Python

Simple python program to read from the IMU headtracker and record to file. Additionally opens second serial device and feeds values to pan-tilt camera in matching orientation.

File:head_through.zip

Supercollider

coming soon... :)

Enclosure

16255567716_410f1b46dc_z_d.jpg

3d Printing

Solidworks Files - File:btht_solidworks.zip

STL Files - File:btht_enclosure_stl.zip

Assembly Instructions

Reference

other intertial Measurement Units

Head-tracking with the MPU6050

Example with Arduino Nano

GY-80

GY-86

IMUs for position