MAST is looking at using a moving ballast to correct heeling. This is a balance and controls problem.
Sensing Tilt[]
Our compass does this. But if we dont want to tie up the serial port, we could get an accelerometer. This would also allow the keel to be controlled by a separate dedicated microcontroller.
http://www.sparkfun.com/tutorials/167 recommends ADXL335 which I agree with (we're sensing gravity, and for now only 1 axis.. but sensing waves might be useful too?) and the power is easy to get off the arduino.
sensing yaw, and corelating it to steering is also a possibility. a simple, cheap, accessible 3-axis accelerometer is available through the WII nunchuk, with the added bonus that several tutorials are available for arduino/nunchuk communication, for example: http://www.windmeadow.com/node/42
2010 MECH 460[]
A 460 project was arranged, and results of the team's review are pending. It is currently unclear if the systems presented are usable in their current forms.
Pseudocode[]
#define P 10 //from experiment void loop(){ tilt = analogueIn(accelPin); if (tilt > 10 degrees) move keel to angle tilt*P; if (tilt < -10 degrees) move keel to angle -tilt*P; delay (loopDelayTime); }
External Links[]
http://sites.google.com/site/onewheeledselfbalancing/Home/easy-build-low-cost-arduino-self-balancer