Sun 7th Dec 2008
Had a few setbacks with the old NiMh battery pack dying and the new LiPo battery packs not fitting where I hoped. Compare the old photo to the new one below. On the upside the new batteries have twice the amp/hour rating and a friend helped me get some polymorph plastic which I put to good use on Junior.
I've used the polymorph to make a base / mounting plate for the batteries, a bracket to mount the servo assembly and another small bracket to mount the sonar. As you can see I was in a bit of a hurry to get the sonar up and going so I've just hot glued two small servos together. They are cheap enough that I don't care if they stay that way and it was the most compact neck joint I could make.
Because the new batteries did not fit between the motor control boards I ended up with a space under the new batteries. This turned out to be perfect for my i2c eeprom expansion board.
As you can see it's a perfect fit. Just have to workout where to fit the RTC.
Junior's looking like a "Saturday Night Fever" contestant at the moment. He's posed this way because I can no longer access his motor wires to manually adjust his position and this pose is the safest while I'm developing the code to move his arm. In this position any joint can move a fair bit without a collision.
One advantage of the bigger batteries is that they are about 50% heavier than the NiMh battery pack and are a perfect counter weight when Juniors arm bends over backwards, even at full extension. The batteries are a higher voltage, typically 7.4V so the motors get a bit more juice. The servos are not affected as they run of the 5V supply. The biggest setback with the LiPo batteries is they have special needs for charging and can explode if not treated with the proper respect. This means that ultimately I need to build a special charger/docking station. These batteries cannot be trickle charged! Read this fact page before considering LIpO for your robot.
Tue 2nd Dec 2008
He's nearly ready for his first video! I just have to write something more sophisticated than diagnostic routines. I've saved the schematic as a jpeg so that you dont need special software to read it but it is big so save it and view it with a photo editing program.
Updated with more pictures and a full schematic of both Junior and the Laser RF MkII. I'm trying a lot of new ideas at the moment so I'm not certain when he'll be ready to video. Everything has been tested to some degree individually so hopefully he will be done in the next week or two.
Have had a lot of destractions with new sensors to make and play with. The laser RF MkII was a disapointment as it was unable to give me the resolution I had hoped for and Rover was going to be too big for Junior even if it did work.
Another reason I've taken so long is that I had some problems with my first motor control board that had to be corrected before I could make the second one. Now they are both finished and tested.
As you can see they have been shaped to fit behind / between the tracks and the wheels as this was the only way to fit so many parts on such a small robot.
I had considered making custom boards but prototype board was quicker and cheaper. Considering I made a mistake with the first one I'm glad I didn't do custom boards.
This is the first board being tested. I've plugged in some motors I removed from a toy dinosaur and wrote a test routine that slowly increased the motor speed in both forward and reverse. I was worried that with all the mucking around I might have damaged a transistor with too much heat or zapped a FET gate with static but all went well. No magic smoke.
This is Junior with both motor control boards fitted. You can also see my IR sensors on the front. These are just general obstacle detection sensors to prevent Junior hitting anything too small or low for his sonar to detect. Until I can sort out the laser range finder I've decided to go with sonar. I'm using a Maxbotix EZ1 because of it's small size and because it has a pulse width output as well as analog so I can use a spare digital input and the pulsin command.
This is the double version of my IR sensor on the back. It can detect an object over a wider range and being mounted on the rotating base give it the ability to look around a bit.
This is how I remember which wire goes where. From time to time I will add a new circuit and then this photo and the schematic have to be updated. The servo outputs were added for testing my object tracker but will come in handy plus in my schematic I've worked out how to add two more if required.
The new range finder uses a pulsed 1mW laser pointer instead of a spinning mirror. This eliminates the mixer. Should have better resolution.
Hall effect sensors for position sensors.
The gripper will have a sense of touch using antistatic foam and "wire glue". I'll do a Tip/walkthrough on this once I work it out.
Multiplexed PWM control with multiplexed feedback. Allows the MCU to control 8 motors (in pairs) and determine load/stall conditions of each motor.
Junior is going to be my test bed where I can practice my programming and try out new sensors. That Picaxe 40X1 is gonna cop a hiding!
He's a bit top heavy and can fall over if the arm extends too far in any direction but this will be good for experimenting with balance and balance sensors.
The MkII sensor board shown on the right was originally designed with a picaxe 08M but by changing to a 14M it is capable of driving two mini servos that will make up a neck. With another two mini servo's set up for continuous rotation as drive motors it will be a robot in it's own right called Rover. I'm thinking of setting up junior so that he can use his arm to attach/detach Rover. What could be better, a robotic boy and his robotic dog? I suppose I could have called it K9 but since it will rove about...
All this is going to require a big program so Juniors main board has an i2c interface for a RTC and a eeprom miniboard I've ordered from futurlec that has 4x24LC32 eeproms. http://www.futurlec.com/Mini_EEPROM.shtml Hopefully this will be enough. There's still a lot to work out but once the parts arrive I'll get a basic program running and post a video.
In the centre of the gripper you can see the white LED torch that came as part of the robot arm kit. I've mounted a LDR above it so that the robot can determine if an object is between the pincers. The pincer on the left has my home made touch sensor mounted on it. I lost 3mm of clearance between the pincers but can now tell roughly how hard the robot is gripping an object. Because there are two touch sensors it can also tell where the object is placed within the gripper. I'm posting a walkthrough on how to make this sensor for anyone interested.
Most of my parts have arrived except for some minature servos for a neck to mount the MKII Laser RF.
As you can see it's a lot of parts for one small robot. especially those eight motor control relays and 5W shunt resistors. The shunt resistors perform two functions, they limit the stall current to just over 1A per motor and they allow the picaxe to measure the current drawn by the motors so that it can tell how hard a motor is working. You can also see one of the IR proximity sensors and my eeprom and RTC mini boards from Futurlec.
This is Junior's main board, with the TLC1543 10bit 11channel ADC in the upper right and two 4052 dual 1 of 4analog switches below. The TLC1543 brings my total number of analog inputs to 18 and the 4052s allow me to multiplex my PWM and directional outputs to control 8 motors in 4 pairs. This was necessary because the 40X1 only has two PWM outputs and therefor I can only control 2 motors at a time. Other features of this board include the i2c port at the bottom of the 40X1, IR communication, internal serial connection to communicate with slave boards like the MkII laser RF. Battery monitoring with warning LED.
This is my solution to lack of space, the motor control circuitry is divided onto two boards and mounted either side with the relays, shunt resistors and drive FETs mounted between the tracks and idler wheels. The sheer number of wires and connectors are proving a problem because of the space they take up.
As you can see in this picture I needed some insulating washers, since I didn't have any I cut two slices of a gluestick and melted a hole in the middle with the soldering iron. You gotta love those glue sticks!
This is the other side still waiting for it's motor control board. I'm quickly running out of space and I haven't even mounted the IR sensors and wheel encoders let alone the laser range finder.
As soon as I have him going I'll post some video's. Once I've worked out his software I'll try to get him to write LMR with a pen.