Jump to content
newboerg

Head Tracking for under 10€

Recommended Posts

Thanks newboerg,

I have tried your fix for drift compensation and it works no need for modification.

I am using :

facetracknoir

Hatire

Arduino Pro Micro & GY-521

Thank you all for your efforts working great but only really usefully for Jets and Helicopters.

Using when infantry is a little disorienting.

Share this post


Link to post
Share on other sites

Is this all I need to run the device wirelessly over Bluetooth, or will the code need to be modified as well?

http://www.ebay.co.uk/itm/Slave-HC-06-Wireless-Bluetooth-Transceiver-RF-Master-Module-Serial-For-Arduino-/290932857308?pt=UK_BOI_Electrical_Components_Supplies_ET&hash=item43bcf319dc

Obviously I'll need a BT receiver for the PC, so can anyone recommend a decent cheap one? Ultimately, I don't know if I'll end up using the device wirelessly or not, so I don't want to spend loads on it.

Share this post


Link to post
Share on other sites
Is this all I need to run the device wirelessly over Bluetooth, or will the code need to be modified as well?

http://www.ebay.co.uk/itm/Slave-HC-06-Wireless-Bluetooth-Transceiver-RF-Master-Module-Serial-For-Arduino-/290932857308?pt=UK_BOI_Electrical_Components_Supplies_ET&hash=item43bcf319dc

Obviously I'll need a BT receiver for the PC, so can anyone recommend a decent cheap one? Ultimately, I don't know if I'll end up using the device wirelessly or not, so I don't want to spend loads on it.

the code needs to be tweaked a little bit, but not that much. i could help you with this i think i will do the same to mine

EDIT: Although you can use the HC06 i would recommend buying a HC05. because its more versatile. for example can be used as a HOST not just client. Price is the same.

Share this post


Link to post
Share on other sites
the code needs to be tweaked a little bit, but not that much. i could help you with this i think i will do the same to mine

EDIT: Although you can use the HC06 i would recommend buying a HC05. because its more versatile. for example can be used as a HOST not just client. Price is the same.

Thanks for the tip, I'll get that then. Any suggestions for receivers?

---------- Post added at 22:15 ---------- Previous post was at 22:09 ----------

OK, for the ones having constant drift problems with the sketch described withon the guide try the following:

search for:

hat.gyro[2]=angle_z;

inside the arduino sketch file and change it to

hat.gyro[2]=angle_z*0.988;

where 0.988 is the value needed to correct the drift you might need to up or down it a bit with your setup

heres the edited sketch:

https://www.dropbox.com/s/jl5cdmcepdjt63w/gy_521_send_serial_HAT_ITG_spring_reset_compensation_setup.ino

Doesn't help here I'm afraid. Yaw still returns itself to where it was before I turn the device.

That sketch you posted hasn't got the edit by the way and still has

hat.gyro[2]=angle_z;

but I edited it myself, so I did test it.

Share this post


Link to post
Share on other sites

After a long time I revived this thing, and now it seems to work with the last sketch you posted!

But the "spring" for yaw is too stiff for my taste, is there some parameter I can change to decrease the centering speed? Seems there is not much drift in mine anyway.

Doveman, the line he means is "float angle_z = gyro_angle_z*0.988; " I think.

Share this post


Link to post
Share on other sites
After a long time I revived this thing, and now it seems to work with the last sketch you posted!

But the "spring" for yaw is too stiff for my taste, is there some parameter I can change to decrease the centering speed? Seems there is not much drift in mine anyway.

float correction_z;

 if (abs(gyro_angle_z)>5)  
   correction_z=[color="#FF0000"]x.xx[/color];
 else
   correction_z=[color="#FF0000"]x.xx[/color];

Share this post


Link to post
Share on other sites

Doveman, the line he means is "float angle_z = gyro_angle_z*0.988; " I think.

Ah thanks, maybe that's why it didn't work, although the sketch he posted already has that edit, so I'm not sure the (wrong) edit I did as well would be causing it to pull back to centre. I'll try it without my edit anyway.

Share this post


Link to post
Share on other sites
Ah thanks, maybe that's why it didn't work, although the sketch he posted already has that edit, so I'm not sure the (wrong) edit I did as well would be causing it to pull back to centre. I'll try it without my edit anyway.

That's how it supposed to be for this sketch (the sketch is caled Spring_Reset for a reason), to compensate for drift (read back a bit). I think the lines CaptainObvious posted above you let you decrease this effect, but I couldn't find a acceptable value yet.

Share this post


Link to post
Share on other sites

So I have a quick question. I own a Samsung Galaxy S4 that has a gyro and accelerometer built in, could combine these features to allow leaning and free look. Then all I'd need to do is tape the phone temporarily to something on my head?

Sent from my GT-I9505 using Tapatalk

Share this post


Link to post
Share on other sites
So I have a quick question. I own a Samsung Galaxy S4 that has a gyro and accelerometer built in, could combine these features to allow leaning and free look. Then all I'd need to do is tape the phone temporarily to something on my head?

Sent from my GT-I9505 using Tapatalk

I posted an android app back a few pages here.

I tested this on a Samsung Galaxy Note 1 and it did work but needs calibration.

Just install the app and the server software. It should work.

Share this post


Link to post
Share on other sites

Hello all,

Just letting some of you know that we solved issues with Gy-80 and GY-85. Software was changed to DIY Headtracker for RC. We still got 2 different software (for GY80 and 85) but it will unified later. No drifting and really stable solution.

BTW back to some one question here it is just impossible to do X,Y,Z positioning even with 9DOF board. The errors from boards are to big to follow it properly. I am using GY for yaw,pitch, roll and camera for X,Y,Z and it is working very nice.

Share this post


Link to post
Share on other sites

So is the situation currently that the GY-80 and -85 are working fine, with no drift or spring reset dragging the view back to center but that the MPU-6050 has to use spring reset to fix the drift problem?

Share this post


Link to post
Share on other sites

Very nice. Ordered a GY-85 now, hope this works better than the MPU-6050 (which was a good prototype, but the drift is too disturbing for long actual use).

Share this post


Link to post
Share on other sites

Has anyone tried using this with Bluetooth yet? I imagine the firmware on the Arduino will need to be adapted to drive the transmitter and I'm not sure if the FTNoIR plugin will work with the receiver, as it needs the input to be on COMx, so maybe that will need adapting as well?

Share this post


Link to post
Share on other sites

Hey guys,

I did some minor changes about interactions with the arduino:

Reason: Drift and further centering

At the beginning, you can recenter your view once the drift made it horrible.

The more often you do this, you will notice, while simply watching up or down, it will add some yaw too.

(simply because you won't have a totally yaw without changing pitch (depends on the position of your controller on your head and your movement).

At some point - you can't balance this out anymore and your rage will go higher than to the ISS.

What I simply did:

I saw that there was already an implemention of something zeroizing (gyro_z). I don't know what it was meant for, but I added two functions:

the first one is Center

I excluded it as, the Center function in FaceTrack is meant to be used by FaceTrack, it takes the current raw values and interprets them as 0.

The second is zeroizing:

This one should be used to tell the device to get zeroized.

The third is Start/Reset:

This one will do a "calibration". By the way - calibration is set to 5 secs

Known Problems: The Drift will stay, and in this version - as this is not the Spring or spring reset, there is no "direct" compensation for drift.

Why?

As I had so many problems with the compensation either (or even more when starring a little bit longer in my cockpit)

I thought: fine - I have to recenter so or so. but instead of gaining the errors until the situation mentioned above, I want to have the possibility to reset it.

(also because sometimes drift is heavy, sometimes it's only slight, but you can't note it at the beginning)

Now I do the following

Zeroize to get a well 0-yaw value

Center to get my FT View as 0

In theory while gaming, I don't need to "center", but to zeroize now.

And if I notice, that my first calibration was bad or the drift factor is just to big, I do a stop/start keypress which will call a new calibration, perhaps, that time I have better luck, if not, I have to redo it.

but in the end - I can stay in the game and do all this by 3 keyshortcuts. Otherwise there is also the risk of crashing the game because of the alt-tabbing.

Don't know if anybody of you is interested, I mean - it does nothing for you automatically, like the other two sketches, but you can atleast interact ingame with it.

What do you need to do?

the sketch is the following one: https://dl.dropboxusercontent.com/u/40940714/gy_521_send_serial_HAT_ITG_commands.ino

in FTNOIR:

1. you need to enter the Hatire Settings.

2. Open Command Tab.

3. Insert "S" (Capital letter and without the quote) on Start // This one can be used by Stop/Start shortcut (you will have to press it 2 times)

4. Insert "Z" (Capital letter and without the quote) on Zero // This one can be used by Zeroize shortcut

5. Insert "R" (Capital letter and without the quote) on Reset // This one can only be used by GUI

6. Serial Parameters -> Flow Control had to be Set to none in my case.

NOTE: THIS MODIFICATION IS DONE ON THE NAKED VERSION WITHOUT SPRING OR SPRING_RESET!

Share this post


Link to post
Share on other sites

Thanks SnowSky but this isn't working too well for me I'm afraid.

It seems to do strange things, like swap the Pitch and Roll axis whilst I'm playing and even after stopping and restarting (after closing the game and looking at FTNoIR) they were swapped, until I Centered and then they swapped back!

I'm also having very bad, what I guess is drift, as whenever I look around, it ends up with the view very off centre when I look straight ahead, so I'm constantly having to Centre.

Hopefully it'll be usable one day but for me right now it's just not.

Share this post


Link to post
Share on other sites

Got the GY-80 and another Pro Micro today, smacked them on a breadboard and flashed the Pro Micro, it's been sitting on the desk for quite some time now, FTNoIR shows steady readings on Raw input as well as Output, gonna solder them together later today and give it a spin in Arma, so far so good.

Update: There's no drift, but I can't get it to work properly with FaceTrackNoIR, i.e when I tilt the GY80, it always gives Roll and Yaw, same goes when I try to tilt the module along Pitch axis, it gives me Pitch as well as Yaw, only when I'm rotating the module along the Yaw-axis, it's working as intended without giving me pitch/roll too.

I've fiddled around with it for so long my head's messed up by now ;) Any ideas?

edit: Whoops, could a moderator merge my last two posts

Edited by [FRL]Myke

Share this post


Link to post
Share on other sites
Got the GY-80 and another Pro Micro today, smacked them on a breadboard and flashed the Pro Micro, it's been sitting on the desk for quite some time now, FTNoIR shows steady readings on Raw input as well as Output, gonna solder them together later today and give it a spin in Arma, so far so good.

Update: There's no drift, but I can't get it to work properly with FaceTrackNoIR, i.e when I tilt the GY80, it always gives Roll and Yaw, same goes when I try to tilt the module along Pitch axis, it gives me Pitch as well as Yaw, only when I'm rotating the module along the Yaw-axis, it's working as intended without giving me pitch/roll too.

I've fiddled around with it for so long my head's messed up by now ;) Any ideas?

edit: Whoops, could a moderator merge my last two posts

Join the club, I did get mine working correctly at first so I know it can work but since then I have the same issue plus it doesn't remember my settings.

It did remember them at first but last time I checked when I turn off the settings are lost.

When I tried the settings one by one they all work but as son as you enable them all it goes to hell.

It also works correctly in calibration.

I did read that they has supposedly changed one of the axis as it was wrong but I haven't tried it for a few months.

Share this post


Link to post
Share on other sites

Well Gy-80 and GY-85 are working good with Mini and Uno (but with DIY software, not MultiWii- as DIY is better). Micro got still some issue but it seems they are hardware related and we are trying to figure out with Doveman how to make it work properly (more details here https://sourceforge.net/p/facetracknoir/discussion/iht/thread/eced1cb2/?page=6 ).

F2k Sel

I can see you are talking about software based on MutliWii and old version. Try one based on DIY.

Share this post


Link to post
Share on other sites
Well Gy-80 and GY-85 are working good with Mini and Uno (but with DIY software, not MultiWii- as DIY is better). Micro got still some issue but it seems they are hardware related and we are trying to figure out with Doveman how to make it work properly (more details here https://sourceforge.net/p/facetracknoir/discussion/iht/thread/eced1cb2/?page=6 ).

Right-o, I was actually wondering if I should buy a Mini instead, would you suggest on doing so?

I'm itching to get this working in Arma, the MPU6050 was pretty good for the price, but the drifting started to bother me alot at the end, I hope you find a way to get this going with the Pro Micro too, thanks a lot for your efforts so far, much appreciated. :)

Share this post


Link to post
Share on other sites
Right-o, I was actually wondering if I should buy a Mini instead, would you suggest on doing so?

I'm itching to get this working in Arma, the MPU6050 was pretty good for the price, but the drifting started to bother me alot at the end, I hope you find a way to get this going with the Pro Micro too, thanks a lot for your efforts so far, much appreciated. :)

Well you can still try if micro will work http://sourceforge.net/projects/gy80facetrack/files/DIY_headtracker_micro_ver0.1.zip/download here is update version (There is version for GY-80 and GY-85). Remember to mount it with proper orientation like in here http://www.rcgroups.com/forums/showthread.php?t=1677559 other wise calibration may not work properly (axis calibration is preferred). Try and let me know. Ah as micro is slower you will need to setup HAT in FTR for 57600 baud rate - the reason is serial commands in arduino are slow and with slower processor (micro) it does not work good on full speed. Try it first on test board if you can (I am trying to avoid soldering as I like to use my boards for different purposes. I use shields or plugs.

Share this post


Link to post
Share on other sites

That gave me pretty smooth curves and movement only on axis it's supposed to.

klGlURc.png

FacetrackNoIR gives me still this weird, unwanted movement on two axis at a time, looking up/down in Arma works just fine when only Pitch is enabled and set to RotY, when I enable Yaw for RotZ for looking at the sides, FTNoIR goes nuts and even the slightest movement along Roll (Which is disabled) immediately sends Yaw all the way to the end.

Share this post


Link to post
Share on other sites

First of all I got Yaw on RotX, pitch RotY and Roll on RotZ (and that is how it is connected in Arduino software).

Second you are aware of fact that front is on wider edge (in MultiWii it was diffrent). But nice steady scope from GUI calibration is good.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×