Welcome to Projects! Check out what sub-categories we have on the menu on the bottom-right side.
Projects
Procedure:
Additional notes:
-
Don’t bother disabling the slip clutch. This gear ratio is not high enough to cause the slip clutch to slip.
-
At 5V, the unmodified GM2 free-spins at 40 RPM, but with this modification, it will go closer to 640RPM (wheee!).
-
We still have yet to test but this gear ratio should be better suited for heads and rolling robots.
UPDATE: These modified motors work great on Herbie-style robots.
(c) Solarbotics, 2002
This is a very nice little demo package from Protel of a PCB layout program. It’s an older package (they don’t even have this on their website anymore), but works on any windows platform, unlike their current demo versions. Only limitation with this package is the number of components and pins, which is for the most part much more than you’ll need for many BEAM designs. Disk 1 & Disk 2.
This circuit is used to create a simple “edgebot” sumo robot. Being an edgebot refers that it will repeat the same backup/turn/go forward action when it’s single edge sensor detects the edge of the ring. This version of the circuit is quite simple, and always turns the same way. Although a single sensor is all you need, it is wisest to wire up two sensors in parallel (one for each front corner of the robot), so it safely detects the edge with little chance of it falling off.
Theory of operation (How does it work?)
The circuit is based around the L293D motor driver chip, which has four high power buffers usually used to drive two small DC motors or a single stepper motor. The pair of transistors are configured as inverters that allow the inputs to the L293D to have one be “high” and the other “low”. When the switch closes, the two capacitors charge up and turn the transistors on. The transistors invert both logic signals going to the motor driver which causes the robot to reverse and back up away from the edge. Turning on the spot happens when one motor spins forward and the other continues backward. This is set by two “time-out” circuits that are tied to the transistors. By having different resistor/capacitor values on the “time-out” circuit, one motor will revert to the default forward direction before the other.
Parts for the Mini-sumo:
- 1 x L293D
- 2 x 2N3904
- 2 x 47K
- 1 x 10K
- 1 x 2K
- 1 x 1N914
- 2 x 22uF caps
- 2 x gearmotors
- 1 x 9V battery
- 1 x Switch (2 are better). Can be built from spring wire and a thick copper wire.
- 1 x Power switch
- Construction material such as sintra, steel plate, carbon fiber or whatever you prefer.
Circuit Diagrams:
Wiring Diagram of L293 Edgebot:
The reverse time here is set by the 22µF caps the 10K resistor and the 2K resistor. The difference between the two resistor values is what determines how much the sumo will turn. How high the values are will determine how long the sumo will reverse. For instance if you want it to turn the same amount but backup further then increase both values by 10K so the new resistor values are 20K and 12K.
Technical Schematic:
This is the technical layout with the transistor inverters simplified to the electrical symbol and the L293 shown as a quad of buffers. With this it should be easier to visualize what’s happening.
Dual Sensor Sumobot Circuit:
This circuit is more difficult to tweak and probably far from optimized, but if your interested here it is:
- This circuit has two edge sensors, when either sensor is hit it will start reversing then depending on which sensor was triggered will turn left or turn right.
- This works on a different principal than the edgebot circuit. In this circuit, the timing values are the same and the voltage that the capacitors are charged to determine the reverse time. By charging the capacitor through three series LEDs, the capacitor voltage is lower than the other capacitor. This means the L293 will “see” the input from this lower-voltage capacitor as a logic “low” before the other. To adjust how much the sumo turns, add more LEDs (in series) to increase the voltage drop.
Additions:
- Adding a 5 second startup timer is as simple as tying the two enable pins together and attaching a capacitor between them and ground. The internal pull up resistor will gradually charge the capacitor and enable the chip. If you need further control over the startup time either add a resistor in parallel with the capacitor to increase the startup time or add a resistor from the enable line to Vcc to decrease the startup time. Running at 9V a 22µF cap with a 2M pull up resistor give close to a 5 sec startup, voltage will effect the startup time so I advise using a potentiometer.
© Solarbotics, 2002
You want a simple Photovore? This very tidy design by Solarbotics’ own Grant McKee is based on a technique developed by Mark Tilden - Shok architecture:
Here’s video of the test robots being tuned as a 177kB Windows Media Format (WMV) file or as a 168kB RealMedia (RM) file.
ShokPopper V1.0 (click for circuit diagram) - GrantM Aug 2001
Theory of operation:
“Shok” architecture is a technique pioneered by Mark Tilden describing controlled state changes of Bicore style circuits via chip power or enable toggling. When a Bicore circuit is powered on, it will resume a state opposite to what it was when it was powered off, this effect can either be duplicated by pulsing the enable line or by pulsing power to the chip itself. This is called “shoking” the Bicore. The power-on state can also be pre-determined by biasing the voltage across the Bicore capacitors. A photodiode attached directly across the Bicore charge capacitor will pre-bias the shoked output. The addition of tactile sensors is easily implemented by attaching a switch from the input of the Bicore to +Vdd. When the switch is closed, it forces that side high, presetting the state of the Bicore on the next pulse cycle.
Probably one of the simplest photovore circuits to date, the core circuit consists of a 6 part count and a solar-engine. Either 74AC240 or 74HCT240 will work but we recommend using the AC series for better output drive current. The ShokPopper will not work under battery power unless the enable line is pulsed.
Solar Engine to use with Shok:
The best solar-engine to use is the Miller engine. For the ShokPopper Photovore we used a Miller engine consisting of:
- CP3300uf cap
- 1381Q
- CP1µf timer cap (0.47µf will work fine as well)
- 2N2222 Transistor
- SC3733 Solarcell
- D1 1N914 Diode
The Bicore Circuit Consists of:
- 74AC240 Octal Buffer Chip
- TR100k Trimpot
- 2 x 0.22µF Capacitors
- 2 x IR1 Infrared Sensors
- 2 x RM1 Motors
- TACT2 Spring Sensor Kit (Optional)
The Miller engine switches the ground line of the circuit.
The theory of operating is very similar to that of the shok popper except that the head now only uses one motor, the photo head does not “lock” on but will continually seek for the brightest source of light. Nice effect if you want a continually seeking, dynamic device on a stationary base.
- 74AC240 Octal buffer chip
- 4 x CP0.1µF capacitors
- 100k resistor
- 2 x 47k resistors
This is a neat little one-chip circuit we originally tuned for use with our “SM1″ Stepper motors. We’ve presently sold out of the motor, but this circuit has proved to be a good unidirectional (1-way) driver for small stepper motors. Parts required are:
- 74AC240 Octal buffer chip
- 4 x CP0.1µF capacitors
- 100k resistor
- 2 x 47k resistors
(PDF Version) GIF Link
Some of you may have found the LightStorm Pummers that Mark Tilden has made using some neat looking plastics. We’ve built our own variation of the circuit, which is a dark-activated, quad-bicore pseudo-random chaos generated, dual pummer circuit.
Parts required are:
Dark Turn on Circuit
- Solarcell (SB Part SC2433)
- 1F 2.5V (SB Part CP1.0F) capacitor
- 1 Germanium Diode (SB Part D2)
- 100k Trimpot (SB Part RT100k)
- 2n3904 transistor (SB Part TR3904)
- 2n3906 transistor (SB Part TR3906)
Pummer Circuit
- 74HCT240 (SB Part 74HCT240)
- 2 x 1000uF Capacitor (SB Part CP1000)
- 2 x UltraBright LEDs (SB Part UBLED-R)
- 2 x 100k Resistors (SB Part 100k)
- 2 x 22uF Capacitors (SB Part CP22)
- 4 x 0.22uF Capacitors (SB Part CP0.22uF)
- 2 x 2 MegaOhm Resistors (SB Part R2.0M)
Pummer Circuit
- 74HCT240 (SB Part 74HCT240)
- 8 x 2n3904 Transistors (SB Part TR3904)
- 8 x CP0.22µF Capacitors (SB Part CP0.22uF)
- 8 x 1k Resistors (SB Part R1k)
- 2.2 MegaOhm Resistor (SB Part R2.2M)
- 3 MegaOhm Resistor (SB Part R3M)
- 3.3 MegaOhm Resistor (SB Part R3.3M)
- 4.3 MegaOhm Resistor (SB Part R4.3M)
Herbie1.gif & Herbie.txt - Although not a true BEAM robot, this simple schematic by Randy Sargent is small, simple, slick, and effective. My own version uses a pair of pager motors and three cells from a 9V rechargeable battery. Hard to get any simpler than this device!
Theory of operation (How does it work?)
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.
Circuit Diagram:
![]()
Not crazy about bitmaps? Us neither. Try a nice, vector PDF file!
Construction procedure:
-
Gather all your parts:
You can get all the parts you need here.
Parts List:
- 2 - Sc1 BEP boards
- 1 - IMx BEP board
- 1 - CHG BEP board
- 1 - 25c BB1 BEP board
- 2 - BEP Leg mounting pads including 6 mounting screws
- 2 - Pair of 3mm Sintra cut outs to hold the servos at a 45 degree angle to each other (change to suit your preference)
- 2 - 74HCT240 for the Servocores. These must be the HCT versions to work properly.
- 1 - 74AC240 for the IMx multiplexor. For this project we also used a HCT version for consistency (makes no matter to the IMx operation).
- 4 - 2N3906 or 2N2907 transistors
- 4 - 0.47µF capacitors
- 8 - 0.1µF capacitors
- 2 - 22µF capacitors for power filtering
- 4 - AAA Ni-Cad batteries
- 2 - Dual AAA battery holder
- 1 - 6.8µF capacitor (Backup timer cap)
- 6 - LEDs, All the same colors or all different. You decide!
- 2 - 16 inch pieces of thick copper leg wire (8ga solid)
- 8 - Sip sockets (for easy resistor swapping)
- 2 - Servos, must be unmodified, with brains intact!
- 2 - Tactile sensors
- 1 - Power switch
- 1 - 1.3mm Barrel jack (optional for charging batteries)
Resistors (Not all shown in image)
- 4 - 20K potentiometers (Sets limits of servo travel)
- 10 - 1K resistors
- 6 - 100K resistors
- 2 - 10K resistors
- 2 - 47K resistors
- 2 - 1.5M resistors (Slave value resistors)
- 2 - 100 ohm resistors (Sets charge current limit)
- 1 - 470 ohm resistor
- 1 - 1M resistor (Sets backup time)
- 1 - 2.2M/2.4M resistor (Master Bicore frequency resistor)
-
Prepare the BEP boards
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!
-
Populate the BEP modules
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.
-
Servocore installation detail
This is a close up shot of the Sc1
-
IMx Multiplexer installation detail
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.
-
Body Construction
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!
-
Brain meets body!
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.
-
Connecting modules - Front Sc1 to IMx
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.
-
Power / Charger
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 +.
-
Initial Servocore testing
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!
-
Mounting brains to the body
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.
-
Attaching the rear motor to the back Servocore
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.
-
Attaching the forward motor to the front Servocore
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).
-
Connecting the battery pack negative lead
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.
-
Wiring up the battery packs in series
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.
-
Connecting the battery pack positive lead
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.
-
Legs
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 shaping / Servocore setup
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.
-
Tactile sensors
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!
-
Complete!
After sensors are installed it’s complete!
Movies
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).
Troubleshooting
- If no LED’s light up when power is connected, double check polarity and voltage of the power source or batteries.
- The Servocore is set up to give a range between the two end stops. The potentiometers should be able to make the servo hit both the stops on either side. If this can’t be done, try reversing what potentiometer sets which stop by setting the potentiometers on the opposite side they are on now. That was really confusing - sorry.
- Let’s try that again. Each trimpot can control either the left or right end stop position, as it depends on how far the resistance has been cranked. Try setting the left trimpot by rotating the adjustment screw all the way to the left (counter-clockwise) 20 turns, then back right 3 turns. Set the right trimpot by rotating it’s screw all the way to the right (clockwise) 20 turns, then back left 3 turns. The left trimpot should now set the left rotation limit, and the right trimpot the right rotation limit.
- If the walkers just takes short steps no matter what the potentiometers are set to then try increasing the master resistor to a larger value.
Hints, tips and useful advice
- Try to tune the walker for a maximum stride length without falling over, this will decrease the chance that the walker will get high centered as well as this increases its step height.
- Try tuning the walker for velocity by making rapid, short-arc leg sweeps. Set the left/right rotation to only 20 or 30 degrees, and lower the master Sc1 resistor value so it cycles back and forth quickly.
- The input voltage to charge the Ni-Cads should be around 7.2V, but can be as high as 12V. Any higher, and it could smoke up the resistors on the CHG board.
New!
- March 26, 2002: Ah! Somebody actually built this BEP app! Check it out at http://breadboard.solarbotics.net/walk_01.html
| The following instructions detail how to build a Solar Power Smart Head version 3. The Head will seek light and when it finds the brightest source it will go into a low current standby mode. This version also comes with an low power FLED circuit to indicate when the head is active. |
So How does it Work?
The Power Smart Head circuit was designed by BEAM-list guru Wilf Rigter, and since its introduction, the circuit has gone through many iterations, each improving on the previous. This latest version has been tweaked, tuned and optimized… for now! We’ve taken our Bicore Experimenter’s PCB, and used a MD2 and BC1 module to construct this project.
Wilf also suggests: Current passing through the LDRs in bright light is wasted energy. A solution to reduce the current through the eyes is to add some sunglasses. This can be done by darkening the surface of the LDRs with a felt pen. Add one layer at a time and measure.the resistance of the LDR under a bright light with an ohmmeter. The resistance should be about 1K for each LDR. Now the amount of energy wasted when the light is bright is negligible. Be forewarned: This will also reduce sensitivity of the eyes a bit.
The Eyes / Voltage Divider
The Solar Power Smart Head uses a pair of photoresistors as a voltage divider. By tapping the signal from between them, a voltage is read that varies from 1/2 the system voltage (if running from 5V, aimed directly at the light is 2.5V). The greater the eyes are off balance, the greater the voltage will stray from the “ideal” 1/2 voltage. If it turns one way, voltage climbs. If it turns the other way, voltage drops.
You might notice that the eyes are arranged so that they’re wired in series from Vcc, through the eyes, and to …a output gate? Well, it’s like this: In bright sunlight, the CdS cells (the eyes) have a resistance of only about 150 ohms each, for a total of 300 ohms. If you wired these eyes up across Vcc and ground, you’d have a HUGE load on the solar cell when you want it as efficient as possible. So, by terminating the ground connection of the eyes to a gate output, the eyes are “turned off” during charge. When the circuit activates, the gate output snaps low and acts practically as a ground connection, which is good enough for the eyes to do their thing.
The High / Low Oscillator
This varying voltage from the eyes is fed into what is called a “high / low / oscillate” circuit with three types of output states: 1) high 2) low 3) pulsing. When all is right, it spends as much time being high as it does low. When the voltage input from the eyes is introduced, it influences the “high / low” circuit to pulse longer on the high or low side (depending if the input voltage is higher or lower than ideal). When the eyes receive unequal light, the output is a steady high or low, and the motor turns left or right until the light on the eyes become close to balanced.
Nv / Nu Deadband
This rapid chain of off-kilter highs and lows is streamed to another circuit called a “bipolar monostable / delay circuit” (cool technophrase to baffle common folk with, eh?). This circuit is also known as a Nv / Nu driver. The Nv / Nu driver is set up so that it will only send a dissimilar signal to the motor driver if it’s “so much” out. A dissimilar signal is important, because to get a motor to rotate, you have to feed a high signal to one side, and a low to the other to get a flow of power. If both sides of a motor’s inputs are high or low, there’s no difference - no power flows; no motion happens. The “so much” portion of the Nv / Nu circuit is called deadband, and means the area in which the circuit thinks the signal is close enough to ignore. If the input signal strays outside of the deadband, it’s time for the circuit to take action!
The Nv / Nu deadband works by “living” off of equal, but opposite polarity signals. When the SPSH is aimed at something, the signal train feeding the Nv / Nu is 50/50 - half the time on, half the time off. In this situation, the capacitor sitting in the Nv / Nu acts as a wire, passing the same signal through it to the other motor input. As one of the motor inputs is sitting behind a 10M resistor, this capacitor-passed signal can easily over-ride it. The result is that the motor inputs are now both the same, and nothing happens. When the signal train strays too far from balanced, the Nv / Nu capacitor finally charges up, and can’t “stomach” any more signal. A signal difference passes through the 10M resistor, and BOOM! We have movement!
“Power Smart” Indicator
Also included is a high efficiency LED flasher that serves the dual purpose of using the regularly unused gates and providing a useful running indicator. Note: This is not a “lock-on” indicator. It is simply a very efficient blinker that turns on when the SPSH is on (moving or not). When the circuit is charging, it is being “held off” by the rest of the circuit.
Solar Engine
Of course, being a solar device, we have it hooked up to a solar cell and a few other components to make it function under light. The SPSH will take a bit to charge up, then (if there’s a need to re-align) it will turn every once in a while. If there’s no need to move, it’ll happily blink an LED at you.
The solar engine powering the SPSH utilizes a 1381 voltage trigger, which outputs a high signal when the supply voltage exceeds its set trigger voltage (in this case for a 1381J, 2.7V) and a low signal when voltage is below the trigger voltage. The high signal when the 1381 triggers is inverted and enables the PSH circuit (enables with a low signal). The +Vcc reference is powered through a regular silicon diode, due to the low current the voltage drop is about 0.3V so the 1381 really sees +Vcc - 0.3V. When the 1381 enables the 1/2 of the 74HC240 chip housing the head circuit, another inverter is to create a “Latch signal” to yank the +Vcc reference of the 1381 up to practically the supply +Vcc. This hysteresis value between the voltage drop of the diode and the output voltage of the inverter gate is what causes this circuit to latch.
For some much more detailed operational analysis check these links:
http://www.solarbotics.net/wilf/PSH/heads101.html
http://www.solarbotics.net/library/circuits/bot_head_pshead.html, particularly the schematic at the bottom of the page, which is the one used as a basis for this project.
A Few Changes to the Original
A few minor changes were made to the original SPSH3 circuit, including the addition of a 0.47µF capacitor, decreasing the power storage capacitor from 1.0F to 0.33F, and using a 22µF capacitor instead of 10µF.
Adding the 0.47µF capacitor helps filter power to the 1381 when the supply voltage sags, preventing false resets. Using 0.33F capacitors for power storage makes the head trigger more frequently, but shortens the running time. Substituting the 10µF for a 22µF capacitor gives a slower, but brighter LED flash.
If you want to adjust the “deadband” try replacing the 510k resistor with a 500k or 1M trimpot feeding from the eyes to the High / Low oscillator. The lower value it is, the more sensitive the headbot will be, up to the point where it will always be seeking left and right trying to optimize its aim. Adjusting this resistor is easier than tweaking the actual 10M Nu / Nv resistor. You know how hard it is to find a 10M trim potentiometer?!?
Wilf expresses concerns on how we’re running the circuit with “floating inputs” when the chip is deactivated. Although we’re not presently having problems with the design, Wilf feels (correctly) that a couple 1M resistors between the inputs and ground (or Vcc) will make it quite robust.
Here’s his full review: “The pin 13 input of the 74HC240 and all the inverter inputs of the74AC240 driver are floating when the SE is off. The trapped voltage at those inputs can be the SE reset voltage and that voltage remains the same while the supply cap is charging. This can cause problems as Vcc is rising and the input is held at a lower voltage. Even though the outputs associated with those floating inputs are tristate, the Vcc leakage current of the chips can greatly increase (>50mA) and hang up the circuit. A couple of 1M resistors between the floating inputs and GND (or Vcc) will take away the uncertainty.”
Circuit Diagram:
If you find that a wee bit small to read, click on the image for a much larger GIF of the schematic, or click here for a PDF copy of the same schematic.
Construction procedure:
1. Gather all your parts:Or click here to add all the parts to your cart Parts list: 1 - BC1 BEP board 1 - 510K resistor |
|
2. Forming the baseSintra is a thermoplastic, meaning that when you heat it up you can shape it. A couple of methods work well for heating it up- leave it in boiling water for a minute or use a heat gun. We tend to use the heat gun as it’s less messy, but it does require a bit more skill to use. Just heat the Sintra up, bend it to the desired shape, hold it there while it cools and voila - it holds the shape! Pick a shape that appeals to you, as it’s simply a base to mount the head to. If the shape doesn’t meet your expectations, you can always re-heat it and try again. Sintra is pretty useful construction stuff. |
|
3. Glue mounting wheel on base and insert motorSuperglue- Specifically “Flash” Cyanoacrylate works very well for bonding Sintra to gear motor wheels. |
|
Figure 4.1 Figure 4.2 Figure 4.3 Figure 4.4 |
4. Solder the 74AC240 into the BEP MD2 “Motor Driver” moduleFigure 4.1: Be very careful not to mix up the 74AC240 with the 74HC240. The 74AC240 works best for driving motors because of its higher current carrying capabilities. Solder the 74AC240 chip in place and watch the chip orientation. Figure 4.2: Usually, solder bridges are a bad thing but in this case we are using them to make convenient electrical connections. Run solder bridges across the inputs and outputs to make two groups of four by placing four inverters in parallel for each side of the motor. Teaming up inverters increases the available drive current to the motor. Figure 4.4: Cut the enable trace isolating it from ground, the enable will be connected to the enable on the BC1 board later. That’s basically it for work on the MD2, set it aside for now and begin work on the BC1 board. |
Figure 5.1 Figure 5.2 |
5. Solder the 74HC240 into the BEP BC1 ModuleFigure 5.1: Leave the MD2 for now, as we’re going to start on the nitty gritty brains of the Power Smart Head. Start by soldering in the 74HC240 chip. Again, watch the chip orientation. Figure 5.2: Flip the PCB - we need to enable lines on pin 19 to be isolated. Do this by cutting the trace tying the two enables together and the trace from pin 19 to ground. |
6. BC1 solder bridgesAs the BC1 is intended to be an “all-purpose” sort of module, there is some custom work to be done. First, we’ll have to make four solder bridges to the BC1. Starting at the top right side, run a solder bridge between pin 1 and ground, which will permanently ground this enable line. Remember, you’re working on the bottom of the chip, so pin numbers start at the top right corner and go down, and back up the left side. Down and to the left of that a solder bridge, connect pins 17, 18 and 19. Near the bottom left, bridge pins 8 and 9 together. Lastly, right of the previous step, pins 12 and 13 have a bridge connecting them. |
|
Figure 7.1 Figure 7.2 Figure 7.3 Figure 7.4 Figure 7.5 |
7. 1381 trigger sectionFigure 7.1: The 1381 “J” trigger is soldered into the pads near the power filter capacitor , by the top right of the chip. 1381 pin 1 is soldered into IN1 on the BC1. 1381 pin 2 is soldered to a free pad and pin 3 is soldered to the nearest ground pad. Figure 7.2: A 0.47µF capacitor is soldered across the 1381 Vcc and ground rails (pin 2 and 3). This capacitor smooths power to the 1381 and keeps it from prematurely resetting by accident. Figure 7.3: A 1N914 diode is soldered between Vcc and pin 2 of the 1381. This diode isolates power to the 1381, letting it do it’s job when the power sags during motor operation. Figure 7.4: A 100K resistor is installed between O5 and IN1. Figure 7.5: It should resemble something like this when you are done. |
8. BC1 JumperFlip the PCB over and run a jumper wire between O5 and pin 2 of the 1381. This is part of the enable latch circuit from the 1381 trigger. |
|
Figure 9.1 Figure 9.2 Figure 9.3 Figure 9.4 Figure 9.5 Figure 9.6 Figure 9.7 Figure 9.8 |
9. LED flasher SectionThe following diode, two resistors, capacitor and LED are part of the LED Flasher circuit that blinks the LED when the head is active. Figure 9.1: Solder the other 1N914 diode with the Cathode pointed towards IN2 and the Anode pointed towards the group of pins 17, 18 and 19. Figure 9.3: Solder in a 100K resistor between pin 6 of the 74HC240 and the other end of the 10M resistor. Figure 9.4: Add a 22µF capacitor between the resistor combination and pin 14 of the 74HC240. capacitor + goes to pin 14 as shown by the red lead. Figure 9.6: Solder the LED between a pair of free pads near the bottom right of the BC1 board. Figure 9.7: Run a wire between LED Anode to pin 6 of the 74HC240, show by the red wire. The small black wire is connected to the + of the 22µF capacitor and to the Cathode of the LED. Figure 9.8: Details of the black wire connection to the Cathode of the LED. |
10. Soldering in 0.01µF capsThe two 0.01µF capacitors are soldered in so one goes between pins 11 and 12, the other capacitor needs to straddle a pin to go between pins 13 and 15. |
|
11. Add 10M and 5.1M resistorsThe second 10M resistor is soldered between pin 8 and 15. The 5.1M resistor goes between pins 9 and 11. |
|
12. The 510K resistorThe 510K resistor goes from pin 11 and a free pad, which will later be connected to the center point of the CdS photoresistor voltage divider. |
|
13. Just one last board jumper wireJumper goes between 6 and 16 (blue wire). This is a part of the LED flasher circuit. That’s basically it for work on the PCB! |
|
14. Soldering the 0.33F capacitors togetherThe two 0.33F capacitors need to be soldered in series to make a 5V 0.165F capacitor. |
|
Figure 15.1 Figure 15.2 |
15. Cutting cornersFigure 15.1: The corner of both the MD2 and the BC1 are chamfered. This is done so they fit tightly to the motor body, with the flat of the chamfer resting against the solar cell. Be careful while cutting the chamfer so that any important traces are not cut. The outside ground line goes all the way around the board so cutting it once does not change it electrically. Figure 15.2: The boards are attached on either side of the motor |
16. Putting it togetherEverything gets assembled like this. The CdS photoresistor eyes are installed in this figure (but installed in the next step). |
|
Figure 17.1 Figure 17.2 |
17. The eyesFigure 17.1: It is wise to insulate the wires coming from the CdS photoresistors, as it will prevent them from shorting together, as well as giving some surface for the glue to stick to. Figure 17.2: The eyes were angled at approximately 45 degrees. |
Figure 18.1 Figure 18.2 Figure 18.3 |
18. Wiring the eyesFigure 18.1: Wire up the CdS cells |
Figure 19.1 Figure 19.2 |
19. Adding the power storage capsFigure 19.1: The 0.33F capacitors fit nicely on the rear of the motor. The capacitor + and - are soldered right onto the power filtration capacitor location. Figure 19.2: Another figure of the same, to show that the bare capacitor leads do not touch anything else. |
Figure 20.1 Figure 20.2 Figure 20.3 |
20. Attaching power lines of the boards togetherFigure 20.1: Image of the ground and Vcc connections to the MD2 board. Figure 20.2: Detail of the positive connection to the BC1 board. Figure 20.3: Detail of the ground wire to the BC1 board. |
Figure 21.1 Figure 21.2 |
21. Attach outputs of the PSH to the motor driver.Figure 21.1: The blue wires are the outputs of the PSH being connected to the inputs of the motor driver. Figure 21.2: Detail image showing the output connections of the BC1 board. The outputs are labeled O6 and O7. |
Figure 22.1 Figure 22.2 |
22. Outputs of motor driver to the motorFigure 22.1: The green wires are the connections from the outputs of the motor driver to the motor. If the head rotates opposite to what you expect, this is probably the easiest point to correct the behavior. Figure 22.2: Detail image showing the output connections of the BC1 board. The outputs are labeled O6 and O7. |
Figure 23.1 Figure 23.2 |
23. Lastly, attaching the solar cellThe ‘+’ from the solar cell, wire a connection to any positive trace on the board (the center rail). The ‘-’ from the solar cell goes to any ground trace on the PCB (the edge rail). |
24. All done!Enjoy. |
Troubleshooting:
-
To help trouble-shoot, to have a DC power supply and a multimeter. With a 1381 “J”, a supply voltage over 3.22V should be sufficient to start the circuit and keep it running continuously. Any voltage source over 3.22V will start the LED flashing and the head tracking light. By attaching a DC supply this help to troubleshoot as it bypasses the solar engine and allows continuous operation.
-
If the head only turns one direction the CdS cells may be very un balanced, check this by giving the eyes approximately equal light and measuring the voltage at the center of the voltage divider. The voltage should be close to half the supply voltage. Actually measured value at 1.71V. If the value is way off the best solution is to just replace the eyes.
Hints, tips and useful advice :
-
Tuning the head is most easily accomplished by changing the angle the eyes are set at. A potentiometer can be set between the eyes to electrically tune for a left/right bias.
-
Adding battery power is a simple matter of wiring a battery is parallel with the storage cap. Just make sure that the battery voltage is sufficient to trigger the 1381. This project could be made exclusively battery power by just removing the 1381 trigger stage and have the enable lines permanently grounded.
Copyright © Solarbotics Ltd., 2003, all rights reserved.