1 / 13

# ENGR 101: Robotics Lecture 3 – Robot Motion - PowerPoint PPT Presentation

ENGR 101: Robotics Lecture 3 – Robot Motion. Outline Robot Motion FOR Loops Making Music References http://csserver.evansville.edu/~richardson/ PBASIC Programming Guide: Setting Up PBASIC Programming Guide: Writing Programs BASIC Stamp Syntax and Reference Manual. 1.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'ENGR 101: Robotics Lecture 3 – Robot Motion' - lanelle

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
ENGR 101: RoboticsLecture 3 – Robot Motion

• Outline

• Robot Motion

• FOR Loops

• Making Music

• References

• http://csserver.evansville.edu/~richardson/

• PBASIC Programming Guide: Setting Up

• PBASIC Programming Guide: Writing Programs

• BASIC Stamp Syntax and Reference Manual

1

Lecture 3 – Robot MotionMotor Control

• The right and left motors are controlled by signals on pins 12 and 13. Instead of using just a HIGH or LOW signal to turn the motors on or off (like the LEDs), motor speed (and direction) are determined by the duration of a high voltage pulse on the motor control pin.

2

Lecture 3 – Robot MotionMotor Control

• The PBASIC PULSOUT can be used to create a pulse of a specific duration on a particular pin:

PULSOUT PIN, DURATION

• A duration of 1000 (2 ms) is full reverse, 2000 (4 ms) stops the motor, and 3000 (6 ms) is full forward. (Duration is in units of 2 us).

3

Lecture 3 – Robot MotionMotor Control

• PULSOUT actually inverts the signal at a PIN so to be sure to send a HIGH pulse we must set the PIN LOW first. Here is code to turn the RIGHT motor on at full speed for 5 seconds and then stop the motor:

LOW 12 ' REQUIRED

PAUSE 100 ' INITIALIZATION!!

PULSOUT 12, 3000 ' Full Speed

PAUSE 5000 ' 5 seconds

PULSOUT 12, 2000 ' Stop

4

Lecture 3 – Robot MotionMotor Control

• The PIN declaration can be used to assign a label to a particular PIN. The CON declaration can similarly be used to assign a label to a constant value:

RtMotor PIN 12

LtMotor PIN 13

FwdFull CON 3000

RvrFull CON 1000

StpFull CON 2000

5

Lecture 3 – Robot MotionMotor Control

• With these declarations the following program will send the robot forward at full speed for 5 sec, stop for 5 sec, full reverse for 5 sec, and then stop:

LOW RtMotor ' REQUIRED

LOW LtMotor ' INITIALIZATION!!

PAUSE 100

PULSOUT RtMotor, FwdFull

PULSOUT LtMotor, FwdFull

' Cont. on next slide ...

6

Lecture 3 – Robot MotionMotor Control

PAUSE 5000

PULSOUT RtMotor, StpFull

PULSOUT LtMotor, StpFull

PAUSE 5000

PULSOUT RtMotor, RvrFull

PULSOUT LtMotor, RvrFull

PAUSE 5000

PULSOUT RtMotor, StpFull

PULSOUT LtMotor, StpFull

END

7

Lecture 3 – Robot MotionMotor Control

• The motors are not identical. A PULSOUT duration of 3000 to BOTH motors may not cause the Scribbler to go straight ahead. If the Scribbler veers to the right, you will need to slow down the left motor by using a duration of less than 3000.

• You will need to follow the calibration procedure on pages 16 and 17 of the Writing Programs guide to find the duration values that cause your Scribbler to go straight.

8

Lecture 3 – Robot MotionVariables

• It is convenient to use a variable to label a memory location. You must declare a variable before using it:

name VAR size

• size determines the range of values the variable can hold:

BIT 0-1 (1 bit)‏

NIB 0-15 (4 bits)‏

BYTE 0-255 (8 bits)‏

WORD 0-65535 (16 bits)‏

Always use the smallest size necessary.

9

Lecture 3 – Robot MotionMotor Control

• This code snippet uses a variable and a FOR loop to smoothly accelerate the Scribbler:

speed VAR Word

FOR speed = StpFull TO FwdFull

STEP 250

PULSOUT RtMotor, speed

PULSOUT LtMotor, speed

PAUSE 1000

NEXT

10

Lecture 3 – Robot MotionMaking Music

• The PBASIC FREQOUT command is used to play a tone on the speaker:

FREQOUT pin, duration, freq1, freq2

The speaker is connected to pin 11. The duration is in ms. freq1 is the frequency (in Hertz) of the tone you want to play. freq2 is an optional second frequency (you can play two tones at once).

11

Lecture 3 – Robot MotionMaking Music

• The following code plays five tones, each is slightly longer and at a higher frequency than the one preceeding it:

speaker PIN 11

FREQOUT speaker, 200, 500

FREQOUT speaker, 400, 1000

FREQOUT speaker, 600, 1500

FREQOUT speaker, 800, 2000

FREQOUT speaker, 1000, 2500

12

Lecture 3 – Robot MotionAssignment

• Reproduce the effect of the program on the previous slide using a FOR loop and a single FREQOUT command.

• Page 14 of the “Writing Programs” book shows the mapping between musical notes and frequencies. Program the Scribbler to play the beginning of a song ...

• Find the calibration values for your robot and record them. You will need them in the future.

13