loading
My youngest son has a bunch of these Hex bugs (and got a bunch more for Christmas) and gave me one that I had repaired a broken leg on several times. I found https://www.instructables.com/id/Arduino-Spider/ but there wasn't any code and I just got an Arduino Uno for Christmas but no Ultrasonic Sensor. I decided to make whisker sensors/switches for my hex bug. 

Parts:
Arduino Uno
wire (to extend the motor wires)
guitar string (or suitable substitute that is springy) 
2x 10k resistors 
I clipped the leads off of a diode for the vertical post (improvise as needed)
soldiering iron

Step 1: Motor Connections

https://www.instructables.com/id/Arduino-Spider/ is what I used as my reference. On my unit the black wires I used as ground, the white wires I used for the digital outputs. As Creagon did, I extended the wires from the motors. I taped the Uno and feeler board to the top of the hex bug. I found the "forward" motor is the one on the left while looking at the off/a/b switch. I removed the IR sensor and control board. 

Step 2: CODE

//constants
const int ledPin = 13; //built in led
const int bumpLeft = 2; //bump switch left
const int bumpRight = 4; //right switch pin
const int servoFw = 10; //forward movement motor
const int servoTrn = 8; //turning motor


int pbLeft = 0; //var for right
int pbRight = 0; //var for left

void setup() {
  pinMode (bumpLeft, INPUT);
  pinMode (bumpRight, INPUT);
  pinMode (ledPin, OUTPUT);
  pinMode (servoFw, OUTPUT);
  pinMode (servoTrn, OUTPUT);
}

void loop() {
  forward(); //start forward
  //test switch
  pbLeft = digitalRead(bumpLeft);
  pbRight = digitalRead(bumpRight);
 
  //show LED indicator
  showLED();
 
  //if left hit
  if (pbLeft == HIGH) {
    reverse();
    delay(500);
    turnRight();
    delay(1500);
  }
 
  //if right hit
  if (pbRight == HIGH) {
    reverse();
    delay(500);
    turnLeft();
    delay(1500);
  }
}
 
  //Motion routines
  void forward() {
    digitalWrite (servoFw, HIGH);
    digitalWrite (servoTrn, LOW);
  }
 
  void reverse() {
    digitalWrite(servoFw, LOW);
    digitalWrite (servoTrn, HIGH);
  }
 
  void turnRight() {
    digitalWrite(servoFw, LOW);
    digitalWrite(servoTrn, HIGH);
  }
 
  void turnLeft() {
   digitalWrite(servoFw, LOW);
   digitalWrite(servoTrn, HIGH);
  }
 
  void showLED() {
    //show led if bumper hit
    if (pbRight == HIGH || pbLeft == HIGH) {
    //turn led on
    digitalWrite(ledPin, HIGH);
    }
  else {
  //turn LED off
  digitalWrite(ledPin, LOW);
  }
  }

Step 3: Final Words

I will probably redue this "ible" but for now here it is, any ?'s I will try to answer. 

About This Instructable

1,019views

5favorites

Bio: Sysadmin by day, evil genius by night.
More by r00t49:Hexbug spider whisker sensors/ my first Instructable 
Add instructable to: