Slide Menlo Drive Suite 100 Rocklin, CA Presentation based on: “What’s a Microcontroller?" by Andy Lindsay Presented by Jessica Uelmen Educational Project Engineer, Parallax Inc. Education Dept. Parallax Inc. Education Dept.
Slide 2 Copyrights and Trademarks This documentation is copyright 2010 by Parallax, Inc. By downloading or obtaining a printed copy of this documentation or software you agree that it is to be used exclusively with Parallax products. Any other uses are not permitted and may represent a violation of Parallax copyrights, legally punishable according to Federal copyright or intellectual property laws. Any duplication of this documentation for commercial uses is expressly prohibited by Parallax, Inc. Duplication for educational use is permitted subject to the following conditions: Parallax grants the user a conditional right to download, duplicate, and distribute this text without Parallax's permission. This right is based on the following conditions: the document, or any portion thereof, may not be duplicated for commercial use; it may be duplicated only for educational purposes when used solely in conjunction with Parallax products, and the user may recover from the student only the cost of duplication. BASIC Stamp, Stamps in Class, and Board of Education are registered trademarks of Parallax, Inc. If you decide to use the names BASIC Stamp, Stamps in Class, and/or Board of Education on your web page or in printed material, you must state that "BASIC Stamp is a registered trademark of Parallax, Inc.," "Stamps in Class is a registered trademark of Parallax, Inc.," and/or "Board of Education is a registered trademark of Parallax, Inc.," respectively, upon the first appearance of the trademark name. Other brand and product names are trademarks or registered trademarks of their respective holders.
Slide 3 Stamps In Class Curriculum Cited in Further Investigation Sections
Slide 4 Stamps in Class Flowchart Education Stamps in Class Flowchart
Slide 5 Chapter #1: Getting Started Downloading the BASIC Stamp Editor: Just click the big red button! Open the exe and follow the install instructions Excerpts from page 16
Slide 6 Chapter 1: Getting Started Downloading the Documentation: What ’ s a Microcontroller (PDF) Education Tutorials and Translations BASIC Stamp Manual Downloads BASIC Stamp Documentation
Slide 7Introduction How many microcontrollers did you use today? What’s a BASIC Stamp? Excerpts from pages 11, 12 For the Classroom BASIC Stamp and Board of Education BASIC Stamp HomeWork Board
Slide 8Introduction Amazing inventions with the BASIC Stamp Excerpts from pages
Slide 9 Chapter #1: Getting Started Write a PBASIC program then download it to the BASIC Stamp Connect serial cable and battery to HomeWork Board Connect serial cable to computer COM port. Excerpts from BASIC Stamp Editor Help Affix rubber feet to the underside of your board.
Slide 10 Chapter #1: Getting Started ' What's a Microcontroller - FirstProgram.bs2 ' BASIC Stamp sends message to Debug Terminal. ' {$STAMP BS2} ' {$PBASIC 2.5} DEBUG "Hello, it's me, your BASIC Stamp!" END Run the BASIC Stamp Editor Software Enter this program Click the ‘Run’ button Click the PBASIC 2.5 button Click the BASIC Stamp 2 Button Excerpts BASIC Stamp Editor Help
Slide 11 Chapter #1: Getting Started Click the ‘Run’ button The Debug Terminal appears with a message sent by the BASIC Stamp DEBUG "Hello, it's me…" The command: Causes the BASIC Stamp to send a message to the Computer Excerpts from BASIC Stamp Editor Help
Slide 12 Chapter #1: Getting Started ' What's a Microcontroller - FirstProgram.bs2 ' BASIC Stamp sends message to Debug Terminal. ' {$STAMP BS2} ' {$PBASIC 2.5} DEBUG "Hello, it's me, your BASIC Stamp!" END comment Stamp 2 directive PBASIC 2.5 directive DEBUG command END command Excerpts from BASIC Stamp Editor Help
Slide 13 Chapter 1 Activities
Slide 14 LED Test Circuit Parts (1) (1)LED – Green (1) (1)Resistor – 470 (yellow-violet-brown) Chapter #2: Lights on – Lights off Manual Circuit – LED On Manual Circuit – LED Off See What’s a Microcontroller Page 29 for resistor color code information Excerpts from pages 29, 30, 33, 36
Slide 15 Chapter #2: Lights on – Lights off BASIC Stamp – LED Circuit Next Step Write a PBASIC Program to make the BASIC Stamp Switch the LED circuit input between Vdd (5 V) and Vss (0 V). Excerpts from pages ' {$STAMP BS2} ' {$PBASIC 2.5} DO HIGH 14 PAUSE 250 LOW 14 PAUSE 250 LOOP LedOnOff.bs2
Slide 16 Chapter #2: Lights on – Lights off Use the same circuit Replace DO and LOOP with the segments of code shown in white. Run your modified program. Remember to save your modified program. Excerpts from page 44 LedOnOffTenTimes.bs2 Changing the program to make the LED flash on/off 10 times Before making any changes, save the original program, then save a copy (to be modified) under a new name: ' {$STAMP BS2} ' {$PBASIC 2.5} counter VAR Byte FOR counter = 1 TO 10 DEBUG ? counter HIGH 14 PAUSE 500 LOW 14 PAUSE 500 NEXT DEBUG "All done!" END ' {$STAMP BS2} ' {$PBASIC 2.5} HIGH 14 PAUSE 500 LOW 14 PAUSE 500
Slide 17 LED Test Circuit Parts (1) LED – Green (1) LED - Yellow (2) Resistor – 470 (yellow-violet-brown) Chapter #2: Lights on – Lights off BASIC Stamp – LED Circuit (Modified) Next Step - Make both LEDs flash on/off √ Open LedOnOff.bs2 √ Add two lines of code √ Run your modified program. √ Remember to save your modified program under a different name! Use FlashBothLeds.bs2 Excerpts from pages FlashBothLeds.bs2 Important: Leave this circuit on your board! This circuit is re-used in the next set of activities. Do not take it apart before building the next circuit. ' {$STAMP BS2} ' {$PBASIC 2.5} DO HIGH 14 HIGH 15 PAUSE 250 LOW 14 LOW 15 PAUSE 250 LOOP HIGH 15 LOW 15
Slide 18 Chapter 2 Activities
Slide 19 LED Test Circuit Parts (1) Resistor – 220 Ω (red-red-brown) (1) Resistor – 10 kΩ (brown-black-orange) (1) (1)Pushbutton - normally open (2) Jumper wires Chapter #3: Digital Input - Pushbuttons How the Pushbutton Works Pushbutton Circuit Excerpts from pages 62, 66
Slide 20 Chapter #3: Digital Input - Pushbuttons ' {$STAMP BS2} ' {$PBASIC 2.5} DO DEBUG ? IN3 PAUSE 250 LOOP How the Circuit and Program Work Excerpt from page ReadPushbuttonState.bs2 Follow instructions with checkmarks on page 68
Slide 21 Pushbutton/LED Circuit Parts (1) Pushbutton – normally open (1) Resistor - 10 k Ω (brown-black-orange) (1) LED – any color (1) Resistor – 220 Ω (red-red-brown) (1) Resistor – 470 Ω (yellow-violet-brown) (2) Jumper wires Chapter #3: Digital Input - Pushbuttons Excerpts from pages PushbuttonControlledLed.bs2 Pushbutton/LED Circuit ELSE PAUSE 100 ENDIF ' {$STAMP BS2} ' {$PBASIC 2.5} DO HIGH 14 PAUSE 50 LOW 14 PAUSE 50 LOOP DEBUG ? IN3 IF (IN3 = 1) THEN
Slide 22 ' {$STAMP BS2} ' {$PBASIC 2.5} DO DEBUG HOME DEBUG ? IN4 DEBUG ? IN3 IF (IN3 = 1) THEN HIGH 14 PAUSE 50 ELSEIF (IN4 = 1) THEN HIGH 15 PAUSE 50 ELSE PAUSE 50 ENDIF LOW 14 LOW 15 PAUSE 50 LOOP Pushbutton/LED Circuit Parts (2) Pushbuttons – normally open (2) Resistors - 10 kΩ (brown-black-orange) (2) Resistors – 470 Ω (yellow-violet-brown) (2) Resistors – 220 Ω (red-red-brown) (2) LEDs – any color Chapter #3: Digital Input - Pushbuttons PushbuttonControlOfTwoLeds.bs2 Excerpts from pages 73-77
Slide 23 Chapter 3 Activities
Slide 24 Servo Circuit Parts (1) Standard Servo (1) 3-pin male/male header Chapter #4: Controlling Motion Excerpts from page , 131 Important: Leave the P14 LED and pushbutton circuits on your board! These circuits are re-used in this set of activities. Servo Circuit
Slide 25 Chapter #4: Controlling Motion PULSOUT pin, duration Use 0 to 15 to select BASIC Stamp I/O pin P0 through P15 duration × 2 s = pulse duration Example: PULSOUT 14, 1000 Excerpts from pages
Slide 26 Chapter #4: Controlling Motion Excerpts from page 109
Slide 27 Chapter #4: Controlling Motion FOR counter = 1 TO 150 PULSOUT 14, 1000 PAUSE 20 NEXT FOR COUNTER = 1 TO 150 PULSOUT 14, 500 PAUSE 20 NEXT FOR counter = 1 TO 150 PULSOUT 14, 750 PAUSE 20 NEXT Excerpts from Example Program: ThreeServoPositions.bs2 ≈ 3 seconds Excerpts from pages , ,
Slide 28 Chapter #4: Controlling Motion Excerpt from Example Program: ServoControlWithDebug.bs2 Receive windowpane Transmit windowpane DEBUG CLS, "Enter number of pulses:", CR DEBUGIN DEC pulses DEBUG "Enter PULSOUT duration:", CR DEBUGIN DEC duration Excerpts from pages Follow instructions from Activity #4, pg
Slide 29 Chapter #4: Controlling Motion Excerpts from Example Program: ServoVelocities.bs2 FOR counter = 500 TO 1000 STEP 4 PULSOUT 14, counter PAUSE 20 DEBUG DEC5 counter, CR, CRSRUP NEXT Excerpts from pages Follow instructions from Activity #5 pg. 126 – 129 counter VAR Word STEP value controls the rate at which counter increases Counter increments with FOR…NEXT loop. As counter changes, so does the pulse width. As the pulse width changes, the servo’s position updates. Position changing over time gives an apparent velocity. FOR counter = 1000 TO 500 STEP 10 PULSOUT 14, counter PAUSE 20 DEBUG DEC5 counter, CR, CRSRUP NEXT Count down instead of up at a faster step rate.
Slide 30 Chapter #4: Controlling Motion Extra Pushbutton Parts (2) Pushbuttons normally open (2) Resistors – 10 k (brown-black-orange) (2) Resistors – 220 (red-red-brown) (3) Jumper wires The pushbutton circuit should still be on your board. If not, build it now. Excerpts from pages
Slide 31 Chapter #4: Controlling Motion Excerpt from: ServoControlWithPushbuttons.bs2 DO IF IN3 = 1 THEN IF duration > 500 THEN duration = duration - 25 ENDIF IF IN4 = 1 THEN IF duration < 1000 THEN duration = duration + 25 ENDIF PULSOUT 14, duration PAUSE 10 DEBUG HOME, DEC4 duration, " = duration" LOOP Excerpts from pages Follow instructions with checkmarks on page 132.
Slide 32 Chapter 4 Activities
Slide 33 Chapter #5: Measuring Rotation Dial Circuit Parts (1) (1)Resistor – 220 Ω (red-red-brown) (1) (1)Capacitor – 0.1 F (2) Jumper wires (1) Potentiometer – 10 kΩ Dial Circuit Excerpts from pages Important – more info: Replace your pushbutton circuits with this dial circuit. Remember to leave the P14 LED and servo circuits connected. NOTE: The pot must be firmly seated in its breadboard sockets. √ Run ReadPotWithRcTime.bs2 Activity #3 p. 150 √ Run ControlServoWithPot.bs2 Activity #4 p. 156 √ Have fun controlling the servo with the pot.
Slide 34 Chapter #5: Measuring Rotation Excerpt from page Your course guide will explain how to adjust the example program so that it works best with the PULSOUT command and gives your servo a range of motion that uses the potentiometer’s entire range of motion. Run ReadPotWithRcTime.bs2 Twist the potentiometer’s input shaft, and make notes of the time values displayed by the Debug Terminal. ReadPotWithRcTime.bs2 Command: HIGH 7 Measuring Discharge Time
Slide 35 Chapter #5: Measuring Rotation ControlServoWithPot.bs2 Excerpt from page 151 & 156 ReadPotWithRcTime.bs2
Slide 36 Chapter 5 Activities
Slide 37 Educational Support
Slide 38 Forum Registration 1 - Go to Register as new forum member. 3 - Open the confirmation and follow the link to confirm that you have joined. 4 - Send your username to and request access to the Parallax Educators We recommend that you send the request using your EDU address, and include a link to your faculty page or entry in the school’s online staff directory.
Slide 39 Chapter #8: Frequency and Sound Piezospeaker Circuit Parts (2) Jumper wires (1) Piezoelectric speaker Piezospeaker Circuit TestPiezoWithFreqout.bs2 '{$STAMP BS2} '{$PBASIC 2.5} DEBUG "Tone sending...", CR FREQOUT 9, 1500, 2000 DEBUG "Tone done." f = 2000 Hz T = 1÷2000 s duration = 1500 ms = 1.5 s I/O pin = P9 T Excerpt from page Build the piezospeaker circuit. Run TestPiezoWithFreqout.bs2
Slide 40 Chapter #8: Frequency and Sound Excerpts from: ActionTones.bs2 DEBUG "Alarm...", CR PAUSE 100 FREQOUT 9, 500, 1500 PAUSE 500 FREQOUT 9, 500, 1500 PAUSE 500 DEBUG "Robot reply...", CR PAUSE 100 FREQOUT 9, 100, 2800 FREQOUT 9, 200, 2400 FREQOUT 9, 140, 4200 FREQOUT 9, 30, 2000 PAUSE 500 DEBUG "Hyperspace...", CR PAUSE 100 FOR duration = 15 TO 1 STEP 1 FOR frequency = 2000 TO 2500 STEP 20 FREQOUT 9, duration, frequency NEXT duration VAR Word frequency VAR Word Excerpts from pages Run ActionTones.bs2
Slide 41 Chapter #8: Frequency and Sound '{$STAMP BS2} '{$PBASIC 2.5} DEBUG "Frequency = 2000", CR FREQOUT 9, 4000, 2000 DEBUG "Frequency = 3000", CR FREQOUT 9, 4000, 3000 DEBUG "Frequency = ", CR FREQOUT 9, 4000, 2000, 3000 DEBUG "Frequency = ", CR FREQOUT 9, 4000, 2000, 2001 DEBUG "Frequency = ", CR FREQOUT 9, 4000, 2000, 2002 DEBUG "Frequency = ", CR FREQOUT 9, 4000, 2000, 2003 DEBUG "Frequency = ", CR FREQOUT 9, 4000, 2000, 2005 DEBUG "Frequency = ", CR FREQOUT 9, 4000, 2000, 2010 DEBUG "Done", CR END PairsOfTones.bs2 + Excerpt from page = Run PairsOfTones.bs2
Slide 42 Chapter #8: Frequency and Sound DEBUG "Mi...", CR: FREQOUT 9,500,1319 ' E6 DEBUG "Fa...", CR: FREQOUT 9,500,1396 ' F6 DEBUG "Sol..", CR: FREQOUT 9,500,1568 ' G6 Frequencies in Music Excerpts from pages Excerpt from DoReMiFaSolLaTiDo.bs2 Run DoReMiFaSolLaTiDo.bs2
Slide 43 Chapter #8: Frequency and Sound Excerpts from pages
Slide 44 Chapter 8 Activities
Slide 45 Chapter #7: Measuring Light Light Sensor Circuit Parts (1) (1)Resistor – 220 Ω (red-red-brown) (1) Capacitor – 0.1 F (1) Capacitor – 0.01 F (1) Jumper wire (1) Phototransistor Light Sensor Circuit Excerpts from pages Longer pin (C) terminal Flat spot (E) terminal
Slide 46 Chapter #7: Measuring Light TestPhototransistor.bs2 HIGH 2 PAUSE 100 RCTIME 2, 1, time Excerpt from page 192
Slide 47 Chapter #7: Measuring Light TestPhototransistor.bs2 Excerpt from page 152, 201 ReadPotWithRcTime.bs2
Slide 48 Chapter #7: Measuring Light Excerpt from page KB EEPROM stores your PBASIC source code.
Slide 49 Chapter #7: Measuring Light Excerpt from page StoreLightMeasurementsInEeprom.bs2ReadLightMeasurementsFromEeprom.bs2
Slide 50 Chapter 7 Activities
Slide 51 Chapter #6: Digital Display Excerpts from pages 169
Slide 52 Chapter #6: Digital Display Display Parts (8) Resistors – 1 kΩ (brown-black-red) (5) Jumper wires (1) 7-segment LED Excerpts from pages ,
Slide 53 Chapter #6: Digital Display SegmentTestWithHighLow.bs2 '{$STAMP BS2} '{$PBASIC 2.5} pinCounter VAR Nib DEBUG "I/O Pin", CR, " ", CR FOR pinCounter = 8 TO 15 DEBUG DEC2 pinCounter, CR HIGH pinCounter PAUSE 1000 LOW pinCounter NEXT Excerpts from pages Predict which segment will glow. How long will each segment glow? In what order will they glow? Run the example program shown on this slide and compare to your predictions.
Slide 54 Chapter #6: Digital Display Excerpt from: DisplayDigits.bs2 '{$STAMP BS2} '{$PBASIC 2.5} OUTH = % DIRH = % ' BAFG.CDE ' Digit: OUTH = % ' 0 PAUSE 1000 OUTH = % ' 1 PAUSE 1000 OUTH = % ' 2 PAUSE 1000 OUTH = % ' 3 PAUSE 1000 OUTH = % ' 4 PAUSE 1000 Excerpts from pages
Slide 55 Chapter #6: Digital Display FOR index = 0 TO 9 LOOKUP index, [ % , % , % , % , % , % , % , % , % , % ], OUTH DEBUG " ", DEC2 index, " ", BIN8 OUTH, CR PAUSE 1000 NEXT Excerpt from: DisplayDigitsWithLookup.bs2 Excerpts from pages Lookup tables are useful for many things. Make notes on how the LOOKUP command is used to place a predetermined sequence of bit patterns into the OUTH variable.
Slide 56 Chapter 6 Activities
Slide 57 Chapter #9: Electronic Building Blocks Excerpts from pages 287, 289, 292
Slide 58 Chapter #9: Electronic Building Blocks Excerpts from pages Manual Potentiometer- Controller Transistor Circuit Circuit giving BASIC Stamp On/Off Control of Current to LED with a Transistor
Slide 59 Chapter #9: Electronic Building Blocks Excerpts from pages
Slide 60 Chapter 9 Activities