Calculus-based Physics Lab Syllabus Example

advertisement
2007 – 2008
Computer Programming and Robotics Syllabus
Instructor: Chris D. Odom
Office Location: Spruance Alden Science Center, 1st West
E-mail: chris_odom@georgeschool.org
Phone Numbers: 215.579.6726 (office), 215.579.6760 (home)
Arrangements: 4 & 6
Text and Materials:  BasicX and Robotics: The Art of Making Machines Think
 Visual Basic 6.0. (The school will provide this for your own PC.)
 (Optionl) Small notebook or composition book
Class Content and
Prerequisites:
Quakers always valued life experience more than received wisdom.
-- R. L. Smith
A Quaker Book of Wisdom, page 64.
This quote from Smith’s book is exactly how I feel about learning computer programming, or anything
else for that matter. Most of us learn best by doing rather than being told what to do, and I strive to
make my classes as hands-on as possible. Each student will have access to their own classroom
computer and will use them continuously during the class period. I will not lecture on computer
theory, rather you and I will write own mini-programs individually and in small teams. Later, you will
fully take over and write your own larger applications.
In the first two terms we will cover top-down programming with the BasicX language. You will use
BasicX to program the BX-24 microprocessor – learning such topics as computer arithmetic, data
types, control structures, logic expressions, arrays, and lots of robotics and electronics applications.
If time permits, I will introduce you to the HTML language so you can create your own web journal.
In the last term we will both prepare for external competitions and learn about object oriented
programming (OOP) using Visual Basic 6.0. With VB you will manage visual controls, manipulate
user inputs, control file I/O, use conditional logic effectively, create computer animation and graphics,
build multimedia applications, use variable and control arrays, and distribute your applications.
It is expected that you are already proficient with common computer applications (word processing,
using spreadsheets, browsing the internet, navigating George Net) as well as applying the
mathematical techniques learned in introductory algebra classes, including trigonometry.
Consultations: To arrange consultation times, email me or talk to me in person. See me as often as needed. It is
imperative that you stay on top of your assignments and understand the material before we move on.
Working one-on-one with you will allow me to correct any “fuzzy thinking”.
E-Communication: You are expected to check your George School email at least daily. I will send important and timely
information via this method.
Rating Scale: All work will be graded on a one hundred-point scale with the following weight towards the final
grade.
Individual Work:
Class/Group Work:
Exams:
55%
15%
30%
Term Weights: Each term will count as 1/3 of your final grade.
Page 1 of 9
A:
B:
C:
D:
90 – 100
80 – 89
70 – 79
60 – 69
My Expectations: I will do anything in my power to assist you in reaching the goals you have set for yourself concerning
this course; however I do not demand excellence. The amount of effort you give to this class is your
decision. Nevertheless, I do demand two things from you:
1.
You must understand and follow the Computer Rules found at the end of this document.
2.
I expect your Total Attention while we are in class. Your inattention places an unfair burden
on your classmates and myself and will not be tolerated. This rule means that you will not be
allowed to sleep during class, be perpetually late to class, or intentionally distract the class.
Additionally, if you are serious about learning computer programming you will endeavor to follow a
few additional guidelines:

Ask lots of questions. You’ve heard this before, but quite honestly, the only dumb question is
one that is never asked.

Having a positive and serious attitude is necessary for the successful completion of this course.
Clowning around during class will prevent us from covering all necessary material. This does
not imply that you should refrain from asking questions! Nor does it mean we must not deviate
from the prescribed course outline. I firmly believe that depth is more important than breadth.
That is, fully understanding the material we do cover is better than covering a lot of material
that we don’t well understand.
Attendance: Attendance is mandatory for this course. If you do miss a class or a lab with an excused absence, then
you must make immediate arrangements with me to make up the work and turn in all assignments. If
you know ahead of time that you will be absent, contact me as soon as possible.
Tardiness: Be on time to class! Coming in late is a disruption to your classmates and to me. The student who
arrives late will risk missing class work at the beginning of class. Additionally, any unexcused
lateness of 15 minutes or more may be reported as a cut.
Class Participation: Group participation is crucial to the dynamic, ever-changing world of computer programming.
Keeping your ideas to yourself is a detriment to yourself, your classmates, and to me. Forcing
yourself to use the tools and techniques we learn in class will assure that you will be at your best when
you write your own applications. Look for ways to be creative. This is a class designed to let you
express your imagination in new and unique ways. Don’t squander that opportunity.
Individual Work: Many individual projects (such as robotic Challenge Problems) will be given each term on material
covered in class. Partial credit may be given for programs that do not satisfy all criteria. Form and
function are equally important aspects here. Generally, programming homework is not given in this
class; however, you may choose to work on projects outside of class when time permits. Often
students respond to this class by spending all of their study time writing code. Programming can be
addictive, so be careful that your other studies do not suffer.
Group Projects: One of the more fun aspects of this course is working on the Group Projects. These are opportunities
to write larger programs with your classmates. They will be graded on several criteria including
development time, creativity, elegance, the final output, and lack of “bugs”. One example of the
Group Project is robot competitions. Some competitions will be optional, others will be mandatory. I
encourage all students to get involved in these competitions because they are fun and exciting.
Exams: Cumulative exams will be given at the end of each term. They will be based largely on the end-ofchapter Challenge Problems as well as projects throughout the year.
Notebooks: I have found pencil and paper to be very handy, especially when trying to hammer out some
particularly complicated block of code. I have written many of my programs on paper, miles from the
nearest computer. If you keep a notebook it will not be graded.
Using Technology: Using technology excuses for missed assignments will not be permitted. Computer technology is here
to stay and you must learn how to use it effectively. Plan ahead and get into the habit of backing
up your work! Each of you is allotted 1GB of storage space in your GS home directory on GS-1 and
you should take advantage of this space for storing your work. George School IT Services performs a
tape backup of the home directory space every night; your data is safe here! Do not keep the only
copy of your work on a removable drive – that is asking for trouble.
Page 2 of 9
Cheating: Any form of academic dishonesty will not be tolerated in this class. This explicitly means submitting
any work or ideas for grading that is not your own. Please be careful. I prefer working in a
community built around trust and friendship. No grade you could receive for poor work would be as
damaging to you as cheating. I encourage students to work together, nevertheless you are to turn in
your own work. Students often have a difficult time distinguishing between teamwork and plagiarism
so concrete guidelines will be drawn up as the year progresses.
Editing Support: If you discover mistake in my textbook, please let me know.
Head of School List: To make the Head of School’s list in my class, you need to only on thing: You must embody this
quote by 13th Century Persian poet, Jalal Ud-Din Rumi: “Sell your cleverness and buy
bewilderment.”
Food and Drinks: With the exception of bottled water, food and drinks will not be permitted in the classroom. I am
afraid that you are paying for the transgressions of students from past years. Leaving trash in the
classroom for me, my co-op, or Environmental Services to clean up is disrespectful. The privilege has
been abused and will be revoked. I am sorry.
If you are going to drink, please drink responsibly. Remember to recycle your plastic bottles on your
way out of the building.
Playing Music: There is nothing like programming a robot while listening to some music. To this end, I will permit
you to listen to your own MP3 player while you are busy writing your own code. While I am talking
however, the music should be paused and the ear buds removed! This rule also applies when a
visitor enters the room. Failure to follow these simple and respectful rules will mean you will lose the
privilege. For those who do not bring in an MP3 player, I will play music over the speakers at the
front of the class. You will not be permitted to play your music out loud unless it is played through
my speakers! We will rotate who controls the music each class meeting. When it is your day to play
music, you may bring in a CD, MP3 player, or save your music on my PC and play it from there. You
and a friend may wish to consolidate your music. Music played over the Internet will not be allowed
unless it is played from my PC.
The Internet: This is a class in computer technology, so it stands to reason that we will need to use the Internet to
conduct research. In the recent past, students have abused this privilege and spent time in chat rooms,
on music sites, on their email accounts, and aimlessly browsing the Internet. Using the Internet for
these purposes will not be permitted.
Computer Rules:
1.
2.
3.
4.
5.
6.
7.
Never jostle or bang on the computer (even a laptop).
Always Log-off the machine before storing it!
When turning the computer off, make sure the computer has fully logged-off before closing
the lid! That is, wait for login screen to appear before closing the computer.
Always return the computer to its correct shelf for storage.
Always recharge the computer with the power cord associated with that shelf.
Do not vandalize the computer equipment.
Leave your lab station neat, clean, and organized at the end of each class period.
"Computer games don't affect kids; I mean if Pac-Man affected us as
kids, we'd all be running around in darkened rooms, munching magic
pills and listening to repetitive electronic music."
– Kristian Wilson, Nintendo Inc., 1989
Page 3 of 9
Robotics Classwork Timeline
Dates are approximate and the document may vary over time.
Advanced students may move at a significantly faster pace.
Week 1

Discuss syllabus and safety concerns.

Students buy books.

Pass out optical mice, serial cables, microcontrollers, motherboards, battery packs, and tool boxes.

Students fill out equipment inventory checklist.

Robot Demos

Read the Foreword (page xiii), How to Read This Text (page xv) and Sections 1-3 in Chapter 1 (pages 1-5) in the
textbook as homework before the first day of class.

Carefully read Chapter 1: Getting Started and perform all the steps with your own microcontroller.

Chapter 1 Challenge Problems:
#1
Have the instructor check your solution code before proceeding to the next chapter.

Carefully read Chapter 2: Screen Output and perform all the steps with your own microcontroller.

Chapter 2 Challenge Problems:
#1, 4 (see www.network-science.de/ascii/), and 5.
Have the instructor check your solution code before proceeding to the next chapter.

Homework: Read the first two helpful hints in Appendix H: Helpful Programming Hints. This document can be
found online at www.basicxandrobotics.com/additions/helpfulhints.pdf. You will apply these hints to all future
assignments.
Week 2

Quiz: “Robot Screen Output.doc”

Carefully read Chapter 3: LEDs and Delays and perform all the steps with your own BX-24. Do Self Test #1.

Chapter 3 Challenge Problems:
Do the following:
o 2 (just make the onboard LEDs blink),
o 3 (there is no need to blink any lights for this problem – just print number to the screen),
o 4 (there is no need to print any numbers to the screen for this problem),
o then do either #5 or #8,
o finally, rework #3 but use a For-To-Next Loop as shown in Self Test #1 on page 39.
Bonus: Do #2 but use a For-To-Next loop. (See Self Test #1.)
Have the instructor check your solution code before proceeding to the next chapter.

Homework: Study the tutorial on how to solder. This is found on the textbook’s website at
www.basicxandrobotics.com/tutorials/end%20pins/index.html.

In the lab, solder four end pin connectors to the ends of two wires: one yellow wire and one black. The wires should
be about 10cm in length. Refer to the textbook’s online tutorial at
www.basicxandrobotics.com/tutorials/end%20pins/index.html. Do not proceed until the instructor has inspected your
end pins.

Add shrink tubing to your two wires to make jumper wires. Refer to the textbook’s online tutorial at
www.basicxandrobotics.com/tutorials/jumpers/index.html for assistance. Do not proceed until the instructor has
inspected your jumper wires.

It’s time to check your battery voltages! Study the tutorial www.basicxandrobotics.com/tutorials/battery%20check/
to find out how. From now on, measure your battery voltage often and if they are low recharge them!

Homework: Carefully read Sections 4-6 in Chapter 11: Introduction to Servomotor Programming.
Page 4 of 9
Weeks 3 & 4

Hand out a piezo buzzer and audio transducer to each student.

Carefully read Appendix D: Controlling the Piezo Buzzer and Audio Transducer. You can gloss over Section 2,
which discusses some concerns with electrical currents and may omit Section 6 if you wish. Use your own piezo
buzzer, jumper wires, and microcontroller to make the buzzer beep a couple of times. Nothing fancy – just show me
that you can turn the buzzer on and off.

Quiz: Easy Morse Code (See Challenge Problem #3-7)

Carefully read Chapter 4: Computer Arithmetic. You do not have to enter all the steps into your own code, but it is
crucial that each mathematical operation is well understood!

Chapter 4 Challenge Problems:
#5, 6, 7, 13 (write answers in your text), 14 (choose 2), 16 (show both roots), 24 (pick 2), 25 (pick 2), 26, 37,
39, and 47. Be sure to print the number of each problem to the screen! Use print statements to make the
answer readable, including the showing of units where applicable. For instance:
Debug.Print "#3"
Debug.Print "Area = " & CStr(0.5*16.0*23.0) & " cm^2"
Debug.Print
Print your solution code and give it to the instructor. (An electronic copy may also be requested.)
Week 5

Continue working on Chapter 4 Challenge Problems.

Carefully read Chapter 5: Variables, Constants, and Data Types and perform all the steps with your own
microcontroller. Do all the Self Tests.

Homework: Read the helpful hints I-XI in Appendix H: Helpful Programming Hints. This document can be found
online at www.basicxandrobotics.com/additions/helpfulhints.pdf. You will apply these hints to all future assignments.
Week 6

Chapter 5 Challenge Problems:
#1, 2, 3, 4, and 5. Be sure to follow the hints given by Appendix H: Helpful Programming Hints. For
example, solving the quantity df, we may write:
Const d as Single = 3.0
Const f as Single = -7.2
Dim ans as Single
Debug.Print "Example"
Ans = d*f
Debug.Print "answer = " & CStr(ans)
Debug.Print
Have the instructor check your solution code before proceeding.

Carefully read Sections 1-4 of Chapter 12: Subprograms. You should enter and run the Countdown and
FiveRedFlashes procedures as explained in textbook. Also, perform Self Tests 1, 2, and 3. You will make use
of subprograms to answer all of the Challenge Problems in the remainder of the book.
Weeks 7 & 8

Chapter 5 (Chapter 4 Revisited) Challenge Problems. Rework the following Chapter 4 problems, explicitly using
variables and constants where appropriate. Put the code for each Challenge Problem in its own procedure (see
Chapter 12) and call each solution from the Main procedure. Be sure to follow the hints given by Appendix H:
Helpful Programming Hints.
Chapter 4: #16 (show both roots), 24 (pick 2), 29, 42, 53, 58, 67b, and 72 (pick two planets).
Print your solution code and give it to the instructor. (An electronic copy may also be requested.)
Bonus: #37, 47, 59, 67d, 67h

Quiz: “Robot Math Quiz.doc”
Page 5 of 9
Week 9

Challenge Project: Create a Morse code application complete with sub-procedures. Students should create and
define the following global constants (see 12.3): DotLength, DashLength, SmallPause, LetterPause, WordPause,
PiezoPin, PiezoOn, and PiezoOff. Then create two procedures named Dot and Dash, that turns the piezo buzzer on
for an appropriate amount of time (i.e., DotLength and DashLength). These two procedures should utilize many of
the global constants and end with a SmallPause delay. Next students should create procedures for each letter of the
alphabet. These letter procedures should print each letter to the screen, call the Dot and Dash procedures as needed
and end with a LetterPause delay. Finally, from Main, send a short Morse code message via the piezo buzzer. Any
words should be separated with a WordPause delay. Have the instructor check your code and output before
proceeding.

Homework: Read over Chapter 6: Data Type Conversions and Numerical Rounding. This is a very dry, but
necessary, chapter. Proceed through the chapter as quickly as possible. You do not need to enter all the steps into
your own code, but you should carefully follow the examples in the text. Think of this chapter as reference material to
be understood, but not necessarily committed to memory.
Week 10

Chapter 6 Challenge Problems:
#1, 2, 3, and 4. Write all your answers in the textbook.
Have the instructor check your answers before proceeding.

Homework: Read over Chapter 7: Advanced Computer Mathematics. You do not need to enter all the steps into
your own code, but you should carefully follow the examples in the text and be familiar with the kinds of advanced
mathematical operations that are possible with the BX-24. Think of this chapter as reference material to be
understood, but not necessarily committed to memory.
Week 11

(Optional) Chapter 7 Challenge Problems. Ask your instructor if these problems are to be assigned. Put the code
for each Challenge Problem in its own procedure (see Chapter 12) and call each solution from the Main procedure.
#5, 6, 9*, 20, 22 (pick 2), 23 (pick 2), 34. * Note, to find the chemical concentration absorbed by the body,
use the equation Ca  Co 1  e kt .
Bonus: #8, 11, 17, and/or 31.
Print your solution code and give it to the instructor. (An electronic copy may also be requested.)


Week 12

Study the tutorial on how to make external LED assemblies. This is found on the textbook’s website at
www.basicxandrobotics.com/tutorials/LED/index.html.

In the lab, make at least two LED assemblies of different colors. Do not proceed until the instructor has inspected
your external LEDs.

Challenge Project: Write a program that will make your external LEDs flash on and off in an exciting pattern.

BONUS Challenge Project: Tune a guitar string using an external LED. A guitar string when plucked produces a
unique frequency. If the LED flashes on and off at that frequency, the string will appear to stand still. (Ask your
physics teacher about the phenomenon of standing waves.) If the frequency of the guitar string does not match that of
the flashing LED, the string will appear to move slowly up and down. (Ask your physics teacher about the
phenomenon of aliasing.) Use the PulseOut or FreqOut functions (see Appendix D) to make the LED flash with
the appropriate frequency.

BONUS Challenge Project: Make an LED array. Use the array to light up a room in either visible or infrared (IR)
light. Note that video cameras and digital cameras detect IR light that our eyes can’t see! Use this to record the
activity of nocturnal creatures! Information on making LED arrays is found on the textbook’s website at
www.basicxandrobotics.com/tutorials/LEDarray/index.html.
Page 6 of 9
Weeks 13, 14, & 15

Carefully read Chapter 8: For-To-Next Loops and perform all the steps with your own microcontroller. If there are a
number of students at this same point, this might be a good chapter to do as a class. Do both Self Tests and Practical
Problems 1 and 3.

Chapter 8 Challenge Problems. Put the code for each Challenge Problem in its own procedure (see Chapter 12) and
call each solution from the Main procedure.
#2, 3, 6, 8, 12, 13, 14, 19, 34, and 36.
Bonus: #5, 25, 38, and/or 43.
Print your solution code and give it to the instructor. (An electronic copy may also be requested.)

Carefully read Chapter 9: Do Loops and perform all the steps with your own microcontroller. If there are a number
of students at this same point, this might be a good chapter to do as a class. Do all three Self Tests and Practical
Problems 1, 2, and 3.

Chapter 9 Challenge Problems. Put the code for each Challenge Problem in its own procedure (see Chapter 12) and
call each solution from the Main procedure.
#2, 8, 9, 14, 15, 21, 30, 37, and 41. Bonus: #4, 17 (work with a friend or three), 20, 31, and/or 51.
Print your solution code and give it to the instructor. (An electronic copy may also be requested.)
Week 16

We’ll do this next assignment as a class activity. Together, read Chapter 10: BX-24 Clock Works. The instructor will
email some code to you, so this should go quickly. Specifically, we will cover Sections 1, 2, 3, Self Test 1, and
Section 5.

Chapter 10 Challenge Problems. These may also be a class activity – ask your instructor before beginning these
problems on your own! Put the code for each Challenge Problem in its own procedure (see Chapter 12) and call each
solution from the Main procedure.
#3, 4, 6, 7, 8a, 8d, 8g, and 9. Bonus: #5, 12
Have the instructor check your answers before proceeding.
Week 17

Pass out robot materials: chassis, servomotors, wheels, tail wheel, standoffs, and mounting screws.

Carefully read Chapter 11: Introduction to Servomotor Programming and build your robot. Also, follow all the
programming steps with your own robot. Do all the Self Tests.

Chapter 11 Challenge Problems. Put the code for each Challenge Problem in its own procedure (see Chapter 12)
and call each solution from the Main procedure. You will need to define some global constants (see Chapter 12.3).
You may wish to create a new application for each Challenge Problem. It is likely that your robot will not move in
straight lines. Don’t worry. We’ll rectify this in Chapter 13.
#2, 3, and 17.
Before proceeding, show some of your solutions to the instructor.

Quiz: “Servo Safety Quiz.doc”. You must pass this quiz before proceeding.

Challenge Project: Have your robot compete in a few of the Classroom Challenge Competitions found on the
textbook’s website http://www.basicxandrobotics.com/competitions/classroom.html. Make sure the instructor is there
to time your robot. Results will be posted on the www.basicxandrobotics.com.

Challenge Project: Study the tutorial on multitasking with the BX-24. This is found on the textbook’s website at
www.basicxandrobotics.com/tutorials/multitasking/index.html. Then, do Challenge Problem 11-4 or 11-9, but make
the code for the LED or piezo buzzer run on the stack in the background.

BONUS Challenge Project: Using notes from the physics students, write code that will both fire a projectile
launcher and drop a target held aloft by an electromagnet. The idea is the projectile should hit the falling target. Enter
the physics equations into the BX-24, which will calculate how much time after the target is dropped the ball should
be launched. You will need to use multitasking techniques (to pull the projectile launcher’s trigger) and use the
Timer function to determine when to pull the trigger. To turn off the electromagnet, you must send a 5V signal to a
device called a relay. A relay is nothing more than an electrical switched that can be opened or closed. To stop
electricity from flowing into the electromagnet, you need to open the relay’s switch by sending a high signal (1) to the
relay. This is easily done with the PutPin procedure. (To turn the electromagnet back on, simply send a low signal
(0) to the relay. To really make your application fool-proof, you can use If-Then statements (see Chapter 15) to verify
that the projectile will not fly over the target and will hit the target before it reaches the ground. You can also use an
If-Then statement to determine which should happen first: the dropping of the target or the firing of the projectile. If
you do this Challenge Project your code will be displayed on my website.
Page 7 of 9
Week 18

Carefully read Chapter 12:Subprograms: Procedures and Functions and perform all the steps with your own
microcontroller. Do all the Self Tests.

Chapter 12 Challenge Problems.
#1a, 2, 20, 22, 25, 26, 47, 48, and 53
Before working on problems 47, 48, and 53, you should create some simple subprograms that cause the robot
to move forward and turn a certain number of pulses.
Bonus: 8, 15, and 54.
Print your solution code and give it to the instructor. (An electronic copy may also be requested.)

Study the tutorial on powering servomotors using the RAMB. This is found on the textbook’s website at
www.basicxandrobotics.com/tutorials/servopower/index.html.

Study the tutorial on how to create modular programs. This is found on the textbook’s website at
www.basicxandrobotics.com/tutorials/modular/index.html.

Carefully read Chapter 13: Advanced Servo Operations and perform all the steps with your own microcontroller.
Do all the Self Tests.

Chapter 13 Challenge Problems.
#1 (Ch11 #16), #2 (Ch12 #50), 8, and 10.
Print your solution code and give it to the instructor. (An electronic copy may also be requested.)

Challenge Project: Have your robot compete in the “Dead Reckoning Maze Solver!” Classroom Challenge
Competition found on the textbook’s website http://www.basicxandrobotics.com/competitions/classroom.html. Make
sure the instructor is there to time your robot. Results will be posted on www.basicxandrobotics.com.

Challenge Project: Have your robot compete in a few of the Classroom Challenge Competitions found on the
textbook’s website http://www.basicxandrobotics.com/competitions/classroom.html. Some that you can try are the
“Sprint Race!”, “1-2-3 Go!”, “There and Back!”, “Safe Driver!”, and “Loop Race Time Trial. Have fun! Make sure
the instructor is there to time your robot. Results will be posted on www.basicxandrobotics.com.

Homework: Read over Chapter 14: The Random Number Generator. You do not need to enter the steps into your
own code, but you should be familiar with how the BX-24 can generate random numbers and why they may be useful.
We will make use of this code in Chapter 15: If-Then and Select Case Logic Statements.
Weeks 19 & 20

Carefully read Chapter 15: If-Then and Select Case Logic Statements and perform all the steps with your own
microcontroller. Do all the Self Tests.

Chapter 15 Challenge Problems.
#1, 2, 3, 4, 5, 6, 7, 10, 11, 15, and 32. Rework #11, using Select-Case to solve.
Bonus: 16, 17, and/or 28.
Print your solution code and give it to the instructor. (An electronic copy may also be requested.)

NB: Advanced students may be ready to compete in the qualifying firefighting competition at Penn State Abbington
which usually takes place at the end of March. See http://www.basicxandrobotics.com/competitions/index.html for
more details.
Week 21

Pass out infrared sensor materials: IR Proximity Sensor, IR Ranger, IR mount, and mounting screws.

Carefully read Chapter 16: Using an Infrared Ranger and perform all the steps and Self Tests with your own robot.

Chapter 16 Challenge Problems.
#1, 4, 13, 17, 23, 24, and 25.
Bonus: 5, 15, 16, 19, 21, and/or 28.
Print your solution code and give it to the instructor. (An electronic copy may also be requested.)

Homework: Read and understand the rules to the Trinity Firefighting Competition and Hide and Seek competition.
You can find these at http://www.basicxandrobotics.com/competitions/index.html or
http://www.trincoll.edu/events/robot/Rules/default.asp.
Page 8 of 9
Week 22

Challenge Project: Build and use two IR Proximity Sensor (see www.robodyssey.com, part number IPDK) and
program your robot to follow black lines of tape on a white table. That is, make a line follower. See the Classroom
Challenge Competition webpage for details. (http://www.basicxandrobotics.com/competitions/classroom.html) Make
sure the instructor is there to time your robot. Results will be posted on www.basicxandrobotics.com.

Challenge Project: Have your robot compete in a few of the Classroom Challenge Competitions found on the
textbook’s website http://www.basicxandrobotics.com/competitions/classroom.html. Some that you can try are the
“Safe Driver!” and “Tabletop Challenge: Barebones!”. Make sure the instructor is there to time your robot. Results
will be posted on www.basicxandrobotics.com.
Week 24

Challenge Projects: In order to get ready for Trinity’s Firefighting Competition, students will be broken into teams
(not necessarily the same teams that will compete), with one member from each team solving at least one of the
following challenges. (See http://www.basicxandrobotics.com/students/ for videos of past competitors.)
1. Use an IR Proximity Detector and determine when a roving robot has entered a room. The room is marked
with a piece of electrical tape. The robot must be able to detect both black tape on a white floor, and white
tape on a black floor.
2. Use an IR Flame Sensor to detect the location of a fire from a candle or other IR source. The robot should
spin 360° looking for the brightest IR signal.
3. Use two side-looking IR Rangers to keep the roving robot parallel to a side wall.
4. Write code to have the robot navigate the actual floor plan used in the competition.
5. Build a fire extinguisher (CO2 cartridge, water spout, air fan, etc) and write code to activate the extinguisher.
6. Build a microphone to detect the high-frequency sound from a fire alarm and write code to monitor the
microphone.
Week 25

Continue working on the firefighting challenges.
Week 26

Divide the students into teams and put all the code from the above challenges into one application using modular
programming techniques.

Compete at Trinity.
Weeks 27 & 28

Carefully read Chapter 17: Environment Sensing Using Voltage Dividers and perform all the steps with your own
microcontroller. Do all the Self Tests.

Chapter 17 Challenge Problems.
Use a calculator to solve the following problems: #5, 6, 7, 8, and 9.
Use the BX-24 to solve the following problems: #1, 15, and 20.
Bonus: 16 and 27.
Print your solution code and give it to the instructor. (An electronic copy may also be requested.)

Conduct science experiments with the robots.
Weeks 29, 30, & 31

Design and build soccer-playing robots or introduce Visual Basic Programming

Compete in Robot Madness.
Week 32

Prepare robots for Senior Assembly.
Page 9 of 9
Download