HeadWalker is conceptually based on Justin Johnson's "PhotoWalker", but except for the head, the circuits are quite different. The name is generic, describing a class of robots. It refers to a modular type of walker that responds to signal from both a head and other types of sensors. The main modules are:
The head circuit is shown in the top half of the diagram and the walker circuit in the bottom half. Although they are shown on one diagram, they are comletely independent of each other. It's important with both these circuits to use the correct inverters. This is because parts of both circuits can be disabled by the control module. If you're not exactly sure how the 74HC240 chip works, it's best to follow the pin numbers shown on the diagram. Chip numbers, pin numbers, and a few component identifiers are shown in red.
The diagram shows motors connected directly to the inverters. In practice, the inverters are probably inadequate to drive the motors directly, and in any case motor noise is likely to disrupt the circuits. The motor symbols therefore represent motors and their drivers, complete with noise filtering.
A pair of optional diodes is shown on the left connecting the two circuits. With these diodes in place, the walker will turn in response to movement of the head. No additonal circuitry is needed. While you can wire the two circuits directly together using the diodes, I suggest instead that you bring the lines shown on the left out to a six pin connector. A simple plug with the two diodes attached can be plugged in to connect the circuits. Later the diodes can be removed and one of the several control circuits can be plugged in instead.
The head and walker circuits have both been tested independently by others with actual hardware and appear to function well. To my knowledge the two have never been connected together although the connection has been simulated. Resistor values in both circuits must be adjusted to suit the motors they are to control.
Power Smart Head ModuleThe head circuit in the top half of the diagram consists of the actual Power Smart Head (top row of 4 inverters) and a pair of integrators (second row of 4 inverters). The PSH circuit produces one high and one low output when it is tracking a light source. When it is locked on to the light source, the two outputs pulse slowly, both on and both off at the same time. The integrators smooth the pulsing outputs when the head locks on, pulling both outputs low.
The head motor is driven by the PSH circuit directly. The integrated outputs are secondary and send control signals to the rest of the robot's circuitry. If a high (+) signal is sent to the Head Disable pin, the integrated outputs are turned off completely. This allows the head to continue tracking light, but prevents it from influencing any other circuits.
If the head responds incorrectly to light (i.e., turns the wrong way), swap the lines at "Y".
Walker ModuleThe walker circuit in the bottom half of the diagram is a simple grounded bicore master driving a monocore slave. The master bicore is built around the rightmost pair of inverters and the slave monocore is built around the leftmost pair of inverters. Between these two circuit elements is an inverter in parallel with a resistor (R2) which links the two halves of the walker circuit.
This fifth inverter is used to reverse the walking direction. Normally the inverter is disabled and the signal from master to slave passes through R2 and then through R1. If a low (-) signal is sent to the "Reverse" pin, the reversing inverter is enabled. This will bypass R2 and invert the signal from master to slave, thus reversing the walking action.
Connecting either of the "Turn" pins to ground will alter the delay of one or the other of the master bicore neurons. This will cause the walker's legs to start to turn off center and the walker will move in an arc. If the walker turns the wrong way when responding to the head or a "brain" circuit, swap the lines at "X".
Control ModulesThe control modules monitor the output from the head circuit and control the connection between the head and the walker. They can also send signals of their own directly to the walker, based on other sensory input (e.g., tactile sensors). A few examples are provided here to illustrate how various types of control can be achieved. The modular design allows a great many alternatives to be created and tested all on the same basic platform.
While not essential, a circuit to test a new control module is useful. In the simple example at the left, a pair of pushbuttons simulate the outputs from the PSH circuit. Four LEDs respond to signals from the control unit being tested. This circuit can be built on a proto-typing perfboard, on one end of a breadboard, or on its own separate breadboard. The 1.0 k resistors (labelled RL) are current limiting resistors and should be adjusted to suit the test LEDs you are using.
The advantage of this circuit is that you can quickly test the various combinations of
sensory inputs without having to wait for the robot to move around. To test the
control circuit's response to the PSH turn signals, simply press one or the other of
the pushbuttons. To observe the effect of the control logic press one of the buttons,
or trip a tactile sensor in the contorl module, and observe the effect on the LEDs.
None of the control modules have been tested, either on a breadboard or on an actual robot. Before using these circuits, test them. If you encounter problems, I'll be happy to have a look and offer suggestions. I'll revise the posted circuits as necessary (or pull them off the page if they simply don't work). You may need to change the delay of the two sensory neurons to suit your particular robot.
Control Module - Model 1This control module was originally designed to give the robot a useful way of dealing with obstacles as it attempted to seek out bright light. The general principle is this:
The circuit is divided into sections which are described across the top of the diagram.
Notice also that the Head Turn inputs from the PSH are sent back directly to the Turn outputs. With no recent sensor contacts, the entire control circuit is inactive and the PSH signals are passed back to the walker circuit.
Control Module - Model 2Model 2 doesn't exist at the moment. The original had a serious logic flaw and never got beyond the drawing board. Watch for a new model 2 sometime in the future.
Control Module - Model 3This control module was designed to give the robot a different, but equally useful way of dealing with obstacles as it attempted to seek out bright light. The general principle is this:
The circuit is divided into the same sections as in the previous circuit. All the sections except for the 2-Contact Response section behave the same as in the Model 1 circuit. Only the difference in response is discussed here:
Control Module - Model 4This is by far the most complex and -- if it works -- sophisticated control module I've designed for HeadWalker. The Model 4 control module is sufficiently complicated that it has it's own web page.
Final ThoughtsOne characteristic of the PSH circuit is that it only sends output signals when the head is turning. This creates the situation where the head turns to face the brightest (or darkest) point, and then locks on to the source. Meanwhile, the walker may not have turned far enough to line up with the head, so it walks past the source rather than toward it. Of course this moves the head past the light source and eventually it will start to turn again and send turn signals to the walker. The overall effect, then is for the walker to wander in circles around a light source, rather than toward it.
If you would prefer different behaviour, and if your head motor is not too powerful, you can add a centering spring to the robot's head. This means that if the head locks on to the light source but the walker is pointing somewhere else, the head will keep getting pulled back in line with the body. This will keep activating the PSH circuit causing it to continuously send out "turn" signals.
The basic platform -- PSH plus integrators plus reversing walker is to me a very exciting starting point for robots with complex behaviours. The design takes the most important control inputs and outputs to a connector, which allows the builder to experiment with any number of control units. If I were to improve on the basic design at all, it would be to add 100k pulldown resistors to the "A" enables on both chips and take the enables out to the connector. This would allow a control unit to shut down the PSH or the walker circuit completely. It is also worth considering adding (+) and (-) pins to the connector. This would allow a complete, free-standing control unit to be added simply by plugging it in. "Plug and go" as it were.