Smooth Robotic Arm Control

Here is a video of my approach to HakBots idea. Rather than use potentiometers I wanted to try using inexpensive modified servos as the pots. This provides some mechanical dampening and resistance to the motion. Eh, it was a fun project anyway. I need to add wrist rotate to the joystick and upgrade the arm.

Feedback?

Here’s the code for an Atom Pro 28 and the Bot Board II. If you press the A button when powering on it will center the servos.

Edit: I used IDE 8.0.1.7 for this project.

[code]servo0 var word
servo1 var word
servo2 var word
servo3 var word
servo4 var word
servo5 var word
buttona var bit

sound 9, [100\880, 100\988, 100\1046, 100\1175]
low 10
low 11
low 12
low 13
low 14
low 15

buttona = in4
if buttona = 1 then start

testing:
servo0 = 3048
servo1 = 3048
servo2 = 3048
servo3 = 3048
servo4 = 3048
servo5 = 3048
gosub makepulses
goto testing

start:
adin 0, servo0
adin 1, servo1
adin 2, servo2
adin 3, servo3
adin 16, servo4
adin 17, servo5

'serout S_OUT,i57600,[dec3 servo0\3," "]

servo0 = (servo0 * 4)+1000
servo1 = (servo1 * 4)+1000
servo2 = (servo2 * 4)+1000
servo3 = (servo3 * 4)+1000
servo4 = (servo4 * 4)+1000
servo5 = (servo5 * 4)+1000
gosub makepulses
goto start

makepulses:
pulsout 10, servo0
pulsout 11, servo1
pulsout 12, servo2
pulsout 13, servo3
pulsout 14, servo4
pulsout 15, servo5
pause 10
return[/code]

Wow Jim, thats awesome :smiley:

Next step. Build a robotic exoskelton for you to control a full sized biped :laughing:

thanks again for the code. i have notice in the “Arm” video you are using the Atom pro. i do have plans to upgrade soon but i have notice in the single servo video you are using Atom28

http://i531.photobucket.com/albums/dd355/innerbreed/Capture.jpg

do you have the code for A28?

also what version IDE was this?

thank you.

I used IDE 8.0.1.7 for the Pro. Here is a link to the original Atom 28 version. Note you will need to add the additional channels. I only implemented one channel.

lynxmotion.net/viewtopic.php?p=42529#42529

Very impressive!

This would be great on a rover using a wireless link.

nice one. and thank you once again jim.

i may order another botboard to save me ripping the one i have, out of my current project.

thank you.

How were the control arm servos modified?
I can think of a dozen ways to make this wireless.

Imagine a rover that uses foot pedals to control track/wheel movements, a wireless camera
And 1 or two of these arms using wireless controls. One Micro controller interprets the commands of the control arm, sends commands over a wireless connection, xbee, bluetooth, RF… etc. Then the other micro controller controls the active arm.

I took a plain old 422 servo (311 would work too) and removed the control board. I soldered the two motor leads together and soldered the servo wire to the pot. Servo to Pot, yellow to yellow, red to red, and black to green. When you plug this into an analog input it gives you a nice 0 to 5vdc to the input when you move the servos output shaft. The reason I soldered the motor leads together is it provides friction and holding power to the servo.

i want to know
the componant of the arms

module of servo motor

the circuit diagram with the name of componants

Everything you need to know to do this is included in this post. Please read it carefully and ask specific questions.

i want to know
the componant of the arms

module of servo motor

the circuit diagram with the name of componants

i want to ask
about some thing???/
at the code input and output motor is 6 and 6
but in the robot there are 5 and 5 only
help me to understand that

The program has 6 channels used, but the arm needs only 5 of them. The 6th one is just a spare. It has no use.

thank u for ur help
u are really useful for me
and keep in touch

what is the type of servo can i use
and can i use Sub Micro Servo ( wal servo 9 grame TORQUE : 0.8 kg-cm / 11 oz-in @ 4.8v
SPEED : 0.11 sec / 60 deg
WEIGHT : 9.0 gm / 0.31 oz )

To use the micro servos, you’d have to scale down the arm considerably, especially at the shoulder.

I’d recommend buying a standard arm to start with, although that in its self wouldn’t be much of a ME project…

Alan KM6VV

just digging up an old thread. Jim what jumpers did you have installed on the ABB2? :smiling_imp:

The ports with the servos are VS and the ports with the modified servos as an input device are 5vdc. :smiley:

i have used a hs-475 as the modified servo. as stated, removed board, soldered yellow to yellow, Red to Red, Black to Green. soldered the motor wires together, and it does have friction.

when i plug the normal servo on any of the pins from 10-15 it holds when powered up. only pin 12 responds to me using the A button. when doing so the servo on pin 12 goes limp. the others do nothing. VS jumpers installed for these pins.

attaching my mod servo to any of the input pins 0,1,2,3,16,17, does nothing. 5v jumpers installed for these pins.

Confused. :confused:

You’re confused… :open_mouth: lol

This project does not use the buttons. I inadvertently used buttona as a label, but if you look it’s actually polling P4. So I jumpered P4 to 5vdc to force it to generate centered pulses as a test. So remove the button/LED jumpers. BTW, Be careful as you are generating pulses on the same pin that is being connected to ground when you press the button. Remember the buttons/LEDs use a slightly different method of control. From the Bot Board II manual…

So you’re making it a high, briefly with the pulse out command. But I digress.

Connect the modified servo to P0 and the normal servo on P10. Then moving the modified servo will cause the normal servo to mimic the movement.

Remove the remark in front of the following command to see what the values on the analog input are doing.

'serout S_OUT,i57600,[dec3 servo0\3," "]