Archive for April, 2013

Arduino Rumble Robot Hack

Posted: April 30, 2013 by wehrsteve in Phys II Projects

Arduino Controlled Rumble Robot Hack

Based on


1. Components

This project involves hacking a Rumble Robot, remote control robot toys from the early 2000’s. You can find them at garage sales or any place that sells old toys. Because I live in Alaska, I went with eBay. An Arduino is required. You will also need a ping sensor of some form. The guide I was following from DinoFab suggested using a Parallax ping sensor. But I’m a rather cheap person and instead got an HC-SR04 ping sensor. It required a few variations in the code and wiring, but worked acceptably. You also need a bump switch, which can be purchased, but I cobbled one together from a can of soda that had the misfortune of being on my desk that night and a similarly unfortunate mechanical pencil. Other than these things everything could be scavenged from the torn apart pieces of the rumble bot.

Tools used include a soldering iron, needle nose pliers, wire strippers, and small screwdriver. A hot glue gun definitely comes in handy, but tape would also suffice. Another thing that could be used to clean up the overall creation is a Dremel tool, but once again, not required.


2. Assembly

The first thing to do is take the head off and gut it. DinoFab does an excellent job of demonstrating how to do that, so just follow the link I put near the top if you want to see a video of the whole project. He also does a much better job than I could for the whole wiring into the robot part, so I will talk about my deviations from his superlative plans. First I’ll explain the makeshift bump switch.


I made the bump switch by cutting a pop can’s top and bottom off so I was left with the main cylindrical part. I flattened this and tried a few different ways to get a solid connection. Turns out, soda cans have a plastic coating on the inside that needs to be scraped off to expose the metal for a direct connection. I ended up doing a basically flat piece with a bend in the tip to touch another piece with both wired separately. The flat piece was glued to a spring from a mechanical pencil in such a way that when the switch hadn’t hit anything it was in contact, completing the circuit. When it bumped into a wall or object, the switch would open the circuit, telling the robot to back up and turn around.


The next thing to talk about is the use of the ping sensor, HC-SR04. The wiring needed to change slightly to accommodate the extra wire needed for the HC-SR04. This is a difficult step to explain, so I will use the picture of my wiring setup. There was a little bit of coding to do, with the changing of variables, but if you use my code with my wiring it should work. I used the code from <a href=”“></a>. and subbed it into the spot in DinoFabs code where we would normally have used the Parallax sensor. Instead of having it read the value out like in the instructable, I just set the “if, then” statement to run the motors like in the original code.


3. Finishing Details

I filed the eyes out of the robot and placed the ping sensor in them. The bump switch was placed in a “nose” spot. I also tore the bottom apart and made holes in order to look at the moving gear system inside it. And using one of the original switches from the robot, I set a switch up to my power supply, so it isn’t left on all the time. I am not sure if he talks about it in his video, but you can wire the power from the batteries directly into the Arduino by running a wire from the power pin in the belly of the robot. I think its either the second or third in from the right on the ribbon wire connector. And its only 6V, but I believe you can power an Arduino with anything from 3V-20V.



Grab this code and throw it into a sketch. Should work fine. If you are using an actual bump switch, the LOW and HIGH checks may need to be swapped.

/* Rumblebot Driving with object avoidance utiliszing PING Ultrasound Sensor

* and a bump switch.

* Reads values (00014-01199) from an ultrasound sensor (Parallax PING)


* Version 1.1.2 Motor runs and drives full time unless object detected.









int switchPin = 2; // Right bump switch on pin 2

int swval; // Variable for reading switch status

int motorpinright = 6; // pin for left motor reverse

int motorpinleft = 11; // pin for left motor forward

int motorpinrevright = 5; // pin for right motor reverse

int motorpinrevleft = 10; // pin for right motor forward

int trigPin = 12; // trigger pin

int echoPin = 13; // echo pin


void setup() {

pinMode(switchPin, INPUT); // Sets the digital pin as input

pinMode(motorpinright, OUTPUT); // Motor drives———–

pinMode(motorpinleft, OUTPUT); //————————

pinMode(motorpinrevright, OUTPUT); //————————

pinMode(motorpinrevleft, OUTPUT); //————————

 pinMode(trigPin, OUTPUT);

 pinMode(echoPin, INPUT);




void loop() {

 long duration, distance;

 digitalWrite(trigPin, LOW);  // Added this line

 delayMicroseconds(2); // Added this line

 digitalWrite(trigPin, HIGH);

//  delayMicroseconds(1000); – Removed this line

 delayMicroseconds(10); // Added this line

 digitalWrite(trigPin, LOW);

 duration = pulseIn(echoPin, HIGH);

 distance = (duration/2) / 29.1;

 if (distance > 75) {  // straight

analogWrite(motorpinleft, 255); //100% speed

analogWrite(motorpinright, 255); //100% speed


 else { // turn

analogWrite(motorpinleft, 0); //stop left motor

analogWrite(motorpinright, 0); //stop right motor

analogWrite(motorpinrevright, 0); // stop right rev motor

analogWrite(motorpinrevleft, 0); // stop left rev motor

analogWrite(motorpinrevright, 255); //100% speed

analogWrite(motorpinleft, 255); //100% speed

delay(380); //380 milliseconds

analogWrite(motorpinrevright, 0); // off

analogWrite(motorpinleft, 0); // off





/* Backup and turn right when switch gets bumped and closes circuit to ground




//digitalWrite(switchPin, LOW); // Sets the pin to high

swval = digitalRead(switchPin); // Read input value and store it

if (swval == HIGH) {

analogWrite(motorpinleft, 0); //stop left motor

analogWrite(motorpinright, 0); //stop right motor

analogWrite(motorpinrevleft, 0); // stop left rev motor

analogWrite(motorpinrevright, 0); // stop right rev motor

analogWrite(motorpinrevleft, 255); //100% speed

analogWrite(motorpinrevright, 255); //100% speed

delay(800); //800 milliseconds

analogWrite(motorpinrevleft, 0); // off

analogWrite(motorpinrevright, 0); // off

analogWrite(motorpinrevright, 255); //100% reverse speed

analogWrite(motorpinleft, 255); //100% forward speed

delay(700); //700 milliseconds

analogWrite(motorpinrevright, 0); // off

analogWrite(motorpinleft, 0); // off

delay(50); //50 milliseconds




Shaker Table

Posted: April 28, 2013 by lucmehl in Phys II Projects

By Evie Anderson:
















Arduino Project: Lock Box

Posted: April 28, 2013 by signestanton in Phys II Projects

For my Arduino project, I chose to make a box that locks and unlocks the the touch of a sensor! Luckily, this whole project was previously documented on which was ideal for my complete lack of knowledge. I followed the steps, jerry-rigging certain things to fit my own skill level, as you can see from the cupcake ductape!


The box uses an OFN (optical finger navigation) module that senses motion in the x and y directions.


With the right combination, the box will unlock, and relock again after about 5 seconds.

The inside of the box:


Sadly, all the parts take up most of the box! But, theres still some room to keep a few small valuables 😉

Signe Stanton, EH Program

By Evie Anderson and Tatiana Coverdell

Purpose of the Project:

The purpose of this project was to design a RGB combination door lock, which would allow a person to unlock a door via an electric door strike using the correct color combination code.  To do this, the following items were needed:

  • An electric door strike
  • A locking door handle
  • An Arduino or compatible clone
  • 1 TIP120 transistor
  • 1 1N4001 diode
  • 10 1N4148 diodes
  • 4 2n2222 transistors
  • 1 Monome style keypad
  • 1 Keypad PC board
  • 8 RGB LEDs
  • 1 7805 voltage regulator
  • 4 100 ohm resistors
  • 2 150 ohm resistors
  • 8 1 kohm resistors
  • 1 AD5206 digital potentiometer
  • 1 electrical box
  • 1 wall plate

Using these materials, we needed to build a board in which we could solder the LEDs and wires connecting the board, Arduino, and breadboard.


The board that we used for our keypad with the LEDs and Diodes soldered on. Then we prepared to solder our wires to the board.

The code was then to be run through the Arduino, which would light up different colors in the LEDs.


Once all of our wiring was completed correctly, the two rows of LEDs alternated through different color combinations.

An electric door strike would be attached to the board and installed in a door so that when the correct color combination was set up and applied, the door strike would unlock the door, allowing access into the room.


An electric door strike installed in the door frame.


A drawing of the the over all set up including the keypad, Arduino, and door strike.









We accessed a website: in order to get the supplies list and instructions to build our combination door lock.  After we ordered all the parts that were on the list provided by the website we began our soldering process once we cut the PC board.  The PC board for the LEDs was designed to have 16 LEDs so we had to cut it in half.  Although the instructions on the website were not clearly stated, we learned that the board needs to be cut parallel to the lines on the side of the board with the white circular circuits for the LEDs.  Then we began soldering the diodes, LEDs, and wires.  During this part of our process we learned that in order to properly solder, you have to first tin the tip of the soldering iron with solder and then heat the wire that you want to solder before using any solder.  When all of our soldering was completed we began the wiring process.  After trying the wiring once we learned that a crucial part was missing from the list—the digital potentiometer.  When that part arrived we had to rewire everything twice before we were able to get 6 of the LEDs to work.  At this point we found that using more breadboards makes the wiring easier since there is a little more space to keep all the different segments separate.  We ended up using 3 breadboards, each of which was approximately 2 ½” x 3 ½”.


The schematic used to wire the Arduino, door strike, and keypad together.

There are detailed written instructions on the website that correlate with each part of the schematic.  We found that a basic understanding of all of the symbols on the schematic was necessary before we could successfully wire anything.  Also, if you follow the instructions on the above website you will need to know that “pot” stands for the digital potentiometer (AD5206 on the schematic).  After wiring and rewiring 3 times we were finally rewarded by the pulsing, glowing sight of 8 RGB LEDs.


An all red color combination.


Purple and Blue combination


Red and Green

High Speed Photography with Arduino

Posted: April 26, 2013 by apuparker in Phys II Projects

Working in a dark room, the shutter of my Nikon D5000 was open for 10 seconds. Once the drop of liquid broke the beam of the laser, using the Arduino, the flash was triggered. The image that I captured, although the shutter was open for 10 seconds, is only what was seen for the short period the flash was on.

You don’t necessarily need an Arduino to do high speed photography, but using it allowed me to add in a motion sensor and you can also add any other sensors you’d like.


The best resource for the setup and code is









Electric Balsa Airplane

Posted: April 24, 2013 by lucmehl in Phys II Projects

Electric Balsa Airplane Project

Electric Balsa Airplane Project_2

Project Example Post

Posted: April 21, 2013 by lucmehl in Phys II Projects

Text goes here. You can click the ‘Add Media’ button above to load pictures. Use ‘link’ to add hyperlinks.

Be sure to click the category ‘Phys II Projects’ on the list at lower right.

Click ‘preview’ at right until the layout matches what you want, then hit ‘publish.’