Building Instructions

1-11

Start by building the Castor Bot.
Click the picture for building instructions.

The "Game Controller" built by the
remaining steps in this project can also be used to control other robots
that you design yourself. See the Challenges section at the end of
the building instructions for details.

12

Note: The construction of the controller is
not symmetrical. The left side is different from the right side.
Look at the pictures in each step carefully.

13

14

15

16

17

Note: The white beams used in this step need
to be white in order for the light sensor to work correctly. If
you don't have any white beams of this size (because you are
using the Education version of the NXT
set), then you can tape a small piece of white paper over the bottom
of these parts so that the light sensor will see white on the bottom of
these beams (see How the Controller Works).

18

19

Turn the controller upside-down then insert the axle as shown below.

For this part of the step:

Hold the axle in with one finger to
keep it from falling out.

Turn the controller back right-side
up

Insert the thumb control plate over
the axle (angled beams pointing up), and secure it with the bushing
as shown below.

Push the thumb plate back and forth
to make space to put the two rubber pieces on each side as shown
below.

The rubber pieces are used to push the
thumb control back to the center position when you let go. If you
think that this makes the thumb control too hard to push, you can remove
them and keep the control centered manually with your thumb when
necessary.

20

Turn the controller upside-down to install the touch sensor as shown below.

21

Make sure that the light sensor is
centered over the gray beam in the center of the thumb plate when the
thumb control is centered, as shown below.

22

Use the two longest wires to connect the
light sensor to port 3 and the touch sensor to port 4 on
the NXT.

23

This wire clip will help keep the two
wires organized and reduce tangling.

Car
with Game Controller Programming

Use the program
Game Control for the Car with Game Controller. This program
could also be used along with the controller built in this project to
control other robots that you create. See the Challenges section
below for details.

Using
the Game Controller

The light sensor on the game controller must be
calibrated before it will work right. At the beginning of the
program you are asked to steer the left thumb plate all the way to the
left, then all the way to the right, then put it in the center, pressing
the touch sensor button after each step. This allows the light sensor to
see what the different colors look like so that it knows what range of
light to expect. These steps are pictured below.

Once you have completed the three calibration steps,
you are ready to drive. Driving works as follows:

When the touch sensor
button is pressed and held down, the robot will drive forward and
the left thumb plate will steer the robot left and right while it is
driving. The more you move the thumb plate, the sharper turn
the robot will make.

When the touch sensor
is not pressed, the thumb plate will pivot the robot left and
right in place. The more you move the thumb plate, the faster
the pivot movement will be.

While driving, the NXT
display will draw a center line and a moving circle to indicate the
position of the thumb plate, and display the word "Pressed" whenever the
touch sensor button is held down.

How
the Controller Works

The left thumb plate of the game controller works by
making the light sensor see different shades of gray when the plate
moves back and forth. The program reads the light sensor value and
uses that number to determine how much to pivot or steer, and in which
direction.

When the left thumb plate is
centered,
the sensor sees the gray beam.

When the thumb plate is all the
way to the left,
the sensor sees the white beams.

When the thumb plate is all the
way to the right,
the sensor sees the black rubber pieces.

When the thumb plate is moved
slightly to either side, the sensor sees a mixture of two
colors, which will give intermediate values between the ends.

Challenges

The
Game Control program is
long and complex and contains a lot of Math blocks to calculate
various numbers that are needed to make the light sensor work as an
"analog" steering control. If you are getting good at NXT
programming, try looking at this program and reading the comments to
see if you can understand how any parts of it work. Don't
worry if you don't understand how the calculations with the Math
blocks work, just take a look at the other parts.

The
Game Control program
along with the controller built in this project can be used to
control other two-motor driving robots that you design and create
yourself. Try building another robot to control with it.
Here is what you will need to do:

Your robot should
have two motors used to power it, with the motor connected to
port B on the left side of the robot and the motor
connected to port C on the right side.

As in building step
22 above, connect the wire that leads to the light sensor of the
game controller to port 3 on the NXT and the wire leading
to the touch sensor to port 4.

Use the
Game Control program
and try it out. If your robot goes backwards instead of
forwards when the touch sensor is pressed, here are four
different ways to fix it (choose only one):

Turn the NXT
brick around on your robot so that the whole robot faces the
other way (this is probably the easiest fix), or

Rebuild your
robot so that the motors are upside-down from the way they
were, or

Rebuild your
robot so that the motors are turned around front-to-back
from the way they were, or

Modify the
Game Control
program to change the Move blocks to go the other direction.
As written, the Move blocks use "backwards" for the
direction, so you will need to change them to "forwards".
Find the six green Move blocks in the program. One of them
is just a Stop, so you will need to change the direction on
the other five blocks.

The controller and the
Game Control program
could also be used to control other kinds of robots (other than
two-motor drive robots) or machines that you design yourself.
If you understand enough of the program to modify it, you could
change it to control something else. The key things to find in
the program are the six green Move blocks. These six blocks
correspond to the following six cases from the controller:

Steering right with
the touch sensor pressed

Steering right
without the touch sensor pressed

Steering left with
the touch sensor pressed

Steering left
without the touch sensor pressed

Steering centered
with the touch sensor pressed

Steering centered
without the touch sensor pressed

These six cases could
be modified to do something else. In each case, you know
whether the touch sensor button is being pressed or not, and you
have a value in the variable named "Control" which indicates how far
the left thumb plate is being pushed to the side.