Sample Programs
A good way to get started with a new program is to make a copy of a folder for an existing program, then rename the new folder and its .bas or .c file. (For C programs, you will also need to edit the makefile to reflect the name change for the .c file. Look for the SRC= line. You may also change the PRG= line for consistency.)
C Programming
Each sample program is in its own folder. Each of these folders contains the C files needed for the program and a “makefile” that provides information for the tools. All the files created by the build process are stored in this folder as well. The concept of a makefile will be new to many people, even experienced programmers. You do not need to understand the makefile, but it’s important that you do not rename it!
The makefile is set up to use the BASCOM programmer (supplied with the kit). If you will be using an AVRISP, you’ll need to override the settings in the makefile. You can modify the makefile (in each program folder), but a
better way is to define environment variables: |
|
AVRDUDE_PROGRAMMER = avrisp | (see the Software Tools section for Mac information) |
AVRDUDE_PORT = com1 |
When using Programmers Notepad, but sure to use LaunchPN.bat (from the “C Samples” folder) to start it. To build a program, open a C file that is part of the program you want to build. Make any edits you want, save the file, then choose the Tools/Make All command to build. This will automatically use the makefile in the same folder as your C file. An “output” window will show the results of your build. (If you get a message that “the system cannot find the file specified,” you probably just need to restart Programmers Notepad using LaunchPN.bat.) To download the program, make sure the robot is on, then choose the Tools/Program command.
(You can also use the command line to build and download your programs. Run setpath.bat (from “C Samples”) in the command window to set up the environment, then call make manually.)
Program Descriptions
Program 1
Purpose: Learn how to use outputs to make the green LED flash.
Programs: FlashLED, FlashLEDAlias
Extensions:
oChange the rate at which the LED flashes.
oChange the code so that the LED is on longer than it is off.
Program 2
Purpose: Learn how to use inputs to detect obstacles, lighting the LED when a bumper (whisker) is touched.
Programs: Whisker, WhiskerAlias
Extension: Add code so that touching either bumper turns on the LED.
Challenge: Make the LED flash at four different rates when bumpers are:
Program 3
Purpose: Drive! Learn how to control the motors.
Program: PWM
Extensions:
oExperiment with other PWM values, e.g. set both motors to 255 or
oWhat happens when you use 128 for the left motor PWM and 255 for the right motor PWM? o What happens when you use
o Wait for a bumper touch (instead of delay) before starting the motors. o Make a bumper touch cause the robot to back up, then stop.
o Make the robot go forward 10 inches, then turn left 90 degrees. o Make the robot do the previous extension 4 times.
28 |