"Last post: April 20 2011" This blog is neglected.
I figured I'd document this here, since I intend to actually continue improving on this for a while. Hopefully this won't fade away like my other projects (water rockets, R/C cars, custom laser tag...)
The origin of this project stems from 3 parts:
1) A 4WD robot I built 4 years ago for Science Olympiad
2) A Wii Motion Plus sensor I bought for a quad copter I never built (inspired by
this Hackaday post)
3) Buying an Arduino for a Science Olympiad even this year
Having the ease of use of the Arduino combined with the multi-purpose robot was what got me started on the idea of using my WMP sensor and a Wii nunchuck for a balancing robot. Because it was so easy I managed to do it in three days.
Or at least, tried to. I had to do some clever working around stuff, and rather than convert units or change equations, I just stuck something together to try and make it work. In the end, I had this:
PDangle = rollCF;
PDrate = roll;
PDoutput += PDangle * KP + PDrate * KD;
m1pwr = map(PDoutput, -100, 100, 27, 163);
motor2.write(m1pwr);
It sort of works. It's enough to make my robot react correctly, but it's still not enough for it to stay upright for very long. It could also be the fact that I'm using a nunchuck held on by rubber bands, but I think it's a software problem.
Sadly, I hooked some things up wrong, and I messed up my Arduino. It still runs the last program uploaded (the fail balance one) but I can't program it anymore. Oh well. I plan to a) get an ISP programmer, b) replace the FTDI chip, or c) get a new Ardunio.
I'm sure I'll update this more, but it's late and I'm tired of typing, so here it is.