1 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
2 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.
3 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/1000 th of a second, PAUSE 1000
4
5 Repeating Actions A DO….LOOP is used to repeat a sequence of commands. DO 'Commands to perform LOOP
6 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 2 S (microsecond) intervals, Microsecond = 1 millionth of a second. PULSOUT 12, 1 PULSOUT 13, 2
7
8 Servo Signals Typical servos require a pulse of 1mS to 2mS to define the direction/position. A 20mS pause be between each pulse. Reducing this pause tends to drain battery faster, but doesn’t speed up the bot If you forget it, you’ll notice the bot completing it’s movement command early! What values of PULSOUT are in the valid range?
9 Make sure you plug it in right (if you unplug)
10 Centering the Servos The pulse width defines the direction and speed of the servo motor – 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? FreqVARWord 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 LAB 1 Overview Spend some time calibrating your servos. Find the pulsout width that freezes the motors (around 750) Determine how to move the robot slowly Clamp a pen on your bot, take it to the newsprint, and have it start drawing! Robot Art Contest?
20 Review
21