My 1st post!
This is my simple homebrew robot arm mounted on a 3 wheel base. It is made out of aluminium, baseboard and some rc bits and bobs.
I had to take a crash course in vb.net to code a controller, but having a background in web development (and being a techy nerd) that was not too difficult. I will document the controller interface further down this thred.
Here is how the bot works (electronically).
PC (manual or programmed output) -> Bluetooth TX -> Bluetooth RX rs232 adapter -> PIC16F84 - Servos
Construction.
Here is the "botboard", it is an 8 channel servo controller using a PIC16F84 running at 20Mz. It allows "position and hold" data for the servos, giving static torque which is perfect for robot arms.
As I was prototyping it is made out of stripboard. It has connectors for 0-12v, rs232 data in, gnd and +5v (+5v for powring the Bluetooth adapter). Also dual voltage regs for the servo power because when the servos are static they are still powered.
The PIC is programmed to allow a stream of serial data @ 38400 baud to position the servos in real time.
From vb I outputServoNum = 0-8 then a position 0-240 - 127 being about center.Code:serialPort.Write(Chr(ServoNum) & Chr(0 - 240))
One neat thing about the pic code is that it allows the use of "Default position". Within the controller app I can set a desired "start-up" position, send this to the bot and on next powerup it will move the servos to this position.
That's enough about the bot interface, now the construction of the mechanical hardware.
1st I had to figure out a good strong lightweight material to use for the arm. I settled on L shaped aluminium bar (B&Q for UK people). It had a natural ledge to allow me to fix a mini servo without using too much glue.
Here you can see how I mounted the mini servos with double sided tape and tie wraps :-)
Now for the grabber. For this I designed a simple gear unit that is driven from one servo. The gears rotate in opposite directions. Fixed to the gears are the grab arms.
These are made from 3mm laminated base board.
I needed some kind of rubber on the tips of the arms to help grip objects. I found some draught excluder that had double side tape on one side. The draught excluder also acts as a grab cushion :-)
Here is another shot.
The base board is the stuff sign makers use for out door signs. It is dirt cheap, easy to cut and supe glue loves it! It is also hardwaring, waterproof and can be sanded. I also used this board to construct a roving base.
This base needed to provide stability for the arm, contain a power sorce and servos for the wheels.
Here it is under construction.
The servos have been modded to provide 360 degrees of rotation. I epoxied round servo horns to a couple of RC plane wheels. You can also see the rs232 port, power switch and battery box. The battery box takes 8 AA batteries and provides balance for the arm.
Wheel mount detail.
Now I needed a 3rd wheel. I decided a tail wheel from a rc plane would work best. These have hardware to allow the wheel's shaft to rotae around the Z axis.
Here you can see the batteries installed and the 3rd wheel setup.
A slightly blurry show of the bot board in place and connected up.
Here are a few shots of the arm, it has 6 degrees of freedom. The main servos at the base for rotation and lift are large, whereas the servos at the top of the arm for elbow, wrist, wrist rotation and grab are minis.
Top of the arm
Base.
Here is the Bluetooth -> rs232 adapter mounted and powered.
Completed! The yellow dots on the wheels are for my testing purposes, they are reference points so I can fine tune the software (no optical encoders of anything flash like that).
Now for software.
This has the following features:
Manual control.
Slide the siders and the servos move in realtime.
Program mode.
This records any movements you made. You can then play these back and the bot will move accordingly.
Set Default position
Dumps the current servo positions in EEPROM
Reset
Sets the bot to the EEPROM values.
Load/Save
Ability to save or load pre-programmed scripts.
This software is totally coded in vb.net and is configured from a simple set of variables. eg What servo is on channel 1, and what are it's max and min movement values.
So thats' it, my roving servo bot. I have built identical bases to use on other projects.
And here is the YouTube Video of the bot in action.
Enjoy!
Bookmarks