| RILYBOT 4: Motor Speed Input Adapter Plates |
The motor speed input adapter plates allow an input to be used to read the value of one or two touch sensors and the speed of a motor through a single sensor input.
The speed of the motor can be read while the motor is running, but this adapter is mainly intended to read the speed of a motor that has been turned off with the Float() command, or even a motor that isn't connected to an output at all (thereby functioning only as a rotation input).
Start with a 2x8 conduting plate. On the underside there are two long strips of metal. These need to be cut in four places so it looks like this:
Notice the numbers: the four pieces of the top strip are terminals 1, 2, 3, and 4 and the bottom strip is 5 and 6. Each segment is two studs long except number 5 which is 6 studs long.
Connect the following resistors:
4.7K from 1 to 2
47.0K from 1 to 4
47.0K from 5 to 6
(If you want to read two touch sensors and a motor at once, you can add a fourth resistor:)
10.0K from 1 to 3
In order to prevent short circuits and to make all the necessary connections fit, you will need to use some short lengths of wire.
Then, use the contacts 4+6 to connect to a motor. This motor can also be connected to a motor output. Connect the first touch sensor to contacts 2+5 and a second (if desired) on contacts 3+5. Connect contacts 1+5 to the sensor input.
If you wish, you can put the 2x8 conducting plate directly across the sensor and motor connectors on the RCX this avoids the need for lots of extra connector cables and makes the overall design more compact. However, you will need to lift the adapter plate up by using 1x2 conducting plates. There are two reasons you need to do this: to prevent physically hitting the RCX's Power, View, Program and Run buttons, and to accomodate the fact that the motor and sensor connectors are not spaced the same distance apart as the 1+5 and 4+6 contacts on the adapter plate.
Configure the input as a raw mode input. Each of the four switch combinations will create a different value (you should measure these to calibrate for your resistors; I got values around 900, 550, 350 and 250). The motor will add different amounts to the value depending on which touch sensors are pressed from +-100 with neither touch sensor pressed to about +-25 with both touch sensors pressed.
Remember, if you want to use the motor as a passive sensor you have to stop it via the Float() command or its equivalent; if you use Off() it will just pin the motor voltage to 0 and the motor will be very hard to turn.
GPL notice: This document and the ideas contained herein are Copyright
© 1999 Robert P. Munafo, and are distributed under the Free Software
Foundation General Public License version 2.0. See
the FSF GPL page
for more information.
(c) 1996-2009 Robert P. Munafo.
email me
more info
This work is licensed under a Creative Commons Attribution 2.5 License. Details here
Back to my main page
s.13