L3 – Group 25 (Anteater)

Group 25 – Harvest, Alan, Vivian, Neil

I. PROJECT DESCRIPTION

Our robot is a vehicle which changes direction based on sensor input from a flex sensor. So essentially, it moves straight until the flex sensor on the head of the robot hits a wall/object, then it will always turn right. We named it “Anteater” because the long flex sensor makes the robot look similar to an anteater with its tongue stuck out. We thought that building such a robot would be really interesting since we’re using a flex sensor as a contact detector rather than the normal use of flex position. Unfortunately, the arduino was really heavy and our makeshift wheels (paper plates) could not hold the weight, so we built this scrappy box behind the robot which contained the arduino. We had to hold the box so the weight did not prevent the robot from moving. In the future, we’d like to use sturdier wheels and more powerful motors to be able to mount the arduino and everything on the vehicle itself. It would also be interesting to include more complex code which makes the robot turn in left or right with different probability, as well as different sensors to give the robot a richer source of information to navigate.

II. LIST OF BRAINSTORMED IDEAS

  1. Duck-foot robot: attach flippers to a DC motor
  2. One-wheeled motorcycle: use a single big wheel with all the controls mounted inside the wheel..
  3. Airboat: use a motor to rotate a fan propeller to make a robot slide across the floor.
  4. Cockroach: robot uses light sensor to run around aimlessly, remaining stationary if it detects its in the dark.
  5. Hovercraft: use an inverted styrofoam bowl as a hovercraft, mounting a fan pointed downwards to create hover effect.
  6. Tricycle car: Use 2 motors to drive rear wheels, servo to steer front wheel.
  7. Desktop Potentiometer Bot: small vehicle which can be steered based on input from sliding variable potentiometer.
  8. Egg car: attach a servo to one end of the egg, and the robot will rotate in circles.
  9. Spinning Top: stick axle of DC motor out of bottom of styrofoam bowl, to make the bowl spin.
  10. Propeller Plane
  11. 6-legged insect: servo motors move independently to simulate creepy looking insect
  12. Condiments car: wheels made out of mayonnaise/sugar packets
  13. Anteater: a robot which changes direction based on input from a flex sensor stuck in front.

III. SKETCHES

Sketch of our initial idea

However, we discovered that the weight of the arduino was too heavy to mount on the vehicle itself. So, we pivoted and ended up putting the arduino and associated wires in a separate box dragged behind the vehicle. So, effectively, we had to hold the box to assist the vehicle in moving (since the box was too heavy).

Here’s a sketch of our altered design: vehicle + box

Comparing our final system to an anteater — looks the same!

IV. VIDEO & PICTURES OF FINAL SYSTEM

Picture of final system, another point of view

Video of the Anteater: you can see a the anteater’s tongue pointing forwards, and when it hits the trash can, it rotates right by turning the left wheel. Success! Again, the box containing the arduino is kind of awkward to deal with.

V. LIST OF PARTS

  1. Arduino Uno x1
  2. Paper Plates x2
  3. Knives x2
  4. DC motors x2
  5. Breadboard x2
  6. Flex sensor x1
  7. Transistor x2
  8. 330 ohm resistor x2
  9. Wires

VI. ASSEMBLY INSTRUCTIONS

  1. Use one knife as the crossbeam, to which we attach the two motors.
  2. Stick a couple hubs on the motors and attach the plates to them to create wheels.
  3. Attach another knife perpendicular to the drive shaft knife, to which we attach a flex sensor on the end; this will act as the obstacle detector.
  4. Wire it all up to an Arduino/breadboard kit off chassis, since all that stuff is far too heavy to be located on the vehicle. Motors are connected via transistors for speed control, as in previous sections.
  5. Contain all Arduino/breadboard not mounted on the crossbeams in a box to keep all the wires from getting messed up.

VII. SOURCE CODE

// L3: Anteater
// Group 25 -- Harvest, Vivian, Alan, Neil

int impact = A0;
int left = 3;
int right = 5;

void setup() {
  Serial.begin(9600);
}

void loop() {
  // read the value from the sensor:
  int impactVal = analogRead(impact);  
  if (impactVal < 250)
  {
    analogWrite(left, 0);
    delay(50);
  }
  analogWrite(left, 100);
  analogWrite(right, 100);
  delay(15); 
}