DocumentsDate added
Just like single events, multiple events can be setup in the same
code to track different variables. The only difference is that all
event structures must have the same event landing. This means that
if 3 events are setup and only one triggers, the code will have to
determine which one of the 3 changed so it can perform the appropriate
action. In this example, two push events are used to control the motion
of a car. After setting up both events, monitoring is started and
the code is forced into an infinite loop. This is done to prevent
the code from reaching the event landing block prematurely. If the
red event (touch sensor 1) is triggered, the code will take the upper
path in the event fork and stop motor A. If the red event was not
triggered, then by default, the blue event must have been triggered
and the code will take the bottom the path of the fork. Three or more
events can be checked by increasing the number of event forks.
The RCX display is a powerful tool for receiving feedback from different
programs. Often times, however, it is necessary to monitor more than
one variable at the same time. One solution to this problem is to
use a program similar to the one above.
The code above is designed to give feedback on two touch sensors.
The first step is to zero all relevant containers.
Remember, since containers are also global, old values from earlier
tests could still be stored, so zeroing them is essential. Next,
a task split is used to monitor the two touch sensors separately.
Each branch of the split waits for its touch sensor to be pressed,
adds either 1 or 100 to the red container, and then waits for the
sensor to be released. Thus the total clicks of touch sensor 1 will
be displayed in first two digits of the display, and the total clicks
of touch sensor 2 will be displayed in the last two digits of the
display. This code can be adapted to show any kind of sensor value,
including light or rotation. If the variables are in seperate containers
in the program, just multiply one container by a constant so that
it will display in the hundreds or thousands place on the display.
Then just add the two contatiners together in a thrid container
and display that value.
Like its smaller cousin, the three-button remote control is a
great way to define unique behaviors for your robot. The advantage
to the three-button control is that there are now 8 possible behavior
combinations, compared to just 4 on the 2-button remote. In addition
to forward, left and right motion on our two motor car, it is now
possible to move in reverse, and even control a third motor. With
so many combinations, it is possible that you don?t need them
all. In a case like that, simply wire the fork branch you don?t
want to control straight into the merge fork block. If the program
travels along that branch, it will simply jump back to the beginning
again.
Two RCX's can be programmed to communicate with each other using
the mail function. Mail represents the passing of integer values
between separate RCX's using the IR port. In this example, the same
code is used for both the receiver and the sender, so that you may
interchange the roles of two RCX's without having to re-program
them.
The top half of the first split is the receiving algorithm. Each
RCX will wait to receive mail from the other. Once this happens,
the integer value received will be placed into the red container.
The value is then displayed and the RCX beeps a corresponding number
of times. The RCX then waits for mail again.
The bottom half of the first split is the sending algorithm. The
user can enter in a mail value to send by pressing touch sensor
1 the desired number of times. For example, if number 3 was to be
sent, touch sensor 1 would be pressed 3 times. Once this value is
programmed, pressing touch sensor 2 will send the mail out. In general,
mail is a useful way for RCX's to pass information to one another.
It can be used to trigger responses, send positions, or pass container
values.
When run, this code will cause a car to snake forward in wide arcs.
The length of the turn can be modified by changing either the time,
or the motor power.