Introduction: Eyes for My Homemade Humanoid LinQ
Meet LinQ, a homemade humanoid robot. The robot has a total of 18 DOF. 6 DOF for the legs, 10 DOF for the hands, 2 DOF for the head. Most of the robot projects i have seen online are made of arduino. So i wanted to use something else and went with picaxe.
The electronic control consists of two microcontrollers-PICAXE 28X2 operating at 8MHz and PICAXE 18m2 operating at 4MHz. A HC05 bluetooth module is used communication between the robot and user, A L293D motor driver is used for controlling two gear motors of 120 rpm, SRF04 ultrasonic sensor is used for object detection, A step-down voltage converter is used for providing 3A 5v for the robots requirement from a 11.1v 3000mAh li-po battery.
The whole body is made of acrylic sheet, which i had to cut,shape,drill,screw,bent and twist to form the required shape of each part.
It has a total of 18 servos mounted on it.
The leg motion, bluetooth communication, obstacle detection, driving motion are all done by the main micro controller that is PICAXE 28x2. There is a inter microcontroller communication through which the main controller gives information to the secondary micro controller PICAXE 18m2 for hand movements like grabbing objects, giving gestures, balancing.
The SRF04 sensor mounted on top of the robot act like an eye. It helps in tracking and picking objects from a place. It can be used for measure the height and width of an object through some calculations, so that the robot only tries to pick things of its own capability.
Step 1: Materials Required for the Eyes:
1. Piacxe 28x2 board
2. HC-SRF04 ultrasonic range finder
3. HXT900 (9g servo) X 2
Step 2: Basics and Coding Part
The picaxe is coded in picaxe basic. The software which i have used is the picaxe programming editor software.
The servos which i have used for mounting the head are hacked servos ie they return their position details through a readadc command, which is very useful for finding the position of the object. Its damn easy to hack your servos, you just have to draw a wire from the center position of the potentiometer and connect to the adc input of the picaxe and use the readadc command for finding the positions.
The srf04 first look sideways for finding any object in its path. If an object is detected the robot stops it motion. If the command was to grab the object it scans again to find the position of the object, if the object is not at the center it moves to the center position of the object or if the object is too near of too far it adjusts itself. Next it looks for the height of the object by tilt the head upwards until the sensor finds the end point of the object and the value is returned to the microcontroller. Similarly it finds the width of the object. It the object is in its size range the arms moves forward and grabs the object.
Another cool think with this robot is that it can Transform into a car. After transformation srf04 is moved upward so that it can now act as an obstacles avoiding robot car.
I have attached my picaxe code for locating the height of the object, the same can be tweaked a little to find the width.