
Page 205
Figure 10-2.
Hank, retrofitted with a light sensor
•
avoid()
is the highest-level behavior. It is triggered by the bumpers and does the standard back-up-and-turn.
Convincing Hank to seek light is surprisingly hard. You can, of course, implement your own algorithm in
seek_enlightenment()
. It's a neat feature of subsumption architecture that you can
concentrate solely on light-seeking behavior in
seek_enlightenment()
. The obstacle avoidance behavior is already programmed in a different behavior and will subsume the light-seeking
behavior as necessary.
Without further ado, here's the entire program,
LightSeeker.c:
#include "conio.h"
#include "direct-button.h"
#include "direct-motor.h"
#include "direct-sensor.h"
#include "unistd.h"
#include "sys/tm.h"
#define MAX_TASKS 32
pid_t pid[MAX_TASKS];
int task_index;
#define BACK_TIME 500
#define TURN_TIME 800
// Motor commands.
#define COMMAND_NONE -1
#define COMMAND_FORWARD 1
Summary of Contents for MINDSTORMS Robots
Page 22: ...Page 18 The back tread wheels are anchored to the shafts with the 16t gears ...
Page 23: ...Page 19 Page 20 Next start building support for the drive motors ...
Page 26: ...Page 23 The touch sensors are attached only by the shaft that runs through them ...
Page 41: ...Page 41 ...
Page 43: ...Next build the support for the light sensor ...
Page 80: ...Page 85 Make sure the bump on the long pin is up against the 4u beam ...
Page 82: ......
Page 84: ...Page 89 ...
Page 85: ...Step 14 is similar to Step 11 take a deep breath and go slowly ...
Page 87: ...Page 91 ...
Page 88: ...Page 92 Make sure that the two sides are at the same angle They should mirror each other ...
Page 89: ...Page 93 Page 94 ...
Page 90: ...Structural Support Page 95 ...
Page 91: ...Idler Wheel Page 96 ...
Page 92: ...Page 97 Drive Motor ...
Page 93: ...While you re putting the motor in hold on to the worm gear so it doesn t slip off Page 98 ...
Page 94: ...Grabber Arm Motor ...
Page 95: ...Page 99 ...
Page 96: ...Page 100 RCX Attach the RCX on both sides as shown Page 101 ...
Page 158: ......
Page 159: ...Page 175 The 16t gears are nestled inside the tread wheels ...
Page 160: ...Page 176 ...
Page 161: ...Page 177 Attach the motors to output A and output C as shown Page 178 ...