Lecture 1: Your Boe-Bot's Servo Motors Presentation based on: "Robotics with the Boe-Bot" By Andy Lindsay Parallax, Inc Presentation developed by: Martin A. Hebel Southern Illinois University Carbondale College of Applied Sciences and Arts Electronic Systems Technologies 7/6/04 1 Continuous Rotation Servo Used to provide drive motion for the Bot. Standard Servo: Used for positioning, such as with RC airplanes rudder and flaps. Continuous Rotation Servo: Rotate in a certain direction and speed. 2 Tracking Time PAUSE is used to have the BASIC Stamp wait a short amount of time. PAUSE duration • Duration is in milliseconds (mS) or 1/1000th of a second, 1-65535 PAUSE 1000 3 4 Repeating Actions A DO….LOOP is used to repeat a sequence of commands. DO 'Commands to perform LOOP 5 Servo Signals Servos are controlled with a high pulse lasting a short time, and repeated. The PULSOUT instruction can be used to send a short pulse. PULSOUT Pin, Duration • Pin: Pin device is connected to. • Duration: Time in 2S (microsecond) intervals, 1-65535. Microsecond = 1 millionth of a second. PULSOUT 12, 1 PULSOUT 13, 2 6 7 Servo Signals Typical servos require a pulse of 1mS to 2mS to define the direction/position. A 20mS pause be between each pulse. What values of PULSOUT are in the valid range? 8 Connecting the Servos 9 10 Centering the Servos The pulse width defines the direction and speed of the servo motor. • 1000 – Maximum speed one direction • 750 – Stopped • 500 – Maximum speed other direction Use the servo center programs to ensure it is stopped at 750. 11 12 Storing and Counting Values Variable are used to store values Variables much be declared prior to being used. Declaring a variable is giving it a name, and a size to hold. VariableName var Size 13 DEBUG ? is short hand to display the value of a variable or pin. 14 Counting and Controlling Repetitions FOR…NEXT loops can be used to control the number of repetitions a segment of code takes. FOR StartValue TO EndValue {STEP StepValue} … NEXT 15 What will this code do? Freq VAR Word DO FOR Freq = 1000 to 5000 Step 100 DEBUG ? Freq FREQOUT 4, 100, Freq TOGGLE 12 TOGGLE 13 NEXT LOOP 16 Testing Servos To control the servo, send a series of pulses with values between 500 to 1000 (1-2mS) Changing the value will change the direction and speed to some extent. 17 FOR…NEXT to Control Servo Run Time The FOR…NEXT Loop can be used to control how long to drive a servo. 18 19 Review 20 21