Saturday, 12 April 2014

PenguinBot - Fun weekend Arduino Project!









This video is right after placing the covering back on, and powering it up.  I have not fixed a bug in the object avoidance yet, so you will hear the motors running full steam backward to get away from the phantom obstacle.    I really wanted to post this just to show how obnoxious the sound from the preserved toy is!

********************************************************************************


After seeing the Awesome Hurby Bot, I thought I would have a bit of fun.

My wife is out for the weekend, lets see what I can conjure up!
I started with (very noisy) Penguin toy that has not worked in a year or so. We left the batteries in it, and they leaked all over the inside, corroding the leads to the motor... Hmmm... fix it as is? Or make it AWESOME!!!


So, of course I chose AWESOME!
I expect this build to take a day, with some code tinkering over the next week.
So what do we have to start with, and what can we add?




The penguin toy itself had an odd combination of two wheels at 90 degree angles to each other. These would alternately spin causing a very strange walking pattern. It also had an offset gear rocking a lever inside, with a plastic ball attached to the top of the penguin body with velcro.

While walking the penguin would rock back and forth, screeching, as penguins do. (I want to preserve this motion.)






So, first thing to do was find two SMALL DC gear motors to provide proportional steering. A trip to the dollar store, and I had what I wanted. A pair of cheap locomotive engines with 3v DC gear motors!



I will use an Arduino Pro Mini to run this Bot, the motors will be managed through a Polulu DRV883 H-bridge.



For obstacle avoidance, I will be using a MaxSonar EZ1. A *lot* of overkill, and way too expensive for this project, but... It's what I've got in the parts bin.
Two Light Sensitive resistors should allow it to waddle towards a light, or follow my children with a flashlight.
A small microphone will allow it to react to sound.
A micro servo to rock the body back and forth.
And a few strategically placed leds just for fun...

I guess I'll just call this board "Bird Brain"!


Wish me luck!

Update: 4:30pm Sunday afternoon



Electronics and most of the mechanical is done.  90% of the coding is complete as well....

My challenge to myself was to start from scratch at 6pm Friday night, and with a house full of kids, (my 7 year old son had two other boys over as well) and the wife gone for the weekend, complete this project by midnight tonight.

I actually believe I'm on track.

Update: 8:00pm  Sunday night.  4 hours to go, and I've got it reassembled and the "skin" back on.  Just some mild "glitches" in the code, and we should have another video up before midnight... (unless the wife gets home before then?)



Update: 10:00pm  Sunday night. 

Ok, I'm exhausted.  I've been at this hack for over 60hrs... Sleep calls... I can no longer see...

For what it's worth, the code to this point is here:
https://github.com/michaeljball/PenguinBot

I will finish it tomorrow...
Cheers.







References:
Pololu: DRV8835 Dual Motor Driver Carrier
Texas Instruments: DRV8835 Dual Low Voltage H-Bridge
Instructables: Arduino Motor Shield V3
MAXBOTIX: LV-MaxSonar®-EZ1
Arduino light seeker
Arduino powered Braitenberg vehicle
Light chaser
Servo Problems With Arduino - Part 1
Get on the BlinkM Bus with a BlinkM Cylon