The Servocore was created to act like a standard Bicore but instead of controlling a DC motor, it controls a servo. A standard servo works on the basis of pulse width modulation, which is a pulsed signal sent to the servo. The longer the pulse, the greater the rotation the servo tries to attain. When the pulse "shrinks" in duration, the servo rotates the other direction. The Servocore works using 3 Bicores; two to set the left and right rotation limits, and one to regulate the time interval between rotating to these left and right limits.
On the BEP Servocore board, you'll find two 20K potentiometers that control the end stop positions. R8 controls how long it will wait to go between these positions. The signal that controls the time for left/right positions of the front servo are also sent via an IMx signal multiplexer (reverser) to the rear Servocore. When the walker tactile sensor activates the IMx, the IMx inverts the signals so the phase between the front and back servos is shifted, causing the walker to reverse.
Not crazy about bitmaps? Us neither. Try a nice, vector PDF file!
You can get all the parts you need here.
Separate the boards needed to build the walker. It works out that the needed boards are located right in the middle of the full BEP board. Set the snap line on a table edge and apply pressure until the score line starts to break. Do this to separate a column consisting of an IMx, a BC1, another IMx followed by a pair of Sc1's, and at the very bottom is a quarter sized BB1 and a CHG board.
To build this project, all that is really needed is the IMx, a pair of Sc1 boards and the bottom BB1 and CHG boards. The top two boards can be broken off. Don't forget to include a pair of leg mounting pads!
Now we begin to populate the boards. Feel free to use chip carriers instead of soldering the chips directly to the PCBs. Please make careful note that 74HCT240 chips are used, not the 74AC240 chips (except for the Imx if you wish). The Sc1 Servocores will not work properly with 74AC240 chips! This is due to the internal wiring of the AC style chip. You cannot make Bicores running at different frequencies on the same 74AC240 without them starting to interfere with each other. This isn't a problem with the HCT version (but the HCT doesn't have the output current the AC does).
Only half of the IMx board is populated, and the tactile sensors will be attached in parallel so when either sensor is triggered, it will follow the same behaviour.
Pin sockets have been placed in the following positions: R4 on the IMx, R8 on both Sc1's and 2 pins on the BB1 board.
This is a close up shot of the Sc1
This a close up shot of the IMx. Take note that only half of the IMx is being used, as we're only swapping two signal lines, not four.
Let's switch tracks and work on the body of the walker. The sintra plastic suppot is cut at an angle of 45 degrees, and the servos glued to the sintra with superglue or epoxy. The 45 degree angle was chosen to give the walker a good climbing ability combined with decent speed. Want more speed? Lower the angle so the servos are almost on the same angle. More climb? Make them 90 degrees to each other!
Now comes the marriage between brain and body. The front IMx Board will need to be angled at 45 degrees to match the angle of the front motor. This is accomplished by breaking the board at the score line angling it upwards then re-enforcing this break by soldering leads between the two boards. Don't glue the boards down yet, we still need to run a few wires under the board.
Take note that there is a jumper in the middle connecting the +Vcc line from one module to the next, and a solder bridge connecting the two ground pads on the corners. These are necessary to electrically and mechanically attach the two boards together.
Another jumper needs to go between the +Vcc lines of the two Sc1 boards. Most boards already share a common ground, but to provide power to all boards at once, a jumper needs to be in place connecting all the +'s together.
Once the board is set at the angle to match the front motor, we need to run five (5) wires between the BEP boards. The first pair of blue wires connect the output of the master Bicore to the input of the IMx.
The top image shows the connections to the outputs of the master Sc1.
The bottom image show the connections to the inputs of the IMx.
The last wire (white) hooks up the power to the CHG this allows the power to be switched on and off. This wire runs from the center +Vcc pad on the rear Sc1 to the pad right beside the pad marked Batt +.
It's a good habit to test the modules before it's too late to fix them. Just for testing purposes, insert a 3 pin header into the servo hookup on a Sc1 board. This pin header does not need to be soldered in, light pressure should be enough to make electrical contact.
Choose an arbitrary value to use for the back and forth oscillations (2M works fine) and install it in the spot marked R8. Power will also be necessary to test the board, so use a quad pack of AAA batteries or attach to a power supply delivering 5V to the center rail (+Vcc) and the corner edge (-ground).
If your test is successful, your servo will jitter, and rotate to one position, wait, then rotate back.
While we're testing, try force triggering the IMx to make sure its swaps the Sc1 signals. Do this by shorting the large rectangular pad near the top left and the smaller pad near the middle.
If nothing is working, skip ahead to the troubleshooting section at the bottom. Don't progress further until your modules are behaving like they should be!
If everything appears to be working with the brain, you can attach it to the body. You may want to hold off on gluing down everything to make soldering a bit easier.
Attach the rear motor to the back Servocore. The white wire goes to the square pad, red wire goes in the middle, black goes to the far left pad. If in doubt, the connections are marked in text on the board.
Solder the front servo motor connections in the same manner you soldered the rear servo in the previous step.
This image also shows the ground connection from the battery to the PCB (detailed in the next step).
Wire up the negative side of the battery pack to the ground side of any BEP board, but go for the closest point available. Less wire used means more voltage available to the circuit as less voltage is dropped across the wires.
Run a wire between the two battery packs, connecting them in series. This changes a pair of 2.4V packs into one large 4.8V pack.
The second image shows the red wire from the battery pack goes to the pad on the CHG board marked as "Batt +".
At this point all electrical connections are made and flipping the switch should start the motors moving. Make sure that the batteries have a sufficient charge and that some default biasing resistors are in place. For default values try 1M for the IMx reverser, 2.4M for the suspended master resistor and 1.5M for the slave value resistors.
So the walker is now only missing one vital component... LEGS!
Start by stripping a section 1.5" across in the middle of the leg wire, then solder on the leg mounting pad. As can be seen in the image, clipped resistor leads were used to tie down to keep the leg from moving while soldering. Due to the large metal mass of the copper leg wire, we recommend using a high-power soldering gun for this step. After the leg is soldered, screw down the mounting pad to the servo horn, then screw the servo horn onto the servo. Try to arrange the servo horn so it sits approximately 1/2 through the full servo left/right travel arc.
Walker leg profiles are bit of a black art. The longer you experiment with it, the better you'll get. For this walker, we used the following recipe:
Front leg first bend 1 inch from servo horn, second bend 3.5 inch, last bend to ground 3 inch. Back leg bend 3.25 inch from the leg mounting pad bend from ground is 4.25 inch. Rubber feet were added to the leg contact point to provide better grip.
With this basic leg shape in place, turn on the walker and watch it flail about. Using the Sc1 trimpots, tune the left and right rotation limits for each motor so that they're approximately the same. When you have the same amount of left/right rotation, your walker should be able to move in a generally straight line. If not, tweak the leg geometry and the rotation limits.
When it's travelling straight, try changing the master bias resistor on the forward Sc1 to make the duration between leg left/right movements faster and slower. You'll be surprised at what a difference to the performance it will make! Experiment, and have fun with the tuning process.
Now it walks great, but attempts to go through walls instead of backing away... we need some tactile sensors!
This is one way of doing the tactile sensors: the spring is part of the whisker that gets soldered to the large ground pad, and the brass pin is soldered to the enable pad. When the enable pad gets pulled low (i.e.: connected to ground) the IMx is enabled and will swap the signal polarities to the rear Servocore. Heat shrink tubing is used to adjust the sensitivity of the tactile sensor and also to help prevent false triggering by isolating more of the pin from the sensor.
The lower images shows the pin is positioned in the middle of the spring whisker. Whichever way the spring gets deflected it will cause it to hit the pin, causing the walker to kick into reverse!
After sensors are installed it's complete!
If a image is worth a thousand words is a movie worth a thousand images? Hmmm. Enough philosophy; here's the movie (2.5meg MPEG-1).