Summary - Parallax Boe-Bot Student Manual

Hide thumbs Also See for Boe-Bot:
Table of Contents

Advertisement

Page 188 · Robotics with the Boe-Bot

SUMMARY

In this chapter, instead of navigating from a pre-programmed list, the Boe-Bot was
programmed to navigate based on sensory inputs. The sensory inputs used in this chapter
were whiskers, which served as normally open contact switches. When properly wired,
these switches can show one voltage (5 V) at the switch's contact point when it's open,
and a different voltage (0 V) when it's closed. The BASIC Stamp I/O pin's input
registers store "1" if they detect Vdd (5 V) and "0," if they detect Vss (0 V).
The BASIC Stamp was programmed to test the whisker sensors and display the test
results using two different media, the Debug Terminal and LEDs. PBASIC programs
were developed to make the BASIC Stamp check the whiskers between each servo pulse.
Based on the state of the whiskers,
section called navigation subroutines similar to the ones developed in the previous
chapter to guide the Boe-Bot away from obstacles.
intelligence, an additional routine was developed that enabled the Boe-Bot to detect when
it got stuck in a corner. This routine involved storing old whisker states, comparing them
against the current whisker states, and counting the number of alternate object detections.
This chapter introduced sensor-based Boe-Bot navigation. The next three chapters will
focus on using different types of sensors to give the Boe-Bot vision. Both vision and
touch open up lots of opportunities for the Boe-Bot to navigate in increasingly complex
environments.
Questions
1. What kind of electrical connection is a whisker?
2. When a whisker is pressed, what voltage occurs at the I/O pin monitoring it?
What binary value will occur in the input register? If I/O pin P8 is used to
monitor the input pin, what value does
what value does it have when a whisker is not pressed?
3. If
, what does that mean? What does it mean if
IN7 = 1
and
IN5 = 1
IN5 = 0
4. What command is used to jump to different subroutines depending on the value
of a variable? What command is used to decide which subroutine to jump to?
What are these decisions based on?
5. What is the purpose of having nested
statements in the program's Main Routine
IF...THEN
have when a whisker is pressed, and
IN8
?
IF...THEN
As an example of artificial
? How about
IN7 = 0
statements?

Advertisement

Table of Contents
loading

Table of Contents