Detect Down, using arduino?

The desired result is a pretty simple one in this case.  I am curious how you can tell where "down" is, using electronics.  I'm sure It could be done by initializing gyroscopes in an initial, level position, but my friend has as small quad copter, that can take off at an angle, and be turned on at an angle, and still level itself perfectly. It doesn't have to have an initial reference to find what down is.  The other option is to use accelerators, but if you are making a device to control a rocket or multirotor it is unlikely to impossible that you will be able to isolate the 9.8 m/s^2 due to gravity from the linear and vertical accelerations,  I assume your everyday gyroscope outputs data in the form of change in degrees, so if it just sitting perfectly still it would just output 0 on all axis, but if it actually gives the current angle I would be surprised, and curious how this is done.  So in conclusion, how could an arduino accurately know where down is?

sort by: active | newest | oldest
iceng2 years ago

What is accurate 1degree, .001degree ?

seedorfj (author)  iceng2 years ago

Probably around 1 degree to .5 degrees

iceng seedorfj2 years ago

The 3 axis accelerometer and simple trig can do it. I have a demo arm unit running on a 3V batt that has a feature beyond 360 leveling that knows when dropped (32'/sec/sec) and lights an led. No matter how I try to move it by hand trying to simulate a 3' drop it knows the difference !!

Only thing that might work better is a 2D wing leveler second sensor assist but tough to implement in a small diameter ... maybe you could extend graphite fishing poles to detect static voltage as a leveling technique due to parallel static plates. When not stormy, old wing levelers used to sense voltage differences between wing tips to align the craft to the atmospheric static voltage lines..

A three axis accelerometer would be used to find down. The acceleration due to gravity will be quite a bit larger than the accelerations from the movement. If you need something more sophisticated, you could use some cameras to look at the horizon and verify that it was horizontal, but that would normally be unnecessary.

seedorfj (author)  contravalent2 years ago

A quad copter flying at 30 degrees, accelerating horizontally and acceding will not be able to isolate the acceleration due to gravity. I have never seen one use cameras either, so how do they do it?

I do not agree. The acceleration of gravity, which points down, will normally be much larger than the acceleration due to movement. Thus, the accelerometer will be mostly responding to gravity, and can detect down. The tilt of the copter will be detected by the accelerometer, as the acceleration will no longer be in the "z" direction of the accelerometer chip. It is true that a very large acceleration due to movement copter will fool the accelerometer. But, this is not the usual case.