Anda di halaman 1dari 2

Chapter 7 Challenges

Questions
1. What is the frequency of the signal sent by tone(9, 38000, 8)? How long does this
call send the signal for? What I/O pin does the IR LED circuit have to be connected
to in order to broadcast this signal?
38 kHz is the frequency of the signal. Although the 8 in tone calls ms parameter
calls for a signal that lasts for 8 ms, the book said that testing indicated it lasted for
1.1 ms. The IR LED must be connected to the digital pin 8 socket for the tone signal
to make it flash on/off at 38 kHz.
2. What has to happen after the tone command to find out if the IR receiver detects
reflected infrared?
The code has to pause for 1 ms with delay(1) and then store the IR value by copying
whatever digitalRead returns to a variable; for example, delay(1) followed by irLeft
= digitalRead(10).
3. What does it mean if the IR detector sends a low signal? What does it mean when
the detector sends a high signal?
A low signal means that 38 kHz IR was detected, which means that the 38 kHz
flashing light the IR LED transmitted must have reflected off an object in its path. In
other words: object detected. A high signal means no 38 kHz IR was detected, so,
there wasnt any object to reflect the IR LEDs light. In other words: object not
detected.
4. What happens if you change the value of a resistor in series with a red LED? What
happens if you change the value of a resistor in series with an infrared LED??
For both red and infrared LEDs, a smaller resistor will cause the LED to glow more
brightly. A larger resistor results in dimmer LEDs. In terms of results, brighter IR
LEDs make it possible to detect objects that are farther away. But it can also have
annoying side effects, like seeing the reflection of the surface it is rolling on and
misinterpreting it as an obstacle.
Exercises
1. Modify a line of code in IrInterferenceSniffer so that it only monitors one of the IR
detectors.
int irLeft = digitalRead(10) by placing // to its left. Then, change if((irLeft == 0) ||
(irRight == 0)) to if(irRight == 0).
2. Modify AvoidTableEdge so that when it makes the BOE Shield-Bot back up, it also
turns a little so that it doesnt get stuck going straight back at the same drop-off.
maneuver(-200, -200, 250) to maneuver(-75, -200, 250).
Projects
1. Design a BOE Shield-Bot application that sits still until you wave your hand in front
of it, then it starts roaming.
One approach would be to add this code at the end of the setup function in
FastIrRoaming. It will wait until an object is detected before allowing the code to
move on to the roaming code in the loop function.
2. Design a BOE Shield-Bot application that slowly rotates in place until it detects an
object. As soon as it detects an object, it locks onto and chases the object. This is a
classic SumoBot behavior.
Rotating in place and waiting to see an object is almost the same as project 1. The
trick is to call the maneuver function to make it rotate slowly. Remember that the
maneuver functions msTime parameter just dictates low long the maneuver routine
prevents another maneuver from making the BOE Shield-Bot do something
different. You can instead use it to start a maneuver in a set-it-and forget-it fashion.
Then, let the code continue to the loop that monitors the IR detectors until it detects
an object.
3. Design a BOE Shield-Bot application that roams, but if it detects infrared
interference, it sounds the alarm briefly, and then continues roaming. This alarm
should be different from the low battery alarm.

Anda mungkin juga menyukai