L3 Name Redacted

Brian, Josh, Ed, Matt

Group Number: 20

Description:
Our robot has two DC motors attached to two wheels that were made from the bottoms of plastic cups. The body of the robot is supported by a plate. The robot has two light sensors that it uses to determine direction. The robot tends to move towards the light. The wires from the light sensors and DC motors are connected to an Arduino and battery pack by alligator clips. One of us carries the Arduino and battery pack around as the robot moves. We built this because we liked the idea of having the robot determine direction based on the lighting in the room. We liked that the robot was able to move towards the light correctly, although we would have liked to have made the robot more sensitive to light. If we had more resources, we would have made a sturdier frame for the robot so that the Arduino and battery pack would not have to be carried around. However, with the wheels we used, the battery pack and Arduino added too much weight and the wheels collapsed under the weight of the robot. We also really liked how the robot used two motors to propel itself, as well as moving on two wheels as opposed to four.

Brainstorming:

  1. Light seeking robot that move towards more light.
  2. Attach a weight to a motor that uses vibration to move.
  3. Two motors in the front and a pin in the back to control direction.
  4. A sail that uses a servo to control the rudder and/or direction of the sail.
  5. Motors on a boat that paddle the boat forward.
  6. Make a unidirectional segway using a motor.
  7. Make a cart that is moved by a fan and the fan is controlled by the motor.
  8. Move a weight using a motor inside a ball to move the robot.
  9. Land paddle robot that uses two legs attached to motors to spin around and move forward.
  10. Crawler with four legs using a motor to imitate a walking motor.
  11. Attach two ropes and use the motors to reel in the ropes to move the robot between the two points.
  12. The robot has a proximity sensor that moves away from any object that comes close to it, moving using two motors.
  13. A robot that politely asks to go where no robot has gone before.

Sketches:

http://imgur.com/a/lHI5G#0

http://imgur.com/a/lHI5G#1

http://imgur.com/a/lHI5G#2

Video and Captions:

http://imgur.com/a/lHI5G#3

http://imgur.com/a/lHI5G#4

http://imgur.com/a/lHI5G#5

http://imgur.com/a/lHI5G#6

http://imgur.com/a/lHI5G#7

http://imgur.com/a/lHI5G#8

http://imgur.com/a/lHI5G#9

http://imgur.com/a/lHI5G#10

http://imgur.com/a/lHI5G#11

http://imgur.com/a/lHI5G#12

http://imgur.com/a/lHI5G#13

http://imgur.com/a/lHI5G#14

List of Parts:

arduino
3 1N4001 diodes
3 PN2222 transistors
2 small 6V DC motors
2 light sensors
4 330 Ω resistors
wires
alligator clips
plastic knife
styrofoam plate/bowl
tape

Instructions:

To build our robot, you must create two main modules:

1. The first is the robot itself. Start with a paper bowl. This will be the body of the robot. Flip the bowl upside-down and attached to the bottom (open-side) two dc motors opposite each other. Stabilized these motors by laying a plastic knife between them and taping that on top. Connect these motors up to the umbilical which will connect the two modules. To create the wheels, cut the bases off of two plastic cups. Add tape around these bases to add friction Cut a hole in the middle of these cups and stick it to the motor axels. Finally, tape the two light sensors to the front of the top of the bowl. Attach wire to the ends of these. Finally, bundle all of the wires leading from the motors and sensors together into an umbilical.

2. Finally, to create the hand-held controller. Take the cords from the umbilical and connect them through a breadboard according to the provided schematic. Take the breadboard, Arduino and battery pack, and tape them together to form the hand-held controller.

Source Code:

/*
Adafruit Arduino - Lesson 14. Knob
*/
int R = 2;
int L = 3;

int rLight = 0;
int lLight = 1;

void setup() 
{ 
  pinMode(R, OUTPUT);
  pinMode(L, OUTPUT);
  Serial.begin(9600);
  while (! Serial);
  Serial.println("Speed 0 to 255");

} 
 
 
void loop() 
{ 
  int rRead = analogRead(rLight);
  int lRead = analogRead(lLight);
  int rSpeed = map(rRead, 0, 300, 0, 255);
  int lSpeed = map(lRead, 700, 900, 0, 255);
  Serial.print("rSpeed: ");
  Serial.print(rRead);
  Serial.print(" lSpeed: ");
  Serial.println(lRead);
      analogWrite(R, lSpeed);
      analogWrite(L, rSpeed);
}