Nice to see someone else using the arduino! I was also thinking about using a 2 or more axis sensing accelerometer, since elevation (up-down) is trivial to sense compared to azimuth (left-right), but I only have a 5 and 1/2 channel radio, and the single axis accelerometer is all I have at hand. If you want, I can give you my arduino code. Good luck with your project, I'd love to see your solution!
Thanks for the encouragement, but don't put your hopes up too much yet, there's a couple of problems with my approach:
- Because it is impossible to distinguish between acceleration from gravity and acceleration from movement, you must sit pretty still and not walk around
- How much you need to turn you head in azimuth to reach full pan angle changes depending on your head's elevation angle, the more you tilt your head up or down the less you have to turn. So unless you lock your head in the same elevation, you won't get the same pan angle at the same head azimuth angle. Although this can be somewhat corrected using another accelerometer axis, the system will always be more sensitive the more you look up or down, kind of not ideal
- The system can be used in two modes: 1. leaning your head side to side, and 2. turning your head in azimuth while tilted up or down, but it is impossible to tell which mode you are operating in. I realised that while it is easier on my neck to look down, in this position leaning to the left and turning to the left produced the opposite panning ! So the solution is to look up, so that leaning and turning left both produce a "pan left" command, but ideally you'd want to be completely laid back looking straight up (see above)
Because of these problems, I wouldn't call an accelerometer only system a real head tracking solution. If I was to design a proper system, I would use both gyros and accels, using a Kalman filter to use the accel data to correct gyro drift. That's the proper way of doing it, 'cause you can jump around and do whatever the system will always work. I'm guessing that's what the companies are working on. I highly doubt anyone is trying to bring a pure accel HT to market, because drift is a small problem compared to what I listed above. But of course, unless they have the cheap skates like me as their target customers
Talking about cheap, if you get a low G single channel accelerometer with 5V input and analogue output (like this
one, although this is two axis: you can get a single axis one on ebay for less than $10), you can plug it directly into the TX instead of a pot with 3 wires
!! (Assuming your tx works like mine) Sure you don't get the full servo range, or linear movement that the micro controller gives you, but look at the price!
I also thought about the Wii remote photogrammetry based sensing you mentioned, that can easily be done using a computer with a webcam, some IR LEDs and some way of passing the data to the TX. Or alternatively, get the data out of the Wiimote directly using the Wii interface. It's a bit more complicated (especially when "camera" and "outside" are involved), and I just happened to have an accelerometer, so I did it my way
That is a GREAT idea, I wish I thought of it! I would test it tomorrow but I'm moving to a different house next week!!
There are some problems I foresee though:
- How to prevent the accelerometer twisting around the string?
- Need a formula to convert string tilt into head azimuth angle for linear movement
I will definitely test it out when I get the chance!
Phew.. got to be me longest. post. ever.