Attitude indicator how it works
I'm a very visual person, so having some sort of program that could display my data would be useful, and fun. I had seen a lot of others who either built their own graphical displays, or were using commercial software, such as LabView. I figured I'd make my own, with a little help. Searching the internet I found this great bit of software, written in C#:
Author: Guillaume Chouteau
The only instrument I'm interested in at the moment is the attitude indicator, and I liked the way it worked in this program. So I began to basically build my own program from scratch. I did borrow some of the math functions and bitmaps to build off of from the above program, but the rest is of my own doing.
I built in support for serial communication (for reading data from the Arduino), I added a Yaw indicator (tick marks), representing every 10 degrees. Plus some misc. other controls and features.
Here is a screen shot of the program when it first opens:
Initially you can use the sliders to play with the orientation, or even use the numerical keypad's arrows to move it around. Once you select an available COM port, the program will disable manual inputs and will display the raw Arduino data (the X, Y and Z angles). Here's a shot of 6DOF and Arduino in action:
I'm continually making changes to the program, so the downloadable
version I'll post here may look/function slightly different from the one depicted above. There are some "bugs" in the program too that I'm working out as well. But overall, it works GREAT. VERY smooth too!
Here's an earlier video I shot two days ago (I've already made changes to the program since this):
As shown in my source code on my Arduino Programming page, the Arduino prints all 3 calculated angles for the X, Y and Z axis's. The format for this is:
This program can of course be used with serial data sent from any device. Just make sure the data is in the proper format, and serial baud rate is set at 115200 .
NOTE: In this program, level attitude is when Roll(X-axis) and Pitch(Y-axis) are equal to zero(0). The program can accept +-180 degrees on either axis. Positive roll is to the right, positive pitch is 'up'. Yaw(Z-axis) can accept 0-360 degrees.
Here is the free download for the stand-alone .exe program. It was written using Microsoft Visual C# 2008 Express Edition on Windows XP:
Most recent screen-shot: