In my last post, I introduced you to Project ZK, my attempt at a miniature drone version of my armored Jeep. Getting the motors working and the initial wiring set up was a huge milestone, and I am really looking forward to the kinds of fun stuff I will get to do with this project in the future.

Recently, I altered the code of the Spark Core a little bit so that I could send it maneuver instructions like “turn left” and “turn right”. I didn’t realize it at first, but the Spark Core is limited to only four remotely invocable cloud methods. This meant that I couldn’t create a single method for every maneuver, so instead I had to create a single “command” method that accepts strings like:

LEFTTURN:25

Where the first term is the maneuver code and the second term is a parameter – in this case, speed.

Take a look at my spin test here:

This is my first attempt at utilizing all four motors to do a coordinated maneuver. Overall I think it turned out well. The slippery floor and ultra-low crawling speed make for a lot of wheel slipping and inconsistent grip, but this is really the only way that you can get 4 motors to turn left like this. I am thinking of experimenting with making the turn direction move backwards a few ticks slower than the non-turn direction moves forward, just to see if that helps make the turn a little smoother. That said, the turning capability is sufficient for now and I’m going to be moving on to bigger and better things. Eventually, I’ll be doing a field test where I rig up an Android app to control the bot and set it loose on an RC rock crawler course.

If you’re interested in following the code I write as I go, you can check out the project-zk project on Github here.