Find all your DIY electronics in the MakerShed. 3D Printing, Kits, Arduino, Raspberry Pi, Books & more!

M35_Proj_MyKeepon_Opener_03

Designed by scientists studying social development, Keepon Pro is a small, “friendly” robot that interacts with children. My Keepon is a low-cost version released by BeatBots and UK-based toy company Wow! Stuff. Unlike the original Keepon, My Keepon lacked the ability to be teleoperated — until now.

These instructions show you how to connect an Arduino to My Keepon’s electronics, so you can control it using just about any sensors, devices, and interfaces you can imagine!

The basic principle of this hack is to send commands to the microcontrollers inside My Keepon over the I2C bus. I2C is a two-wire serial interface commonly used for communication between embedded systems and peripherals (wikipedia.org/wiki/I2C). We’ve provided access to all commands for setting motor speeds and positions, playing sounds, and retrieving information about audio perception, motor EMF, and encoder positions.

Be warned: performing this surgery will void your warranty, so please don’t try to take it back to a retailer after doing this. But it’s a straightforward procedure, and you’ll easily be able to impress other Keepon fans with your new dance choreographies, Kinect mash-ups, and Wiimote-control demos.

In these instructions, we show you how to do this modification in the simplest way, with only a single additional hole drilled into the cylindrical base. You can go further by installing the Arduino Nano board inside the battery compartment, running the USB cable directly into the base, and powering My Keepon with an adapter. But if you want to continue powering the My Keepon with batteries, or if you plan to use Arduino Uno/Mega shields (for wireless communication, additional sensors or actuators, etc.), you’ll probably want to “backpack” the components on the base as shown here.

Related

Steps

Step #1: Open the skull and expose the brain.

PrevNext
Hack “My Keepon” With an Arduino BrainHack “My Keepon” With an Arduino BrainHack “My Keepon” With an Arduino BrainHack “My Keepon” With an Arduino Brain
  • Remove the 4 screws securing the back half of the My Keepon cylindrical base. Gently remove the back half of the base, leaving the guts and bottom plate in the front half.
  • Unplug the ribbon cable running into the control board.
  • Gently lift the bottom plate (with battery compartment, encoder, and cables) out of the front half. Since there are encoder pins on the control board in contact with the encoder, you may need to lift the robot’s mechanical guts a few millimeters up out of the front half; keep the white plastic rings aligned when you do this. Put the bottom plate aside. Remove the clear plastic cover from the control board.

Step #2: Attach the electrodes.

PrevNext
Hack “My Keepon” With an Arduino BrainHack “My Keepon” With an Arduino BrainHack “My Keepon” With an Arduino Brain
  • Cut 10" or 25cm of 4-wire ribbon cable (or 4 separate 10" lengths of thin/stranded/flexible jumper wire), and strip one end.
  • Identify the I2C bus pads on the top right corner of the control board, conveniently marked with a friendly silkscreened smiley face. Solder the ribbon cable to the 4 pads, keeping track of which wire you’ve connected to which pad: V (+ voltage), CL (clock), DA (data), G (ground). You may want to add some hot glue to keep the wire secure.

Step #3: Close 'er up.

PrevNext
Hack “My Keepon” With an Arduino BrainHack “My Keepon” With an Arduino BrainHack “My Keepon” With an Arduino Brain
  • Widen the hole in the plastic cover to accommodate your new cable. Put the cover back on the control board, running your new ribbon cable through it. Reconnect the original white connector back to the control board.
  • Place the bottom plate back in the base, lifting the guts slightly if you need to, so that the encoder pins are centered on the encoder.

Step #4: Close 'er up (cont'd).

PrevNext
Hack “My Keepon” With an Arduino BrainHack “My Keepon” With an Arduino BrainHack “My Keepon” With an Arduino Brain
  • Drill a hole in the back half of the cylinder, about 1cm above the power port, large enough to accommodate your ribbon cable. Thread about 1" of your ribbon cable through the hole.
  • Place the back cover on the cylinder, carefully tucking away a fold of your ribbon cable so that it will have room to rotate with the mechanism. Replace the screws securing the back of the cylinder.

Step #5: Attach the Arduino.

PrevNext
Hack “My Keepon” With an Arduino BrainHack “My Keepon” With an Arduino BrainHack “My Keepon” With an Arduino Brain
  • Strip 2mm–3mm of the ribbon cable protruding from the robot and solder the 4 wires to the appropriate pins on the Arduino. My Keepon’s V pin connects to the Arduino’s A0 pin; CL connects to the A5, DA connects to A4, and G connects to GND.
  • Secure the Arduino to the back of the robot however you prefer (e.g. with double-sided foam tape or hot glue).

Step #6: Pull the strings.

PrevNext
Hack “My Keepon” With an Arduino Brain
  • With My Keepon powered off, connect the Arduino to your computer with the USB cable. Flash the Arduino with the MyKeepon.ino source file at github.com/beatbots/mykeepon. Start the Arduino Serial Monitor (or another application written to talk to the robot) at 115,200 baud. When the Arduino’s code begins running, it waits to see voltage on the A0 pin (from My Keepon’s V pin).
  • Now power on My Keepon; the Arduino can now receive serial commands and translate them to the appropriate I2C messages for My Keepon’s controller. Happy hacking!

Step #7: Going Further.

PrevNext
Hack “My Keepon” With an Arduino BrainHack “My Keepon” With an Arduino BrainHack “My Keepon” With an Arduino Brain
  • At our Github page you can find a Max/MSP control patch, a standalone application built from the patch, and an openFrameworks-based application for controlling multiple My Keepons. But you can send the command strings from any application or code of your own devising. Allowable command strings are here.
  • The Arduino also periodically sends back data strings from My Keepon’s I2C bus. You can change their frequency in the Arduino code here.

Marek Michalowski

Dr. Marek Michalowski is a roboticist living and working in San Francisco. He co-founded BeatBots with Dr. Hideki Kozima (designer of Keepon). See more at beatbots.net.





blog comments powered by Disqus

Related Supplies at Maker Shed

Follow

Get every new post delivered to your Inbox.

Join 26,173 other followers