Instructables

Make Wired Robotic Arm Edge to "Wireless" with DIY Arduino + XBee


UPDATE: Added Schematic, Top Layer PCB, Bottom Layer PCB, and both Top, Bottom PCB images

When I finished the  "RevIO" - an Arduino Clone that has the different way of exposing pins usage. I decided to go further to the next project. To test my "RevIO" board that it could do the bigger task than just blinking the LED!

I modified the Wired Robotic Arm Edge to Wireless controlled, using my "RevIO" and DIY Three-Motor Driver ICs PCB together with XBee Series 1 module.

This instructables introduces the way I constructed Three-Motor Driver ICs PCB from scratch. Then using it as the "piggy back" on my "RevIO" Board.

To control the Robotic Arm, I designed the GUI (Graphical User Interface) with the Processing on the PC and Arduino sketch for driving the motors.

I also added the 6-pin socket as an alternative to use Bluetooth module (Sparkfun's Bluetooth Modem - Blue SMiRF Silver, or Bluetooth Modem - Blue SMIRF Gold.)

Again I am going to use the same presentation method as Build "The RevIO" (Arduino Clone) My Way,  to build the board using the graphical illustrations, together with the photos of actual build of the board.
 
Remove these adsRemove these ads by Signing Up

Step 1: Build the Robotic Arm Edge

I got the Robotic Arm Edge Kit from TPE Shop in Thailand three months ago, while I was visiting my family in Thailand. But I did not do until I got back to USA a month later. 

This is my very first Robotic Arm I ever encountered with. A week after I got back, I started to constructed the kit. I spend about four hours to build and pause to take pictures for this instructables.

I will not show you how I managed to put the kit together, but here is the collage of how I put the Robotic Arm together from the start to finish!
maxim667628 days ago

Hi. I would like to know, how do you actually control the movement of the motors?

From what i learnt from yr coding, you pass an array of controls[] command from processing to arduino, and that particular command turned arduino pins HIGH and LOW. You didnt assigned command like motor.write(//position values//); so how the motors actually being controlled ya? I am so confused. ><

gsandhu25 months ago

I’m working on a project which is about making a rescue
robot . I have struggling with it for 4 months and now all the mechanical works
had been done . but I’m facing difficulty in make the robot to work with rf
module can u plzz help me…

I want make transmitter and receiver that can control the
motion…I mean that receiver should have control 8 dc gear motor and each dc
motor should have a forward and backward botton to control the motion ……can u
kindly help me with this project ….if u can make the circuit board diagram for
the PCB ….or any other suggestion plz reply……mail me at “sunny1995gagan@gmail.com”

Can we control specific angles through it ?
sath02 (author)  gaurav_sharma1321 year ago
You probably will need to modify the Robot Arm by adding something like potentiometer
to get the angle reading to be able to control the angle.
Here are the links that might give you some idea of how to do it,
http://www.instructables.com/id/Modifications-to-Robot-Arm-for-Opto-Coupler-Feedba/#intro
and
http://www.instructables.com/id/Intro-and-what-youll-need/
lgeng qi1 year ago
Sir.. About the 3 IC's you mention above, are you suggesting using one of those IC's for the 3 IC's slot or use them all together? Cause from the picture above, I can see that you are using L293D for all IC slots..
sath02 (author)  lgeng qi1 year ago
Hi lgeng qi,
The Robotic Arm has five motors. I used three L293D ICs to control those motors.
Each L293D IC can only controls two motors.
So we needed to use three L293D ICs, two of them would control four motors, left the third one controls only one or the fifth motor.
Is this answer your question?
rbrasil11 year ago
in this case "arm" the power source is still on the batteries?
sath02 (author)  rbrasil11 year ago
Sorry for the late reply. I just came back from a long vacation.
"Yes" is the answer to your question.
azia21 year ago
can u show me how u connected u arduino with H bridge circuit .... i couldnt find schematics for dat...
sath02 (author)  azia21 year ago
Tak a look at Step 3,
or
Step 11 of "Processing Controls R/C Car with XBee modules" here:
http://www.instructables.com/id/Processing-Controls-RC-Car-with-XBee-modules/




azia22 years ago
Proteus is a simulation software.it do interact with arduino using assymbly language. Actually i am replicating ur design. of the robot. but have to make the robot from scratch . using servo etc. there are no wheels . its the same arm dat u got ready made (with 5 dgree of freedom) . U just configure it to run from ur GUI. Em making that robot my self. using palstic or aluminium body and installing motors in it. make me some recomendation about design
sath02 (author)  azia22 years ago
Well, I'm not a robot design expert!
I build this robot arm from commercial kit, and this is the only robot arm I build so far.
So I considered myself not very helpful to you that much.

But if you want to design a good robot arm.
My recommendation would be to search and look at some other peoples who did built a robot arm (use "robot arm" or "robotic arm" keyword and search, starting from inside instructables.com).
Then ask yourself (or ask the person who built those robot arms) some questions, something like,
What make this robot arm unique?
Is this robot arm working just like the way you're looking for?
What kind of materials they are using? Will another kind of materials would work on my robot arm?
Why they put the servos or motors on that position? Will that make the robot arm work better that way?
How they integrated their software?
etc..
Then use that answers to be the guideline for the design of your robot arm.

You already did well on showing me about what you thought about using Proteus in your project!

Good luck.
azia22 years ago
What u recommend ? i use servo motors or some other motor to make the robot deisgn? Please reply soon ..
sath02 (author)  azia22 years ago
Servo motors have a limitation of rotation. It rotates from 0 to 180. But there is a full rotation (360 deg.) I thing it from Parallex.

There are a lot of think to thinking about, when you want to design something.
What kind of robot you are thinking to build?
Will the robot have any sensor(s)?
Whether the robot will use track or wheels?
After you answer those question above, then you come to think about what will be the suitable power supply for the robot?
And many more factors that you need to thinking about while designing your robot.
Try to make a sketch and show them to your friends or your teacher.

I could not make any recommendation with such a broad question. If you have something more on what you want to do, please show it may be I could help you more.
Sorry!
azia22 years ago
Can u tell me how to link all of ur processing and arduino code with proteus?
sath02 (author)  azia22 years ago
I'm not familiar with proteus! What is it?
azia22 years ago
HI sath, sorry for late replay ... i was having exams for the last two weeks so, i was unable to answer ur mail. I mentioned u in a private massege about the arduino and processing code.... it was actually the serial port error... arduino was using COM3 and the processing code had COM 30 ... now its working fine and the buttons on the GUI are clickable.. i also took some help from u r comments above... Actually it is my FINAL YEAR PROJECT... :-P .. I m trying to reproduce the same thing.. but the bad part is, I have to make the robot from Scratch ... now i want u to help me accordingly ..propose me some designs of RObot ARm if u can.. can u also tell me which particular type of Arduino Board should i use, because i need to start working on the hardware ...
Aghilan82 years ago
Hi there...

It's nice project u did...its similar with my thesis title....i jus need your help....is tat possible to use our own circuit board by replacing arduino.......it's will be better have some schematic...thanks...
sath02 (author)  Aghilan82 years ago
Thanks.
Yes, you could build your own circuit board to replace Arduino.
Take a look at http://www.instructables.com/id/Build-The-RevIO-Arduino-Clone-My-Way/ for the schematic.
Hope this help
Aghilan8 sath022 years ago
Really Thanks for that.....and also how about the Xbee Adapter board, is that any chance to it by our own like arduino.....And i need some help here which i want to modify the processing program which i can make a record of the robotic arm movement and play it back......it will be really helpful

sath02 (author)  Aghilan82 years ago
Aghilan8
You're welcome!

About Xbee Adapter, take a look at Sparkfun's website www.sparkfun.com or www.adafruit.com, search for XBee adapter. They are providing the schematic for the XBee adapter board, that you can use it to make your own adapter board.

To record the robotic arm movement and replay the motion. Processing alone could not do it.
You need addition hardware, for example, potentiometer, to do the measurement of the motor rotation. And you should be able to do it in Arduino sketch instead.
The following link will give you the ideal of how to do it.

http://www.instructables.com/id/Intro-and-what-youll-need/step2/Attach-the-sensors/

Hope this help an good luck
Aghilan8 sath022 years ago
hi....thanks for your link..its really helpful for me....by the way i got see in this project that you use bluetooth device as replacement for wireless....can i know how to control the robotic arm from computer via bluetooth and is there any chance that i can control from Android phone.....( hpow to program for android app ).......
sath02 (author)  Aghilan82 years ago
You 're welcome.

About the Bluetooth question.
It is really easy to substitute XBee with Bluetooth module. Since both use the same communication protocol- UART Serial Comm. that use TX and RX pins to communicate.

At Sparkfun's tutorials webpage have a good tutorial about how to use Bluetooth.
OR you can use instructables search with the keyword bluetooth to see the available articles about bluetooth.
link: www.sparkfun.com/tutorials/264/

I do not have an Android phone, so I have no experience to tell you about it. But I saw some instructables shows how to use Android to controls stuffs. You could search for it too.

Hope this help.

Aghilan8 sath022 years ago
HI.....Thank you very much for your kind help....it is really helping me alot......if i gt any complicated with my project....i will try to contact you through this site....thanks once again
sath02 (author)  Aghilan82 years ago
You're welcome!
I would love to see your project, if you don't mind posting it. You might get some feedback or comment with the project.
Cheers!
Aghilan8 sath022 years ago
Hi there.....

i have 1 question......can i connect xbee to arduino with out breakout board.....because you use 2 breakout board in this project...
sath02 (author)  Aghilan82 years ago
XBee module have 2.0mm pitch (the distance between the output pins), which is difference than the pitch of the PCB or breakout board (usually 2.54mm or 0.1").

So, the answer to your question is no, you cannot connect XBee module to Arduino without breakout board!

Aghilan8 sath022 years ago
Wokey...thany you for that.....and i need a small help from you....can i get the flow chart and the steps for ur programming for both processing and arduino....and can i change the background or the processing interface that u have created.....and can i split 1 output for motor to two motor....cos i like to add 1 more motor in shoulder.....
sath02 (author)  Aghilan82 years ago
Hi,
The flow chart, well I leave it as the homework for you. You should be able to figure out from the source code.

You can change the background in the processing interface. But don't forget to credit where you get the original code from.

If you look at the motors control schematic or diagram you will see that there is one unuse motor control pins (on motor driver IC #3) available. So you can use that to control an addition motor.

Hope this help.
Aghilan8 sath022 years ago
Oh k,,,,thanks for ur homework....and can i use xbee series2 or xbee pro......if i did not get to buy xbee series1........and if i use bluetooth device.....i just have to buy 1 device only right....then i will control from PC through my internal pc bluetooth device right....and can i just connect that wireless device which is xbee n bluetooth in circuit board..?
sath02 (author)  Aghilan82 years ago
I hope it is an easy homework!;)

For the XBee Series 2 the configuration seem to be a little different than Series 1.
See the link here for the guide
http://examples.digi.com/get-started/basic-xbee-zb-zigbee-chat/

If you want to use the bluetooth device, yes , you only need only 1 Bluetooth device, and you could control from the PC. Check your PC if it has the bluetooth! Not all PC has built-in Bluetooth, especially old PC!
For Bluetooth you will need to connect TX from Bluetooth to RX of the micro controller or Arduino. And connect RX from Bluetooth to TX of micro controller or Arduino.
Then connect VCC (check the power supply for the bluetooth whether it is 5V or 3.3V).
Then connect GND from the Bluetooth to GND of micro controller or Arduino.

Aghilan8 sath022 years ago
Thanks for that......and 1 more thing can i use UC00B - USB to UART converter instead of FTDI cable....i will connect from Xbee Adapter kit and to USB port in PC... and this is the link to UC00B - USB to UART
http://www.cytron.com.my/viewProduct.php?pid=HRU1CBk3DAE8CRM2JzUHO614KQHZjFy/dBGfZCPz4Og=
sath02 (author)  Aghilan82 years ago
I could not go to the link! :(
But I saw some youtube video demonstrated how to use this breakout board, and it mentioned that it worked fine uploading code to an Arduino.
So, I would say that it should work! You need to check the pins if it is the same as FTDI cable pins out. Good luck!
Aghilan8 sath022 years ago
thanks for that....can i know how much voltage did you supply for motor driver circuit and what is maximum voltage i can supply to motor driver. because i am using servo motor which can stand for until 7volt
sath02 (author)  Aghilan82 years ago
I used the existing type C 6V battery (4 x 1.5V).
You can check the datasheet for the maximum voltage.
I think L293D motor driver can withstand up to around 25V, again please check the datasheet.
Aghilan8 sath022 years ago
wokey thanks for that information.....i try my best level to find out that

Hi Ter its quiet long time rdy.....i got few problem with configuration of Xbee with my USB to UART (UC00B) and also xbee adapter board.... when i connect xbee with adapter board to pc with UC00B, the green light n red light did not flashing out....and also i can nt configure the xbee....pls help me on this....very urgent
sath02 (author)  Aghilan82 years ago
Hi,
Check the power supply if you have 3.3V for XBee.
Check if pin TX from your UART go to RX (DIn) pin on XBee
Check if pin RX from your UART go to TX (Dout) on XBee
Check the baud rate if you have the same baud rate.

Have you installed the FTDI's VCP (Virtual Com Port) Driver?
http://www.ftdichip.com/Drivers/VCP.htm

Are you using X-CTU to configure your XBee?
Aghilan8 sath022 years ago
And also i want to know...that can i do this project without xbee....just use wire from pc....and i want to know how to do that......and i can use other xbee adapter and UART....pls help on this....very urgent
sath02 (author)  Aghilan82 years ago
You could connect the robot arm to PC. But you still need FTDI or UART(UC00B)
By connecting:
TX pin on UART(UC00B) to RX pin on Arduino (D0).
RX pin on UART(UC00B) to TX pin on Arduino (D1).

Set the serial comm. port to the right "COM" port in the Processing sketch.
Set the same baudrate to be the same in both Arduino Sketch, and Processing sketch.

I would recommended to go to
Go to this link if you are using XBee Series 1.
http://examples.digi.com/get-started/basic-xbee-802-15-4-chat/1/

if you are using XBee Series 2 go to this link:
http://examples.digi.com/get-started/basic-xbee-zb-zigbee-chat/

Try them first ans see what happen, OK?
You could learn more about XBee Serial Comm.
I know that It is very frustrating. I had that before too, when I started woriking on Serial Comm. especially XBee the first time!

Aghilan8 sath022 years ago
can i use other xbee adapter such as like this....check link below
http://www.myduino.com/index.php?route=product/product&path=50&product_id=108
http://www.myduino.com/index.php?route=product/product&path=50&product_id=139
http://www.myduino.com/index.php?route=product/product&path=50&product_id=178
sath02 (author)  Aghilan82 years ago
Any one of those should work!
Aghilan8 sath022 years ago
thanks brother for helping me will try to use your infomation......
I am able to configure the both xbee and get the response rdy.....now i have new problem.....were i can turn on and off the light bt can nt run the motor....i have test with test program...its can run the motor bt with main program can nt...
sath02 (author)  Aghilan82 years ago
Could you post some photos of your configuration? (Using Add Images button)
I want to see how you connect the XBee to Arduino and how you connect power supply to the system?

My first guess was that the power supply to Arduino and Robot Arm's Motor was not enough using 6VDC power from existing Robot Arm 6V.
Try to separate the power supply, by using 6V existing power supply for Robot Arm's motor. Then add power supply just for Arduino and XBee module (XBee needed only 3.3V!)
Aghilan8 sath022 years ago
hi thanks for rply.....actual i got test with two xbee and i gt the response.....and when i am trying with mainboard and main program i am able to control the LED only bt the motori can nt control.....and yeah i am using two different power supply for two board....for motor driver i supply 6v.....and for arduino i m supply 9v with step down it to 5v and 3.3v.....with ur test program the motor able to run....so i m very confuse now....in which part is my mistake
sath02 (author)  Aghilan82 years ago
Aghilan8,
Look in the processing sketch. In the setup() method, check if the Serial Comm port. and baudrate had been set properly?
In the original code, the COM port had been set to COM30, and the baudrate had been set to 115200!
Have you change these value accordingly?

void setup() {
// List all the available serial ports in the output pane.
// You will need to choose the port that the Arduino board is
// connected to from this list. The first port in the list is
// port #0 and the third port in the list is port #2.
//println(Serial.list());
// Open the port that the Arduino board is connected to
// (in this case #0)
// Make sure to open the port at the same speed Arduino is
// using (112500bps)
//port = new Serial(this, Serial.list()[1], 112500);

// On Window PC, use "Outgoing" of the bluetooth device
// This one for XBee
port = new Serial(this, "COM30", 115200);
// NOTE: Change the value to your XBee setting!
...
Aghilan8 sath022 years ago
sorry to trouble you...bt i have did everything that u have said just now....yeah i set the boud rate....and com port as usb serial com port..
sath02 (author)  Aghilan82 years ago
I'm sorry, my suggestion was not help!
Would you mind send me the photo(s) of the connection, either post it in the comment or send me via Private Message.
If I could only see how the connection were, I might be able to help you better!

Or you should go through the connection, and see if everything are connected accordingly.

I knew that we are in the different time zone. It's about midnight your time. You might want to sleep on it and then comeback to take care of the problem again in the morning. Right now you're frustrating, and might not be able to see where is the problem clearly.

Let me know the progress!
Aghilan8 sath022 years ago
hi Friend.... i am finally able to make it work ready....just i don't understand is to control the robot smoothly......and anyway thanks for helping me on this....i am really appreciate with yout help thank thank thanks a lot...
sath02 (author)  Aghilan82 years ago
Hi Aghilan8,
Congratulation!
See, the 'Sleep on it' suggestion did work, isn't it?
Glad to see that everything is working now.
Good luck in your coming presentation.

Are you going to write instructable of your robot arm?
Hope to see your Robotic Arm Instructable soon! May be after your presentation or when the project is done!
Aghilan8 sath022 years ago
yeah its really work the sleep method.....and yeah i will share my project in here once everything is done....thanks for everything
Aghilan8 sath022 years ago
thanks for understand my situation.... i will send you all my info to you and if dont mind can you send me ur mail ID so i can attach all the file....
Aghilan8 sath022 years ago
and yeah in configure the xbee i change the boud rate and pan id only.....
Aghilan8 sath022 years ago
And did i have to configure both xbee in same way by plug in computer....
sath02 (author)  Aghilan82 years ago
Yes, you have to configure both XBee...
Aghilan8 sath022 years ago
I am able to configure the both xbee and get the response rdy.....now i have new problem.....were i can turn on and off the light bt can nt run the motor....i have test with test program...its can run the motor bt with main program can nt...pls help me on this....my presentation on cuming thursday...
Aghilan8 sath022 years ago
I am able to configure the both xbee and get the response rdy.....now i have new problem.....were i can turn on and off the light bt can nt run the motor....i have test with test program...its can run the motor bt with main program can nt...pls help me on this....my presentation on cuming thursday...
Aghilan8 sath022 years ago
hi....so i have to connect TX from UART to RX on Xbee and RX from UART to TX on xbee....not do conect TX to TX and RX to RX.....
and yeah gt X-CTU software bt i try to configure by TeraTerm application by AT command.....
sath02 (author)  Aghilan82 years ago
That's correct! TX from UART(UC00B) to RX of XBee, and RX from UART(UC00B) to TX of XBee...

Make sure both (XBee and UC00B) have the same Baudrate, for example 9600.

OK, Let's step back a little bit. I know it's frustrating dealing with Xbee + Serial Comm.
Go to this page and follow the steps to configure your XBee modules. And see if both of your XBee modules works, before try to do something else.

Go to this link if you are using XBee Series 1.
http://examples.digi.com/get-started/basic-xbee-802-15-4-chat/1/

if you are using XBee Series 2 go to this link:
http://examples.digi.com/get-started/basic-xbee-zb-zigbee-chat/

The pages I mentioned above are very easy to follows an they give a very good sample to follow through!

Try them first ans see what happen, OK?
KlarBot2 years ago
Fantastic Tutorial. This is my first processing and first wireless project, I'm using the Arduino with the motor controller stacked on top and the Sparkfun Xbee shield with xbee 2.0 stacked on top of that. i wouldnt think 2.0 would make a difference nor the Xbee shield. I have the Xbee set up and tested but when i run the Processing program I get a serial communication error, and was wondering after looking through the code, how does processing know which port to use? i have all the baud rates in the programming and the antennas set to the same. Is there some where i need to specify the port, or something else i need to do?
sath02 (author)  KlarBot2 years ago
Thanks.

Take a look in the Processing sketch.
In the setup() function. You will see these lines

...
//This one for XBee
port = new Serial(this, "COM30", 115200);
...

this is the line to set Serial com port. You will need to change "COM30" to whatever your XBee COM port is. And check your XBee baud rate. Mine set to 115200, you need to check if your XBee baudrate too.

The baudrate in Arduino sketch need to be the same too.
Check in Arduino sketch (RobotArmArduino.pde)

the last line in setup() function

..
// start sending data at 115200 baud rate
// I set my Xbee Baud Rate at 115200 bps,
// change the Baud Rate according to your XBee
Serial.begin(115200);
}

You need to set the number in Serial.begin(...) to be the same as what you set your XBee.

I think that what you have to do.

Hope this help! If there is anything else please let me know.
KlarBot sath022 years ago
Great! that makes sense, now i am still getting the first part of the error but it did eliminate some of the problem and it still isnt working but but at least the proccessing doesnt stop for it. i actually get a tx light on the xbee explorer board. here is what i still get whether i try to use xbee or just the arduino:

WARNING: RXTX Version mismatch
Jar version = RXTX-2.2pre1
native lib Version = RXTX-2.2pre2

i have my Xbees configured using API coordiniator hooked up via usb on the computer and Router API on the Xbee shield The shield is set to UART and all baud rates are at 115200

Thanks for the quick reply
sath02 (author)  KlarBot2 years ago
Glad you got some progress!

Don't worry about the warning.
I got that warning too.
It's something to do with Java stuffs. But It won't effect the program.

I'm not familiar with the API coordinator at all. :(

I wondered if you have try to load simple Serial Comm. program that comes with Processing and see that if you could make the XBees to communicate with each other first, then come back and try this program later.

From the main menu bar select
File->Examples...
Scroll down to Libraries folder
Then select Serial I/O
and try those programs
There should be some instruction in those sketches.

otherwise, visit this website
http://examples.digi.com/category/get-started/

and take a look at the Basic XBee ZB ZigBee (Series 2) Chat
and getting started..
also look at Configuring XBee Radios with X-CTU link there.
and follow the instruction.

This might help.

don't rush yourself. You metioned that this is your first time doing wireless and processing. When I started doing this I got frustrated when thing were not working as I thought.
But look at things carefully will help.

KlarBot sath022 years ago
Finally i got it. The warning was telling my TXRX jar file wasnt compatible with my version of windows, which was simple enough to find the right JAR file. And i reconfigured the Xbees using coordinator and Router AT rather than API and it works.. just takes a little getting used to the control GUI. Thanks again for your help and a great tutorial!
sath02 (author)  KlarBot2 years ago
Great! Glad to hear everything workout for you.
FULTON_GCN2 years ago
hello, how I can download the file, when I select the pdf file repeatedly asked me the key and the user. Please if someone could download the file if you send it to me to my email
fulton_gabriel_correa@hotmail.com, thank you very much
sath02 (author)  FULTON_GCN2 years ago
Hi FULTON_GCN,
Thanks for the interest in the project.
The pdf file for the whole project, Make-Wired-Robotic-Arm-Edge-to-Wireless-with-DIY.pdf, is only available to be downloaded by Instructables' Pro member.
I think (not sure if) you should be able to download the Processing sketch and Arduino sketch.
Regards,
sath02
mmarwanto2 years ago
hei.. what kind of software that do you used for run the robot arm processing program??
sath02 (author)  mmarwanto2 years ago
mmarwanto,
Processing is an open source programming language and environment, you can download it from http://processing.org. Very easy to use.
After you installed the program, and upload the code, then just click the "run button", and that's it what you need to do.
ripper2.02 years ago
Excelent!!! Very Nice
sath02 (author)  ripper2.02 years ago
Thanks :)