Sunday, December 18, 2011

Cricket, the toy robot that never was

I decided earlier this year to build a robot as a gift for a young relative. I've always found Braitenberg vehicles interesting and wanted to create a mobile robot with simple sensors and the ability to switch among several Braitenberg-type "personalities" (light-following, sound-avoiding, etc.).

Thus Cricket was born.

Cricket with, well, some things working.

Turns out I underestimated the chaos of the target environment, with multiple even younger siblings running around. Only a totally bombproof gift would work - which Cricket is not.

That, plus some irritating bugs I don't feel like ironing out, means Cricket is now abandonware. But not forgotten!

Testing the light pods.

Full details and more pics after the jump.

Cricket is based on an unusual toy R/C car with differential drive and wheel pods that can lean left and right thanks to a motor in the midsection. According to its stickers, it was originally from Sharper Image.

The "brain pod" on top houses:
  • L/R photocells, knobs to control personality variables, LED light pods, and cell phone vibration motors for "purring"
  • A microphone and flashing LEDs from a greeting card on the front
  • A speaker with volume control and a start/stop button on the top
  • A manual/automatic switch, DB15 joystick jack, and third light pod on the back
  • Three binary personality switches to select one of eight personalities
  • A controller board with a dsPIC33F, shift register, CMOS switch, and some transistor circuits.

Cricket's right side showing knobs, a duct-taped photocell, a light pod, and a vibration motor. The manual/automatic switch and yellow start/stop button are also visible.
Cricket from the front showing the mic, greeting-card fiber optics, personality switches, and volume control.
Cricket from the back.

I also hacked up some front and rear bumpers with microswitches to give Cricket basic obstacle detection.

The bumpers and everything in the brain pod worked just fine. I programmed some cool flashing/fading/chasing light effects (sorry, no video) and it was fun to have the sensors modify those patterns in real time. The speaker plays PWM melodies from a lookup table, and the tempo and in/out positions on the table can be changed by the sensors as well.

I could also basically control the drive motors' directions and speeds, but their voltage spikes kept resetting the controller board or something... whenever I tried to dynamically control motor speed and direction from the sensors, things got wonky.

Maybe I'll finish Cricket later and set him toddling around the house. I'd still like to see how much complexity would arise in his reactions of motion, lights, and sound. But for now, it is adieu Cricket!

No comments:

Post a Comment