A Two-Motor Reversible Walking Robot ==================================== Circuit adaptations by Terry Newton, last modified Oct 1, 1997 NOTE: The diagrams include a version of the Nervous Network, invented and internationally patented by Mark Tilden. Commercial usage is prohibited unless arrangements are made with the patent holder . Mechanical... ____________ Rear Motor __________ _________: PIC brain : ____ : Reverser : Drivers :____________: .-- Front Motor :-| | :__________:_________:____ .-' \ <-'______ (angled) : | | : Microcore / Nu neurons : \ \ :Photo : : |____| :_________________________: \ _\ :______: :.|....|..............................:..'..\...S---------O Side : |____| : .--------------------. : \_.-' `. Feelers : || : / \ : \\ : Front (2) : <> : | Cordless Phone | `. <> : S Feeler : || : | (NiCad) Battery | `. \\ : \ `........' \ / `......' \ || `--------------------' \\ \____| || \\ || || || || |__| |__| Topology... Feel L Front Feel R -\ +| /- \ `-----/--. \ photo / Nu- ->- = diodes : L R : : M = motors : : : *->--: 1-4 = Nv neurons (C input, R to gnd) *--:-:--:->--: Nu+ = pos. neuron (C to gnd, R to +) ..:..:.:..:.. `-<-. Nu- = neg. neuron (R to gnd, C to +) .--: 'brain' :----<-: : :...........: : Neurons made from 74HCT14 chip : :: + M - :: : Reverser made from 2 CD4016 chips : :`-2 4-': : Brain made from PIC16C56 and 24C65 : : |\ /| : : Nu+ : | \ | : .....:...... : : |/ \| : : Reverser : Forward: 1-->2-->3-->4-->1 `->-`--1 3--' :..........: Reverse: 4-->3-->2-->1-->4 + M - Walker circuit... + | Npn >|-----. Rev.Clr<--. .---|>|--*- + .-< Reset |e.---. | | /| | .----. | | Reset .------*-|470|-*--------. *---O< |--*-|1.5M|-' | Switch | |e`---' | | | \| | `----' .---*----------O|_ | Pnp >|-----' | | 2.2u | .----. | + O| \ | _|_ .---|<|---|-----' .--||--*-| 10 |---' | _|_ | | | _|_ `----' .-----|< Npn | .12u |1 |\ | .12u 2 |\ | .---.e| | .--||--*---| >O--*---. .--||--*---| >O---*--*-|470|-*-----. | | _|_ |/ | | _|_ |/ | | `---'e| | | | |1.5| 74HCT14 | | |1.5| | `-----|< Pnp | | | |_M_| | | |_M_| | _|_ | | | _|_ | | _|_ | | | | | `------. | Motors.. | | | CD4016 by 2 .---|----------|----------' MPJA 8679-MD | | | .----------|---|----------|-. 3V 30 rpm | | | .-|-*-|><|---*F `-*-|><|---*F| + | + | | *-|--' | | `---|-* _|_ + Rear \ / | `-|><|-. |R `-|><|-. |R| |100| Front Motor \ | `--|-|-*------' | | | |_K_| + Motor - / \ | .-|><|-|-'R| .-|><|-|-'R| .----. | e| - | | | | | `--|---*---|--' | *-|220K|-*--|< Pnp | | | `-|-*-|><|-* F| *-|><|-* F| `----' | | | | `----' ` | | | `-|---*------. | | | | .----.`---|---|------|----------|-. | + | | | .-|100K|----*---|------|----------|-|----' | | | | _|_`----' .-----' .----' | | .-----|< Npn | | | .12u 3 |\ | | .12u 4 |\ | | | .---.e| | | `--||--*---| >O--* `--||--*---| >O-|-*--*-|470|-*-----' | _|_ |/ | _|_ |/ | | `---'e| | |1.5| | |1.5| .--' `-----|< Pnp | |_M_| | |_M_| | _|_ | + _|_ | _|_ | .-|>|-. | | | | _|_ | 2.2u | Npn >|-----. | >--|<|-*------' *--||--*-- + | |e.---. | | Reverse | /| | _|_ `------*-|470|-*--------' `-|>|-*--O< |---*--. |390| |e`---' | To L, R <---|>|-* \| _|_ | |___| Pnp >|-----' feelers <---|>|-' |1.5|| +A| Front _|_ |_M_|| O|_ Switch Photocells _|_ *---O| \ Power and Sensors... .--<+A (390) | + source | _ RST>-' Feeler Opt Solar ____ ____ o *--|_|--> L \ Switches/ Cells | | | | | 5.1vZD | _ Photo \ / .--*--|- +|--|- +|--*---*--|<|-. `--|_|--> R |<-*->| Power| | |____| |____| | | 47u | .------------' _|_ | O | 3.6V Battery | `--||--* L <---*-- 10 --||-. | \ | | | | + | _|_ Feeler 47u | | O *---| | | | | |----* R <---*-----------|------' _|_ | | | | `-- 100 --O Ext `-- 10 --||-* *-- 68 -----*--------- 100 --O Charge 47u_|_ | ^^ | Npn.-100-->RST `----|>|----' Rev.Clr>--10K--|< charge LED e|_ Brain Circuit... (optional) .---*----*---*------------*-------*-------*-----------> + | _|_ _|_ | 2.2u | _|_ | .-----. | |22K||22K| | .--||-----' |4.7| .---|--< ra1 photo R (+) .--|1 |--' |___||___| | | |_K_| | .-|--< ra0 photo L (+) *--| |- | | | | .-----. | | | | .1u *--|24C65|------*----|---|--|--------|1 |--|---*-|-|--||--. *--| |-----------*---|--|--------| |--|-----*-|--||--*----> - | `-----' | | -| |--*-||-. | .1u _|_ _|_ *--|--------| |- 27p_|_ | | *--------| PIC |----------' | _|_ .---| |----820K------> rb7 Node 4 PIC = PIC16C56-RC/P or | .-----|---| |----820K------> rb6 Node 3 PIC16C56/JW (windowed) | | .---|---| |----820K------> rb5 Node 2 programmed with "rider" | | | .-|---| |----820K------> rb4 Node 1 code, or new "bnrider" | | | | | `-----' which doesn't use the | | | `-|-----*---------------< rb3 Feeler R (-) 24C65 eeprom or 22Ks. | | `---|---*-|---------------< rb2 Feeler L (-) | `-----|---|-|---------------> rb1 Reverse out *--100K-|---' | `--100K-|-----' .-|<|--2.2K-*---|<|---------------> rb0 Reset _|_Status LED My experimental brain code (in Parallax format) is at... http://www.nc5.infi.net/~wtnewton/otherwld/rider.txt - original version http://www.nc5.infi.net/~wtnewton/otherwld/bnrider.txt - bit-net version Using a CPU for a brain is entirely optional, and if you build this stuff get it walking first before worrying about any kind of brain. If learned ability isn't important, a few resistors, caps and diodes between the sensors and the micro-core will do just as well and maybe better - the coded brain doesn't know the best way to hook up the sensors, it has to luck up on it. A human brain can experiment until the best way is found. On my robot, I wire up parts in the PIC socket to experiment with simple hardwired connections. Different designs can be placed on DIP headers for swapping and comparison with coded brains. Notes... the 820K resistors are too small for useful control without a CPU to control the duty cycle, for hard-wired control increase to several megs. The 470 ohm resistors between the bases and emitters of the driver pairs are optional and control how much the microcore "feels" the motors. If building start with something higher like 2.2K. Here are a few translations... | | ---|>|-- diode Npn| --|-- crossing *-- connected ---||--- capacitor --|< transistor | wires | wires --100K-- resistor e| |\ (also boxed) ---> signal out --| >o-- inverting ---|><|--- analog ---< signal in |/ trigger _|_ ground `--- switch Reverser Circuit Details The NvSensors section of the BEAM Technical Faq shows a way to make a walker back up using a 74x244 chip. I chose to literally reverse the direction of the pulse through the microcore using a pair of analog switch chips, each arranged as a two-wire switcher with two states... I1 .-------. O1 I1 .-------. O1 a >----| ----- |----> A a >----| -\ /- |----> B | | | / | b >----| ----- |----> B b >----| -/ \- |----> A I2 `-------' O2 I2 `-------' O2 Normal Reversed A pair of these switches can be used to connect four Nv units so that the pulse can travel either way... .--> 1 --. .----> 2 --------. | | | | `--------|----------|--. | | .----. | | .----. | Normal: 1->2->3->4 `--| |--' | .---| |--' .--| |--. `-|---| |--. Crossed: 4->3->2->1 | `----' | | `----' | .--------|----------|----' | | | | | `--> 3 --' `----> 4 --------' Each cross-switch is made from a 4016/4066 chip as follows... + .-----------|-----. | .--._.--. | | C1 high, C2 low = normal `-| |-' | C1 low, C2 high = crossed I1 >-----*-| |-----. | `-| |---. | | O2 <---*---| |---|-|-*--> O1 inputs/outputs can be .-|---| |-. | | swapped as convenient. .-|-|---| |-*-|-|----< I2 | | | .-| |-. | | | | | | `-------' | | | | | `-|-----------' | | | `---|-------------*-|-------< C2 `-----|---------------*-------< C1 _|_ A simple transistor inverter is used to generate control signals for both of the cross-switches... .--220K--*--100K--*---- + | | e| | `------|< Pnp | | Reverse signal >---*-----------------|-----> C1 (active low) .--100K--*-----> C2 _|_ Finally the reverse signal must be applied long enough to do some good. This is where the Nu- neuron comes in handy... .---100------------------*--- + | .---||---' front | | C |\ feeler |<--------------*-----| >o-----> Reverse __/ | |/ .-100--*-- R --. R = 1M to 22M (1.5M) from >--10K--|< Npn `--|<|--* C = 4.7uF to .22uF (2.2uF) rst Nu e|_ _|_ The transistor prevents the walker from powering up in reverse, optional. ------------------------------------------------------------ Comments welcome, mailto: wtnewton@nc5.infi.net (Terry Newton) An expanded version of this text in HTML format is available at http://www.nc5.infi.net/~wtnewton/otherwld/robot2.html