Wex, the One Eyed Watcher
Parts needed include:
Arduino
Two ping ultrasonic sensors
Futaba s3103 servo
Radio Shack 276-0016 7 color led
Radio Shack 276-036 flashing red led
9 volt battery
480 ohm resistor
680 ohm resistor
Metal duct tape
Super glue
Case (print 3d parts--use a printing service to print them--make your own case)
http://www.thingiverse.com/thing:32121
The software "looks to the left--turn left if something there"
"look to the right--turn right if something there"
"look straight if nothing to the left or right"
#include <Servo.h>
Servo myservo;
const int pingPin = 7;
const int pingPin2 = 9;
long duration;
long duration1;
void setup ()
{myservo.attach(5);
}
void loop ()
{
pinMode (pingPin, OUTPUT);
digitalWrite (pingPin, LOW);
delayMicroseconds (2);
digitalWrite (pingPin, HIGH);
delayMicroseconds (5);
digitalWrite (pingPin, LOW);
pinMode (pingPin, INPUT);
duration = pulseIn (pingPin, HIGH);
if (duration <5000)
{
myservo.write(125);
delay(500);
}
// else
{
pinMode (pingPin2, OUTPUT);
digitalWrite (pingPin2, LOW);
delayMicroseconds (2);
digitalWrite (pingPin2, HIGH);
delayMicroseconds (5);
digitalWrite (pingPin2, LOW);
pinMode (pingPin2, INPUT);
duration1 = pulseIn (pingPin2, HIGH);
if (duration1 <5000)
{
myservo.write(5);
delay(500);
}
if (duration >5000 and duration1 >5000)
{myservo.write(65);
delay(500);
}}}
Arduino
Two ping ultrasonic sensors
Futaba s3103 servo
Radio Shack 276-0016 7 color led
Radio Shack 276-036 flashing red led
9 volt battery
480 ohm resistor
680 ohm resistor
Metal duct tape
Super glue
Case (print 3d parts--use a printing service to print them--make your own case)
http://www.thingiverse.com/thing:32121
The software "looks to the left--turn left if something there"
"look to the right--turn right if something there"
"look straight if nothing to the left or right"
#include <Servo.h>
Servo myservo;
const int pingPin = 7;
const int pingPin2 = 9;
long duration;
long duration1;
void setup ()
{myservo.attach(5);
}
void loop ()
{
pinMode (pingPin, OUTPUT);
digitalWrite (pingPin, LOW);
delayMicroseconds (2);
digitalWrite (pingPin, HIGH);
delayMicroseconds (5);
digitalWrite (pingPin, LOW);
pinMode (pingPin, INPUT);
duration = pulseIn (pingPin, HIGH);
if (duration <5000)
{
myservo.write(125);
delay(500);
}
// else
{
pinMode (pingPin2, OUTPUT);
digitalWrite (pingPin2, LOW);
delayMicroseconds (2);
digitalWrite (pingPin2, HIGH);
delayMicroseconds (5);
digitalWrite (pingPin2, LOW);
pinMode (pingPin2, INPUT);
duration1 = pulseIn (pingPin2, HIGH);
if (duration1 <5000)
{
myservo.write(5);
delay(500);
}
if (duration >5000 and duration1 >5000)
{myservo.write(65);
delay(500);
}}}
Print the case--expect shrinkage cracks.
Cut up plastic scraps into a can.
Add acetone (fingernail polish removal section of stores) and stir. Fill the cracks and let dry.
Fasten Ping sensors to the triangular ear pieces. Add wire wrap wire to the Ping pins. Super glue the ears to the case.
Drill 1/8 inch holes in the "one eye eye" case for the Ping wires.
Route the wires through the side of the case.
Press the eye stalk on the servo and make sure the assembly fits in the case (if you use a different servo motor--the mounting slot in the case will have to be set up differently).
Add a red wire wrap wire to the center lead of the 7 color led.
Add a blue wire wrap wire to the lead with a 90 degree bend on the led. Cut the other (angled) lead off.
Use heat shrinkable tubing (or electrical tape) to insulate the legs.
Push the led through the eye stalk.
Place double sided tape on the back of the Arduino.
Place the Arduino inside the case, along with the servo motor.
Connect everything together, insert the battery and see if things work.
Tape the "nose" (upper piece) onto the body with aluminum duct tape.
Get the "mouth" and tape it on.
Paint the nails to suit your taste.
Glue the feet to the bottom of the case--take a marker or paint and highlight the "nose."
He's all finished--enjoy!