Pioneer Module Mobile manual Programming the Digital I/O Ports, Programming the A/D Ports

Models: Module Mobile

1 32
Download 32 pages 21.03 Kb
Page 22
Image 22

Experimenter’s Module

5.2 Programming the Digital I/O Ports

Use the sfCOMDIGOUT PSOS command and the related Saphira convenience command to manage the various digital output ports. They are described in detail in the previous chapter. (PAI and P-LOGO support similar commands, too.)

For example, to turn the right LED on, use:

sfRobotCom2Bytes(sfCOMDIGOUT, sfRIGHTLEDBIT, sfRIGHTLEDBIT)

Or alternatively, specify the state of an LED:

void sfGripperSetLed(int which, int state)

for which=sfLEFT or sfRIGHT, and state=sfON or sfOFF.

5.3 Programming the A/D Ports

The eight analog-to-digital (A/D) ports on the Experimenter’s Module (AN0-7) are multiplexed from a single A/D port on the Pioneer 1 microcontroller. Hence, only one port may be read at a time, although all eight ports may connect to individual sources.

Each AN port accepts a 0-5VDC analog input and outputs a proportionally related,

single byte value 0-255. Use the digital output ports OD5-7 to address which port PSOS will read and return as the A/D value in the Server Information Packet (section 3.2, PSOS Server Information Packet).

For example, the following Saphira command addresses the AN4 port by masking the OD5-7 ports, setting OD7, and resetting OD5 and OD6: (remaining output ports remain untouched:

sfRobotCom2Bytes(sfCOMDIGOUT, 0xE0, 0x80)

5.4 Programming the Speaker

The latest PSOS implements a new command called SAY, which plays a sequence of up to 20 notes through the Experimenter’s Module speaker. Now your Pioneer will be humming a different tune!

The SAY command (number 15) has two arguments: a string up to 40 bytes long, and the integer number of actual bytes in the string:

sfRobotComStrn(sfCOMSAY, str, n)

The string is comprised of duration and tone pairs; the duration byte is the number of

20 millisecond increments the following tone value half-cycle times—in 150 microsecond increments—should be played through the speaker.

For example, to play two short, high beeps using the Saphira equivalent command:

void sfPlayToneString ("\010\002\010\000\010\002", 6)

18

Page 22
Image 22
Pioneer Module Mobile manual Programming the Digital I/O Ports, Programming the A/D Ports, Programming the Speaker