Welcome to Pam and Chris Lewis's WEB Page

 

Home
Email

 

 

 

 

 

 

 

 

 

 

Shown above is my first really successful robot. After many attempts with the suspended BI-core BEAM robot circuitry the synchronization of the legs became an issue so I designed the two motor walking robot shown above. Built from scavenged parts the frame supports two cheap geared motorised assemblies bought from the States. Potentiometers attached to a rear stub-shaft of the gearbox provide feedback for the position of each motor. The casing from an old biro pen was utilised to create a coupling between the stub shaft and the potentiometer. A hole drilled through the shaft of the potentiometer prevented slipping.

 

Whilst this robot cannot be described as a BEAM robot the motors are controlled by a PICAXE processor. This affordable solution comprises of a standard Microchip Technology PIC loaded with a bootstrap routine allowing code to be written is basic and downloaded as many times during the development phase .Two analogue input channels are utilised to monitor the position of both of the motors whilst a single buffer chip allows both motors to be driven in both directions and halted. The software development was carried out on the development board purchased from revoloution whilst the final version minus PC interface, reset circuitry and high power FET drivers was wire wrapped on stripboard.

The project is based on an 18 pin microcontroller project board with 4 FET buffered digital outputs (not used for this project). Addition of a LDL293D chip provides two reversible motor outputs.Code is written in BASIC and downloaded via a serial port. Software is free and can be downloaded from the following site. Revolution Education Ltd.
This 143:1 gearmotor goes 70RPM at 5V, drawing 670mA at stall while providng 43 in-oz torque. Free running current is 57.6mA at 5 volts. With a 7mm double-flat output shaft (avoid using the green double flat output - it's not meant to take rotational load), and a built-in clutch and built-in mounting screw holes. The motors are sequenced as follows:-

1.Rear CCW front off
2.Rear off front CCW
3.Rear CW front off
4.Rear off front CW

 

 

 

 

 

 

 

 

 

 

The software

                                         main: readadc 0,b0
                                               readadc 1,b1 
raise_front: readadc 0,b0 readadc 1,b1 if b1 > 90 then goto raise_rear pause 5
debug b1 pause 5 high 5 low 4 pause 40 low 5 low 4 goto raise_front
                            raise_rear: readadc 0,b0
                                                     readadc 1,b1
                                                     if b0 > 90 then goto lower_front 
                                                     pause 5
                                                     debug b0 
                                                     pause 5 
                                                     high 7 
                                                     low 6
                                                     pause 40 
                                                     low 7 
                                                     low 6 
                                                     goto raise_rear
                                 lower_front:readadc 0,b0
                                                      readadc 1,b1
                                                      if b1 < 80 then goto lower_rear
                                                      pause 5
                                                      debug b0 
                                                      pause 5 
                                                      high 4 
                                                      low 5
                                                      pause 40 
                                                      low 4 
                                                      low 5 
                                                      goto lower_front
                              lower_rear: readadc 0,b0
                                                       readadc 1,b1
                                                       if b0 < 80 then goto main
                                                       pause 5
                                                       debug b0 
                                                       pause 5 
                                                       high 6 
                                                       low 7
                                                       pause 40 
                                                       low 6 
                                                       low 7 
                                                       goto lower_rear