WireBeings Beta: a 3D Printed and Expandable Robot for Arduino With Android Control

24,215

210

54

Introduction: WireBeings Beta: a 3D Printed and Expandable Robot for Arduino With Android Control

About: My name is Matthew and I attend the University of Pittsburgh. Currently I am a senior, going for a bachelors in Information Science with a minor in CS. Current interests include augmented reality, virtual real…

http://wirebeings.com/

Check out video here:

This is a nice project that you can continue to work on and modify as you learn more Arduino projects. This Instructable goes through the complete build for the bluetooth enabled robot in the first half of the video. As long as you have a 3D printer this project is really easy to do and the electronic parts cost only around $30-$35. It takes in total about 35 hours to 3D print, but can be assembled and programmed in around 30 minutes. Requires only 2 screwdrivers to build and does not require any soldering.

All the individual .stl files are available on Thingiverse, as well as a complete 123d Design file so the robot can be modified.

http://www.thingiverse.com/thing:1252523

There are 3 different scripts demonstrated in the video for the basic build that will be up on

http://wirebeings.com/code.html

I wanted to design this thing to be inexpensive and use common parts, so this robot uses 9V batteries currently. They run out pretty quickly with a lot of use, so I will probably end up designing a new piece that allows for the use of rechargeable lithium ion batteries and Adafruit power booster.

Also, if anyone knows of a good 3D printing service, so people without printers can make this, it would be much appreciated, I got an initial estimate of over $1000 so I was discouraged from wasting any more time uploading the files elsewhere.

Creative Commons License: Attribution Non-Commercial- Share Alike

Step 1: Gather 3d Printed Parts, Tools, and Electronic Components.

First gather all the 3d printed parts that can be downloaded from Thingiverse.

Tools: You will need a regular screwdriver, a skinny screwdriver, superglue, and a little sandpaper.

Parts:

$9 ———————2 Wheels with DC Motors

$3 ——————— 4 pieces of thin insulated wire (about 4 inches each) if the DC motors do not already have them.

$3————-l298 Motor Driver

$4———————-Arduino Uno R3 board

$4————————Jumper Wires (male to male and female to male)

$1———————9v Battery Holder

$2———————-HC-Sr04 sensor

$1————————Mini breadboard

$2————————2 RGB LEDS

$1————————3 220 ohm resistors

$3————————HC-06 Bluetooth module

$7————————6-32 X 1/2" SCREWS (Usually come in a pack of 100, only about 40 are needed)

? ———————— 9 volt battery

Parts list with links can be found here:

http://WireBeings.com/code.html

Step 2: Lightly Sand Wheels and Put Together Legs

The wheels print in two pieces so use super glue and put them together. Lightly sand out the imperfections. Put the 4 balls inside the castors and push them all the way until they snap into place. Attach the 4 castors to the legs like in the last picture.

Step 3: Get the Legs Ready and Add the Geared DC Motors.

Get the two posts in the first picture and connect each one to each leg. Get the piece that will hold the battery in the second picture and screw that into one leg. Find the small L shaped piece and attach it to a motor exactly like the 4th picture shown above. Do the same thing with the other motor, and attach both to the legs. Meet the two legs together, being sure the motors are facing the same direction and you should have something exactly like the last picture.

Step 4: Add Battery With Box and Complete Base.

Find the two curved side pieces in the first picture and connect them to the base according to the second picture. Place the battery box with battery onto the base according to the third picture and find the battery back piece and use it to enclose the battery like the last picture. The base is not complete.

Step 5: Add the Middle Pieces to the Base and Add the Range Sensor and Motor Driver.

- First use a skinny screwdriver and start the screw in the (robot's) left side middle piece according to the first picture. Its a tight fit and the screw will barely fit under that tab, I have broken the tab off many times, but luckily you have super glue and its an easy fix.

-Pull both battery wires and left side motor wires through the hole and tighten the screw you started. Tighten the second screw and secure the left side piece. Add the faux servo piece to this side and tighten both screws that hold it in, as in the third picture.

-Attach all 4 male to female wires to the HC-SR04 range sensor, it doesn't really matter what colors you use as long as they are different colors and you write down what color goes to what pin on the sensor.

-Put the range sensor into the whole on the side piece like in the 5th picture and put the l298 motor driver on top. You must remove the two jumpers on the motor driver shown in the 6th picture.

-Attach the wires from the battery and the left side motor to the l298 motor driver according to the diagram. Add some male to female (or male to male) wires coming from the positive and negative terminals of the motor driver.

-You will have now two connections in the negative terminal, one going in and one coming out. Just to be clear it will look like the 7th picture.

-Grab the right side middle piece and add the other faux servo piece to that side with two screws.

-Now pull the right side motor wires through the right side piece and attach those wires to the motor driver. Try to attach them in order, i.e. left side wire to left most hookup on the driver (same thing on the other side), that way you don't have to change anything in the code later.

-Use two screws to secure the right side piece, and use two screws to secure the motor driver, one per side piece is fine but there are holes to add all 4 if you want.

-Finally, add 6 different color male to female jumper wires to the 6 pins on the motor driver.

Step 6: Almost There.

-Use a screwdriver and add slack to the positive and negative battery wires as shown in the first picture (makes it easier for the battery to slide out the side when you need to change it).

- Attach the claws to the arms and attach those to the shoulder pieces as shown in the first picture.

-Attach the arms to the faux servo pieces, as in the second picture.

-Find the neck piece in the third picture and attach the C shaped piece (file name neckNoServo.stl) with two screws from the bottom. Pull all the wires through that assembly.

-Attach the neck assembly with 4 screws to the base that you have so far.

-Add the head bottom piece and pull the wires through that try to use the orientation of the wires in the 4th and 5th picture. Range sensor wires through the left most hole (robot's right), motor driver wires through the center, and power and ground through the right most hole.

-Attach 4 male to female connectors to you bluetooth module and tape them together if possible. It is going to go underneath your Arduino board like in the last picture. This is down so it can be unplugged easily when uploading new sketches.

-Wire everything according to the diagram (second to last picture).

Step 7: Done.

-Attach the two halves of the face with 4 screws.

-Find the ears/antennae and attach them to filename earsNoServo.stl. They should now look like the T shaped pieces in the first picture. Attach them to the head top piece. Each one has two screws.

-Put the face piece on and pop the LEDs into the eyes, bending the pins at a 90 degree angle so they can't fall off like in the second picture.

-Done...kinda.

-Download the scripts here under the code section:

http://wirebeings.com/code.html

-Download the Android apps in the last two pictures.

-Pair your bluetooth module to your computer or phone with the password "1234" it will be called HC-06.

-Everything else is pretty straight forward to use, if you watched the video, the apps are pretty intuitive to use.

-To control the robot via bluetooth from you computer connect the serial monitor to bluetooth port HC-06 and use these commands with CAPITAL LETTERS (put caps lock on) and hit enter after each command:

S = stop, F = forward, B = backward, L = left, and R = right.

-IMPORTANT*** anytime you need to upload a new sketch the bluetooth module must be unplugged or else the code will not upload.

I'm sure I forgot stuff so whatever questions anyone has I will try to answer to the best of my ability in the comments. Thanks for looking.

Arduino All The Things! Contest

Participated in the
Arduino All The Things! Contest

Make It Glow! Contest

Participated in the
Make It Glow! Contest

4 People Made This Project!

Recommendations

  • Toys & Games Contest

    Toys & Games Contest
  • Make it Real Student Design Challenge #3

    Make it Real Student Design Challenge #3
  • Arduino Contest

    Arduino Contest

54 Comments

0
tlc718
tlc718

11 months ago

Hello, can someone confirm if the MX1508 (also known as "L298N mini") motor driver can be used instead of the L298N version?
The main difference is that MX1508 does not have the Enable A and Enable B pins (which are used to turn on the A/B motors).
The A and B input lines support both PWM.
Thanks, Cristian

L298N-Module-Pinout[1].jpg0004359_15a-2-way-mx1508-dc-motor-driver-module-pwm-speed-control[1].jpegFQTZZHOIVA4LFM1.LARGE.jpg
0
DavidH439
DavidH439

Tip 1 year ago

IMPORTANT. After Step 3 and before step 4, mount the wheels and check that both tyres are flat on the ground. If not (as happened to me) the robot will travel in circles rather than straight due to uneven grip.
Use thin cardboard shims to get the motors vertical.

0
DavidH439
DavidH439

Tip 2 years ago

If you can't get 6-32 X 1/2" screws, use M4x10 instead. I did and it worked fine.

0
DavidH439
DavidH439

2 years ago

This is a Great Project which I have thoroughly enjoyed building. Please don't take all my posts below as criticism. I just want to help others to have a smoother build.
BTW which Bluetooth App have you used? I loaded Android Bluetooth Terminal. It works OK but not really suitable for controlling a robot.

0
DavidH439
DavidH439

Tip 2 years ago

My 9.5mm spheres turned out to be a bit to small. Luckily in Cura there is a scaling feature. By scaling up to 103% I got just the right size. I don't know about other slicers so cannot comment.

0
DavidH439
DavidH439

2 years ago

The instructions instruct you to buy 100 screws of which about 40 will be used. By my count I used 64 screws. Not a big deal but because I just bought 50 from my local hardware store, thinking it enough, I had the pain of another shopping trip, finding parking space etc.

0
DavidH439
DavidH439

2 years ago

Before mounting the Arduino board in the top compartment, cover the 2 exposed screws with some sellotape or insulating tape, else you can short out pins on the board.

0
DavidH439
DavidH439

2 years ago

You are instructed to mount both motors in the same direction, which doesn't work. It the wires on on the outside them they won't fit through the gap provided. Both motors must be mounted with their wires inboard.
It doesn't matter which way you connect the motors to the controller board. If the motor rotates in the opposite sense expected, merely swap the definitions of IN1/IN2 or IN3/IN4 in the source code.

0
DavidH439
DavidH439

2 years ago

I have just finished building the robot and there is, to my mind, a basic design error in that you can't change the battery without major dismantlement and rebuild.
Did I miss something? Please let me know if I've misunderstood.

0
DavidH439
DavidH439

2 years ago

There is an error in the graphic showing how to connect the RGB leds. The common (longest) pin goes to GND, not VCC.

0
DavidH439
DavidH439

Tip 2 years ago

There is a bug in the obstacleAvoidance code. In general integer arithmetic rounds down on division, so you MUST use float when doing calculations .
The section in loop() where inch and distance are calculated should read

int duration;
digitalWrite(trigPin, HIGH);
delay(100);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
float distance = (duration/2) / 29.1;
float inch = (distance * 0.3937);

0
LuisF212
LuisF212

3 years ago

Hi matthewh8

can you give me the code with the 5 servo(9g) to work I've tried but I can not

luisfilipex@gmail.com

thank you

0
LuisF212
LuisF212

Question 3 years ago

Hi matthewh8

Congratulations is it amazing project

you can give me the code with the 5 servo(9g) to work I've tried but I can not

luisfilipex@gmail.com

thank you

0
Sukanta bera
Sukanta bera

3 years ago

hello sir... can i used hc-05 bluetooth module for this project??... hc-05 for this project will work??.. plzz help

0
JESÚS RICARDOM
JESÚS RICARDOM

3 years ago

Excuse me you could send me the way the servo neckboth and the servo neckone are placed

0
AlfonsoG35
AlfonsoG35

3 years ago

Good job, could you put manual how to mount servos in neck and antennas? Thank you

0
varunkoppuru
varunkoppuru

5 years ago

will you please send us the procedure or the pdf file for the expandable features as you shown in the video

0
matthewh8
matthewh8

Reply 5 years ago

I wasn't going to do a complete list of everything because there are just too many connections and different ways of doing it, so I was going to just make individual tutorials on how to do each feature. I just made one about giving your robot a voice:

I will probably do the next one on how to use a voice recognition module. So, you can get your Arduino to respond to voice commands.

0
TimV94
TimV94

Reply 4 years ago

hello matthewh,

i wanne build a robot like this, buth can you put a builders instuction below

0
NematH
NematH

4 years ago

Any chance of doing it without 3D printer? Don't have one ((