Making Fun: CheerBot

Making Fun: CheerBot

Hi, this is Wayne again with a topic “Making Fun: CheerBot”.
To speed the domination of the world by robots, i built a robot to control the world’s christmas lights. He uses a camera to find colors, which he sends not only to my christmas tree but also to twitter and the cheerlight system, which controls cooperating light displays around the world. To start, i laid out some robot parts and all the things the robot would have to carry. I built a three wheel differential drive with an omnidirectional rear wheel. The electrically noisy servos will have their own battery pack.

I used recycled sheets of pvc for decking. The quarter inch stuff is quite strong for its weight. The color will be spotted by a usb webcam, a python script running on the beaglebone black uses opencv to find big blobs of certain colors. The beaglebone black is powered by a rechargeable lithium ion battery pack from adafruit for obstacle avoidance. I used three sharp infrared distance sensors, one on each side and one in the middle. The beaglebone can read the analog voltages from the ir sensors, but its voltage limit is lower than what the sensors produce.

Making Fun: CheerBot

So i run the sensor output through voltage dividers. It would be nice to mix in a sonar sensor as well to detect things that ir sensors. Don’T read well, but sonar sensors require precise timing that i am not skilled enough to get out of the beaglebone. The beaglebone takes add-on board similar to the arduino shields, but they are called capes. I use adafruit’s prototyping cape to mount voltage, dividers and connectors for the sensors and servos, because the beaglebone only has one usb port. I need a hub to connect both the webcam and the wi-fi dongle, the beaglebone black will right on top.

In a plastic case, i cut a hole in the top of the case to allow connections to be made. I wired up several small extension cables for my servos and sensors folks around the world had built their own cheerlice displays for mine. I hacked together a couple strands of ge, colorfx christmas lights, to be controlled by the arduino and my small cheerlights tree i built for a previous christmas. Basically, i’m just separating the strand’s data line from its controller and connecting it to an output pin on the arduino.

Making Fun: CheerBot

The connection is made with an audio jack that returns the connection to the strands controller. When i remove the arduino’s plug the cheer bot roams, the house heading in any direction where his infrared sensors do not detect an obstacle, he is also constantly analyzing video from the camera for each frame. He goes through my list of color ranges. He records the size of the biggest blob of each color range and, if the biggest of all the blobs is big enough, he stops moving and records a higher resolution image of the scene which he tweets along with the color name.

Making Fun: CheerBot

Every found color is immediately reflected by the lights on the tree in my living room once an hour, the robot directs the color at shear light, which updates the current cheer lights color and changes tree light colors around the world. .