Adding Bumper Sensors

Today I decided to ditch the old bumper sensors since they were built into the original motherboard of the robot, and added new ones in their place.

Design is simple, a push button where the old sensor used to be. I filed down a protoboard to fit in the location, soldered a push button onto the board and attached leads to it. I carefully hot glued the boards in the location (lots of hot glue in hopes they might actually stay.

IMG_2051[1] IMG_2053[1] IMG_2054[1] IMG_2055[1] IMG_2056[1]

To test if the sensors were working I wrote up a quick sketch to check. It just serial rights left or right depending on which button is pushed.

IMG_2058[1]

Code below:

int rightSensor = 2;
int leftSensor = 3;

void setup() {
Serial.begin(9600);
pinMode(rightSensor, INPUT);
pinMode(leftSensor, INPUT);
}

void loop() {
if(digitalRead(rightSensor)){
Serial.println(“right”);
}
if(digitalRead(leftSensor)){
Serial.println(“left”);
}

delay(1);
}

Roomba Hacking Day 2

They are dirty. Turns out my free Roombas came with dirt pre-installed! A little bit of cleaning up and I’m in business! Since two of the roombas are identical, I’ve decided to keep one of them unaltered to refer back to, and complete take apart the other. Also good news: the battery works. My multimeter tells me that it off 16.59 volts at full charge. ImageImageImageImageImage

Many screws later, I have a shell of a robot. I’m trying to figure out what each device does. The yellow, orange, green, two wire juction tells the robot whether or not all of the wheels are down. When the robot is on the ground the circuit is open, and when even one wheel is lifted it is a closed circuit.

The wheels are rather easy to interface with. Just apply power to the orange and red wire (yellow and red on the other side) and the dc motor turns a belt which turns a gear which turns the wheels. There’s a fair bit of torque!

Just to see if I’m on the right track, I hooked up the battery, and had that applied to a breadboard which went to the two wheels. I hooked the motors with reversed polarity so the robot would just spin instead of run away from me. As you can see, it worked out fine.

I tried to hook up an Arduino with a simple circuit to control the motors, but embarrassingly, I hooked up a wrong wire and caused a wire to catch fire. Oops. No real harm done. After checking the circuit, I also noticed I was using the wrong kind of diode, so I’ll be waiting for my digikey shipment to come in before continuing on the motor front.

ImageImageImageImageImageImageImage

While opening up the wheels, I did make a few observations. Inside each wheel is a set of sensors which seems to be some sort of trip beam to tell how fast the wheel is going. I really have no idea how to interface with this. I think I might end up scrapping all of the old sensors and installing my own (ones that I understand).

Roomba Army Day 1

By some stroke of luck, I ended up picking up 3 first generation Roomba vacuum cleaning robots today for free. It’s funny, just the other week I almost bought one at a yard sale but didn’t since I was trying to save money for a plane ticket to Wisconsin. Looks like someone was looking out for me.

They are rather dirty, and there are definitely broken parts. Between the 3 robots (6 wheels) there are only two treads for the wheels that are in one piece. But that’s all the better for me. I wanted to tear these things apart and play with them. Now I don’t have to feel bad for destroying a working thing. I only have one battery, but here’s hoping that it works. Too busy to investigate much more into them today. Image