Introduction: SEB the Arduino Guide Bot

Picture of SEB the Arduino Guide Bot

Hello everyone! Today we'll be building a seeing eye robot aka SEB. SEB is used for leading visually impaired people. SEB can be used as a replacement for guide dogs, for it is less expensive and requires less care to run SEB.

I have been working on SEB for about 2 and a half years now, and I'm finally ready to share my experience. I taught myself how to solder, breadboard, and program on Arduino sketch with this project, when I started I was 11 years old and only had experience with Lego Mind-storms, I say that to say, that anyone can build SEB as long as you have to focus and motivation. I have configured this version of SEB to keep to soldering minimal. That makes this project perfect for a beginner.

Before we start let me introduce myself, my name is Destinie I am 14 years old, and I love building robots especially the type that help people like SEB. I have been fascinated with science and engineering since I can remember and have been building robots for about 4 years.

Also, I recommend reading the entire instructable before purchasing parts.

I've put a lot of hard work into making SEB and this instructable, and I am entering it into the contest on this website called "make it move." Please vote for SEB! Thanks! :)

Without further ado let's get started!

Step 1: Materials

Picture of Materials

At the center of SEB is an Arduino Uno, the arduino uno is the "brain" of the robot.

Here is the list of materials needed to build SEB:

Chassis:

- 8x8 piece of 1/2 inch plywood (you might want to cut several, just in case you mess up)

- Paint in any color (in order to keep the cost down I used a paint sample from Lowe's, but you can use what ever type you'd like)

- Eye hook

- Tamiya ball caster (you can find this at robotshop.com)

- dog leash

- double sided foam tape

Electronics:

Shopping for electronics can often be tough, when I first made SEB I ordered a lot of wrong parts, this resulted in wasted time and money. I made this easy for you all you have to do is copy-paste the name of each product at this online shop and you can easily find each product.

- Arduino Uno R3

- 400 Tie Point solder-less Breadboard

- L293D motor driver

- Jumper wire kit (I used preformed jumper wires, because they are flat and give a cleaner look)

- HSR-1425CR Continuous Rotation Servo

- IR Range Sensor (I recommend one with a range of 10cm - 80cm)

- Wheel and DC Motor Kit x2

- 9v battery case

- 4 AA battery holder

- Male straight header pins

- Male to male jumper wires.

Tools:

To build SEB you will need a few basic tools

- soldering iron

- solder

- a saw to cut the wood (your local Home Depot might do this for free)

- a hot clue gun

- hot glue

- drill

- computer with arduino sketch downloaded

- printer cable

Use the pictures for reference if needed.

Step 2: Building the Chassis

Picture of Building the Chassis

To build the chassis of SEB, I first started out with a large piece of plywood from home depot, then I cut it into 6 8x8 pieces, I ended up going through two pieces of plywood before I was able to drill the correct holes, and line up the parts correctly, so you might want to cut extra pieces.

Be sure to look at the tips for this step at the bottom of this page, before starting.

You need to cut your wood into a 8x8 piece.

After cutting the wood you'll need to sand down the rough edges, for a better application of paint, and to avoid splinters.

Next, paint the wood with your choice of paint. I used a free paint sample from Home Depot, but you can use any type you'd like.

Once your wood has dried, check to see if you need another coat of paint, if not continue to the next step.

It's time to drill two holes in the wood, one half inch circle in the wood for the wires, and a small set hole for the eye-hook.

Then screw the hook into the hole.

Now you need to assemble your caster wheel, use the instructions that came with the wheel for assembly.

After assembling your castor wheel, glue the wheel on the bottom and in back and center of the wood using hot glue.

*Be sure to not get any glue on the wheel*

Next, line up your DC motors on the bottom and on opposite sides of the chassis be sure that they are even, you'll want the shaft to face the front of the chassis (away from the caster wheel). Don't put the wheels on just yet.

Finally line up the servo motor in the front and top of the chassis, make sure it is in the middle, then glue it down with hot glue.

The picture is what the bottom should look like after you finish this step, ignore the wires though you'll add those next step.

Tips for this step:

1. Use a ruler to line up the parts on the chassis/wood

2. Let the hot glue completely dry before touching the part, and after it dries you might want to add extra glue along the edges of the part.

Step 3: Electronics

Picture of Electronics

Now that the chassis is built its time to wire up SEB.

This part is very simple, use the breadboard, male header pins, and jumper wires to wire SEB

Use the diagram (I borrowed this from a user on community of robots) to wire SEB.

Before wiring SEB you need to solder male jumper wires to the motor leads. Follow this how to solder motor video as a guide.

After wiring SEB use double sided tape to attach the arduino, breadboard, and battery packs, to the chassis, then glue the IR sensor to the servo horn.

The finish product should look like the above picture.

Step 4: Programming

Below is the code for SEB, open arduino sketch and copy-paste the code into it. If you want to you can read through the comments to see what line does what.

#include
int motor_pin1 = 4; //assigns each motor to a pin int motor_pin2 = 5; int motor_pin3 = 6; int motor_pin4 = 7; int servopin = 8; int sensorpin = 0; int dist = 0; int leftdist = 0; int rightdist = 0; int object = 500; //at this distance SEB will for another route

Servo myservo;

void setup () { pinMode(motor_pin1,OUTPUT); pinMode(motor_pin2,OUTPUT); pinMode(motor_pin3,OUTPUT); pinMode(motor_pin4,OUTPUT); myservo.attach(servopin); myservo.write(90); delay(700); } void loop() { dist = analogRead(sensorpin); //reads the sensor if(dist < object) { //if distance is less than 550 forward(); //then SEB will move forward } if(dist >= object) { //if distance is greater than or equal to 550 findroute(); } } void forward() {

digitalWrite(motor_pin1,HIGH);

digitalWrite(motor_pin2,LOW);

digitalWrite(motor_pin3,HIGH); digitalWrite(motor_pin4,LOW); return; } void findroute() { halt(); // SEB will stop backward(); //then go backwards lookleft(); //then look left and scan lookright(); //then look right and scan if ( leftdist < rightdist ) { turnleft(); } else { turnright (); } }

void backward() { digitalWrite(motor_pin1,LOW); digitalWrite(motor_pin2,HIGH); digitalWrite(motor_pin3,LOW); digitalWrite(motor_pin4,HIGH); delay(500); halt(); return; }

void halt () { digitalWrite(motor_pin1,LOW); digitalWrite(motor_pin2,LOW); digitalWrite(motor_pin3,LOW); digitalWrite(motor_pin4,LOW); delay(500); //wait after stopping return; } void lookleft() { myservo.write(150); delay(700); //wait for the servo to get there leftdist = analogRead(sensorpin); myservo.write(90); delay(700); //wait for the servo to get there return; }

void lookright () { myservo.write(30); delay(700); //wait for the servo to get there rightdist = analogRead(sensorpin); myservo.write(90); delay(700); //wait for the servo to get there return; }

void turnleft () { digitalWrite(motor_pin1,HIGH); // these next 4 lines will make SEB turn left digitalWrite(motor_pin2,LOW); digitalWrite(motor_pin3,LOW); digitalWrite(motor_pin4,HIGH); delay(1000); // wait for SEB to turn halt(); return; }

void turnright () { digitalWrite(motor_pin1,LOW); // these next 4 lines will make SEB turn right digitalWrite(motor_pin2,HIGH); digitalWrite(motor_pin3,HIGH); digitalWrite(motor_pin4,LOW); delay(1000); // wait for SEB to turn halt(); return; }

Then connect the usb to your computer and the other end to your arduino.

Now its time to download the code, for this step all you have to do is hit download.

Last step! Attach the wheels, and congratulations you have just built a guide robot!

Step 5: Running SEB

Attach the leash to the hook

Then, plug in the 9v battery to the arduino.

SEB is now ready to lead visually impared people as a replacement for guide dogs!

Step 6: How SEB Works

This next part isn't a step but it explains how SEB works.

SEB uses an analog infrared sensor to sense whether or not an object is in front of it, by sending out an invisible beam of light, this light will bounce off of the objects in front of SEB. The sensor measures how much light returns to it and using that information it determines whether or not something is in front of SEB.

The sensor for SEB is mounted on a servo that looks in all directions to "see" the where the objects around SEB are.

Comments

DIY Hacks and How Tos (author)2017-10-14

Cool robot! Do you have any video of it in action?

Thanks! I will upload video soon. :)

About This Instructable

331views

6favorites

License:

Bio: STEM and robotic enthusiast Check out my first instructable!
More by roboticistintraining:PAQSEB the Arduino Guide Bot
Add instructable to: