B E A M - R o b o t i c s
Biology - Electronics - Aesthetics - Mechanics
Z-Walker mk I
Project status : Closed
Last update : 16 Jan. 1998
["Zwalken" is Dutch for walking with an unsteady pace]
The birth of a four-legged walker.
This walker is build according the BEAM principles and based on a MicroCore, an invention of Mark Tilden. [see also The Tilden Patent]
Plans for building a MicroCore are provided by Andrew Miller
How i started.
After several days of searching for parts and information i started out to build my own insect like walker. I decided that i would use two motors and my only goal was to create a walking robot. After setting myself these goals i started planning. I bought some motors with a gearbox attached to them, a battery holder, PCB material (printed circuit board), etch powder and some components. I placed all the schematics that i wanted to use on a piece of paper. These where the MicroCore and two H-bridges.
GRAPHICS ASCII One NV neuron C |\ U ---||-+--| >o---- | |/ | | | | R | --- Fig. 1 U = Schmitt invertor [7414 or 40106] R = 1M5 C = .22uF
This is the basic design of one NV neuron as described in the patent by Mark Tilden. A pulse will enter the R/C circuit and will charge the C. This charge time depend on both the value of R and C. The time delay is calculated with T = R x C. Where T is in seconds, R in Ohms and C in Farads. After that the inverter fires.
First i made the MicroCore and it didn't work, so i thought. The reality was that the pulses where to fast. After some experimenting with the resistors i understood how i could influence the pulse rate. Secondly i made a H-bridge which also work in one go. But because the experimenting with the MicroCore the print was somewhat damaged and i set of to draw an other PCB. The H-bridge i still could use.
GRAPHICS ASCII a BiCore _____________________________ | | | C |\ U C |\U | +--||-+--| >o-+--||-+--| o---+ | |/ | | |/ | | | | | | | | | R a | |R a | | --- --- Fig. 2 a is an output to the motor driver
A BiCore is actually two NV neurons placed in a loop. Placing NV neurons in a loop will ensure that the process will keep running. A BiCore is already capable of driving a motor back and forth or driving a stepper motor.
I wanted a PCB that wasn't larger then the size of the battery holder. I drew the layout of the MicroCore and one H-bridge on paper. It fitted well between the lines of a battery holder. With a needle i punched little holes in the paper where the solder points had to come. For the PCB i used epoxy board with at one a copper layer. I use a scissors for metal to cut off a piece. Then i placed the drawing on the copper layer and with an etch resistant pen [Edding 2000 e.g.] i marked the holes where the solder points has to come. After that i draw the lines and connect the dots. Then i drill one hole in the print and put a cotton wire through it. The reason for this will become clear later on. I filled a small pot with warm water and added the etch powder to it [Ferro Chloride i guess?]. After that the print is placed in the pot and a timer was set at about 10 minutes. So now and then you have to check if the unprotected copper isn't dissolved yet and here's the reason why i attached the cotton wire.
GRAPHICS ASCII a MicroCore /|U C /|U C +-o< |---+--||--o< |---+-||---+ | \| | \| | | | | | | | | | | |R | |R | | | | | | --- --- | | | | C |\ U C |\U | +--||-+--| >o----||-+--| o----+ | |/ | |/ | | | | | | R | |R | | --- --- Fig. 3
A MicroCore is the most frequently used NV neuron net. The MicroCore consists of 4 NV's in a loop. Each NV is capable of driving one leg, which makes him very suitable for building a four-legged walker.
If the unprotected copper is all vanished then the PCB is ready to be removed from the pot. After that its just cleaning it and drilling the holes. By then i still hadn't an idea how the motors and leg mechanics will work together. This unfamiliarity made me hesitate and uncertain about what i am doing. I really hate to do things over and over again. Just to invent the wheel again. I made the MicroCore, it worked. Then the second H-bridge was build, which also worked. I hooked the motors to them with wires and all kept working. I used H-bridges similar to fig. 4
GRAPHICS ASCII The H-bridge +VC | +----+---+ |/e e\| +----b|PNP PNP|b-----+ |/e |\c .47uF c/| e\| +--b|PNP |---||---| PNP|b--+ | |\c | | c/| | | | | |--- M --| | | | | |R | |/c c\| | | |R | | +--b|NPN NPN|b--+ | | o | | |\e e/| | | o L_in | | +---+---+ | | R_in | | | | | | | --- | | | | | | | +----------------------+ | | +----------------------+ Fig. 4
This very useful H-bridge use zero amps at standby. The input resistors R must be atleast 50K and can be as high as 20M. This type of H-bridge can drive DC-motors, most actuators and steppers. It is also capable of producing feedback to the MicroCore.
But there was a new problem, the movement of the motors was only a few degrees. I wanted to turn them about 60 degrees. So if the motor turns 30 rpm then a turn of 60 degree would take about .3 seconds. I calculated the value for the resistors and replace the old ones. To my surprise there wasn't any noticeable effect, except that the motor now turns alot more to one side then the other side. Removing the resistors didn't had any effect at all !. The reason for this was the conductivity of the solder flux i used. So i cleaned the print with a toothbrush. Now things worked fine again.
GRAPHICS ASCII A full featured H-bridge 2xD +-----|<|------------------------------+ | | | +-----------------------+ | | | | |-----|<|----+ +----+---+ | | | | |/e e\| | | | +----b|PNP PNP|b-----+ | | |/e |\c .47uF c/| e\| | | +--b|PNP |---||---| PNP|b--+ | | | |\c | | c/| | | | | | | |--- M --| | | | | | | |R | |/c c\| | | |R | | | | | +--b|NPN NPN|b--+ | | | | | | | | |\e e/| | | | | | | | | +---+---+ | | | | | | | | | | | | | | | | | --- | | | | | | | | | | | | | | | +---+------------------+ | | | | | | | | | | | +----------------------+ | | | | | | | | | | | | | +----------------+ +------------------+ | | | | | | +---------------------+ | | +------- Fig. 5
This is a full-featured motor bridge, design by Mark Tilden. It got the so called (1,1)= smoke protection which now acts like brake. The other control states are : (0,1) Forward, (1,0) Reverse and (0,0) for free-wheel. When remove the grounding of the engage pin you can disable the H-bridge completely. I didn't use this design in this walker but i certainly will use this in my next design
Now it was time to build the robot's frame. I used two copper 220V electric wires and soldered two pieces of circuit board to the end of them. The circuit boards had three holes in them. One for the motor shaft and two for the tinny screws to secure the motor to the frame. (see fig. 6). The battery holder would fit between the two motors. One of the motors is placed under an angle of about 45 degrees. This side will be the front side of the walker and will provide lift. I bent some more copper wires to form two pair of legs. The legs where soldered directly to the shafts of the motors. Now the frame was finished i started to play around with it to see what is happening. I just put power to either side of the motors and let them move a little. I now i was able to see now how the walker was supposed to move in the future. After that i soldered the PCB with the components to the copper wires of the frame. I often make my PCB's with GND on the outside of the circuit, surrounding the complete PCB. This makes it easy to solder things to the side of the PCB. I wired up the motors. I had only made one H-bridge on the PCB because i wanted to use the one i had left over from a previous experiment. The second H-bridge was placed on top of the PCB.
GRAPHICS ASCII The frame |Length of battery holder| | | o=======================|======o |.| . |.| |O| Top view | |O| |.| . |.| o=======================|======o _ ____ ==PCB===== / \ |M | || Side view \ M \_=- |__| =========PCB====== _\_=- 45 Degr. ========================= ______ || | battery pack | // || ---------------------- // || // || rear legs // front legs || // M = motor Fig. 6
This made a robust design. A bit on the heavy side but easy to work with and easy to change parts of it.
Power-up time !! Look that infant go. It isn't walking, not even crawling. Its more like scratching the table at one and the same place. After several scary leg movements he drops on its side, waving its legs to me in what seems an attempt to call for help. Seeing this will give you atleast some father feelings
After several attempts i got the picture what was wrong. It seems that leg design is almost crucial for this type of walker. One leg didn't find any grip and scratched just over the table. Shaking its frame and because of its leg drift it would eventually drop on its side. I adjusted the trim to the legs and changed the form of the legs a little. Now the robot keeps standing but isn't able to make a complete step. Checking my wires and closely watching the leg movement told me that the sequence of the leg movement was totally wrong. I switched some wires and tried again. Now the little boy begun to crawl a bit. Very slowly it took a few steps and then he came to a halt. What was wrong next?
GRAPHICS ASCII Sequence for leg movement +---------+-----+-----+-----+-----+ |Rear | CCW | off | CW | off | +---------+-----+-----+-----+-----+ |Front | off | CCW | off | CW | +---------+-----+-----+-----+-----+ Fig. 7
The difference between walking and a steady pace on the spot can be as small as one wrong wire connection.
His legs didn't seems to be strong enough. Was the complete design too heavy? I looked at the input resistors on the H-bridge and they where 1M. I lowered them to 47K and tried again. Yes, that did it. With a strong pace he walked now into the world. Again the drift in the legs appeared and made the legs turn to much into one direction. It was just a matter of time to drop him on its back again. I decided to place end stops on the frame to limit the degree of freedom the legs have. The current drain of the motor will increase and this give feedback to the MicroCore which in his turn will shorten the pulse in the MicroCore. I also made a start-up pulse terminator (PNC) to ensure that the MicroCore will start with only one pulse. (fig. 8)
GRAPHICS ASCII Pulse Neutralising Circuit PNC ___ |\U D Vcc + o---|___|---+----| >o---|>|----o out R | |/ ===C | gnd R and C start-up time typically R = 1M and C = 2.2uF U unused gate on the MicroCore D signal diode (1N914, 1N4148) Fig. 8
This will stop all pulses in the NV neuron net and after some time it will release one and only one pulse into the NV neuron net.
Ready for another go. Power on. The PNC works fine. No more strange crawling with the legs before he settle down but right away a steady pace. But now one annoying new behaviour entered my design. While the PNC is active for about two seconds the motors will turn into one direction, pushing the legs against the end stops as long as the PNC is active. Thinking that the feedback will take care of ignored this. I continued playing around with the walker. After a few start-ups the first signs of ageing started to appear. The front legs stopped moving. Examination revealed that one plastic gear had moved upwards on its axe. Some of the teeth of the small gear where worn out at the under side of the gear. I pushed the gear back in place and continued. Several start-ups later my walker stopped walking. One plastic gear in both the gearboxes was worn out. Teethless now because of old age. I am holding this little beast now in my hand. Good memories will remain. I will put him to rest and de-solder him while thinking of another walker with even greater capabilities such as walking backwards, solarized and sensors.
Copyright © 1998, A.A. van Zoelen. All rights reserved.
A.A. van Zoelen / firstname.lastname@example.org
Updated: 26 Oct. 1999