WiRobot DRK6080/8080 USER MANUAL

WiRobot DRK6080/8080 USER MANUAL

WiRobot DRK6080/8080 USER MANUAL

WiFi 802.11 Wireless Mobile System

Version: 1.0.9

JUNE 2006

Table of Contents

Chapter I.

WiRobot Getting Start Guide ........................................................................................... 4

I.

Preface............................................................................................................................................................... 5

I.1

Audience.................................................................................................................................................... 5

I.2

Feedback ................................................................................................................................................... 5

II.

WiRobot Overview..........................................................................................................................................6

II.1

Software Components ........................................................................................................................... 7

III.

Software (WiRobot SDK) Installation ........................................................................................................8

III.1

System Requirements ............................................................................................................................ 8

III.2

WiRobot System Installation................................................................................................................ 8

IV.

Connecting to WiRobot System...................................................................................................................9

IV.1

WiFi Wireless Connecting...................................................................................................................... 9

IV.2

Serial Cable Connecting .......................................................................................................................10

V.

Building PC Applications Using SDK......................................................................................................... 12

V.1

Using WiRobot SDK Component ActiveX Control ........................................................................ 12

V.2

Sample Application 1 - WiRobot DRK8000 Controller (VB) ..................................................... 14

V.3

Sample Application 2 - WiRobot DRK6000/8000 Controller (VC++).................................... 15

V.4

Other Sample Applications.................................................................................................................. 16

VI.

Miscellaneous ................................................................................................................................................. 16

VI.1

System Update ...................................................................................................................................... 16

Chapter II.

DRK6080/8080 System Specification ....................................................................... 17

I.

WiRobot DRK6080/8080 Overview .....................................................................................................18

I.1

Standard Electronics components and Operation Detail............................................................. 19

I.2

Mechanical Specification..................................................................................................................... 21

I.3

Electrical ................................................................................................................................................. 22

I.4

Other Specification .............................................................................................................................. 24

II.

Miscellaneous ................................................................................................................................................ 24

II.1

Battery Recharging.............................................................................................................................. 24

II.2

Sensor Location.................................................................................................................................... 24

II.3

Known Issues......................................................................................................................................... 24

Chapter III.

WiRobot SDK Application Programming Interface (API) (For MS Windows) ........ 25

I.

Convention ..................................................................................................................................................... 26

II.

WiRobot SDK Overview ............................................................................................................................. 27

III.

WiRobot SDK API Reference for PMS5005 ........................................................................................ 29

III.1

Sensor Peripherals............................................................................................................................... 29

III.2

Motion Control ...................................................................................................................................... 43

III.3

Multimedia Control ............................................................................................................................... 59

III.4

Events ..................................................................................................................................................... 59

IV.

WiRobot SDK API Reference for PMB5010 ........................................................................................60

IV.1

Multimedia Control ............................................................................................................................... 60

Copyright © Dr Robot Inc. 2005

1

IV.2

Events ..................................................................................................................................................... 63

V.

WiRobot DRK6080/6000/8080/8000 Specific APIs .................................................................. 64

V.1

Low Level Protection.......................................................................................................................... 64

Chapter IV.

WiRobot Module .............................................................................................................. 65

I.

PMS5005 Sensing and Motion Controller............................................................................................. 66

I.1

Introduction ........................................................................................................................................... 66

I.2

Operations ............................................................................................................................................. 68

I.3

Procedure to upgrade the PMS5005 firmware ............................................................................76

II.

PMB5010 Multimedia Controller ............................................................................................................. 79

II.1

Introduction ............................................................................................................................................79

II.2

Operations .............................................................................................................................................. 81

II.3

Procedure to upgrade the PMB5010 firmware............................................................................ 85

III.

MDM5253 DC Motor Driver Module with Position and Current Feedback.................................... 88

III.1

Introduction ........................................................................................................................................... 88

III.2

Operations ............................................................................................................................................. 88

III.3

Connections ........................................................................................................................................... 90

III.4

Specifications ......................................................................................................................................... 91

IV.

WFS802b WiFI 802.11 Serial Module with antenna .......................................................................... 93

IV.1

Introduction ........................................................................................................................................... 93

IV.2

Operations ............................................................................................................................................. 93

IV.3

Connections ........................................................................................................................................... 93

IV.4

Specifications ........................................................................................................................................ 95

IV.5

Configuration via Serial Mode or Telnet Port................................................................................ 96

IV.6

Configuration using Web-Manager................................................................................................... 116

V.

MCB3100 WiRobot Serial Bluetooth Wireless Module.................................................................... 128

V.1

Introduction ......................................................................................................................................... 128

V.2

Operations ........................................................................................................................................... 128

V.3

Connections ......................................................................................................................................... 129

V.4

Specifications ...................................................................................................................................... 130

VI.

MAC5310 Audio Codec and Audio Power Amplifier Module ............................................................ 131

VI.1

Introduction .......................................................................................................................................... 131

VI.2

Operations ............................................................................................................................................ 131

VI.3

Connections .......................................................................................................................................... 131

VI.4

Specifications .......................................................................................................................................132

VII.

DUR5200 Ultrasonic Range Sensor Module ...................................................................................... 134

VII.1

Introduction ......................................................................................................................................... 134

VII.2

Operations ........................................................................................................................................... 134

VII.3

Connections ..........................................................................................................................................135

VII.4

Specifications .......................................................................................................................................136

VIII.

DTA5102 Two-Axis Tilt and Acceleration Sensor Module ...............................................................137

VIII.1

Introduction ..........................................................................................................................................137

VIII.2

Operations ............................................................................................................................................137

VIII.3

Connections ..........................................................................................................................................139

VIII.4

Specifications ...................................................................................................................................... 140

Copyright © Dr Robot Inc. 2005

2

IX.

DHM5150 Human Motion Sensor Module ............................................................................................ 141

IX.1

Introduction .......................................................................................................................................... 141

IX.2

Operations ............................................................................................................................................ 141

IX.3

Connections ......................................................................................................................................... 142

IX.4

Specifications ...................................................................................................................................... 143

IX.5

Fresnel Lens ........................................................................................................................................ 143

X.

DAT5280 Ambient Temperature Sensor Module .............................................................................. 144

X.1

Introduction ......................................................................................................................................... 144

X.2

Operations ........................................................................................................................................... 144

X.3

Connections ......................................................................................................................................... 145

X.4

Specifications ...................................................................................................................................... 146

Chapter V.

TROUBLE SHOOTING ................................................................................................. 147

Copyright © Dr Robot Inc. 2005

3

Chapter I.

WiRobot Getting Start Guide

Copyright © Dr Robot Inc. 2005

4

I.

Preface

I.1

Audience

This document is written for robot developers in using WiRobot systems. It provides the initial product information as well as a guide in helping users to understand how to use this system. The developers should have basic knowledge in Microsoft Visual C++ or VB. Detail programming information can be found in Chapter III.

I.2

Feedback

If you find any problems in this document, please send us your feedback to [email protected]

.

Copyright © Dr Robot Inc. 2005

5

II.

Wi

R

obot Overview

WiRobot

TM

is an integrated electronic and software robotic system extended from Dr Robot’s comprehensive humanoid robot, which has demonstrated its interactive capabilities in the public and the media. Each WiRobot development system is designed to provide a user-friendly programming environment for hobbyists, students in robotic areas and researchers to develop their robot programs and applications at an affordable cost.

The power of WiRobot mobile robot system comes from the Dr Robot’s Distributed Computation

Robotic Architecture and System (DIRAS) technology, which offloads most of the computation and storage intensive tasks to a home PC. Through a digital wireless connection supporting over 100 kbps data communication rate, user programs running on PC are virtually connected directly to the

WiRobot development system. Data such as image, audio, sensor information, and etc. are available to the user through a set of ActiveX control components (SDK) developed for MS VC++ and VB programming environment. Multiple PC programs are also allowed to access the data information obtained from the sensors simultaneously. High level schemes such as tele-operation, navigation, reasoning, learning, recognition, and image processing routines are programmed and executed on the

PC remotely. Multi-robot coordination is also feasible for applications like soccer game. Microsoft

Visual Studio programming environment is chosen as the development platform due to its popularity and ease-of-use than the non-user friendly embedded programming interface. Note that communication protocol for WiRobot system is also available for developers/researchers who prefer to use different platform or operating systems to communicate and control the WiRobot system. But this document focuses on how to use the WiRobot system using the SDK under Microsoft platform.

As well, WiRobot system already comes with low-level drivers for all its electronic modules and can provide a flexible way for users to control the robot. For instance, it allows user to control standard servo motors and DC motors by using the built-in commands available in the control command library, which offers several types of DC motor control method including open-loop PWM, closed-loop position control, closed-loop velocity control, and closed-loop current control. Control parameters are also configurable.

Copyright © Dr Robot Inc. 2005

6

II.1

Software Components

The WiRobot system comes with a CD containing the following software components and documents:

.

“WiRobot Gateway” which is used to connect the PC to the robot and show the connection status,

.

An ActiveX control, called WiRobot SDK ActiveX Module, with a set of APIs is provided for user to access the robot when developing his/her own applications in MS VC++ or VB,

.

Several PC sample applications with source code is provided to demonstrate the capabilities of the WiRobot system, and

.

WiRobot documents. (The latest documents can be found on www.drrobot.com

)

In the WiRobot system, low level electronic drivers are pre-programmed and embedded in the

WiRobot controllers (PMS5005 and PMB5010). Data information such as image, audio, sensor information, and etc. are available to the user via the WiRobot ActiveX control developed for MS VC++ and VB program environment or by using the WiRobot communication protocol. Using this ActiveX control, user can also send various control commands to the robot. A general connection architecture of the WiRobot system is shown as follows:

Figure II.1 WiRobot System Communication Architecture

Copyright © Dr Robot Inc. 2005

7

III.

Software (WiRobot SDK) Installation

III.1

System Requirements

The PC requirements in using the WiRobot system are:

.

PIII 550MHz or faster CPU

.

64 MB RAM or more

.

20 MB hard disk free space

.

Microsoft Windows 2000 or XP operating system

As well as, Microsoft Visual VB or VC++ 6.0 (with Service Pack 5) is required for users to develop their own applications.

III.2

WiRobot System Installation

Insert the WiRobot System CD into the CD ROM and the auto run menu will guide you through the installation process.

Figure III.1 WiRobot Installation Step 1

Copyright © Dr Robot Inc. 2005

Figure III.2 WiRobot Installation Step 2

8

By default, all these components will be installed under the directory “C:\Program

Files\DrRobot\WiRobot-System” unless user specifies another location during the installation.

Figure III.3 WiRobot Installation Step 3

IV.

Connecting to WiRobot System

IV.1

WiFi Wireless Connecting

IV.1.1

Configuration your 802.11b (or 802.11b compatible) wireless access point/router

Configuration your 802.11b (or 802.11b compatible) wireless access point/router with following default settings:

SSID: dri

SSID BROADCAST: Enable

AUTHENTICATION: SHARED KEY

WEP 128 bit key: 112233445566778899AABBCCDD

Router IP: 192.168.0.200

If you prefer to change the router setting, such as SSID, router IP and/or key, you have to configure the WiFi module (see Chapter IV, session IV. WFS802b WiFi 802.11 Serial Module with Antenna) on the robot to match your changed settings.

Copyright © Dr Robot Inc. 2005

9

IV.1.2

Run the WiRobot Gateway

Figure IV.2 WiFi Gateway

Check the WiFi Connection and input the IP of the robot which you want to connect, and input the

Port with 10001, and then click the Connect button. You can find the robot IP under the robot.

IV.2

Serial Cable Connecting

The user can also connect the WiRobot system to a PC through a null modem cable (RS232 Crossover Serial Cable) as follows:

Figure IV.3 WiRobot System Setup without Wireless Connection

Copyright © Dr Robot Inc. 2005

10

IV.2.1

Connecting the cable and module

.

Connect Serial cable, make sure the serial cable is connected to the COM1 socket of your PC at one end, and the other end should be connected to the RS232 interface module.

1.

2.

3.

RS232

Figure IV.4 Connection of RS232 with Serial Cable

.

Unplug the serial Bluetooth wireless module which had already plugged in the lower socket board PMB5010 of the robot.

Figure IV.5 Upper reach SCI0 of Lower Socket Board PMB5010

.

Then plug the RS232 interface module in Upper Reach SCI0 on the PMB5010 which is the lower socket board of the robot. (Picture available in the PMB5010 Multimedia Controller

User Manual, Page 94)

IV.2.2

Turn on the robot

Check the LED lights on the socket board, and find out if they are flashing on the socket board. There should be 2 LED lights keep flashing fast on the upper board PMS5005 in the right rear corner of the robot and 1 LED light keep flashing on the lower board in the right front corner of the robot. If these 3

LED lights are flashing, the robot is started completely.

IV.2.3

Run the WiRobot Gateway

.

Select COM1 and Serial Cable

.

Click the "Connect" button when you are sure that the robot is completely started.

.

Wait 1 to 3 seconds, the WiRobot Gateway will minimize automatically when connected.

.

If it is not connected, close the WiRobot Gateway and turn off the robot try it again 10 seconds later.

Copyright © Dr Robot Inc. 2005

11

Figure IV.6 GUI of WiRobot Gateway on PC

The “WiRobot Gateway” will provide connection status information between the PC and the robot.

This program is required to keep running as long as the user wants to access and control the robot through the sample applications or their custom programs. Robot data acquisitions including human sensor, ultrasonic sensor, Infrared distance sensor, tilting sensor, potentiometer, color CMOS image sensor, microphone, and etc. and motion control can be done by making function calls offered by the

“WiRobot SDK ActiveX Module”. Details of this ActiveX control component can be found in the

Chapter III. WiRobot SDK API Reference.

After the connection is established between the robot and the PC, user can start to use the WiRobot system by running the sample applications offered in the WiRobot software package.

V.

Building

P

C Applications Using SDK

This section will discuss how to program user’s applications. Several sample applications with source code are provided to help user kick start in using the WiRobot system. All these source code will be stored in the “SampleApps” folder under the WiRobot SDK installation location.

V.1

Using WiRobot SDK Component ActiveX Control

When user starts to write an application, he/she first adds the WiRobot SDK Component in your VB or

VC++ project. The ActiveX object is installed during the installation process and the following is a step to step guideline showing how to incorporate the ActiveX Control into a VB 6.0 project:

.

Create a new VB project

Copyright © Dr Robot Inc. 2005

12

.

Click “Project” in the menu and choose the “Components”

Figure V.1 Using ActiveX module under VB Step 1

.

Uncheck the “Selected Items Only” box to show all components, choose the “WiRobot SDK

ActiveX Module” and click “OK”

Figure V.2 Using ActiveX module under VB Step 2

.

A new icon on the left menu bar will appear and user can simply drag and drop this icon to the

Project’s Form and start using the APIs offered by this ActiveX control. By default the variable name of this component is “WiRobotSDK1”.

Copyright © Dr Robot Inc. 2005

13

Figure V.3 Using ActiveX module under VB Step 3

V.2

Sample Application 1 - WiRobot DRK8000 Controller (VB)

This sample application demonstrates the basic capabilities of the WiRobot DRK8000 using

Microsoft VB with source code provided. This program can read sensor data, obtain image and audio, play wave file, set the LCD display image, and control the robot movement. The GUI of this program is shown as follows:

Figure V.4 GUI of the WiRobot DRK8000 Controller (VB)

User can click the button on the interface to control the robot as long as the “WiRobot Gateway” is connected to the robot.

The following are some functions used in this sample application for controlling the servos mounted on the head:

WiRobotSDK1.EnableServo 0

WiRobotSDK1.ServoTimeCtr 0, 3800, 1000

Copyright © Dr Robot Inc. 2005

14

The

WiRobotSDK1 is the WiRobot SDK Component ActiveX control. The first line will enable the channel

0 servo. The second line will control the servo to take 1000ms to the target position of 3800.

User can also obtain and control the multimedia information of the robot simply by calling the following functions

WiRobotSDK1.LcdDisplayPMS sourceFileName

WiRobotSDK1.TakePhoto

WiRobotSDK1.SavePhotoAsBMP destinationfileName

The first function will change the LCD display on the robot to the image stored in the

“sourceFileName” which is in bitmap format. The second function will request the robot to take a picture and an “ImageEvent” will be triggered when this image is ready for pickup. The third function will save the image to the file with “destinationfileName” in bitmap format.

V.3

Sample Application 2 - WiRobot DRK6000/8000 Controller (VC++)

The second sample application demonstrates how to program a VC++ application using the WiRobot system. The GUI of this program interface is shown as follows:

Figure V.5 GUI of the WiRobot DRK6000/8000 Controller (VC++)

To obtain an image from the robot, user can call the following function where m_ctlSDK is a member variable of the class CWiRobotSDK imported from the “WiRobot SDK ActiveX Module” m_ctlSDK.TakePhoto ();

To control the robot to move forward continuously, user can call the following functions m_ctlSDK.SetDcMotorControlMode (1, 0); m_ctlSDK.DcMotorPwmTimeCtrAll (32066, 32066, -32768, -32768, -32768, -32768, 800);

To stop the robot, the following commands can be used: m_ctlSDK.SuspendDcMotor (0);

Copyright © Dr Robot Inc. 2005

15

For details on how to control the robot using Microsoft Visual C++, please refer to the sample C++ source code and Chapter III. WiRobot SDK API (Page 26).

V.4

Other Sample Applications

More sample applications are available in the “SampleApps” folder for reference.

VI.

Miscellaneous

VI.1

System Update

Dr Robot will provide software update for both the PC software as well as the DSP software to enhance the existing features. User can visit www.DrRobot.com

to check for any new updates available for the existing system.

Copyright © Dr Robot Inc. 2005

16

Chapter II.

DRK6080/8080 System Specification

-DRK6080 Wireless Mobile System

-DRK8080 Wireless Mobile Animated Head System

Copyright © Dr Robot Inc. 2005

17

I.

WiRobot DRK6080/8080 Overview

WiRobot is an integrated electronic and software robotic system extended from Dr Robot’s comprehensive humanoid robot. Each WiRobot development system is designed to provide a userfriendly programming environment for hobbyists, students and researchers to develop their advanced robot programs and applications at an affordable cost. The DRK6080/8080 development system includes the respective mechanical structure, electronic modules as well as the software development kit (SDK). The mechanical structure is already pre-built and the electronic system is setup with a

Multimedia Controller (PMB5010), a Sensing-Motion Controller (PMS5005) and various peripheral electronic modules. The software component will be installed on a PC and is responsible to establish a wireless connection and exchange data with the robot. User can develop their own applications in

VC++ or VB using the APIs offered in “WiRobot SDK ActiveX Module” which accesses the sensor information, sends control command and configures the system setting.

Copyright © Dr Robot Inc. 2005

18

I.1

Standard Electronics components and Operation Detail

WiRobot DRK6080/8080 Specifications:

Table I.1 WiRobot DRK6080/8080 Specifications

On-Board CPUs

On-Board Storage

Over 120MIPS 16-bit fix-point DSP in total

1M x 16-bit words flash, Up to 256K x 16-bit words SRAM

Degree of Freedom

Built-in Peripheral Interface and Modules

2 x wheel motion, 2 x camera motion (Pan + Tilt) , up to 6 servos and 6 DC motors

8-bit CIF (352 x 288) Color CMOS Camera Module

Audio codec and amplifier module with mic. and speakers

128 x 64 graphic LCD display module

115kbps wireless module

General-purpose PWM DC motor control

DC motors (up to 6)

Servo motors (up to 6)

Quadrature Encoder Inputs

Ultrasonic sensor modules (up to 6)

Potentiometer position feedback sensor (up to 6)

Human sensor module (up to 2)

Infrared range sensor input

Ambient temperature sensor modules

Tilt/acceleration sensor modules

Custom A/D inputs

Digital inputs

Digital outputs

Full duplex serial communication interface (SCI)

Full duplex infrared remote control and communication interface

Wireless Operation Range 15 meter indoor

35 meter line of sight

DRK6080 DRK8080

X1

X1

X1

X1

X6

X2

X2

X2

X4

X4

X1

X1

X8

X8

X8

X2

X1

X1

X1

X8

X8

X6

X4

X2

X1

X6

X2

X5

X2

X1

X1

X1

X1

X8

X2

X1

Power Supply

Operation Time

Maximum Moving Speed

Additional/Optional

Peripheral Modules

7.2V Ni-MH 2100mAh with 2100mAh battery with 3300mAh battery

Approx. 9 meter per minute

Ambient temperature sensor modules

Tilt/acceleration sensor modules

DC motor

Servo

Ultrasonic sensor module

Potentiometer position feedback sensor

Human sensor module

1 x Smart fast charger

1 x 7.2V Ni-MH 3300mAh

1.5hr

2.5hr

X1

X1

X4

X4

X2

X2

X1

X1

X1

1.2hr

2.2hr

X4

X1

X2

X1

X1

Copyright © Dr Robot Inc. 2005

19

The standard WiRobot DRK series system electronic modules:

Table I.2 Standard WiRobot DRK Series System Electronic Modules

Part Number

PMS5005

Name

Robot Sensing and Motion Controller

DRK6080 DRK8080

1

1

1

1

2 2 MDM5253

MCI3908

DUR5200

DC Motor Driver Module with Position and Current

Feedback

Color Image Module With Camera

Ultrasonic Range Sensor Module

DHM5150

DTA5102

Pyroelectric Human Motion Sensor Module

Tilt/Acceleration Sensor Module

DAT5280 Ambient Temperature Sensor Module

GP2Y0A21YK Sharp IR Distance Measuring Sensor Module

MCR3210

WFS802b

BAS8100

MAC5310

RS232 Interface Module

WiFi802.11b Wireless Serial Module

8 Ohm 1W Speaker

Audio Codec and Audio Power Amplifier Module

MIR5538

DIR5538

CCR2150

MGL5128

38kHz Infrared Remote Controller Module

38kHz Infrared Remote Controller

RS232 Cross-over Serial Cable

128x64 Graphic LCD Module

MRS3302 Rotary Module

N/A Servo

BPN7220 7.2V Ni-MH 2100mAh Battery Pack

1

4

1

1

1

1

1

0

0

1

1

1

1

1

1

1

2

1

1

6

1

1

1

1

1

1

1

1

1

4

1

4

2 5

2 2

1 1

Copyright © Dr Robot Inc. 2005

20

I.2

Mechanical Specification

The following two diagrams illustrate the mechanical structure of the WiRobot DRK6080 and

DRK8080 system:

Copyright © Dr Robot Inc. 2005

Figure I.1 WiRobot DRK6080

21

Figure I.2 WiRobot DRK8080

I.3

Electrical

I.3.1

Power

The DRK6080/8080 is powered by a single 7.2V battery pack. This battery pack is connected to both PMS5005 and PMB5010 through a switch. User can turn on or turn off the system (both

PMS5005 and PMB5010) by pressing the switch behind the head.

I.3.2

Communication

In the DRK6080/8080 system, PMS5005 and PMB5010 are connected together between

PMB5010’s Lower Reach SCI1 and PMS5005’s Upper reach SCI0. A wireless module is placed on

PMB5010’s Upper Reach SCI0 in order to communicate with a PC.

Copyright © Dr Robot Inc. 2005

22

I.3.3

Electrical Modules

In this system, all electrical modules are located and connected as followed:

Electrical Module

Table I.3 Electrical Modules Located and Connection

DRK6080 Location / Setting DRK8080 Location / Setting

Ultrasonic #1

Ultrasonic #2

Ultrasonic #3

Ultrasonic #4

Ultrasonic #5

Left front

Middle front

Right front

Middle rear

Left front

Middle front

Right front

Right rear

Middle rear

Ultrasonic #6

Human Sensor #1

Human Sensor #2

Infrared Range Sensor

Middle front

Under the camera box

Left rear

Left front

Right front

Between eyes

Infrared Sensor

Temperature Sensor

Front Front

Rear

Acceleration and Tilting Sensor Inside the robot

To control the left/right To control the up/down movement of the neck (use channel 1) movement of the neck (use channel 1)

Servo #4

Servo #5

DC Motor #1 with dual rotary sensors

To control the up/down To control the left/right movement of the neck (use movement of the neck (use channel 2) channel 2)

To control the mouth (use channel 3)

In between eyes to control the up/down rotation of the eyes

(use channel 5)

Left , use channel 1

In between eyes to control the left/right rotation of the eyes

(use channel 6)

Left , use channel 1

DC Motor #2 with dual rotary sensors

LCD Display

Right, use channel 2

Front

Right, use channel 2

Front

Camera

Speaker

Microphone

Inside the camera box

Beside the speaker

Inside left eye

Inside the robot

Near the Infrared range sensor

Please refer to Chapter IV.I PMS5005 (Page 67) for details on how to connect different sensors, DC motors, servos, and LCD display to the system. For camera, speaker and microphone, please refer to

Chapter IV.II PMB5010 (Page 82).

Copyright © Dr Robot Inc. 2005

23

I.4

Other Specification

Table I.4 Other Specification

Weight (including one battery pack)

Recommended Maximum Load

~2kg

~2.5kg

~2.5kg

~2.5kg

II.

Miscellaneous

II.1

Battery Recharging

User can simply take out the battery at the lowest deck of the robot to recharge. It will normally take about 20 hours to fully recharge the 2100mAh battery if slow charging is chosen. Fast charge would take about 1-2 hours.

II.2

Sensor Location

User can change the sensor mounted on the robot to different location to suit his/her needs. As well, user can add new sensors to the systems by making use of the available I/Os on the Sensing and

Motion Controller (PMS5005). Driver for these I/Os have been pre-programmed, data will be sent to the PC for processing.

II.3

Known Issues

.

When the power level is low, the robot’s electrical system will become unstable. User has to monitor the power level and recharge the battery when it is low.

.

The initialization of the robot (when powering on) will take about 3-10 seconds.

.

Please make sure that the robot finished its initialization stage before WiRobot Gateway software (on PC) starts to connect to the robot. This may lead to failure connection between

PC and the robot

Copyright © Dr Robot Inc. 2005

24

Chapter III.

WiRobot SDK Application Programming

Interface (API) (For MS Windows)

Copyright © Dr Robot Inc. 2005

25

I.

Convention

Data Type int: short:

UWord16:

16 bit signed interger

16 bit unsigned interger

16 bit signed interger

Syntax

Syntax under each API reference is based on the C/C++ calling convention. Corresponding Visual

Basic calling convention can be found in relevant VB reference book, or from the WiRobot VB code examples.

Copyright © Dr Robot Inc. 2005

26

II.

WiRobot SDK Overview

WiRobot Software Development Kit (SDK) is a part of the WiRobot development system. Being a PCbased software framework for robotic system development, the SDK contains the facilities for memory management, system communication and user interface, and the utilities for audio, video input/output, sensor data acquisition and motion control. Please refer to the Chapter IV.I PMS5005,

Chapter IV.II PMB5010, or Chapter II X80 for the detailed information on the SDK architecture, organization and system programming.

Under the WiRobot system architecture, all the controllers are connected in a chain. Programs developed using WiRobot SDK runs on the Host as the central controller of each chain. All the embedded controllers have at least two SCI ports for the system communications: upper-reach port and lower-reach port, with the direction respect to the central controller. The WiRobot system controller-level connection architecture is shown as Figure II.1.

Figure II.1 WiRobot System Architecture

The APIs described in this manual are the interface between the application-level software and the

WiRobot hardware system. Programs developed using WiRobot SDK runs on the PC sending and receiving data to and from the WiRobot hardware via wire or wireless connection. The firmware on the embedded controllers take care of all the low level operations of the system functional modules, such as data acquisition, fast-loop low level motion control, image and audio capture and compression, audio playback and wireless communication. They are transparent to the high level software system running on the central PC controller. All the system software development can be carried on solely under user-friendly PC system. WiRobot SDK for Windows is available for MS Visual C++ and MS

Visual Basic environment.

API exists as a MS ActiveX component, called “WiRobot SDK ActiveX Module”. User program uses this component in VB or VC++ program to communicate with the WiRobot PMS5005 or/and

Copyright © Dr Robot Inc. 2005

27

PMB5010 controllers. Data in between WiRobot hardware and the “WiRobot SDK ActiveX Module” is managed and transferred by the supplied WiRobot Gateway Program (WiRobotGateway.exe) with the shared memory as shown in Figure II.2.

Figure II.2 WiRobot Software Architecture

Copyright © Dr Robot Inc. 2005

28

III.

WiRobot SDK API Reference for PMS5005

WiRobot SDK APIs for PMS5005 are grouped under the categories of Sensor Peripherals, Motion

Control, Multimedia Control and Events

.

III.1

Sensor Peripherals

This section contains the APIs for the operations of different sensor peripherals.

III.1.1

Batch Sensor Data Updating API

Standard Sensors: Sonar, human, infrared range, tilt/acceleration, temperature, battery voltage and infrared remote control receiver

Motor Sensors: Potentiometers, current feedback sensors and encoders.

Custom Sensors: Custom expansion A/D inputs and digital inputs.

1 void SystemMotorSensorRequest(int PacketNumber);

2 void SystemStandardSensorRequest(int PacketNumber);

3 void SystemCustomSensorRequest(int PacketNumber);

4 void SystemAllSensorRequest(int PacketNumber);

Description:

SystemMotorSensorRequest sends a request command to the WiRobot Sensing and

Motion Controller (PMS5005) in order to get the sensor data related to motor control.

SystemStandardSensorRequest sends a request command to the WiRobot Sensing and

Motion Controller (PMS5005) in order to get all the WiRobot standard sensor data.

SystemCustomSensorRequest sends a request command to the WiRobot Sensing and

Motion Controller (PMS5005) in order to get all custom-sensor data,

SystemAllSensorRequest sends a request command to the WiRobot Sensing and Motion

Controller (PMS5005) in order to get all the sensor data.

Syntax: SystemMotorSensorRequest (PacketNumber); // motor related sensors

SystemStandardSensorRequest (PacketNumber); // standard sensors

// all the sensors SystemAllSensorRequest (PacketNumber);

Parameter: short PacketNumber;

The meanings of PacketNumber as follows:

Table III.1 Meanings of PacketNumber

PacketNumber = 0

PacketNumber = -1

PacketNumber > 0

Copyright © Dr Robot Inc. 2005

Stop sending the sensor data packets

Send sensor data packet continuously until being asked to stop

Send n = PacketNumber packet(s) of sensor data and then

29

stop sending

Return value: void

Remarks:

(1)

The default update rate is 20Hz. User can set up the data refresh rate according to real system requirements.

(2)

System is default to continuously sending all data when bootup.

See Also: SetSysMotorSensorPeriod, SetSysStandardSensorPeriod,

SetSysCustomSensorPeriod, SetSysAllSensorPeriod.

5 void EnableMotorSensorSending ();

6 void EnableStandardSensorSending ();

7 void EnableCustomSensorSending ();

8 void EnableAllSensorSending ();

Description:

EnableMotorSensorSending enables batch updating motor-related sensor packets.

EnableStandardSensorSending enables batch updating standard sensor packets.

EnableCustomSensorSending enables batch updating custom sensor packets.

EnableAllSensorSending enables batch updating all the sensor packets.

Syntax: EnableMotorSensorSending();

EnableStandardSensorSending ();

EnableCustomSensorSending ();

EnableAllSensorSending ();

// motor related sensors

// standard sensors

// custom sensors

// all the sensors

Parameter: void

Return value: void

Remarks:

1.

The latest request setting of the packet number and the update rate are used.

2.

By default, “all sensor data sending” is enabled.

3.

Please refer to the remarks under SystemMotorSensorRequest,

SystemSatndardSensorRequest, SystemCustomSensorRequest,

SystemAllSensorRequest

9 void DisableMotorSensorSending ();

Copyright © Dr Robot Inc. 2005

30

10

void DisableStandardSensorSending ();

11

void DisableCustomSensorSending ();

12

void DisableAllSensorSending ();

Description:

DisableMotorSensorSending disables batch updating motor-related sensor packets.

DisableStandardSensorSending disables batch updating standard sensor packets.

DisableCustomSensorSending disables batch updating custom sensor packets.

DisableAllSensorSending disables batch updating all the sensor packets.

Syntax: DisableMotorSensorSending();

DisableStandardSensorSending ();

DisableCustomSensorSending ();

DisableAllSensorSending ();

// motor related sensors

// standard sensors

// custom sensors

// all the sensors

Parameter: void

Return value: void

See Alao: SystemMotorSensorRequest, SystemStandardSensorRequest,

SystemCustomSensorRequest, SystemAllSensorRequest.

13

void SetSysMotorSensorPeriod(short PeriodTime) ;

14

void SetSysStandardSensorPeriod(short PeriodTime);

15

void SetSysCustomSensorPeriod(short PeriodTime) ;

16

void SetSysAllSensorPeriod(short PeriodTime) ;

Description:

SetSysMotorSensorPeriod sets refresh rate of batch updating motor-related sensor packets.

SetSysStandardSensorPeriod sets refresh rate of batch updating standard sensor packets.

SetSysCustomSensorPeriod sets refresh rate of batch updating custom sensor packets.

SetSysAllSensorPeriod sets refresh rate of batch updating all the sensor packets.

Syntax: SetSysMotorSensorPeriod ();

SetSysStandardSensorPeriod ();

SetSysCustomSensorPeriod ();

SetSysAllSensorPeriod ();

Parameter: short PeriodTime;

// motor related sensors

// standard sensors

// custom sensors

// all the sensors

/* Update period (in ms) for batch sensing

Copyright © Dr Robot Inc. 2005

31

packets to PC central controller */

Return value: void

Remarks:

The default PeriodTime = 50 (ms), i.e. update rate is 20Hz. PeriodTime should be bigger than 50 (ms), i.e. the system data fastest refresh rate is 20Hz.

See Also: SystemMotorSensorRequest, SystemStandardSensorRequest,

SystemCustomSensorRequest, SystemAllSensorRequest.

III.1.2

Range and Distance Sensors

17

short GetSensorSonar1 ();

18

short GetSensorSonar2 ();

19

short GetSensorSonar3 ();

20

short GetSensorSonar4 ();

21

short GetSensorSonar5 ();

22

short GetSensorSonar6 ();

23

short GetSensorSonar (short channel);

Description:

GetSonarSensorX returns the current distance value between the relevant ultrasonic range sensor module (DUR5200) and the object in front of it. The unit is cm.

Syntax: ival = GetSensorSonar1 (); ival = GetSensorSonar2 (); ival = GetSensorSonar3 (); ival = GetSensorSonar4 ();

// Sonar #1

// Sonar #2

// Sonar #3

// Sonar #4 ival = GetSensorSonar5 (); ival = GetSensorSonar6 ();

// Sonar #5

// Sonar #6 ival = GetSensorSonar (short channel); // Sonar #1, 2, 3, 4, 5, or 6

Parameter: void short channel;

Return value: short ival;

Return data interpretation:

// 0, 1, 2, 3, 4, or 5 for Sonar #1, 2, 3, 4, 5, 6

Table III.2 Meanings of PacketNumber

Return Value

4

4 to 254

Distance to Object

0 to 4 cm

4 to 254 cm

Copyright © Dr Robot Inc. 2005

32

255 255 cm or longer

24

short GetSensorIRRange ();

Description:

GetSensorIRRange returns the current distance measurement value between the infrared range sensor and the object in front of it.

Syntax: ival = GetSensorIRRange ();

Parameter:

Return value: void short ival;

Return data interpretation when using Sharp GP2Y0A21YK:

Table III.3 Return data interpretation

Return Value Distance to Object

<=585

585 to 3446

>=3446

80 cm or longer

80 to 8 cm

0 to 8 cm

Remarks:

The relationship between the return data and the distance is not linear. Please refer to the sensor’s datasheet for distance-voltage curve. The data returned is the raw data of the analog to digital converter. The output voltage of the sensor can be calculated from the following equation:

Sensor output voltage = (ival) * 3.0 / 4095 (V)

(e.g. Sharp GP2Y0A21YK

“http://sharp-world.com/products/device/lineup/data/pdf/datasheet/gp2y0a_d_e.pdf”)

III.1.3

Human Sensors

25

short GetSensorHumanAlarm1 ();

26

short GetSensorHumanAlarm2 ();

Description:

GetSensorHumanAlarm returns the current human alarm data from DHM5150 Human

Motion Sensor Module. Please refer to the Chapter IV.VIII DHM5150 (Page 106) for detailed information.

Copyright © Dr Robot Inc. 2005

33

Syntax:

Parameter:

Return value: ival = GetSensorHumanAlarm1(); ival = GetSensorHumanAlarm2 (); void short ival;

//1

// 2 st

human alarm nd

human alarm

Return data interpretation:

The return data is the raw value of the analog to digital converter indicating the amplified (x

5 times) output voltage of the sensor device. The data range is between 0 and 4095. When there is no human present, the module output voltage is about 1.5 V and return value is about 2047.

Remarks:

To detect human presence, the application should compare the difference of two samples

(to detect the change from “absence” to “presence”), and also compare the sample data to a user defined threshold (to determine whether to report an alarm or not). The threshold determines the sensitivity of sensor. The higher the threshold is the lower the sensitivity will be.

27

short GetSensorHumanMotion1 ();

28

short GetSensorHumanMotion2 ();

Description:

GetSensorHumanMotion returns the current human motion value from DHM5150 Human

Motion Sensor Module. Please refer to the Chapter IV.VIII DHM5150 (Page 106) for detailed information.

Syntax: ival = GetSensorHumanMotion1 (); ival = GetSensorHumanMotion2 ();

// Human direction data #1

// Human direction data #2

Parameter: void

Return value: short ival;

Return data interpretation:

The return data is the un-amplified raw value of the analog to digital converter indicating the output voltage of the sensor device. The data range is between 0 and 4095.

Remarks:

To detect human motion direction, the application should compare the difference of two samples of each sensor module’s output (to detect the change from “absence” to

“presence”), and then compare the sample data of the two sensor modules. For a single source of human motion, the different patterns of the two sensor modules manifest the directions of the motion. The relationship can be obtained from the experiments.

III.1.4

Tilt and Acceleration Sensor

Copyright © Dr Robot Inc. 2005

34

29

short GetSensorTiltingX ();

30

short GetSensorTiltingY ();

Description:

GetSensorTiltingX, GetSensorTiltingY, return the current tilt angle values in the relevant directions from DTA5102 Tilting and Acceleration Sensor Module.

Syntax: ival = GetSensorTiltingX (); ival = GetSensorTiltingY ();

Parameter: void

Return value: short ival;

// X direction

// Y direction

Return data interpretation:

Tilting Angle = ArcSin ((ival- ZeroGValue) / abs(90DegreeGValue-ZeroGValue));

Remarks:

Where 90DegreeGValue and ZeroGValue are module-specific values that can be measured by experiment:

1.

Place the sensor level, so that the gravity vector is perpendicular to the measured sensor axis

2.

Take the measurement and this value would be the ZeroGValue

3.

Rotate the sensor so that the gravity vector is parallel with the measured axis

4.

Take the measurement and this value would be the 90DegreeGValue

5.

Repeat this step for the other direction

Typical value of ZeroGValue is about 2048 and abs(90DegreeGValue-ZeroGValue) is about 1250.

III.1.5

Temperature Sensors

31

short GetSensorOverheatAD1 ();

32

short GetSensorOverheatAD2 ();

Description:

GetSensorOverheatADX returns the current air temperature values near the relevant DC motor drive modules (MDM5253), which could be used for monitoring whether the motor drivers are overheating or not. This situation usually occurs if the motor currents are kept high (but still lower than the current limit of the motor driver module) for significant amount of time, which may result from some unfavorable inner or external system conditions and is not recommended for regular system operations.

Syntax: ival = GetSensorOverheatAD1(); //1 st

overheating sensor

Copyright © Dr Robot Inc. 2005

35

ival = GetSensorOverheatAD2();

Parameter: void

Return value: short ival;

Return data interpretation:

//2 nd

overheating sensor

The return data is the raw value of the analog to digital converter indicating the output voltage of the sensor. The data range of the return value is between 0 and 4095. The output voltage of the sensor can be calculated from the following equation:

Temperature (˚C) = 100- (ival – 980) / 11.6

33

short GetSensorTemperature ();

Description:

GetSensorTemperature returns the current temperature value from DAT5280 Ambient

Temperature Sensor Module.

Syntax: ival = GetSensorTemperature ();

Parameter: void

Return value: short ival;

Return data interpretation:

Temperature (˚C) = (ival – 1256) / 34.8

III.1.6

Infrared Remote Control Handling

34

short GetSensorIRCode1();

35

short GetSensorIRCode2();

36

short GetSensorIRCode3();

37

short GetSensorIRCode4();

Description:

GetSensorIRCodeX returns the four parts of a two-16-bit-code infrared remote control command captured by the Sensing and Motion Controller (PMS5005) through the Infrared

Remote Controller Module (MIR5500).

Syntax: ival = GetSensorIRCode1 (); ival = GetSensorIRCode2 ();

// the first code

// the second code ival = GetSensorIRCode3 (); // the third code

Copyright © Dr Robot Inc. 2005

36

ival = GetSensorIRCode4 ();

Parameter:

Return value: void short

Return data interpretation: ival

// the fourth code

The recovered infrared remote control command (4 bytes code) is as follows:

Key Code: [the third byte] [the second byte] [the first byte]

Repeat Code: [the fourth byte] where the repeat code would be 255 if button is pressed continuously.

38

void SetInfraredControlOutput (UWord16 LowWord, UWord16 HighWord);

Description:

SetInfraredControlOutput sends two 16-bit words infrared communication output data to the Sensing and Motion Controller (PMS5005). The PMS5005 will then send the data out through the infrared Remote Controller Module (MIR5500). In the case of being used for infrared remote control, the output data serves as the remote control command.

Syntax: SetInfraredControlOutput (LowWord, HighWord);

Parameter: UWord16 LowWord; // 1 st

word

UWord16 HighWord; // 2 nd

word void Return value:

Remarks:

1.

In infrared communication application, the data format and the interpretation can be defined by the user at the application level.

2.

In infrared remote control application, the control command should be compatible to the device to which the command is sent.

3.

This API function is under development and will be available shortly.

III.1.7

Battery Voltage Monitors

39

short GetSensorBatteryAD1 ();

40

short GetSensorBatteryAD2 ();

41

short GetSensorBatteryAD3 ();

Description:

Copyright © Dr Robot Inc. 2005

37

GetSensorBatteryADX returns the current value of the relevant power supply voltage if the battery voltage monitor is enabled (default), or returns the relevant custom A/D inputs, if the custom A/D input is enabled which is configured by the jumpers on PMS5005. Please refer to Chapter IV.I PMS5005 Robot Sensing and Motion Controller (Page 67) for detailed information on hardware setting.

Syntax: ival = GetSensorBatteryAD1(); ival = GetSensorBatteryAD2(); ival = GetSensorBatteryAD3();

Parameter: void

Return value: short ival;

/* for battery of DSP circuits, or custom A/D channel #1 */

/* for battery of DC motors, or custom A/D channel #2 */

/* battery for servo motors,

or custom A/D channel #3 */

Return data interpretation:

The return data is the raw value of the analog to digital converter indicating the output voltage of the monitor. The data range is between 0 and 4095.

When monitoring the voltage of the power supply, following equations can be used to calculate the real voltage values.

(1)

Power supply voltage of DSP circuits = (ival / 4095) * 9 (V)

(2)

Power supply voltage of DC motors = (ival / 4095) * 24 (V)

(3)

Power supply voltage of servo motors = (ival / 4095) * 9 (V)

42

short GetSensorRefVoltage ();

43

short GetSensorPotVoltage ();

Description:

GetSensorRefVoltage returns the current value of the reference voltage of the A/D converter of the controller DSP.

GetSensorPotVoltage returns the current value of the power supply voltage of the potentiometer position sensors.

Syntax: ival = GetSensorRefVoltage (); ival = GetSensorPotVoltage ();

Parameter: void

Return value: short ival;

Return data interpretation:

Copyright © Dr Robot Inc. 2005

38

The return data is the raw value of the analog to digital converter indicating the output voltage of the monitor. The data range is between 0 and 4095. The following equation can be used to calculate the real voltage values.

Voltage = (ival / 4095) * 6 (V)

III.1.8

Potentiometer Position Sensors

44

short GetSensorPot1 ();

45

short GetSensorPot2 ();

46

short GetSensorPot3 ();

47

short GetSensorPot4 ();

48

short GetSensorPot5 ();

49

short GetSensorPot6 ();

50

short GetSensorPot (short channel);

Description:

GetSensorPotX returns the current value of the relevant potentiometer position sensors.

GetSensorPot (short channel) returns the current value of the specified potentiometer position sensor.

Syntax: ival = GetSensorPot1 (); ival = GetSensorPot2 ();

// Potentiometer sensor #1

// Potentiometer sensor #2 ival = GetSensorPot3 (); ival = GetSensorPot4 (); ival = GetSensorPot5 (); ival = GetSensorPot6 ();

// Potentiometer sensor #3

// Potentiometer sensor #4

// Potentiometer sensor #5

// Potentiometer sensor #6 ival = GetSensorPot (channel); /* Potentiometer sensor

#1, 2, 3, 4, 5, or 6 */

Parameter: void short channel;

// for GetSensorPotX

/* 0, 1, 2, 3, 4, or 5 for Potentiometer #

1, 2, 3, 4, 5, 6 */

Return value: short ival;

Return data interpretation and Remark:

1.

The return data is the raw value of the analog to digital converter indicating the output voltage of the sensor. The data range is between 0 and 4095. The angular position can be calculated as follows, with the 180˚ position defined at sensor’s physical middle position. Single sensor or dual sensor can be used for rotation measurement.

Copyright © Dr Robot Inc. 2005

39

2.

Single sensor is mainly used for the control of robot joint with limited rotation range.

The effective mechanical rotation range is 14˚ to 346˚, corresponding to the effective electrical rotation range 0˚ to 332˚.

Angle position (˚) = (ival - 2048)/4095*333 + 180

3. Dual-sensor configuration is mainly used for continuous rotating joint control (such as wheels). The effective rotation range is 0˚ to 360˚. Dual sensor configuration is only available for channel 0 and 1. By connecting two potentiometers to potentiometer channel 0 and channel 5, and specify the sensor type with command

SetDCMotorSensorUsage() to “Dual potentiometer sensor”, the channel 0 reading will combine these two sensor readings into 0

˚ to 360˚ range. For channel 1, you should connect the two potentiometers to channel 1 and 4.

Angle position (˚) = (ival - 2214)/2214*180 + 180

See also: SetDcMotorSensorUsage().

III.1.9

Motor Current Sensors

51

short GetMotorCurrent1 ();

52

short GetMotorCurrent2 ();

53

short GetMotorCurrent3 ();

54

short GetMotorCurrent4 ();

55

short GetMotorCurrent5 ();

56

short GetMotorCurrent6 ();

57

short GetMotorCurrent (short channel);

Description:

GetMotorCurrentX returns the sampling value of motor current sensor.

Syntax: ival = GetMotorCurrent1 (); ival = GetMotorCurrent2 (); ival = GetMotorCurrent3 ();

// Current sensor #1

// Current sensor #2

// Current sensor #3 ival = GetMotorCurrent4 (); ival = GetMotorCurrent5 ();

// Current sensor #4

// Current sensor #5 ival = GetMotorCurrent6 (); // Current sensor #6 ival = GetMotorCurrent (short channel); // Current sensor #1,2,3,4,5,or 6

Parameter: void short channel;

// for GetMotorCurrentX

// 0,1,2,3,4,5 for current sensor #1,2,3,4,5,or 6

Copyright © Dr Robot Inc. 2005

40

Return value: short ival;

Return data interpretation:

The return data is the raw value of the analog to digital converter indicating the motor current. The data range is between 0 and 4095. The real current can be calculated with the following formula:

Motor Current (A) = (ival * 3 *375 / 200 /4095) = ival / 728

III.1.10

Encoder

58

short GetEncoderDir1();

59

short GetEncoderDir2();

60

short GetEncoderPulse1();

61

short GetEncoderPulse2();

62

short GetEncoderSpeed1();

63

short GetEncoderSpeed2();

Description:

GetEncoderDirX returns +1, 0 or -1 to indicate the direction of rotation.

GetEncoderPulseX returns the current pulse counter to indicate the position of rotation.

GetEncoderSpeedX returns the current speed of rotation.

Syntax: ival = GetEncoderDir1(); ival = GetEncoderDir2(); ival = GetEncoderPulse1(); ival = GetEncoderPulse2(); ival = GetEncoderSpeed1();

// direction of channel #1

// direction of channel #2

// pulse counter of channel #1

// pulse counter of channel #2

// speed of channel #1 ival = GetEncoderSpeed2();

Parameter: void

// speed of channel #2

Return value: short ival;

Return data interpretation:

(1)

GetEncoderDirX returns -1, 0 or 1. 1 stands for positive direction, -1 stands for negative direction, and 0 stands for no movement.

(2)

GetEncoderPulseX returns pulse counter. It is an integral value to rotation with range of 0 ~ 32767 in cycles.

(3)

GetEncoderSpeedX returns the rotation speed. The unit is defined as pulse change within 1 second. And it is the absolute value.

See also: SetDcMotorSensorUsage().

Copyright © Dr Robot Inc. 2005

41

III.1.11

Custom Analog and Digital Inputs and Outputs

64

short GetCustomAD1();

65

short GetCustomAD2();

66

short GetCustomAD3();

67

short GetCustomAD4();

68

short GetCustomAD5();

69

short GetCustomAD6();

70

short GetCustomAD7();

71

short GetCustomAD8();

72

short GetCustomAD (short channel);

Description:

GetCustomADX returns the sampling value of the custom analog to digital input signals. By default, custom AD1 - AD3 are used as the inputs of power supply voltage monitors for DSP circuits, DC motors and servo motors. User can change this setting by configuring the jumpers on PMS5005. Please refer to Chapter IV.I PMS5005 Robot Sensing and Motion

Controller (Page 67) for detailed information on hardware jumper setting.

Syntax: ival = GetCustomAD1(); ival = GetCustomAD2 ();

/* for battery of DSP circuits, or custom A/D channel #1 */

/* for battery of DC motors, ival = GetCustomAD3(); ival = GetCustomAD4(); ival = GetCustomAD5(); ival = GetCustomAD6(); ival = GetCustomAD7(); ival = GetCustomAD8(); ival = GetCustomAD(short channel); or custom A/D channel #2 */

/* battery for servo motors, or custom A/D channel #3 */

// custom A/D channel #4

// custom A/D channel #5

// custom A/D channel #6

// custom A/D channel #7

// custom A/D channel #8

/* custom A/D channel #1, 2, 3, 4,

5, 6, 7 or 8 */

Parameter: void short channel; /* 0, 1, 2, 3, 4, 5, 6 or 7 for channel #1, 2, 3, 4, 5, 6, 7, 8 */

Return value: short ival;

Return data interpretation:

Copyright © Dr Robot Inc. 2005

42

The return data is the raw value of the analog to digital converter indicating the input voltage levels. The data range is between 0 and 4095. The voltage levels can be calculated from the following equation:

Sensor output voltage = (ival) * 3.0 / 4095 (V)

See also: GetSensorBatteryAD1~3

73

short GetCustomDIN();

Description:

GetCustomDIN returns a value with lower 8-bits corresponding to the 8-channel custom digital inputs.

Syntax: ival = GetCustomDIN ();

Parameter: void

Return value: short ival;

Remarks:

Only lower 8-bit is valid and reflects the 8 input channel states. The MSB of the lower byte represents channel #8 and LSB of the lower byte represents channel #1.

74

void SetCustomDOUT(short ival);

Description:

SetCustomDOUT sets the 8-channel custom digital outputs.

Syntax: SetCustomDOUT (ival);

Parameter: short ival;

Return value: void

Remarks:

Only the lower 8-bit is valid and can change the corresponding outputs of the 8 channels.

The MSB of the lower byte represents channel #8 and LSB of the lower byte represents channel #1.

III.2

Motion Control

This section contains the APIs for the operations of DC motors and standard RC servo motors.

The digital controlled DC motor system is depicted as the following diagram.

Copyright © Dr Robot Inc. 2005

43

G

+

F

-

E

Controller

U

DC Motor

Y

Potentiometer

Figure III.1 Digital Controlled DC Motor System

In the case of PID control, the transfer function of the PID controller looks like as:

U

(

s

) /

E

(

s

)

=

K

P

+

K

D

S

+

K

I

/

S

When using potentiometers (optical encoder and etc.) as the rotational position feedback, you have to set the motor polarity properly using “WiRobotSDK” ActiveX control API “SetMotorPolarityX“ so that the negative feedback is achieved. See “SetMotorPolarityX“ for detail.

The control of the standard RC servo motors is carried out by the built-in analog PID controller.

III.2.1

DC Motor Control

75

void SetMotorPolarity1 (short polarity);

76

void SetMotorPolarity2 (short polarity);

77

void SetMotorPolarity3 (short polarity);

78

void SetMotorPolarity4 (short polarity);

79

void SetMotorPolarity5 (short polarity);

80

void SetMotorPolarity6 (short polarity);

81

void SetMotorPolarity (short channel, short polarity);

Description:

SetMotorPolarityX set the motor polarity to 1 or -1 for each motor channel.

1.

When the motor is running in positive direction, the potentiometer value is also increasing; motor polarity should be set to 1 which is default.

2.

When the motor is running in positive direction, the potentiometer value is decreasing, motor polarity should be set to -1 or change the sensor mounting so that the potentiometer value increases.

Syntax: ival = SetMotorPolarity1 (short polarity); // Motor #1 ival = SetMotorPolarity2 (short polarity); // Motor #2 ival = SetMotorPolarity3 (short polarity); // Motor #3 ival = SetMotorPolarity4 (short polarity); // Motor #4

Copyright © Dr Robot Inc. 2005

44

ival = SetMotorPolarity5 (short polarity); // Motor #5 ival = SetMotorPolarity6 (short polarity); // Motor #6 ival = SetMotorPolarity (short channel, short polarity);

// motor#1, 2, 3, 4, 5, or 6

Parameter: short polarity; short channel;

//1 or -1

// 0, 1, 2, 3, 4, or 5 for Sonar #1, 2, 3, 4, 5, 6

Return value: void ival;

82

void EnableDcMotor (short channel);

83

void DisableDcMotor ( short channel);

Description:

These functions are obsolete. Please see function ResumeDcMotor(short channel) and

SuspendDcMotor(short channel).

84

void ResumeDcMotor (short channel);

85

void SuspendDcMotor (short channel);

Description:

ResumeDcMotor resumes the specified DC motor control channel.

SuspendDcMotor suspends the specified DC motor control channel. PWM output is all low.

Parameter: short channel; // 0, 1, 2, 3, 4, or 5

Return value: void

Remarks:

1.

All motor control channels are initially suspended when the system boot-up.

86

void SetDcMotorPositionControlPID (short channel, short Kp, short Kd, short Ki_x100);

87

void SetDcMotorVelocityControlPID (short channel, short Kp, short Kd, short Ki_x100);

Description:

SetDcMotorPositionControlPID sets up the PID control parameters of the specified DC motor channel for position control.

Copyright © Dr Robot Inc. 2005

45

SetDcMotorVelocityControlPID sets up the PID control parameters of the specified DC motor control channel for velocity.

K

P

, K

D

, K

I

_x100);

SetDcMotorVelocityControlPID (channel, K

P

, K

D

, K

I

_x100);

Parameter: short channel; // 0, 1, 2, 3, 4, or 5

K

P

;

K

D short K

I

_x100;

// Proportional gain

// 100 times K

I

(the desired Integral gain), when

K

I

_x100 = 100, the actual integral control term is K

I

= 1, K

I

_x100 with range of 0 ~ 25599

Return value: void

Remarks:

1.

When setting K

I

= 0, that means NO integral control

2.

System default value for position control: K

P

= 50; K

D

= 5; K

3.

System default value for velocity control: K

P

= 50; K

D

= 5; K

I

I

_x100 = 0.

_x100 = 0.

See Also: SetDcMotorControlMode

88

void SetDcMotorTrajectoryPlan (short channel, short TrajPlanMthod);

Description:

This function is obsolete.

89

void SetDcMotorSensorFilter (short channel, short FilterMethod);

Description:

This filtering feature is still under development. All data will be treated as raw data.

90

void SetDcMotorSensorUsage (short channel, short SensorType);

Description:

SetDcMotorSensorUsage sets the sensor type for the specified DC motor control channel on the Sensing and Motion Controller (PMS5005). The available sensor types are single potentiometer, dual potentiometers, and quadrature encoder. The single potentiometer sensor is for the control of robot joint with limited rotation range (0˚ to 332˚). The dual potentiometers and the quadrature sensor are for continuous rotating joint (like wheels) control.

Copyright © Dr Robot Inc. 2005

46

Syntax: SetDcMotorSensorUsage (channel, SensorType)

Parameter: short channel; // 0, 1, 2, 3, 4, or 5 for single potentiometer sensor

// 0, 1, or 2 for dual potentiometer sensor

// 0 or 1 for quadrature encoder short SensorType; // 0 -- Single potentiometer sensor

// 1 -- Dual potentiometer sensor

Return value: void

Remarks:

1.

The electrical angular range of the potentiometer position sensor is 0˚ to 332˚ and the corresponding mechanical rotation range is 14˚ to 346˚, when the 180 position is defined at sensor’s physical middle position.

2.

Each DC motor channel for dual potentiometer sensor utilizes two potentiometer channels. DC motor channel 0 will use potentiometer channel 0 and 5; DC motor channel 1 will use potentiometer channel 1 and 4; DC motor channel 2 will use potentiometer channel 2 and 3. Please refer to the relevant application note for the use of dual potentiometers.

3.

Quadrature encoder will only use DC motor channel 0 and 1.

4.

System’s default setting for sensor usage is single potentiometer.

See also: GetSensorPot

91

void SetDcMotorControlMode (short channel, short controlMode);

Description:

SetDcMotorControlMode sets the control mode of the specified DC motor control channel on the Sensing and Motion Controller (PMS5005). The available control modes are openloop PWM control, closed-loop position control, closed-loop velocity control.

Syntax: SetDcMotorControlMode (channel, controlMode)

Parameter: short channel; short controlMode;

// 0, 1, 2, 3, 4, or 5

// 0 – Open-loop PWM Control

Return value: void

// 2 – Closed-loop Velocity Control

Remarks:

System’s default setting for control mode is Open-loop PWM Control.

See also: SetDcMotorPositionControlPID, SetDcMotorVelocityControlPID

Copyright © Dr Robot Inc. 2005

47

92

void DcMotorPositionTimeCtr (short channel, short cmdValue, short timePeriod);

Description:

DcMotorPositionTimeCtr sends the position control command to the specified motion control channel on the Sensing and Motion Controller (PMS5005). The command includes the target position and the target time period to execute the command. The current trajectory planning method with time control is linear.

Parameter: short channel; short cmdValue; short timePeriod;

Return value: void

// 0, 1, 2, 3, 4, or 5

// Target position value

// Executing time in milliseconds

Remarks:

1.

Motor will be enabled automatically by the system when this command is received.

2.

Target position value is in the A/D sampling data range 0 to 4095 when using single potentiometer, 0-4428 when using dual potentiometers.

3.

Please refer to the description of GetSensorPot for data converting between angular values and the A/D sampling data values.

4.

When using encoder as sensor input, the target position value is the pulse count in the range of 0- 32767.

See also: GetSensorPot

93

void DcMotorPositionNonTimeCtr(short channel, short cmdValue);

Description:

DcMotorPositionNonTimeCtr sends the position control command to the specified motion control channel on the Sensing and Motion Controller (PMS5005). The command includes the target position but no time period specified to execute the command. The motion controller will drive the motor to the target position at the maximum speed.

Syntax: DcMotorPositionNonTimeCtr (channel, cmdValue);

Parameter: short channel; // 0, 1, 2, 3, 4, or 5 short cmdValue;

Return value: void

Remarks:

// Target position value

Copyright © Dr Robot Inc. 2005

48

1.

Motor will be enabled automatically by the system when this command is received.

2.

Target position value is in the A/D sampling data range 0 to 4095 when using single potentiometer, 0-4428 when using dual potentiometers.

3.

Please refer to the description of GetSensorPot for data converting between angular values and the A/D sampling data values.

4.

When using encoder as sensor input, the target position value is the pulse count in the range of 0- 32767.

See also: DcMotorPositionTimeCtr, GetSensorPot

94

void DcMotorVelocityTimeCtr(short channel, short cmdValue, short timePeriods);

Description:

DcMotorVelocityTimeCtr sends the velocity control command to the specified motion control channel on the Sensing and Motion Controller (PMS5005). The command includes the target velocity and the time period to execute the command. The current trajectory planning method for time control is linear.

Parameter: short channel; short cmdValue; short timePeriod;

Return value: void

// 0, 1, 2, 3, 4, or 5

// Target velocity value

// Executing time in milliseconds

Remarks:

1.

Motor will be enabled automatically by the system when this command is received

2.

No velocity is available for motor channel using single potentiometer sensor

3.

The unit of the velocity is (Position change in A/D sampling data) / second when using dual potentiometer sensor for rotational position measurement and pulse/ second when using quadrature encoder.

4.

Please refer to the description of GetSensorPot for data conversion between angular values and the A/D sampling data values.

See also: GetSensorPot

95

void DcMotorVelocityNonTimeCtr(short channel, short cmdValue);

Description:

DcMotorVelocityNonTimeCtr sends the velocity control command to the specified motion control channel on the Sensing and Motion Controller (PMS5005). The command includes the target velocity but no time period specified to execute the command. The motion controller will drive the motor to achieve the target velocity with maximum effort.

Copyright © Dr Robot Inc. 2005

49

Syntax: DcMotorVelocityNonTimeCtr (channel, cmdValue);

Parameter: short channel; short cmdValue;

Return value: void

// 0, 1, 2, 3, 4, or 5

// Target velocity value

Remarks:

1.

Motor will be enabled automatically by the system when this command is received

2.

No velocity is available for motor channel using single potentiometer sensor

3.

The unit of the velocity is (Position change in A/D sampling data) / second when using dual potentiometer sensor for rotational position measurement and pulse/ second when using quadrature encoder.

4.

Please refer to the description of GetSensorPot for data conversion between angular values and the A/D sampling data values.

See also: DcMotorVelocityTimeCtr, GetSensorPot

96

void DcMotorPwmTimeCtr(short channel, short cmdValue, short timePeriod);

Description:

DcMotorPwmTimeCtr sends the PWM control command to the specified motion control channel on the Sensing and Motion Controller (PMS5005). The command includes the target pulse width value and the time period to execute the command. The current trajectory planning method for time control is linear.

Syntax: DcMotorPwmTimeCtr (channel, cmdValue, timePeriod);

Parameter: short channel; // 0, 1, 2, 3, 4, or 5 short cmdValue; short timePeriod;

Return value: void

// Target pulse width value

// Executing time in milliseconds

Remarks:

1.

The specified channel (motor) will be enabled automatically by the system when this command is received

2.

Target pulse width value range is 0 to 32767 (0x7FFF), corresponding to the duty cycle of 0 to 100% linearly.

3.

A pulse width value of 16363 means 50% duty cycle, putting motor in “Stop” stage.

Any value in between 16364 - 32767 will put the motor to turn clockwise (facing the front side of the motor) and any value in between 0 – 16362 will put the motor to turn counter-clockwise.

Copyright © Dr Robot Inc. 2005

50

97

void DcMotorPwmNonTimeCtr(short channel, short cmdValue);

Description:

DcMotorPwmNonTimeCtr sends the PWM control command to the specified motion control channel on the Sensing and Motion Controller (PMS5005). The command includes the target pulse width value without specific execution time period. The motion controller will set the PWM output of this channel to the target value immediately.

Parameter: short channel; // 0, 1, 2, 3, 4, or 5 short cmdValue;

Return value: void

// Target pulse width value

Remarks:

1.

The specified channel (motor) will be enabled automatically by the system when this command is received

2.

Target pulse width value range is 0 to 32767 (0x7FFF), corresponding to the duty cycle of 0 to 100% linearly.

3.

A pulse width value of 16363 means 50% duty cycle, putting motor in “Stop” stage.

Any value in between 16364 - 32767 will put the motor to turn clockwise (facing the front side of the motor) and any value in between 0 – 16362 will put the motor to turn counter-clockwise.

See also: DcMotorPwmTimeCtr

98

void DcMotorPositionTimeCtrAll(short cmd1, short cmd2, short cmd3, short cmd4, short cmd5, short cmd6, short timePeriod);

Description:

DcMotorPositionTimeCtrAll sends the position control command to all 6 DC motor control channels on the sensing and motion controller (PMS5005) at the same time. The command includes the target positions and the time period to execute the command. The current trajectory planning method for time control is linear.

Parameter: short cmd1;

timePeriod);

// Target position for channel #1 short cmd3; short cmd4;

// position for channel #2

// Target position for channel #3

// Target position for channel #4 short cmd5; short cmd6; short timePeriod;

// Target position for channel #5

// Target position for channel #6

// Executing time in milliseconds

Copyright © Dr Robot Inc. 2005

51

Return value: void

Remarks:

1.

All DC Motors will be enabled automatically by the system when this command is received.

2.

Target position value is in the A/D sampling data range 0 to 4095 when using single potentiometer, 0-4428 when using dual potentiometers.

3.

Please refer to the description of GetSensorPot for data converting between angular values and the A/D sampling data values.

4.

When using encoder as sensor input, the target position value is the pulse count in the range of 0- 32767.

5.

When some motors are not under controlled, their command values should be set as

-32768 (0x8000). That means NO_CONTROL.

See also: DcMotorPositionTimeCtr,

99

void DcMotorPositionNonTimeCtrAll(short cmd1, short cmd2, short cmd3,short cmd4, short cmd5, short cmd6);

Description:

DcMotorPositionNonTimeCtrAll sends the position control command to all 6 DC motor control channels on the Sensing and Motion Controller (PMS5005) at the same time. The command includes the target positions without specific execution time period. The motion controller will drive the motor to reach the target position with maximum effort.

Syntax: DcMotorPositionNonTimeCtrAll(cmd1, cmd2, cmd3, cmd4, cmd5, cmd6);

Parameter: short cmd1; // Target position for channel #1 short cmd3; short cmd4; short cmd5; short cmd6;

Return value: void

// Target position for channel #3

// Target position for channel #4

// Target position for channel #5

// Target position for channel #6

Remarks:

1.

All DC motors will be enabled automatically by the system when this command is received.

2.

Target position value is in the A/D sampling data range 0 to 4095 when using single potentiometer, 0-4428 when using dual potentiometers.

3.

Please refer to the description of GetSensorPot for data converting between angular values and the A/D sampling data values.

4.

When using encoder as sensor input, the target position value is the pulse count in the range of 0- 32767.

Copyright © Dr Robot Inc. 2005

52

5.

When some motors are not under controlled, their command values should be set as

-32768 (0x8000). That means NO_CONTROL.

See also: DcMotorPositionNonTimeCtr

100

void DcMotorVelocityTimeCtrAll(short cmd1, short cmd2, short cmd3, short cmd4, short cmd5, short cmd6, short timePeriods);

Description:

DcMotorVelocityTimeCtrAll sends the velocity control command to all 6 DC motor control channels on the Sensing and Motion Controller (PMS5005) at the same time. The command includes the target velocities and the time period to execute the command. The trajectory planning method for time control is linear.

Parameter: short cmd1; short cmd2; short cmd3;

timePeriods);

// Target velocity for channel #1

// Target velocity for channel #2

// Target velocity for channel #3 short cmd4; short cmd5; short cmd6; short timePeriod;

// Target velocity for channel #4

// Target velocity for channel #5

// Target velocity for channel #6

// Executing time in milliseconds

Return value: void

Remarks:

1.

Motor will be enabled automatically by the system when this command is received

2.

No velocity is available for motor channel using single potentiometer sensor

3.

The unit of the velocity is (Position change in A/D sampling data) / second when using dual potentiometer sensor for rotational position measurement and pulse/ second when using quadrature encoder.

4.

Please refer to the description of GetSensorPot for data conversion between angular values and the A/D sampling data values.

5.

When some motors are not under controlled, their command values should be set as

-32768 (0x8000). That means NO_CONTROL.

See also: DcMotorVelocityTimeCtr

101

void DcMotorVelocityNonTimeCtrAll(short cmd1, short cmd2, short cmd3, short cmd4, short cmd5, short cmd6);

Description:

Copyright © Dr Robot Inc. 2005

53

DcMotorVelocityNonTimeCtrAll sends the velocity control command to all 6 DC motor control channels on the Sensing and Motion Controller (PMS5005) at the same time. The command includes the target velocities without specific execution time period. The motion controller will drive the motor to achieve the target velocity with maximum effort.

Syntax: DcMotorVelocityNonTimeCtrAll (cmd1, cmd2, cmd3, cmd4, cmd5, cmd6);

Parameter: short cmd1; short cmd2; short cmd3;

// Target velocity for channel #1

// Target velocity for channel #2

// Target velocity for channel #3 short cmd4; short cmd5; short cmd6;

Return value: void

// Target velocity for channel #4

// Target velocity for channel #5

// Target velocity for channel #6

Remarks:

1.

Motor will be enabled automatically by the system when this command is received

2.

No velocity is available for motor channel using single potentiometer sensor

3.

The unit of the velocity is (Position change in A/D sampling data) / second when using dual potentiometer sensor for rotational position measurement and pulse/ second when using quadrature encoder.

4.

Please refer to the description of GetSensorPot for data conversion between angular values and the A/D sampling data values.

5.

When some motors are not under controlled, their command values should be set as

-32768 (0x8000). That means NO_CONTROL.

See also: DcMotorVelocityNonTimeCtr

102

void DcMotorPwmTimeCtrAll(short cmd1, short cmd2, short cmd3, short cmd4, short cmd5, short cmd6, short timePeriods);

Description:

DcMotorPwmTimeCtrAll sends the PWM control command to all 6 DC motor control channels on the Sensing and Motion Controller (PMS5005) at the same time. The command includes the target PWM values and the time period to execute the command. The current trajectory planning method for time control is linear.

timePeriods);

Parameter: short cmd1; short cmd3; short cmd4; short cmd5; short cmd6;

Copyright © Dr Robot Inc. 2005

// Target PWM value for channel #1

// Target PWM value for channel #3

// Target PWM value for channel #4

// Target PWM value for channel #5

// Target PWM value for channel #6

54

short timePeriod;

Return value: void

// Executing time in milliseconds

Remarks:

1.

All channel (motors) will be enabled automatically by the system when this command is received

2.

Target pulse width value range is 0 to 32767 (0x7FFF), corresponding to the duty cycle of 0 to 100% linearly.

3.

A pulse width value of 16363 means 50% duty cycle, putting motor in “Stop” stage.

Any value in between 16364 - 32767 will put the motor to turn clockwise (facing the front side of the motor) and any value in between 0 – 16362 will put the motor to turn counter-clockwise.

4.

When some motors are not under controlled, their command values should be set as

-32768 (0x8000). That means NO_CONTROL.

See also: DcMotorPwmTimeCtr

103

void DcMotorPwmNonTimeCtrAll(short cmd1, short cmd2, short cmd3, short cmd4, short cmd5, short cmd6);

Description:

DcMotorPwmNonTimeCtrAll sends the PWM control command to all 6 DC motor control channels on the Sensing and Motion Controller (PMS5005) at the same time. The command includes the target PWM values without specific execution time period. The motion controller Send the desired PWM pulse width right away.

Parameter: short cmd1; // Target PWM value for channel #1 short cmd3; short cmd4; short cmd5; short cmd6;

// Target PWM value for channel #3

// Target PWM value for channel #4

// Target PWM value for channel #5

// Target PWM value for channel #6

Return value: void

Remarks:

1.

All channel (motors) will be enabled automatically by the system when this command is received

2.

Target pulse width value range is 0 to 32767 (0x7FFF), corresponding to the duty cycle of 0 to 100% linearly.

3.

A pulse width value of 16363 means 50% duty cycle, putting motor in “Stop” stage.

Any value in between 16364 - 32767 will put the motor to turn clockwise (facing the front side of the motor) and any value in between 0 – 16362 will put the motor to turn counter-clockwise.

Copyright © Dr Robot Inc. 2005

55

4.

When some motors are not under controlled, their command values should be set as

-32768 (0x8000). That means NO_CONTROL.

See also: DcMotorPwmNonTimeCtr

III.2.2

RC Servo Motor Control

104

void EnableServo (short channel);

105

void DisableServo (short channel);

Description:

EnableServo enables the specified servo motor control channel.

DisableServo disables the specified servo motor control channel.

Parameter: short channel;

Return value: void

// 0, 1, 2, 3, 4, or 5

Remarks:

All servo motor channels are disabled initially at system startup. They need to be enabled explicitly before use.

106

void SetServoTrajectoryPlan(short channel, short TrajPlanMthod);

Description:

This function is obsolete.

107

void ServoTimeCtr(short channel, short cmdValue, short timePeriods);

Description:

ServoTimeCtr sends the position control command to the specified servo motor control channel on the Sensing and Motion Controller (PMS5005). The command includes the target position command and the time period to execute the command. The current trajectory planning method for time control is linear.

Syntax: ServoTimeCtr (channel, cmdValue, timePeriod);

Parameter; short channel; // 0, 1, 2, 3, 4, or 5 short cmdValue; // Target Pulse Width (ms) * 2250

Copyright © Dr Robot Inc. 2005

56

short timePeriod;

Return value: void

// Executing time in milliseconds

Remarks:

1.

Target position value for cmdValue = (Pulse width in millisecond) * 2250.

2.

Usually, a standard remote control servo motor expects to get the specified pulse width in every 20 milliseconds in order to hold the corresponding angle position.

The pulse width value in millisecond for 0˚, 90˚ and 180˚ are servo manufacturer and model dependant, they are around 1ms, 1.5ms and 2.0ms respectively for most common servos. Experiments are required to obtain the exact value which varies for different servo motors.

108

void ServoNonTimeCtr(short channel, short cmdValue);

Description:

ServoNonTimeCtr sends the position control command to the specified servo motor control channel on the Sensing and Motion Controller (PMS5005). The command includes the target position command without specific execution time period. The motion controller will send the desired pulse width to the servo motor right away.

Syntax: ServoNonTimeCtr (channel, cmdValue);

Parameter: short channel; short cmdValue;

// 0, 1, 2, 3, 4, or 5

// Target Pulse Width (ms) * 2250

Return value: void

Remarks:

Please refer to the remarks under ServoTimeCtr.

See also: ServoTimeCtr

109

void ServoTimeCtrAll(short cmd1, short cmd2, short cmd3, short cmd4, short cmd5, short cmd6, short timePeriod);

Description:

ServoTimeCtrAll sends the position control command to all 6 servo motor control channels on the Sensing and Motion Controller (PMS5005) at the same time. The command includes the target position commands and the time period to execute the command. The current trajectory planning method for time control is linear.

Syntax: ServoTimeCtrAll (cmd1, cmd2, cmd3, cmd4, cmd5, cmd6, timePeriod);

Parameter: short cmd1; // Target position for channel #1

Copyright © Dr Robot Inc. 2005

57

short cmd3; short cmd4;

// position for channel #2

// Target position for channel #3

// Target position for channel #4 short cmd5; short cmd6; short timePeriod;

// Target position for channel #5

// Target position for channel #6

// Executing time in milliseconds

Return value: void

Remarks:

1.

Please refer to the remarks under ServoTimeCtr.

2.

When some servo motors are not under controlled, their command values should be set as -32768 (0x8000). That means NO_CONTROL.

See also: ServoTimeCtr

110

void ServoNonTimeCtrAll (short cmd1, short cmd2, short cmd3, short cmd4, short cmd5, short cmd6);

Description:

ServoNonTimeCtrAll sends the position control command to all 6 servo motor control channels on the Sensing and Motion Controller (PMS5005) at the same time. The command includes the target position commands without specific execution time period. The motion controller send the desired pulse width to the servo motor right away.

Syntax: ServoNonTimeCtrAll(cmd1, cmd2, cmd3, cmd4, cmd5, cmd6);

Parameter: short cmd1; short cmd2; short cmd3; short cmd4; short cmd5; short cmd6;

Return value: void

// Target position for channel #1

// Target position for channel #2

// Target position for channel #3

// Target position for channel #4

// Target position for channel #5

// Target position for channel #6

Remarks:

1.

Please refer to the remarks under ServoTimeCtr

2.

When some motors are not under controlled, their command values should be set as

-32768 (0x8000). That means NO_CONTROL.

See Also: ServoTimeCtr

Copyright © Dr Robot Inc. 2005

58

III.3

Multimedia Control

III.3.1

LCD Display

111

void LcdDisplayPMS(LPCTSTR bmpFileName);

Description:

LcdDisplayPMS displays the image data in the file

bmpFileName

(BMP format) on the graphic LCD connected to the Sensing and Motion Controller (PMS5005).

Syntax: LcdDisplayPMS (bmpFileName);

Parameter: LPCTSTR bmpFileName; // Full path of the BMP file for displaying

Return value: void

Remarks:

The graphic LCD display is mono with dimension of 128 pixels by 64 pixels. The bmp image must be 128x64 pixels in mono.

III.4

Events

This section documents the four Event mechanisms. When the relevant data arrive from the WiRobot

PMS5005 system, relevant event will be fired, user could write his / her periodic data processing routine in the relevant event call back function.

112

StandardSensorEvent

Description:

When the standard sensor data arrive, this event will be triggered.

113

CustomSensorEvent

Description:

When the custom expansion sensor (AD and Input) data arrive, this event will be triggered.

114

MotorSensorEvent

Description:

When the motor control related sensor data arrive, this event will be triggered. The motor control data includes all the motor rotational sensor data such as potentiometer, encoder and motor current data.

Copyright © Dr Robot Inc. 2005

59

IV.

WiRobot SDK API Reference for PMB5010

WiRobot SDK APIs for PMB5010 supports advanced Multimedia Control features

.

IV.1

Multimedia Control

This section contains the APIs for the operations of audio input and output, image capturing and LCD display.

IV.1.1

Audio Input and Output

115

void PlayAudioFile(LPCTSTR fileName);

Description:

PlayAudioFile sends an audio file (.wav format) to the Multimedia Controller (PMB5010).

The file will be played back on the speaker.

Return value: void

Remarks:

The .wav audio file should contain 16-bit sound wave data sampled at 8 kHz with PCM raw data format using mono channel. Other supplied wave file format will still be played by the robot but may have undesired result.

116

void StopAudioPlay ();

Description:

StopAudioPlay stops a playing audio on the Multimedia Controller (PMB5010).

Return value: void

Remarks:

There will be no effect if no audio is playing.

117

long GetVoiceSegment();

Description:

GetVoiceSegment returns the pointer to current voice data (recorded from robot microphone) in memory.

Copyright © Dr Robot Inc. 2005

60

Syntax: lpVal = GetVoiceSegment();

Parameter: void

Return value: long lpVal; // pointer to current voice data.

Remark:

(1)

You should use method GetVoiceSegLength() to get the length of the Voice segment.

(2)

Voice data is in PCM raw data format with 16bit, 8KHz sampling rate.

118

long GetVoiceSegLength();

Description:

GetVoiceSegLength returns the length of current voice data in memory.

Syntax: voiceLength = GetVoiceSegLength ();

Parameter: void

Return value: long voiceLength; // Length of current voice data.

See Also: GetVoiceSegment

119

void StartRecord(short voiceSegment);

Description:

StartRecord sends start-recording command to the Multimedia Controller (PMB5010).

The recorded voice data in length specified by voiceSegment will be stored in the shared memory segment.

Syntax: StartRecord(voiceSegment);

Parameter: short voiceSegment; // segment number for voice data, range 1 -10

Return value: void

Remarks:

The parameter voiceSegment specify the time of voice segment, unit is 256 millisecond

(about 1/4 sec). Value could be 1- 10. For example, if voiceSegment is 4, 1.024 second voice will be recorded.

VoiceSegmentEvent

event will fired when the data is ready.

Copyright © Dr Robot Inc. 2005

61

120

void StopRecord();

Description:

StopRecord sends stop-recording command to the Multimedia Controller (PMB5010).

SDK will not send recorded voice data to PC any more.

Syntax: StopRecord();

Parameter: void

Return value: void

Remarks:

There will be no effect if the Multimedia Controller is not recording.

IV.1.2

Image Capturing

121

void TakePhoto();

Description:

TakePhoto sends image capturing command to the Multimedia Controller (PMB5010). The

Multimedia Controller will send back the latest frame of the image data to the WiRobot shared memory after receiving TakePhoto command. Use SavePhotoAsBMP to obtain the image.

Syntax: TakePhoto();

Parameter: void

Return value: void

Remarks:

Each TakePhoto command will get one frame of image.

122

BOOL SavePhotoAsBMP(LPCTSTR FileName);

Description:

SavePhotoAsBMP saves current frame of image data into BMP format file

FileName.

Syntax: bVal = SavePhotoAsBMP (FileName);

Parameter: LPCTSTR FileName; // the file name with full path, for saving image

Return value: BOOL bVal; data in bmp format.

// True: success

// False: failure to save.

Copyright © Dr Robot Inc. 2005

62

Remarks:

1.

Before calling SavePhotoAsBMP, the TakePhoto command needs to be called to request image taken.

2.

When the image data arrive, the call back event “ImageEvent” will be fired

3.

The cause of “failure to save” could be caused because the TakePhoto command was not sent or the file name / path is invalid.

IV.1.3

LCD Display

123

void LcdDisplayPMB(LPCTSTR bmpFileName);

Description:

LcdDisplayPMB displays the image data in the file

bmpFileName

(BMP format) on the graphic LCD connected to the Multimedia Controller (PMB5010).

Syntax: LcdDisplayPMB (bmpFileName);

Parameter: LPCTSTR bmpFileName; // Full path of the BMP file for displaying

Return value: void

Remarks:

The graphic LCD display is mono with dimension of 128 pixels by 64 pixels. The bmp image must be 128x64 pixels in mono.

IV.2

Events

This section documents the two Event mechanisms. When the relevant data arrive from the WiRobot

PMB5010 system, relevant event will be fired, user could write his / her periodic data processing routine in the relevant event call back function.

124

ImageEvent

Description:

When the image data arrive, this event will be triggered.

125

VoiceSegmentEvent

Description:

When the audio data arrive, this event will be triggered.

Copyright © Dr Robot Inc. 2005

63

V.

WiRobot DRK6080/6000/8080/8000 Specific APIs

V.1

Low Level Protection

When bumpers (optional) are installed on WiRobot

RDK6080/6000/8080/8000 with the connection configuration shown on the right, a build-in low-level bumper collision protection scheme can be enabled or disabled with the next two commands. When this bumper protection feature is enabled:

Bumper_0

Front

Bumper_1

D_IN0 D_IN1

.

The wheels will stop moving forward when either bumper 0 or 1 is engaged, there will be not affect if the wheels are moving backward.

.

The wheels will stop moving backward when either bumper 2 or 3 is engaged, there will be not affect if the wheels are moving forward.

.

The bumpers are connected to custom digital I/O

0, 1, 2, and 3.

Bumper_2

Left

Wheel

Right

Wheel

D_IN2 D_IN3

Bumper_3

Figure V.1 WiRobot RDK6080 / 6000

/ 8080 / 8000 Bumper Connection

Configuration

126

void EnableBumperProtection();

Description: This will enable the low level bumper protection feature.

EnableBumperProtection xxxx.

Parameter: void;

Return value: void

Remarks:

By default, the bumper protection feature is disabled when system is booted up.

127

void DisableBumperProtection();

Description: This will disable the low level bumper protection feature.

DisableBumperProtection xxxx.

Parameter: void;

Return value: void

Copyright © Dr Robot Inc. 2005

64

Chapter IV.

WiRobot Module

Copyright © Dr Robot Inc. 2005

65

I.

PMS5005 Sensing and Motion Controller

I.1

Introduction

The PMS5005 Robot Sensing/Motion Controller can be used as sensing, control, motion execution,

LCD display and wireless communication processing unit for various robotic applications. Its onboard firmware makes the low level function modules such as motor driver module and wireless communication module transparent to the users. A host (e.g. PC, DSP, or processor) will be used to communicate and control the PMS5005 for different applications through the UART (serial) interface.

The system can help robotic and AI researchers and developers focus on the high level logic and algorithm design, and avoid the hassle of writing low level device drivers, standard control schemes and troubleshooting the electronic circuits. The ease of use, powerful functionality and onboard intelligence can eliminate design risk, streamline hardware and software development, and significantly shorten the time to delivery while effectively reducing the cost. Typical applications include humanoid robot, legged robot, wheel-based robot, robot head, robot arm and robot hand.

I.1.1

PMS5005 Robot Sensing/Motion Controller Architecture

As shown in Figure I.1, the PMS5005 features functionalities required by most of the robotic applications, such as sensing, motion control, and data communication.

The PMS5005 contains the following features and capabilities:

-

40MIPS 16-bit fix-point hybrid DSP/MCU

-

36K x 16-bit words flash

-

2.5K x 16-bit words SRAM

-

Build-in

.

A/D reference voltage monitoring

.

Over-heating sensor (x2)

.

System voltage monitoring (x1)

.

Watchdog timer (x1)

.

Full duplex UART (x2)

-

Embedded firmware for configurable closed loop position, velocity, various sensor data acquisition,

LCD graphic display, wired and wireless communication

-

Interfaces to

.

MDM5253 DC motor driver module with position and current feedback (x2), which includes o

General-purpose PWM DC motor interface (x6) o

Motor current feedback interface (x6) o

Potentiometer position feedback sensor interface (x6)

.

Quadrature encoder (x2)

.

Standard RC servo motor (x6)

.

DUR5200 Ultrasonic range sensor module (x6)

.

DHM5150 Human sensor module (x2)

.

DAT5280 Ambient temperature sensor module (x1)

.

GP2Y0A21YK Infrared range sensor (x1)

.

DTA5102 2 axis tilt/acceleration sensor module (x1)

.

Custom A/D (x 8 including 3 channels of optional battery voltage monitoring). It can connect to

MSA3502 if signal amplifying is needed.

.

Custom digital input (x8)

.

Custom digital output (x8)

.

MGL5128 Graphic LCD display module (128 x 64) (x1)

.

MIR5538/5540 Full duplex infrared remote control and communication module (x1)

Copyright © Dr Robot Inc. 2005

66

.

PMB5010 Multimedia controller (x1)

.

MCB3100 Serial Bluetooth wireless module or MCR3210 RS232 interface module (x1) or

WFS802b WiFi802.11b Serial wireless module

Figure I.1 Block Diagram of the PMS5005

I.1.2

PMS5005 Connectors and Jumpers

Figure I.2 shows the function and location of the connectors and jumpers on the PMS5005.

Copyright © Dr Robot Inc. 2005

Figure I.2 PMS5005 Connector and Jumper Locations

67

* Note that the size of the PCB board of PMS5005 is about 14.5cm x 10.2cm.

I.2

Operations

The PMS5005 Robot Sensing/Motion Controller is designed to be running as part of the WiRobot system. The hardware preparation when using the PMS5005 is just simply connecting the relevant

WiRobot modules to the relevant connectors on the PMS5005 board and setting the proper jumper configurations. Lower device-level operations are handled by the firmware embedded in PMS5005 controller with the following functions:

.

Control 6 RC servos

.

Driver for LCD display, 6 ultrasonic sensors, 2 human sensors, 1 infrared distance sensor, 1 temperature sensor, 1 tilt/acceleration sensor and 1 infrared remote sensor

.

Can interface with different digital devices through the general digital input and output ports

.

Can interface with different analog devices through the A/D ports

.

Built-in voltage monitoring capability

.

Built-in 3 DC motor control schemes, including open-loop PWM control, closed-loop position control, and closed-loop velocity control. Closed-loop position and velocity control required the use of encoder or rotary sensor as the feedback device

Users can physically connect the PMS5005 to a host (e.g. PC, processor, or DSP) through null modem cable or serial wireless modules. By default, the PMS5005’s UART setting is 115200, 8, N, 1 with hardware flow control. With this connection, there are two ways to communicate with the

PMS5005:

1.

Using WiRobot SDK Software (requires Microsoft platform): High level programs running on

PC can communicate with the PMS5005 firmware using WiRobot SDK Component and supplied WiRobot Gateway program. Users simply need to make a function call in their programs to obtain sensor information or to control different devices (e.g. servos, DC motors, and etc.) without the needs to understand the communication details between PC and

PMS5005. Please refer to the Chapter III. WiRobot SDK API (Page 26) for further information on programming.

2.

Using PMS5005 Communication Protocol: A device (e.g. PC, processor, or DSP) can communicate with PMS5005 directly using packet-level commands. Such option has no requirement on the host and provides the freedom for users to choose their development platform.

I.2.1

PMS5005 Power Supplies and Consumption

Up to three independent groups of power supply can be connected to the PMS5005 supporting board system circuits (System Power Supply), DC Motor Power Supply and Servo Motor Power Supply respectively. These power supplies could be connected to the PMS5005 either through the screw terminals or through the power jacks. Near each screw terminal, there is a connector port for connecting the power switch or emergency button for each power supply. By default, all three connector ports are connected together. If power switches are needed, you could disconnect the connection and add a switch in between for each connector port.

Table I.1 shows the specification of the power supplies. Refer to Section II.2.5 for the connections of the power jacks and terminals.

Table I.1 Specification of Power Terminals

Power Supply Power

Jack

Screw

Terminals

Switch

Connector

Voltage

Range (V)

Max Peak Current

(A)

Copyright © Dr Robot Inc. 2005

68

System

DC Motor

J1

J2

Servo Motor J3

PSY

PDM

PSM

S1-0

S1-1

S2-1

5.5 – 7.2 N/A

6.0 – 25.0 12

5.0 – 7.2 8

The system power supply is required at all time for the operation of this board and the power consumption of PMS5005 without connecting any peripheral modules is about 350mA using a 7.2V battery pack. We also recommend the use of three different power sources in powering the

PMS5005 (System Power Supply, DC Motor Power Supply and Servo Motor Power Supply) since high power consumption devices (e.g. high torque servos) may affect the operation of voltage sensitive devices (e.g. sensors) due to voltage frustration.

Note: Please make sure that the DC motor power supply voltage does not exceed the maximum allowable voltage for the DC motors.

I.2.2

PMS5005 Jumper Settings

The board address jumpers can be set to any value between 0 and 15. The board address is currently reserved for future use.

Table I.2 Board Address Jumpers B_ADDR

Bit Pin Value 1 Value 0

0 (LSB)

1

2

3 (MSB)

1, 2

3, 4

5, 6

7, 8 open open open open

1-2 short

3-4 short

5-6 short

7-8 short

JP_AD1, JP_AD2 and JP_AD3 are used for enabling and disabling battery voltage monitoring. If the jumper is removed, the corresponding power supply monitoring and custom AD_IN will be disabled.

Table I.3 Battery Voltage Monitoring Jumpers

Jumper Position Battery Voltage Monitoring

JP_AD1

JP_AD2

JP_AD3

1-2

2-3

1-2

2-3

1-2

2-3

Enable system power supply monitoring

Disable system power monitoring and connect Custom

AD_IN1

Enable DC motor power supply monitoring

Disable DC motor power and connect Custom AD_IN2

Enable servo motor power supply monitoring

Disable servo motor power monitoring and connect Custom

AD_IN3

I.2.3

PMS5005 System Communication Connections

Under the WiRobot system architecture, all controllers are connected in a chain. There is one and only one host serving as the central controller. All other embedded controllers have at least two SCI ports for the system communications: upper-reach port and lower-reach port, with the direction respect to the central controller.

The system communication connection structure of the PMS5005 in the WiRobot system is shown in

Figure I.1. PMS5005 can work solely in the WiRobot system or together with WiRobot Multimedia

Controller PMB5010 when multimedia data (video and audio) is required in the system.

Copyright © Dr Robot Inc. 2005

69

Figure I.3 WiRobot System Communication Architecture

The system communication connectors on the PMS5005 are described in Table I.4. Refer to Section

I.2.5 for the definitions of the signals attached to the connector BTOOTH and SCI.

Table I.4 System Communication Connectors

Connector Type

BTOOTH Upper Reach

SCI Lower Reach

Description

SCI port with handshaking and control signals for both wired and wireless modules

Two-wire serial communication interface

(reserved for future use)

I.2.4

Connecting Peripheral Modules Supported by PMS5005

Table I.5 lists the WiRobot peripheral modules that can be directly connected to the PMS5005 board and supported by the firmware embedded in PMS5005. Refer to the relevant chapter of these peripheral modules for the detailed technical information.

Table I.5 Peripheral Modules Supported by PMS5005

Peripheral

Module

Connector Max

No.

Description

WFS802b BTOOTH 1 wireless communication module

MCB3100 BTOOTH 1

MCR3210 BTOOTH 1

Bluetooth wireless communication module

RS232 interface module

Copyright © Dr Robot Inc. 2005

70

DUR5200

DTA5102

US_1 – 6

TILT

6

1

DHM5150

DAT5280

HUMAN1 – 2

TEMPERATURE

2

1

MIR5538/5540 INFRAR 1

MDM5253 MOTOR1_IN, 2

_OUT

MOTOR2_IN,

_OUT

3rd party

3rd party

SM1 - 6

ENCODER1 - 2

GP2Y0A21YK RANGE

MGL5128 LCD

Ultrasonic range sensor

2-Axis tilting and acceleration sensor

Human motion sensor

Ambient temperature sensor

Infrared remote controller module

3-channel DC motor driver module with position and current feedback

6

2

3rd party servo motor

3rd party quadrature encoder

1 Infrared sensor

1 Mono Graphic LCD display module,

128x64

I.2.5

Connecting DC Motors and Potentiometers to PMS5005

In order to connect DC motors and potentiometers to the PMS5005, MDM5253 (DC Motor Driver

Module with Position and Current Feedback) is required. Each MDM5253 can control up to 3 DC motors and 3 potentiometers; and each PMS5005 can connect up to 2 MDM5253. The potentiometer can be used as the position feedback of the DC motor for precise position and velocity control. Connector MOTOR1-IN and MOTOR1-OUT on PMS5005 are used to connect to a

MDM5253 for DC Motor 1, 2, 3 and Potentiometer 1, 2, 3; and connector MOTOR2-IN and MOTOR2-

OUT are used to connect to a MDM5253 for DC Motor 4, 5, 6 and Potentiometer 4, 5, 6. For details on how to connect DC motors and potentiometers to the MDM5253, please refer to the Chapter IV.III

MDM5253 (Page 89).

I.2.6

Connecting Custom Sensors/Devices to PMS5005

The PMS5005 has 8 digital inputs, 8 digital outputs and 8 custom A/D extensions. These ports can all be used to connect to different sensors or output devices. For example, user can connect gyroscope, more infrared distance sensors or other analog signal devices to PMS5005 by making use of the available A/D extensions. If a user just wants to have better infrared sensing capabilities in his / her robot, the PMS5005 can support up to 9 infrared distance sensors (GP2Y0A21YK) through its IR range sensor port and the 8 custom A/D expansions.

I.2.7

Sample WiRobot Connection Using PMS5005

The following figure illustrates a simple way in using the PMS5005. Note that only a single 7.2V power source is used to supply power to the system and not all peripheral modules are connected to the PMS5005 in this figure.

Copyright © Dr Robot Inc. 2005

71

Figure I.4 Sample Connection of WiRobot PMS5005 with Different Peripheral Modules

I.2.8

PMS5005 Connections

The definitions of the connector signals of the power supplies and the supported PMS5005 peripheral modules are listed in the following tables.

Table I.6 Connections of the Power Jacks and Terminals

Power Connection Power Jack J1, J2, J3 Screw Terminal PSY, PDM, PSM

Positive Power

Source

Center Pin

Power Supply Ground Circle

1

2

Table I.7 Upper Reach Communication Port BTOOTH

Pin Name

4

5

6

RTS

CTS

GND

Request to send

Clear to send

Power supply ground

Table I.8 Lower Reach Communication Port SCI

Pin Name

4

Copyright © Dr Robot Inc. 2005

GND Power supply ground

72

Table I.9 Ultrasonic Range Sensor Connectors US_1 - 6

Pin Name

2

3

4

URS

UTE

GND

Ultrasonic echo receiving signal, active rising edge

Ultrasonic transmitting enable, active high

Power supply ground

1

2

3

Table I.10 Tilt and Acceleration Sensor Connector TILT

Pin Name

VCCA

AYD

AXD

+5.0 V

Y direction signal, analog 0 – 3.0V

X direction signal, analog 0 – 3.0V

Table I.11 Human Motion Sensor Connectors HUMAN1 - 2

Pin Name

1 VCCA V

2

3

HMS

HAS

Human motion signal, analog 0 – 3.0V

Human presence alarm, analog 0 – 3.0V

Table I.12 Temperature Sensor Connector TEMPERATURE

Pin Name

1 VCCA V

2 TVS Temperature Data, analog 0 – 3.0V

2

3

4

Table I.13 Infrared Remote Controller Connector INFRAR

Pin Name

IRX

ITX

GND

Receiving from external device, digital

Transmitting to external device, digital

Power supply ground

Copyright © Dr Robot Inc. 2005

73

Table I.14 Servo Motor Connectors SM1 - 6

Pin Name

2

3

VSM

GND

Positive servo motor power supply

Servo motor power supply ground

1

Table I.15 Quadrature Encoder Connector ENCODER1 - 2

Pin Name

ENCB Channel B signal

3

4

5

ENCA

ENCI

GND

Channel A signal

Index signal (reserved for future use)

Power supply ground

Table I.16 Infrared Range Sensor Connector RANGE

Pin Name

2 RVS Range data, analog 0 – 3.0V

8

9

10

11

4

5

6

7

12

13

1

2

Table I.17 LCD Display Connector LCD

Pin Signal Description

VDD

VSS

+5.0V, power supply for logic

Power supply ground

D4

D5

D6

D7

D0

D1

D2

D3

CS1

CS2

Data bit 0

Data bit 1

Data bit 2

Data bit 3

Data bit 4

Data bit 5

Data bit 6

Data bit 7

Column select 1 ~ 64

Column select 65 ~ 128

Copyright © Dr Robot Inc. 2005

74

17 E Enable

18 VEE Negative voltage output

19

20

A

K

Power supply for LED backlight (+)

Power supply for LED backlight (-)

Table I.18 Custom A/D Expansion Connector EXP-AD

Pin Signal Description

1, 2, 3, 4

5, 6, 15, 16

+ 3.0 V

Ground

Analog power supply, max. 40mA

Analog ground

11

12

13

14

7

8

9

10

AD_IN1*

AD_IN2*

AD_IN3*

AD_IN4

AD_IN5

AD_IN6

AD_IN7

AD_IN8

Analog 0 – 3.0V

Analog 0 – 3.0V

Analog 0 – 3.0V

Analog 0 – 3.0V

Analog 0 – 3.0V

Analog 0 – 3.0V

Analog 0 – 3.0V

Analog 0 – 3.0V

*Note (Table I.18): When the relevant power supply voltage monitoring is enabled, AD_IN1, AD_IN2,

AD_IN3 will be not available to the custom A/D expansions.

Table I.19 Custom Digital I/O Expansion Connector EXP-GPIO

Pin Signal Description

1, 2, 3, 4 + 3.3 V Positive power source, max. 100mA

5 D_OUT0 out

6 D_OUT1 out

7 D_OUT2 out

8 D_OUT3 out

9 D_OUT4 out

11 D_OUT6 out

13, 14, 15,

16

Ground Power supply ground

Copyright © Dr Robot Inc. 2005

75

* NOTE (Table I.19): These pins have been pulled-up to logic high (+ 3.3V) internally.

I.3

Procedure to upgrade the PMS5005 firmware

1. Download and save the latest PMS5005 firmware from www.DrRobot.com

2.

3.

Turn off PMS5005 and keep it off until step 9

Use a null modem cable to connect the PC to PMS5005 with a RS232 Interface Module

(MCR3210) as shown in Figure I.5. All peripheral modules (e.g. sensors, motors, LCD and etc.) can still be plugged to the PMS5005 without affecting the upgrade process

4.

5.

Figure I.5 Physical Connection

Close all WiRobot software on PC (e.g. WiRobot Gateway and all sample applications)

Start the hyper-terminal (which comes with MS Windows OS), give a name to this new connection and choose the COM port that is connected to the PMS5005 (normally COM1 or

COM2) as shown in the following figure:

Copyright © Dr Robot Inc. 2005

Figure I.6 Choosing COM Port Connection

76

6. Configure the COM port with the setting 115200, 8, N, 1, Xon/Xoff and turn on the “Echo typed characters locally” under Properties - > Settings -> ASCII Setup. If your PC is slow, you can turn off this “echo” option for shorter download time but you will not see the download process during the upgrade.

7.

8.

Figure I.7 COM Port Setting

The lower left corner of the hyper-terminal will show the connection status. If the hyperterminal is still not connected, click the connect icon on the hyper-terminal to establish the connection (don’t turn on the PMS5005 yet!).

Choose “Transfer -> Send Text File” from the toolbar and set “files of type” to ALL. Locate the PMS5005 firmware HEX file only by HIGHLIGHTING the file (e.g. PMS5005_v11.dri).

Please make sure that you DON’T double click the file or click the “Open” button

Copyright © Dr Robot Inc. 2005

77

9.

10.

Figure I.8 Locating the HEX File

Please read step 10-13 ahead before turning on the PMS5005 in this step

After you turn on the PMS5005 (by connecting power to the system power), you should see the text “(c) 2000-2001 Motorola Inc. S-Record loader. Version 1.1” in the hyper-terminal as shown in the following figure:

11.

12.

Figure I.9 Status after Turning on the PMS5005

Within 5 seconds (start counting when you turn on the PMS5005), you should click the

“Open” button on the Hyper-terminal popup window. Firmware download will then start. If you fail to start the download within this period of time, the original firmware on PMS5005 will automatically start. You have to turn off the PMS5005, and repeat the download procedure again from Step 2

When the download is started, hex numbers will appear on the screen if you have turned on the “echo” option as described in step 6. Otherwise, you will not see anything but the download is still running. When the firmware download is completed (takes about 20-60 seconds, depending on the speed of your PC), you will see the “Application Started” keyword as shown in Figure I.10 no matter the “echo” option is turned on or off. The new downloaded firmware will automatically start in few seconds and you should see some un-recognized characters

Copyright © Dr Robot Inc. 2005

78

Figure I.10 Successful PMS5005 Firmware Upgrade

13. When the download is finished, you could disconnect the COM connection in the hyperterminal, and re-start your PMS5005

II.

PMB5010 Multimedia Controller

II.1

Introduction

The PMB5010 Robot Multimedia Controller can be used as audio, video and wireless communication processing unit for various robotic applications. Its onboard firmware makes the low level function modules such wireless communication module transparent to the users. A host (e.g. PC, DSP, or processor) will be used to communicate and control the PMS5005 for different applications through the UART (serial) interface. The system can help robotic and AI researchers and developers focus on the high level logic and algorithm designs, and avoid the hassle of writing low level device drivers, standard control schemes and troubleshooting the electronic circuits. The ease of use, powerful functionality and onboard intelligence can eliminate design risk, streamline hardware and software development, and significantly shorten the time to delivery while effectively reducing the cost. Typical applications include humanoid robot, legged robot, wheel-based robot, robot head and intelligent home device.

II.1.1

PMB5010 Multimedia Controller Architecture

The PMB5010 offers multimedia functionalities that are required by most intelligent robotic applications. Figure II.1 shows the system blocks of the PMB5010.

The key features and capabilities are:

-

120MIPS 16-bit fix-point DSP

-

1M x 16-bit words flash

-

Up to 256K x 16-bit words SRAM

-

Build-in

.

Real-time clock

.

Full duplex UART (x2)

-

Embedded firmware for image capturing, audio recording and playback, and wired and wireless communication

-

Interfaces to

.

MAC5310 Audio codec and amplifier module (x1)

.

MCI3908 CMOS image sensor module (352 x 288) (x1)

Copyright © Dr Robot Inc. 2005

79

.

MCB3100 Serial Bluetooth wireless module or MCR3210 RS232 interface module (x1) or WFS802b WiFi802.11b serial wireless module

Figure II.1 Block Diagram of the PMB5010

Copyright © Dr Robot Inc. 2005

80

II.1.2

PMB5010 Connectors and Jumpers

Figure II.2 shows the function and location of the connectors and jumpers on the PMB5010.

Figure II.2 PMB5010 Connectors and Jumpers

II.2

Operations

The PMB5010 Robot Multimedia Controller is designed to be running as part of the WiRobot system.

The hardware preparation when using PMB5010 is just simply connecting the relevant peripheral modules to the relevant connectors on the PMB5010 board and setting the proper jumper configurations. Lower device-level operations are handled by the firmware embedded in PMS5010 controller. High level programs running on PC or other processors are virtually communicating with the PMB5010 firmware using either WiRobot SDK Component and supplied WiRobot Gateway program or packet-level commands. Please refer to the Chapter III. WiRobot SDK API (Page 26) for using WiRobot SDK and WiRobot Communication Protocol for using packet-level commands.

II.2.1

PMB5010 Power Supplies

Up to two power supplies can be connected to the PMB5010 board supporting board system circuits

(System Power Supply) and Parallel Expansion Module (Expansion Power Supply) (reserved) respectively. These power supplies can be connected to the board either through the screw terminals or the power jacks. Near each screw terminal, there are two connector ports for connecting power switches or emergency buttons. By default, these two ports are connectors together. If the power switches are needed, you could place a switch for each connector port.

Power

Supply

System

Expansion

Table II.1 Specification of Power Supplies

Power

Jack

JT1

JT2

Screw

Terminals

PDMT

PSYT

Switch

Connector

Voltage

Range (V)

SW1

SW2

Current

Capacity (mA)

5.5 – 7.0 500

5.0 – 7.2 System

Specific

Copyright © Dr Robot Inc. 2005

81

II.2.2

PMB5010 Jumper Settings

The board address can be set to any value between 0 and 15. Please refer to the Table II.2 for the setting values.

Bit

0 (LSB)

1

2

3 (MSB)

1, 2

3, 4

5, 6

7, 8

Table II.2 Board Address Jumpers B_ADDR

Pin Value 1 Value 0 open open open open

1-2 short

3-4 short

5-6 short

7-8 short

II.2.3

PMB5010 System Communication Connections

Under the WiRobot system architecture, all the controllers are connected in a chain. There is one and only one host serving as the central controller. All other embedded controllers have at least two SCI ports for the system communications: upper-reach port and lower-reach port, with the direction respect to the central controller.

The system communication connection structure of the PMS5010 in the WiRobot RDK is shown in

Figure II.3. PMB5010 can work solely in the WiRobot system or together with a WiRobot Sensing and Motion controller PMS5005.

Figure II.3 WiRobot System Communication Architecture

The system communication connectors on the PMB5010 are described in Table II.3. Refer to Section

II.2.5 for the definitions of the signals attached to the connector BLUETOOTHT and SCIT.

Copyright © Dr Robot Inc. 2005

82

Table II.3 System Communication Connectors

Connector Type Description

BLUETOOTHT

SCIT

Upper Reach SCI port with handshaking and control signals for both wired and wireless modules

Lower Reach Two-wire serial communication interface

II.2.4

Peripheral Modules Supported by PMB5010

Table II.4 lists the WiRobot peripheral modules that can be directly connected to the PMB5010 board and supported by the firmware embedded in PMB5010. Refer to the relevant chapter of these peripheral modules for the detailed technical information.

Table II.4 Sub-modules Supported by PMB5010

Description

WFS802b BLUETOOTHT 1

MCB3100

MCR3210

MAC5310

MCI3908

BLUETOOTHT

BLUETOOTHT

CODEC0

IMAGE

1

1

1

1 communication module

Bluetooth wireless communication module

RS232 interface module

Audio codec and amplifier module, which can be used to connect to microphone and speaker

CIF CMOS image sensor module

II.2.5

PMB5010 Peripheral Module Connections

The definitions of the connector signals of the power supplies and the PMB5010 peripheral modules are listed in the following tables.

Table II.5 Connections of the Power Jacks and Terminals

Power Connection

Positive Power Source

Power Supply Ground

Power Jack JT1, JT2 Screw Terminal PDMT, PSYT

Center

Circle

1

2

Table II.6 Upper Reach Communication Port BLUETOOTHT

Pin Name

4

5

6

RTS

CTS

GND

Request to send

Clear to send

Power supply ground

8 BTIN Reserved

Copyright © Dr Robot Inc. 2005

83

Table II.7 Lower Reach Communication Port SCIT

Pin Name

4 GND Power supply ground

Table II.8 Audio Codec and Amplifier Module Connector CODEC0

Pin Signal Description

4, 6 GND Power supply ground

8 AMCK NC

10

11

APDN

AFC

Power down output

Request output for secondary communication

2

4

6

7

8

9

10

11

12

14

15

Copyright © Dr Robot Inc. 2005

Table II.9 CMOS Image Sensor Connector IMAGE

Pin Signal Description

D0

D1

D2

VS

D3

HREF

D4

RCLK

D5

D6

GND

Image data bit 0

Image data bit 1

Image data bit 2

Digital image vertical blank pulse input

Image data bit 3

Digital image horizontal blank pulse input

Image data bit 4

Digital YUV signal synchronized clock input

Image data bit 5

Image data bit 6

Power supply ground

84

16 D7 Image data bit 7

II.3

Procedure to upgrade the PMB5010 firmware

1. Download and save the latest PMB5010 firmware from www.DrRobot.com

2.

3.

4.

5.

Turn off PMB5010 and keep it off until step 9

Use a null modem cable to connect the PC to PMB5010. All peripheral modules (e.g. LCD and etc.) can still be plugged to the PMB5010 without affecting the upgrade process

Close all WiRobot software on PC (e.g. WiRobot Gateway and all sample applications)

Start the hyper-terminal (which come with MS Windows OS), give a name to this new connection and choose the COM port that is connected to the PMS5005 (normally COM1 or

COM2) as shown in the following figure:

6.

Figure II.4 Choosing COM Port Connection

Configure the COM port with the setting 115200, 8, N, 1, Hardware and turn on “Send line ends with line feeds” under Properties - > Settings -> ASCII Setup,

Copyright © Dr Robot Inc. 2005

Figure II.5 COM Port Setting

85

7.

8.

The lower left corner of the hyper-terminal will show the connection status. If the hyperterminal is still not connected, click the connect icon on the hyper-terminal to establish the connection (don’t turn on the PMB5010 yet!).

Choose “Transfer -> Send Text File” from the toolbar and set “files of type” to ALL. Locate the PMB5010 firmware HEX file only by HIGHLIGHTING the file (e.g. robot.hex). Please make sure that you DON’T double click the file or click the “Open” button

Figure II.6 Locating the HEX File

9. Please read step 10-13 ahead before turning on the PMB5010 in this step

10. After you turn on the PMB5010, you should see the text “Dr. Robot Inc. PMB5010

Bootloader V1.00 All Right Reserved! 2001, 2003” in the hyper-terminal as shown in the following figure:

Copyright © Dr Robot Inc. 2005

86

11.

12.

Figure II.7 Status after Turning on the PMB5010

Within 5 seconds (start counting when you turn on the PMB5010), you should click the

“Open” button on the Hyper-terminal popup window. Firmware download will then start. If you fail to start the download within this period of time, the original firmware on PMB5010 will automatically start. You have to turn off the PMB5010, and repeat the download procedure again from Step 2

When the download is started, you will see the following text. At the end, “Firmware Update

Successfully!” will be shown if the download succeeds. The whole process will take about 1 minute

Figure II.8 Successful PMB5010 Firmware Upgrade

13. When the download is finished, you could disconnect the COM connection in the hyperterminal, and re-start your PMB5010

Copyright © Dr Robot Inc. 2005

87

III.

MDM5253 DC Motor Driver Module with Position and Current

Feedback

III.1

Introduction

The MDM5253 DC Motor Driver Module with Position and Current Feedback is a three-channel Hbridge switching power amplifier board. It can be directly controlled by motion controller’s logic level

PWM driving signals at a frequency up to 20 KHz. For each of the three independent channels, the

MDM5253 also provides the current feedbacks and connectors for position sensors such as potentiometers. Each channel is able to drive inductive DC load with current up to 5.0 A and operating voltage ranging from 5.0 V to 28.0 V.

III.1.1

Features

.

3 Independent channels

.

Output 5.0 V to 28.0 V operations

.

Up to 5.0 A inductive DC load current capability

.

5.0 V TTL/CMOS compatible Inputs

.

PWM Frequencies up to 20 kHz

.

Automatic PWM over-current limiting

.

Output short circuit protection

.

Over-temperature output current reduction and shutdown

.

Under-voltage shutdown

.

Analog output current feedback

.

3 Connectors for position feedbacks

.

Directly plug-on to the WiRobot PMS5005 sensing and motion controller board

III.1.2

Applications

.

DC motor and stepper motor control

.

Permanent magnet solenoid control

.

Robotic systems

.

General PWM power amplifier

III.2

Operations

III.2.1

Theory of Operation

When four switches configured as that in Figure III.1, the whole circuit is called an H-bridge. By controlling the on/off of four switches in certain patterns, the polarity of the supply power on the control output can be changed. For example, when Control Input 1 and 4 are ON while the Control

Input 2 and 3 are OFF, the controlled load is supplied by power with + on the left and – on the right.

When Control Input 1 and 4 are OFF while the Control Input 2 and 3 are ON, the controlled load is supplied by power with - on the left and + on the right.

When applying the H-bridge output to a DC motor or other inductive loads with PWM controlled switching command based on certain algorithms and the feedback signals, full bidirectional magnitude control, including speed, position and torque control, can be achievable.

Copyright © Dr Robot Inc. 2005

88

Figure III.1 H-Bridge Switching Device

In the design of the MDM5253, only one PWM control signal is required to control both the direction and the magnitude of the output for each channel. The H-bridge’s diametrical opposite pairs (control input 1 and 4, control input 2 and 3) are connected and driven HIGH and LOW together, and the two pairs are controlled with strictly inverted signals.

Figure III.2 shows the relationship between the PWM duty cycle and system output. The zero average output occurs when the duty circle is 50%. The direction of the output (in speed control, for example, the direction of rotation) depends on whether the duty circle is larger than 50% or lower. The magnitude of the output (rotation speed in speed control) depends on the absolute difference between the duty circle and 50%.

Figure III.2 Theoretic waveforms of PWM control for the MDM5253

In addition to the PWM control, the MDM5253 can connect up to 3 sensing feedback devices (e.g.

MRS3302). DC motor control schemes, such as position and velocity control, can be implemented by installing feedback device on DC motor and connecting these devices to MDM5253.

III.2.2

Running as Part of WiRobot System

When using the MDM5253 with the WiRobot system, users simply plug the module onto one of the

DC motor drive expansion connector sets on the PMS5005 Sensing and Motion Controller board

(maximum of 2 MDM5253 modules are supported) and the PMS5005 on-board firmware and device driver will take care of the motor control and sensing feedback. Since PMS5005 can support 2

MDM5253, it is able to connect and control up to 6 DC motors and have 6 position sensor channels

(POT1-POT6).

Users have an option to use single rotary sensor (e.g. MRS3302 on the Position Sensor Connector), dual rotary sensor (e.g. 2 MRS3302 on 2 Position Sensor Connectors), or single encoder (Encoder port on PMS5005) as the feedback device to control each DC motor, if needed. PMS5005 already has built-in DC motor control schemes and users simply need to select the type of the feedback device for each DC motor. Note that for single rotary sensor setting, DC motor 1 must use POT1, DC motor 2 must use POT2 and etc.; for dual rotary sensor setting, DC motor 1 must use POT1 and POT6, DC motor 2 must use POT2 and POT5 and DC motor 3 must use POT3 and POT4; for encoder setting,

DC motor 1 must use ENCODER1 and DC motor 2 must use ENCODER2.

Copyright © Dr Robot Inc. 2005

89

By working with the PMS5005, users can simply call a function offered by the WiRobot SDK software on PC (requires Microsoft platform) or send a data packet (platform independent) to control the DC motors or to obtain the sensor feedback. Please refer to Chapter III. WiRobot SDK API (Page

26) and Chapter IV.I PMS5005 (Page 67) for the available motor control algorithms and schemes.

III.2.3

Running as a General Purpose DC Motor Driver Module

When using the MDM5253 with third party controllers, the power supply and the input/output signals should be connected properly (please refer to Section III.3 for connection setting). The controller sends control commands to the enable pins and the PWM input pins based on your own control schemes and get current and position feedback data via an analog to digital converter.

III.3

Connections

III.3.1

Board Structure

Figure III.3 shows the structure, locations and functions of the connectors on the MDM5253 module board.

Figure III.3 MDM5253 Connector Locations

III.3.2

Connector Description

The definitions of the MDM5253 connector signals are listed in the following tables.

1

2

3

4

5

6

Table III.1 Connections of the Load Screw Terminals MOTOR

Terminals Name Description

OUT1A

OUT1B

OUT2A

OUT2B

OUT3A

OUT3B

Channel #1 output A

Channel #1 output B

Channel #2 output A

Channel #2 output B

Channel #3 output A

Channel #3 output B

1

2

Table III.2 Position Sensor Connectors POT1 - 3

Pin Name Function

VCC3

PVS

+ 3.0 V

Position data, analog 0 – 3.0 V

Copyright © Dr Robot Inc. 2005

90

1

2

3

4

Table III.3 Control Signal Connector MOTOROUT

Pin Name Function

CTL1

CTL2

CTL3

ENA

5, 6

7, 8

GND5

VCC5

9, 10, 11, 12 GNDM

13, 14, 15, 16 VCCM

Channel #1 PWM control signal

Channel #2 PWM control signal

Channel #3 PWM control signal

Output enable for all channels

High: enable; Low: disable

Power supply ground for VCC5

+ 5.0 V

Power supply ground for VCCM

Positive load power source

Table III.4 Feedback Signal Connector MOTORIN

Pin Name

7

8

9

10

1, 2

3, 4

5

6

VCC3

Function

+ 3.0 V, positive power source for position sensors

GND3 Power supply ground for VCC3

CFB1 Channel #1 current feedback data, , analog 0 – 3.0 V

CFB2 Channel #2 current feedback data, , analog 0 – 3.0 V

CFB3 Channel #3 current feedback data, , analog 0 – 3.0 V

PFB1 Channel #1 position feedback data, , analog 0 – 3.0 V

PFB2 Channel #2 position feedback data, , analog 0 – 3.0 V

PFB3 Channel #3 position feedback data, , analog 0 – 3.0 V

III.4

Specifications

Parameter

Power Operating Voltage

Table III.5 MDM5253 Specification

Conditions MIN TYP MAX

VCCM

Under-

Voltage

Shutdown

Switch-off

Switch-on

VCCM

VCCM

Hysteresis

Logic Operating Voltage

Position Sensor Power Supply

Standby Supply Current

Control Input HIGH

VCC5

VCC3

VENA = 0V, IOUT =

0A

VENA, VCTL

Unit

5.0

28.0

V

4.15 4.4 4.65 V

4.5 4.75 5.0 V

150 mV

4.5 5.0 5.5

3.0 3.3

65

V

V mA

3.5 V

Copyright © Dr Robot Inc. 2005

91

Control Input LOW

Enable Input Current

PWM Input Current

Output-on Resistance

DC Load Current

Over-current Protection

Over-temperature Protection

PWM Frequency

Output ON Delay

Output OFF Delay

Output Rise Time

Output Fall Time

Disable Delay Time

Protection Turn-off Time

Power-off Delay Time

Position Sensor Input Range

Current Feedback Sensitivity

Current Feedback Accuracy

Board Size

VENA, VCTL

IENA

ICTL

ROUT

T = 25

˚C

T = 150

˚C

T < 150

˚C

Thermal shutdown

Hysteresis

VCCM = 14V

VCCM = 14V

VCCM = 14V, IOUT =

3A

VCCM = 14V, IOUT =

3A

With PMS5005 controller board

IOUT > 1.5 A

IOUT < 1.5 A

1.4

25 100

± 1

120

300

5.0

7.0

175

10 30

20

18

18

2.0 8.0

2.0 8.0

8.0

4.0

1.0 5.0

0.0 3.0

533

± 10

± 20

30 x 58

V

μA

μA mOhm

A

A

˚C

KHz

μS

μS

μS

μS

μS

μS

μS

V mV/A

% mm x mm

Copyright © Dr Robot Inc. 2005

92

IV.

WFS802b WiFI 802.11 Serial Module with antenna

IV.1

Introduction

The WFS802b WiFi (802.11b) serial module is the most compact, integrated solution available to add

802.11b wireless networking to your robots with a serial interface.

To enable access to a local network or the internet, the WFS802b integrates a fully developed

TCP/IP network stack and OS. The WFS802b also includes an embedded web server that can be used to remotely configure, monitor, or troubleshoot the attached device.

The WFS802b is the most compact, integrated solution available to add 802.11b wireless networking to any device with a serial interface. Using our highly integrated hardware and software platform, you will add to your bottom line by significantly reducing product development time, risk, and cost.

IV.1.1

Features

.

Serial to 802.11b conversion

.

Dual serial ports up to 921.6kbps per port

.

Integrated industry standard 802.11b wireless interface

.

128bit WEP Encryption for security

.

Connect any serial device to a wireless network

.

Stable, field proven TCP/IP protocol suite and Web-based application framework

.

Easy configuration through a web interface

.

Embedded web server

.

High performance throughput

IV.1.2

Applications

.

Robotic systems: both run-time and development-stage communication

.

General-purpose wireless data communication

IV.2

Operations

IV.2.1

Protocol Support

The WFS802b uses the widely accepted 802.11b protocol to connect to a wireless access point or an ad hoc network. It uses the Transmission Control Protocol (TCP) to ensure that no data is lost or duplicated and everything sent to the connection arrives correctly at the target.

The WFS802b also supports User Datagram Protocol (UDP) for typical datagram applications in which devices interact with other devices without maintaining a point-to-point connection.

IV.3

Connections

IV.3.1

Board Structure

Figure IV.1 illustrates the structure of the board

Copyright © Dr Robot Inc. 2005

93

Figure IV.1 WFS802bStructure

IV.3.2

Connector Description

The WFS802b is connected to WiRobot system via an 8-pin 2.54 mm-pitch single row connector1

(COM1):

Table IV.1 Connector1 (COM1)

Pin Name Function

3

4

5

6

TXD

RTS

CRTS

GND

Data transmitting

Request to send

Clear to send

Power supply ground

Table IV.2 Connector2 (COM2)

Pin Name Function

3

4

5

6

Copyright © Dr Robot Inc. 2005

TXD

RTS

CRTS

GND

Data transmitting

Request to send

Clear to send

Power supply ground

94

IV.4

Specifications

Table IV.3 WFS802b Specification

Network Standard

Frequency Range

Radio # of Selectable Channels

Security

Maximum Receive Level

Receiver Sensitivity

IEEE 802.11b

2.412 – 2.484 GHz

14 Channels

Password protection, locking features, WEP 64/128

-10dBm (with PER < 8%)

.

-82dBm for 11Mbps

.

-87dBm for 5.5Mbps

.

-89dBm for 2.0Mbps

.

-93dBm for 1.0Mbps

Max: 4mA WLAN Power and Link LED

Current

Firmware

Serial Interface

Serial Line Formats

Modem Control

Flow Control

Network Interface

Protocols Supported

Upgradeable via serial port

CMOS (Asynchronous) 3.3V-level signals

Rate is software selectable (300 bps to 921600 bps)

7 or 8 data bits, 1-2 Stop bits,

Parity: odd, even, none

DTR, DCD

XON/XOFF (software), CTS/RTS (hardware), none

Wireless 802.11b

802.11b, UDP, TCP, DHCP

Data Rates With Automatic

Fallback

Media Access Control

Frequency Range

Range

Modulation Techniques

Transmit Output Power

Average Power Consumption

Peak Supply Current

Management

Weight with antenna

Temperature

Size (w/o antenna)

.

11Mbps

.

5.5Mbps

.

2Mbps

.

1Mbps

CSMA/CA with ACK

2.412 – 2.484 GHz

Up to 328 feet indoors

.

CCK (11Mbps)

.

CCK (5.5 Mbps)

.

DQPSK (2 Mbps)

.

DBPSK (1 Mbps)

14dBm ± 1dBm

.

1280 mW (WLAN mode; maximum data rate)

.

820 mW (WLAN mode; idle)

.

710 mW (Ethernet mode)

460 mA

Internal web server

50 grams

Operating range, WLAN: -40°C to +70°C

50 mm x 40 mm x 15 mm

Copyright © Dr Robot Inc. 2005

95

IV.5

Configuration via Serial Mode or Telnet Port

Configure the unit so that it can communicate on a network with your serial device.

The WFS802b unit is configurable using a terminal program to access the serial port locally. Using this terminal program to respond to prompts is referred to as the Setup Mode. A Telnet connection may also be used to configure the unit over the network.

The unit’s configuration is stored in nonvolatile memory and is retained without power. You can change the configuration at any time. The unit performs a reset after the configuration has been changed and stored.

Note: The menus in this section show a typical device. Not all devices display information in the same manner.

This chapter includes the following topics:

.

Accessi n g Setup Mo de

.

Server

C o nfig ur atio n

.

Ch a nn e l 1 a n d Ch a nn e l 2 C onf igurat i o n

.

Email

C o nfi g u r atio n

.

W

LAN Setting s

.

Ex p ert Setting s

.

Securi ty

Setti n g s

.

F acto ry

De f aul ts

.

Exit

C o nfi g urat i on Mo de

Figure IV.1 Connection WFS802b with MCR3210P RS232 Interface Module

IV.5.1

Accessing Setup Mode

Telnet Access

To configure the unit over the network, establish a Telnet connection to port 9999:

1. From the Windows Start menu, click Run.

2. From the Run dialogue box, type the following command (where x.x.x.x is the IP

Copyright © Dr Robot Inc. 2005

96

address and 9999 is the unit’s fixed network configuration port number):

Windows: telnet x.x.x.x 9999

UNIX: telnet x.x.x.x:9999

3.

Click OK. The following information displays:

Figure IV.1 MAC Address

MAC address 00204AFFFF30

Software version 05.3(040129)WPT

Press Enter to go into Setup Mode

4. To enter the Setup Mode, press Enter within 5 seconds.

Note: Connection fails if Enter is not pressed within 5 seconds.

The configuration settings display, followed by the setup menu options:

Figure IV.2 Setup Menu Options

Change Setup:

0 Server

1 Channel 1

2 Channel 2

3 Email

4 WLAN

5 Expert

6 Security

7 Factory defaults

8 Exit without save

9 Save and exit Your choice ?

5. Select an option on the menu by entering the number of the option in the Your choice ? field and pressing Enter.

View the current configuration by pressing Enter from the Change Setup menu.

To enter a value for a parameter, type the value and press Enter. To confirm a current value, press Enter (without inputted parameters).

6. When finished, save the new configurations (9 Save and exit). The unit reboots.

Serial Port Access

To configure the unit through a serial connection:

1. Connect a console terminal or PC running a terminal emulation program to your unit's serial port. The default serial port settings are 9600 baud, 8 bits, no parity, 1 stop bit, no flow control.

2. Reset the WFS802b unit by cycling the unit's power (turning the power off and back on). Immediately upon resetting the device, enter three lowercase x characters

Copyright © Dr Robot Inc. 2005

97

(xxx).

Note: The easiest way to enter Setup Mode is to hold down the x key at the terminal

(or emulation) while resetting the unit. This must be done within three seconds of resetting the WFS802b.

3.

Upon connection, the following information displays:

Figure IV.3 MAC Address

MAC address 00204AFFFF30

Software version 05.3 (040129) WPT

Press Enter to go into Setup Mode

4.

To enter the Setup Mode, press Enter within 5 seconds

Note: Connection fails if Enter is not pressed within 5 seconds.

The configuration settings display, followed by the setup menu options:

Figure IV.4 Setup Menu Options

Change Setup:

0 Server

1 Channel 1

2 Channel 2

3 Email

4 WLAN

5 Expert

6 Security

7 Factory defaults

8 Exit without save

9 Save and exit Your choice ?

5.

Select an option on the menu by entering the number of the option in the Your choice ? field and pressing Enter.

View the current configuration by pressing Enter from the Change Setup menu. To enter a value for a parameter, type the value and press Enter. To confirm a current value, press Enter (without inputted parameters).

6.

When finished, save the new configurations (9 Save and exit). The unit reboots

IV.5.2

Server Configuration

The unit’s basic server (i.e. network) values display upon selecting Server (option 0 from the

Change Setup menu). The following sections describe the configurable parameters within the

Copyright © Dr Robot Inc. 2005

98

Server configuration menu.

Set the IP Address

If DHCP is not used to assign IP addresses, enter it manually. The IP address must be set to a unique value in the network. Enter each octet and press Enter between each section inputted.

The current value is displayed in parentheses.

IP Address : ( 0) ( 0) ( 0) ( 0)

Set the Gateway IP Address

The gateway address, or router, allows communication to other LAN segments. The gateway address should be the IP address of the router connected to the same LAN segment as the unit. The gateway address must be within the local network.

The default is N (No), indicating the gateway address has not been set. To set the gateway address, type Y. At the prompt, enter the gateway address.

Set Gateway IP Address (N) ? Y

Gateway IP addr ( 0) ( 0) ( 0) ( 0)

Set the Netmask

A netmask defines the number of bits taken from the IP address that are assigned for the host part.

Netmask: Number of Bits for Host Part (0=default) (0)

The unit prompts for the number of host bits to be entered, then calculates the netmask, which displays in standard decimal-dot notation when the saved parameters are displayed (for example, 255.255.255.0).

Table IV.4 Standard IP Network Netmasks Representing Host Bits

Network Class Host Bits Netmask

Change Telnet Configuration Password

Setting the Telnet configuration password prevents unauthorized access to the setup menu via a Telnet connection to port 9999 or via web pages. The password must have

4 characters.

Change telnet config password (N) ?

An enhanced password setting (for Telnet access only) of 16 characters is available under

Note: A password is not required to access the Setup Mode window via a serial

Copyright © Dr Robot Inc. 2005

99

connection.

DHCP Name

There are three methods for assigning DHCP names to the unit.

.

Default DHCP Name: If the DHCP name is not changed and the IP is 0.0.0.0, then the

DHCP name defaults to CXXXXXX (XXXXXX is the last 6 digits of the MAC address shown on the label on the bottom/side of the unit). For example, if the MAC address is 00-20-

4A-12-34-56, then the default DHCP name is C123456.

.

Custom DHCP Name: Create your own DHCP name. If using an IP address of 0.0.0.0, then the last option in Server configuration is Change DHCP device name. This option allows you to change the DHCP name to an alphanumeric name (LTX in the example).

Change DHCP device name (not set) ? (N)

Enter new DHCP device name : LTX

.

Numeric DHCP Name: Change the DHCP name by specifying the last octet of the IP address. When using this method, the DHCP name is LTXYY where YY is the last octet of the IP address. If the IP address specified is 0.0.0.12, then the DHCP name is LTX12.

This method only works with 2 digit numbers (0-99).

IV.5.3

Channel 1 and Channel 2 Configuration

Select option 1 Channel 1 or 2 Channel 2 from the Change Setup menu to define how the serial port responds to network and serial communications .

The following sections describe the configurable parameters within the Channel configuration menu.

Figure IV.5 Serial and Telnet Port Parameters

Baudrate

The unit and attached serial device, such as a modem, must agree on a speed or baud rate to use for the serial connection. Valid baud rates are 300, 600, 1200, 2400, 4800, 9600

(default), 19200, 38400, 57600, 115200, 230400, 460800, or 921600. The current value is displayed in parentheses.

Baudrate (9600) ? _

I/F (Interface) Mode

The Interface (I/F) Mode is a bit-coded byte entered in hexadecimal notation. The current value is displayed in parentheses.

I/F Mode (4C) ? _

Copyright © Dr Robot Inc. 2005

100

The following table displays available I/F Mode options:

Table IV.5 Interface Mode Options

I/F Mode Option

RS-232C (1)

7 Bit

8 Bit

No Parity

Even Parity

Odd Parity

1 stop bit

2 stop bits(1)

7

1 1

1 1

0

6

1

5

0

4

1

3

1

2

0

1 0

1 1

*(1) 2 stop bits are implemented by the software. This might influence performance.

Note: If attempting to select an I/F Mode bit pertaining to RS-422/485, a

“WARNING: RS-422/485 I/F Modes not supported” message displays.

The following table demonstrates some common I/F Mode settings:

Table IV.6 Common Interface Mode Settings

Common I/F Mode Setting

RS-232C, 8-bit, No Parity, 1 stop bit

Binary

0100 1100

Hex

4C

RS-232C, 7-bit, Even Parity, 1 stop bit 0111 1000 78

Flow

Flow control sets the local handshaking method for stopping serial input/output. The current value is displayed in parentheses.

Flow (0) ?

Use the following table to select flow control options:

Table IV.7 Flow Control Options

Flow Control Option

No flow control

XON/XOFF flow control

Hardware handshake with RTS/CTS lines

Hex

00

01

02

XON/XOFF pass characters to host 05

Port Number

The Port No setting represents the source port number in TCP connections. It is the number that identifies the channel for remote initiating connections. The port number functions as the TCP/UDP source port number for outgoing packets. Packets sent to the

Copyright © Dr Robot Inc. 2005

101

unit with this port number are received to this channel. The port number selected is the

Incoming TCP/UDP port and Outgoing TCP/UDP source port.

Port No (10001) ?

The current value is displayed in parentheses. The default setting for Port 1 is 10001. The range is 1-65535, except for the following reserved port numbers:

Table IV.8 Reserved Port Numbers

Port Numbers

1 – 1024

Reserved for

Reserved

14000-14009

30704

Reserved for Redirector

Reserved (77F0h)

Note: It is recommended to not use the reserved port numbers for this setting as incorrect operation may result.

Use Port 0 for the outgoing local port to change with each connection. The port range is

50,000 to 59,999. Each subsequent connection increments the number by 1 (it wraps back around to 50,000).

Only use this automatic port increment feature to initiate a connection using TCP. Set the port to a non-zero value when the unit is in a passive mode or when using UDP instead of TCP.

Connect Mode

Connect Mode defines the unit’s connection method and its reaction to incoming connections over the network. The current value is displayed in parentheses.

ConnectMode (C0) ?

Enter Connect Mode options in hexadecimal notation:

Table IV.9 Connect Mode Options

Connect Mode Option a) Incoming Connection

7 6 5 4 3 2 1 0

0 0 0

Accept with modem-control_in Active 0 1 0 b) Response

Nothing (quiet)

Character response (C=connect,

D=disconnect, N=unreachable) c) Active Startup

With any character

Copyright © Dr Robot Inc. 2005

0

1

0 0 0 1

102

With modem_control_in Active

With a specific start character

Autostart

Hostlist d) Datagram Type e) Modem Mode

0 0 1

0 0 1

0

1

0 0 1 0

Numeric modem result codes 1 0 1 1 1

a) Incoming Connection

Never Accept Incoming Rejects all external connection attempts

Accept with modem_control_in Active Accepts external connection requests only when the modem_control_in input is asserted.

Cannot be used with Modem Mode

Always Accept Accepts any incoming connection when a connection is not already established. Default setting

b) Response

Character Response A single character is transmitted to the serial port when there is a change in connection state:

C = connected, D = disconnected, N = host unreachable.

This option is overridden when the Active Start Modem Mode or Active Start Host List is in effect. Default setting is

Nothing (quiet).

not

attempt to initiate a connection. Default setting

With Any Character

Accept with modem_control_in

Active

Attempts to connect when any character is received from the serial port

Attempts to connect when the modem_control_in input changes from not asserted to asserted

With a Specific Start

Character

Attempts to connect when it receives a specific start character from the serial port. The default start character is carriage return

Manual Connection Attempts to connect when directed by a command string received from the serial port. The first character of the command string must be a C (ASCII 0x43), and the last character must be either a carriage return (ASCII 0x0D) or a line feed (0x0A). No blanks or space characters may be in the command string. Between the first and last command string characters must be a full or partial destination IP address and

Copyright © Dr Robot Inc. 2005

103

can include a destination port number.

The IP address must be in standard dot-decimal notation and may be a partial address, representing the least significant 1, 2, or 3 bytes of the remote IP address. The period is required between each pair of IP address numbers.

If present, the port number must follow the IP address, must be presented as a decimal number in the range 1-65535, and must be preceded by a forward slash (ASCII 0x2F). The slash separates the IP address and the port number. If you omit the port number from a command string, the internally stored remote port number starts a connection.

If a partial IP address is presented in a command string, it is interpreted to be the least significant bytes of the IP address and uses the internally stored remote IP address to provide the most significant bytes of the IP address. If the IP address entered is 0.0.0.0/0, the device server enters Monitor Mode.

For example, if the remote IP address already configured in the unit is 129.1.2.3, then an example command string would be

C3/7. (This would connect to 129.1.2.3 and port 7.) You may also use a different ending for the connection string. For example, C50.1/23 would connect you to 129.1.50.1 and port

23.

Command String

C121.2.4.5/1

C5

C28.10/12

C0.0.0.0/0

Autostart (Automatic

Connection)

Table IV.10 Manual Connection Address Example

Result if remote IP is 129.1.2.3 and remote port is 1234

Complete override; connection is started with host 121.2.4.5, port 1

Connects to 129.1.2.5, port 1234

Connects to 129.1.28.10, port 12

Connects to 129.1.28.10, port 12; enters Monitor Mode

The unit automatically attempts a connection to the remote IP address and port after booting up

Hostlist If this option is set to True, the device server scrolls through the host list until it connects to the first available device listed in the host list table. Once it connects, the unit stops further attempts. If this connection fails, the unit continues to scroll through the table until it is able to connect to the next available IP address in the host list.

Hostlist supports a minimum of 1 and a maximum of 12 entries. Each entry contains the IP address and the port number.

The hostlist is disabled for Manual Mode and for Modem

Mode. The unit will not accept a data connection from a remote device when the hostlist option is enabled.

Baudrate (9600) ?

I/F Mode (4C) ?

Flow (00) ?

Port No (10001) ?

ConnectMode (C0) ?25

Figure IV.6 Hostlist Example

Copyright © Dr Robot Inc. 2005

104

Hostlist :

No Entry !

Change Hostlist ? (N) Y

01. IP address : (000) 172.(000) 19.(000) 0.(000) 1 Port :

(0) ?23

02. IP address : (000) 172.(000) 19.(000) 0.(000) 2 Port :

(0) ?3001

03. IP address : (000) 172.(000) 19.(000) 0.(000) 3 Port :

(0) ?10001

04. IP address : (000) .(000) .(000) .(000)

Hostlist :

01. IP : 172.019.000.001 Port : 00023

02. IP : 172.019.000.002 Port : 03001

03. IP : 172.019.000.003 Port : 10001

Change Hostlist ? (N) N

Hostlist Retrycounter (3) ?

Hostlist Retrytimeout (250) ?

DisConnMode (00) ?

FlushMode (00) ?

DisConnTime (00:00) ?:

SendChar 1 (00) ?

SendChar 2 (00) ?

To enable the hostlist:

1. Enter a Connect Mode of 0x20. The menu shows a list of current entries already defined in the product.

2. To delete, modify, or add an entry, select Yes. If entering an IP address of 0.0.0.0, that entry and all others after it are deleted.

3. After completing the hostlist, repeat the previous step if necessary to edit the hostlist again.

4. For Retrycounter, enter the number of times the Lantronix unit should try to make a good network connection to a hostlist entry that it has successfully ARPed. The range is

1-15, with the default set to 3.

5. For Retrytimeout, enter the number of seconds the unit should wait before failing an attempted connection. The time is stored as units of milliseconds in the range of 1-65535.

The default is 250.

c) Datagram Type

Directed UDP When selecting this option, the prompt requests the Datagram type. Enter 01 for directed or broadcast UDP.

When the UDP option is in effect, the unit uses UDP datagrams to send and receive data.

d) Modem Mode

In Modem (Emulation) Mode, the unit presents a modem interface to the attached serial device.

It accepts AT-style modem commands, and handles the modem signals correctly.

Copyright © Dr Robot Inc. 2005

105

Normally, there is a modem connected to a local PC and a modem connected to a remote machine. A user must dial from the local PC to the remote machine, accumulating phone charges for each connection. Modem Mode allows you to replace modems with WFS802bs, and to use an Ethernet connection instead of a phone call. By not having to change communications applications, you avoid potentially expensive phone calls.

To select Modem Mode, set the Connect Mode to C6 (no echo), D6 (echo with full verbose), or D7 (echo with 1-character response).

Note: If the unit is in Modem Mode, and the serial port is idle, the unit can still accept network

TCP connections to the serial port if Connect Mode is set to C6 (no echo), D6 (echo with full verbose), or D7 (echo with 1-character response).

Without Echo In Modem Mode, echo refers to the echo of all of the characters entered in command mode; it does echo data that is transferred. Quiet Mode (without echo) refers to the modem

not not

mean to sending an answer to the commands received (or displaying what was typed).

Full Verbose

1-Character

Response

The unit echoes modem commands and responds to a command with a message string shown in the table below.

The unit echoes modem commands and responds to a command with a single character response.

Message

Full Verbose

OK

CONNECT

NO CARRIER

Table IV.11 Modem Mode Messages

Meaning

Command was executed without error

A network connection has been established

A network connection has been closed

A remote device, having IP address n.n.n.n, is connecting to this device.

RING n.n.n.n

1-Character Response

0 OK

1 Connected

2 Ring

4 Error

Received commands must begin with the two-character sequence AT and be terminated with a carriage return character.

The unit ignores any character sequence received

not

starting with AT, and only recognizes and processes single AT-style commands. The unit treats compound AT commands as unrecognized commands.

If the Full Verbose option is in effect, the unit responds to an unrecognized command string that is otherwise formatted correctly (begins with AT and ends with carriage return) with the

OK

message and takes no further action.

If the 1-Character Response option is in effect, the unit responds to an unrecognized command string that is otherwise formatted correctly with

OK

and takes no further action.

Copyright © Dr Robot Inc. 2005

106

When an active connection is in effect, the unit transfers data and does not process commands received from the serial interface.

When a connection is terminated or lost, the unit reverts to command mode. When an active connection is in effect, the unit terminates the connection if it receives the following sequence from the attached serial device:

.

No serial data is received for one second.

.

The character sequence +++ is received, with no more than one second between each two characters.

.

No serial data is received for one second after the last + character. At this time, the unit responds affirmatively per the selected echo/response mode.

.

The character string ATH is received, terminated with a carriage return. The unit responds affirmatively according to the selected echo/response mode and drops the network connection. The serial interface reverts to accepting command strings.

If this sequence is not followed, the unit remains in data transfer mode.

Modem Mode Command

Table IV.12 Modem Mode Commands

Function

ATDTx.x.x.x,pppp or

ATDTx.x.x.x/pppp

ATDTx.x.x.x

Makes a connection to an IP address (x.x.x.x) and a remote port number (pppp).

ATD0.0.0.0

Makes a connection to an IP address (x.x.x.x) and the remote port number defined within the unit.

Forces the unit into Monitor Mode. Uses remote IP address and port settings to initiate a connection.

ATD or ATDT

ATDx.x.x.x

Forces the unit into Monitor Mode. Uses remote IP address and port settings to initiate a connection.

ATH

ATS0=n

Makes a connection to an IP address (x.x.x.x) and the remote port number defined within the unit.

Hangs up the connection (Entered as +++ ATH ).

Enables or disables connections from the network going to the serial port. n=0 disables the ability to make a connection from the network to the serial port. n=1-9 enables the ability to make a connection from the network to the serial port. n>9 is invalid

ATEn

ATVn

Enables or disables character echo and responses. n=0 disables character echo and responses. n=1 enables character echo and responses

Enables 1-character response or full verbose. n=0 enables 1-character response. n=1 enables full verbose.

Note: The unit recognizes these AT commands as single commands such as ATE0 or ATV1; it

Copyright © Dr Robot Inc. 2005

107

does not recognize compound commands such as ATE0V.

Remote IP Address

This is the destination IP address used with an outgoing connection. The current value is displayed in parentheses.

Remote IP Address : ( 0) ( 0) ( 0) ( 0)

Note: This option is not displayed when Hostlist is enabled from the ConnectMode prompt

Remote Port

Set the remote TCP port number for the unit to make outgoing connections. This parameter defines the port number on the target host to which a connection is attempted.

To connect an ASCII terminal to a host using the unit for login purposes, use the remote port number 23 (Internet standard port number for Telnet services)

Remote Port ( 0) ?

Note: This option is not displayed when Hostlist is enabled from the ConnectMode prompt

DisConnMode

Disconnect Mode (DisConnMode) determines the conditions under which the unit will cause a network connection to terminate. The current value is displayed in parentheses.

DisConnMode ( 0) ?

In DisConnMode, modem_control_in either drops the connection or is ignored. The following table displays the available input options:

Table IV.13 Disconnect Mode Options

Disconnect Mode Option 7 6 5 4 3 2 1

Disconnect with modem_control_in drop (6)

1

0

Ignore modem_control_in

Telnet mode and terminal type setup (1)

Channel (port) password (2)

Hard disconnect (3)

0

1

1

0

Disable hard disconnect

State LED off with connection (4)

1

1

Disconnect with EOT (^D) (5) 1

(1) The WFS802b sends the "Terminal Type" upon an outgoing connection.

(2) A password is required for a connection to the serial port from the network.

(3) The TCP connection closes even if the remote site does not acknowledge the disconnection.

(4) When there is a network connection to or from the serial port, the state LED turns off

Copyright © Dr Robot Inc. 2005

108

instead of blinking.

(5) When Ctrl D or Hex 04 is detected, the connection is dropped. Both Telnet mode and

Disconnect with EOT must be enabled for Disconnect with EOT to function properly. Ctrl D is only detected going from the serial port to the network.

(6) When modem_control_in transitions from a high state to a low state, the network connection to or from the serial port drops.

Flush Mode

The FlushMode (buffer flushing) parameter controls line handling and network buffers with connection startup and disconnect.

FlushMode ( 0) ?

Select between two different packing algorithms (the current configuration is displayed within the parentheses). Available Flush Mode options are:

Table IV.14 Flush Mode Options

Input Buffer (Serial to Network)

Clear with a connection that is initiated from the device to the network

Clear with a connection initiated from the network to the device

Clear when the network connection to or from the device is disconnected

Output Buffer (Network to Serial)

Clear with a connection that is initiated from the device to the network

Clear with a connection initiated from the network to the device

Clear when the network connection to or from the device is disconnected

Alternate Packing Algorithm (Pack Control)

Enable 1

1

1

1

1

1

1

Pack Control

The packing algorithm defines how and when packets are sent to the network. The standard algorithm is optimized for applications in which the unit is used in a local environment. The alternate packing algorithm minimizes the packet count on the network and is especially useful in applications in a routed Wide Area Network (WAN).

Adjusting parameters in this mode can economize the network data stream. Pack control settings are enabled in Flush Mode. Set this value to 00 if specific functions are not needed.

Table IV.15 Pack Control Options

Option 7 1

Packing Interval

Interval: 12ms

Interval: 52ms

Interval: 250ms

0 1

1 0

Copyright © Dr Robot Inc. 2005

109

Interval: 5sec

Trailing Characters

None

One

Two

Send Characters

2-Byte Send Character Sequence

1 1

1

0

1

1

0

Send Immediately After Send chars 1

Packing Interval:

Packing Interval defines how long the unit should wait before sending accumulated characters. This wait period is between successive network segments containing data. For alternate packing, the default interval is 12 ms.

Trailing Characters:

In some applications, CRC, Checksum, or other trailing characters follow the end-of-sequence character; this option helps to adapt frame transmission to the frame boundary.

Send Characters:

.

If 2-Byte Send Character Sequence is enabled, the unit interprets the sendchars as a

2-byte sequence; if this option is not enabled, the unit interprets them independently.

.

If Send Immediately After Characters is not set, any characters already in the serial buffer are included in the transmission after a "transmit" condition is found. If this option is set, the unit sends immediately after recognizing the transmit condition

(sendchar or timeout).

Note: A transmission might occur if status information needs to be exchanged or an acknowledgment needs to be sent.

DisConnTime (Inactivity Timeout)

Use this parameter to set an inactivity timeout. The unit drops the connection if there is no activity on the serial line before the set time expires. Enter time in the format mm:ss, where m is the number of minutes and s is the number of seconds.

DisConnTime (0: 0) ?:

To disable the inactivity timeout, enter 00:00. Range is 0 (disabled) to 5999 seconds

(99 minutes, 59 seconds). The default is 0.

SendChar 1 and SendChar2

Enter up to two characters in hexadecimal representation

SendChar 1 ( 0) ?

SendChar 2 ( 0) ?

If the unit receives a character on the serial line that matches one of these characters, it sends the character immediately, along with any awaiting characters, to the TCP connection.

This action minimizes the response time for specific protocol characters on the serial line

(for example, ETX, EOT). Setting the first SendChar to 00 disables the recognition of the characters. Alternatively, the unit can interpret two characters as a sequence.

Telnet Terminal Type

Copyright © Dr Robot Inc. 2005

110

This parameter displays only if the terminal type option is enabled in Disconnect Mode. If this option is enabled, use the terminal name for the Telnet terminal type. Enter only one name.

If the terminal type option is enabled, the unit also reacts to the EOR (end of record) and binary options, which can be used for applications such as terminal emulation to UNIX hosts.

Channel (Port) Password

This parameter appears only if the channel (port) password option is enabled in Disconnect

Mode. If the option is enabled, set a password on the serial port.

IV.5.4

Email Configuration

Reserved

IV.5.5

WLAN Settings

Without adequate protection, a wireless LAN is susceptible to access by unauthorized users. As such, WFS802b includes the Wired Equivalent Privacy (WEP) encryption standard as an additional means of security.

To modify WLAN and WEP settings, select 4 WLAN from the Change Setup menu.

Enable WLAN

The current value is displayed in parentheses. By default, WLAN is enabled on WFS802b.

Enable WLAN (Y) ?

Find Network Name

Enter the name of the network in which the WFS802b unit resides. The current value is displayed in parentheses.

Find network name (DRI_IBSS) ?

Enable Ad Hoc Network Creation

The current value is displayed in parentheses. By default, Ad Hoc network creation is enabled on WFS802b.

Enable Ad Hoc network creation (Y) ?

Name (DRI_IBSS) ?

Country 0=US, 1=FR, 2=JP, 3=Other (0) ?

Channel (11) ?

Enter Y to enable Ad Hoc network creation and display configurable parameters:

1. At the Name prompt, enter the network name as text and hit Enter. The default name displays in parentheses.

2. Select a Country by entering 0, 1, or 3. By default, 0 (United States) is selected. Press

Enter.

3. At the Channel prompt, enter the WFS802b’s channel setting.

Copyright © Dr Robot Inc. 2005

111

Security

As an additional security measure, enable WEP on the WFS802b. The current value is displayed in parentheses. By default, WEP is disabled on WFS802b.

Security 0=none, 1=WEP (0) ?

Data Rate

WFS802b permits the control of the transmission rate. The default is a data rate up to

11Mbps. The current value is displayed in parentheses.

Data rate, Only : 0=1, 1=2, 2=5.5, 3=11 Mbps or

Up to: 4=2, 5=5.5, 6=11 Mbps (6) ?

Power Management

Power management reduces the overall power consumption of the WFS802b unit. Enabling power management increases the response time. The current value is displayed in parentheses.

Enable power management (N) ?

IV.5.6

Expert Settings

Note: Change these settings via Telnet or serial connections only.

Caution: Only an expert should change these parameters. These changes hold serious consequences.

TCP Keepalive Time

TCP Keepalive time defines how many seconds the unit waits during a silent connection before checking whether the currently connected network device is still on the network. If the unit does not receive a response, it drops that connection.

TCP Keepalive time in s (1s – 65s; 0s=disable): (45)?

ARP Cache Timeout

When the unit communicates with another device on the network, it adds an entry into its ARP table. ARP Cache timeout defines the number of seconds (1-600) the unit waits before timing out this table.

ARP Cache timeout in s (1s – 65s; 0s=disable): (600)?

IV.5.7

Security Settings

Note: As recommended, set security over the dedicated network or over the serial setup. If the parameters are set over the network (Telnet 9999), someone else could capture these settings.

Caution: Disabling both Telnet Setup and Port 77FE prevent users from accessing the setup menu from the network.

Copyright © Dr Robot Inc. 2005

112

Disable SNMP

Reserved

SNMP Community Name

Reserved

Disable Telnet Setup

Note: If this option is disabled, note that disabling both Telnet Setup and Port 77FE prevents users from accessing the setup menu from the network.

This setting defaults to the N (No) option. The Y (Yes) option disables access to Setup

Mode by Telnet (port 9999). It only allows access locally via the web pages and the serial port of the unit.

Disable Telnet Setup (N) ?

Disable TFTP Firmware Upgrade

Reserved

Disable Port 77FE (Hex)

Reserved

Disable Web Server

The Y (Yes) option disables the web server. This setting defaults to the N (option).

Disable Web Server (N) ?

Disable Web Setup

The Y (Yes) option disables configuration via the Web-Manager. This setting defaults to the N

(option).

Disable Web Setup (N) ?

Disable ECHO Ports

This setting controls whether the serial port echoes characters it receives. The current value is displayed in parent.

Disable ECHO ports (Y) ?

Enable Enhanced Password

This setting defaults to the N (option), which permits a 4-character password protecting Setup

Mode by means of Telnet and web pages.

Enable Enhanced Password (Y) ?

The Y (Yes) option allows an extended security password of 16-characters for

Copyright © Dr Robot Inc. 2005

113

protecting Telnet access.

Disable Port 77F0 (Hex)

Port 77F0 is a setting that allows a custom application to query or set the eleven

WFS802b configurable pins when they are functioning as general purpose I/O (GPIO).

Disable this capability, if desired, for security purposes.

Disable Port 77F0h ?

The default setting, the N (No) option, enables GPIO control. The Y (Yes) option disables the GPIO control interface.

IV.5.8

Factory Defaults

Select 7 Factory Defaults from the Change Setup menu to reset the unit’s Channel 1 configuration, Channel 2 configuration, E-mail settings, and Expert settings to the factory default settings. The server configuration settings for IP address, gateway IP address, and netmask remain unchanged. The configurable pins’ settings also remain unchanged. The specific settings that this option changes are listed below:

Channel 1 Configuration

Baudrate 9600

I/F Mode 4C (1 stop bit, no parity, 8 bit, RS-232C)

Port No 10001

Connect Mode C0 (always accept incoming connection; no active connection startup)

Hostlist Retry Counter 3

All other parameters 0

Channel 2 Configuration

Baudrate 9600

I/F Mode 4C (1 stop bit, no parity, 8 bit, RS-232C)

Port No 10002

Connect Mode C0 (always accept incoming connection; no active connection startup)

Hostlist Retry Counter 3

All other parameters 0

WLAN Settings

Enable WLAN

Find Network Name

(Y) Yes

LTRX_IBSS

Enable Ad Hoc Network Creation (Y) Yes

Copyright © Dr Robot Inc. 2005

114

Name

Country

Channel

Security

Data Rate

Expert Settings

LTRX_IBSS

(0) United States

11

(0) None

11Mbps

Security Settings

SNMP Community Name public

Email Settings

Trigger Priority L

All other parameters 0 (e.g. Email notification and triggers are disabled)

IV.5.9

Exit Configuration Mode

To exit setup mode:

.

Select option 9 Save and exit from the Change Setup menu to save all changes and reboot the device. All values are stored in nonvolatile memory.

or

.

Select option 8 Exit without save from the Change Setup menu to exit the configuration mode without saving any changes or rebooting.

Copyright © Dr Robot Inc. 2005

115

IV.6

Configuration using Web-Manager

This chapter describes how to configure the WFS802b using Web-Manager, DrRobot’s browser-based configuration tool. The unit’s configuration is stored in nonvolatile memory and is retained without power. The unit performs a reset after the configuration is changed and stored.

This chapter includes the following topics:

.

Accessing WFS802b using Web-Manager

.

Network Configuration

.

Server Configuration

.

Host List Configuration

.

Channel 1 and Channel 2 Configuration

.

WLAN Configuration

.

OEM Pin Configuration

.

Updating Settings

IV.6.1

Accessing WFS802b using Web-Manager

Follow the instructions to configure the unit’s MAC address

1. U s i n g S e r i a l P o r t t o s e t t h e I P .

For more information on the Serial

Port Access , see “Server” on page 98.

2. Configure WLAN parameter.

For more information on the Serial Port Access , see “WLAN” on page 111.

Figure IV.1 Web-Manager

The main menu is displayed in the left side of the Web-Manager window.

Note: Alternatively, access the WFS802b’s Web-Manager if it is connected to the network by entering its IP address in a web browser.

Copyright © Dr Robot Inc. 2005

116

IV.6.2

Network Configuration

The unit’s network values display upon selecting Network from the main menu. The following sections describe the configurable parameters within the Network configuration menu.

Note: The IP address is assigned via DHCP (on DHCP-enabled networks). Assign a static IP address only if necessary.

Figure IV.2 Network Settings

Automatic IP Address Configuration

To automatically assign an IP address and its network configuration:

1. Click Network from the main menu.

2. Select Obtain IP address automatically.

3. Enter the following (as necessary):

Disable BOOTP Leave the checkbox empty to enable Bootstrap Protocol(BOOTP).

The BOOTP server automatically assigns the IP address from a pool of addresses.

Disable DHCP Leave the checkbox empty to enable Dynamic Host Configuration

Protocol (DHCP). DHCP automatically assigns a leased IP address to the WFS802b unit.

Disable Auto-IP The WFS802b generates an IP in the 169.254.x.x address range with a Class B subnet. Select the checkbox to disable this feature.

Host Name Enter the name of the host on the network.

Note: Disabling BOOTP, DHCP, and Auto-IP (i.e. all three checkboxes) is not advised as the only available IP assignment method will then be ARP or serial port.

4.

Click the OK button when finished.

Static IP Address Configuration

To manually assign an IP address and its network configuration:

Copyright © Dr Robot Inc. 2005

117

1. Click Network from the main menu.

2. Select Use the following IP configuration.

3. Enter the following (as necessary):

IP Address If DHCP is not used to assign IP addresses, enter it manually. The IP address must be set to a unique value in the network.

Subnet Mask A subnet mask defines the number of bits taken from the IP address that are assigned for the host part.

Default Gateway The gateway address, or router, allows communication to other LAN segments. The gateway address should be the IP address of the router connected to the same LAN segment as the unit. The gateway address must be within the local network.

4.

Click the OK button when finished.

IV.6.3

Server Configuration

The unit’s server values display upon selecting Server from the main menu. The following sections describe the configurable parameters within the Server configuration menu.

Figure IV.3 Server Settings

To configure the WFS802b’s device server settings:

1. Click Server from the main menu.

2. Configure or modify the following fields:

Server Configuration

Telnet Password Enter the password required for Telnet access.

Retype Password Re-enter the password required for Telnet access.

Advanced

ARP Cache

Timeout

TCP Keepalive

When the unit communicates with another device on the network, it adds an entry into its ARP table. ARP Cache timeout defines the number of seconds (1-600) before it refreshes this table.

TCP Keepalive time defines how many seconds the unit waits during

Copyright © Dr Robot Inc. 2005

118

an inactive connection before checking its status. If the unit does not receive a response, it drops that connection. Enter a value between 0 and 60 seconds. 0 disables keepalive.

IV.6.4

Host List Configuration

The WFS802b scrolls through the host list until it connects to a device listed in the host list table. After a successful connection, the unit stops trying to connect to any others. If this connection fails, the unit continues to scroll through the table until the next successful connection.

The host list supports a minimum of 1 and a maximum of 12 entries. Each entry contains an IP address and a port number.

Note: The host list is disabled for Manual and Modem Mode. The unit will not accept a data connection from a remote device when the hostlist option is enabled.

To configure the WFS802b’s host list:

1.

From the main menu, click the Hostlist tab.

Figure

2. Enter or modify the following fields from the Hostlist Settings window:

Retry Settings

Retry Counter Enter the value for the number of times the WFS802b should attempt to retry connecting to the host list.

Retry Timeout Enter the duration (in seconds) the WFS802b should abandon attempting a connection to the host list.

Host Information

Host Address

Port

Enter or modify the host’s IP address.

Enter the target port number.

Copyright © Dr Robot Inc. 2005

119

IV.6.5

Channel 1 and Channel 2 Configuration

Channel 1 and Channel 2 configurations define how the serial ports respond to network and serial communication .

Serial Settings

To configure a channel’s serial settings :

1. From the main menu, click Serial Settings for either Channel 1 or Channel 2 to display the Serial Settings page for the selected channel.

Figure IV.5 Channel Serial Settings

2. In the available fields, enter the following information:

Channel 1

Disable Serial Port

Available on Channel 1 settings only. When selected, disables communication through the serial port.

Port Settings

Protocol

Flow Control

Baud Rate

Select the protocol type from the pull down menu for the selected channel.

Flow control manages data flow between devices in a network to ensure it is processed efficiently. Too much data arriving before a device is prepared to manage it causes lost or retransmitted data.

The unit and attached serial device, such as a modem, must agree on

Copyright © Dr Robot Inc. 2005

120

Data Bits

Parity

Stop Bits a speed or baud rate to use for the serial connection. Valid baud rates are 300, 600, 1200, 2400, 4800, 9600 (default), 19200, 38400,

57600, 115200, 230400, 460800, or 921600.

Indicates the number of bits in a transmitted data package.

Checks for the parity bit. The default is None.

The stop bit follows the data and parity bits in serial communication. It indicates the end of transmission.

Port Settings

Enable Packing Select the checkbox to enable packing on the WFS802b.

Two firmware-selectable packing algorithms define how and when packets are sent to the network. The standard algorithm is optimized for applications in which the unit is used in a local environment, allowing for very small delays for single characters, while keeping the packet count low. The alternate packing algorithm minimizes the packet count on the network and is especially useful in applications in a routed Wide Area Network (WAN). Adjusting parameters in this mode can economize the network data stream.

Idle Gap Time

Match 2 Byte

Sequence

Select the maximum time for inactivity. The default time is 12 milliseconds.

Use to indicate the end of a series of data to be sent as one group. The sequence must occur sequentially to indicate to the WFS802b end of the data collection.

Match Bytes Use to indicate the end of a series of data to be sent as one group. Set this value to 00 if specific functions are not needed.

Send Frame Only After the detection of the byte sequence, indicates whether to send the data frame or the entire buffer. Select True to send only the data frame.

Bytes characters.

Flush Input Buffer (Serial to Network)

With Active

Connect

Select Yes to clear the input buffer with a connection that is initiated from the device to the network.

With Passive

Connect

At Time of

Disconnect

Select Yes to clear the input buffer with a connection initiated from the network to the device.

Select Yes to clear the input buffer when the network connection to or from the device is disconnected.

Flush Output Buffer (Network to Serial)

With Active

Connect

Select Yes to clear the output buffer with a connection that is initiated from the device to the network.

With Passive

Connect

Select Yes to clear the output buffer with a connection initiated from the network to the device.

At Time of

Disconnect

Select Yes to clear the output buffer when the network connection to or from the device is disconnected.

Connection Settings - TCP

To configure a channel’s TCP settings :

1. From the main menu, click Connection for either Channel 1 or Channel 2 to display

Copyright © Dr Robot Inc. 2005

121

the Connection Settings page for the selected channel.

2. In the available fields, enter the following information:

Connect Protocol

Figure IV.6 TCP Connection Settings

3

. In the available fields, enter the following information:

Connect Mode: Passive Connection

Accept Incoming Select Yes to accept incoming connections.

Password

Required

Password

Determines whether a password is required for an incoming passive connection. Field is not available when a password is set for Telnet mode.

If Password Required was set to Yes, enter the password for passive connections.

Connect Mode: Active Connection Port Settings

Active Connect Select None to disable Active Connect. Otherwise, indicate the connection type from the available list. Never Accept Incoming rejects all external connection attempts. Accept with modem_control_in

Active accepts external connection requests only when the modem_control_in input is asserted. Cannot be used with Modem Mode.

Always Accept accepts any incoming connection when a connection is

Copyright © Dr Robot Inc. 2005

122

Start Character

Modem Mode not already established.

If Active Connect is set to With Start Character, enter the start character in this field.

Indicates the on-screen response type when in Modem Mode

(if enabled).

Endpoint Configuration

Local Port Enter the local port number.

Auto increment local port number

Select to auto-increment the local port number for new outgoing connections. The range of auto-incremented port numbers is 50,000 to 59,999 and loops back to the beginning when the maximum range is reached.

Remote Port

Remote Host

Enter the remote port number.

the IP address of the remote device.

Common Options

Telnet Mode

Terminal Name

This field is available for configuration only when Active Connection is not set to None. Select Enable to permit Telnet communication to the

WFS802b unit

This field is available for configuration only when Telnet Mode is set to

Enable.

Use the terminal name for the Telnet terminal type. Enter only one name. When this option is enabled, the unit also reacts to the EOR

(end of record) and binary options, which can be used for applications such as terminal emulation to IBM hosts.

Connect Response A single character is transmitted to the serial port when there is a change in connection state. Default setting is None.

Use Hostlist If this option is set to True, the device server scrolls through the host list until it connects to a device listed in the host list table. Once it connects, the unit stops trying to connect to any others. If this connection fails, the unit continues to scroll through the table until it is able to connect to another IP in the host list.

The host list is disabled for Manual Mode and for Modem Mode. The unit will not accept a data connection from a remote device when the host list option is enabled.

LED Select Blink for the status LEDs to blink upon connection or

None for no LED output.

Disconnect Mode

On Mdm_Ctrl_In

Drop

Set to Yes for the network connection to or from the serial port to drop when modem_control_in transitions from a high state to a low state.

Hard Disconnect When set to Yes, the TCP connection closes even if the remote site does not acknowledge the disconnect request.

With EOT Choose Yes to drop the connection when Ctrl-D or Hex 04 is detected.

Both Telnet mode and Disconnect with EOT must be enabled for

Disconnect with EOT to function properly. Ctrl D is only detected going from the serial port to the network.

Inactivity Timeout Use this parameter to set an inactivity timeout. The unit drops the connection if there is no activity on the serial line before the set time expires. Enter time in the format mm:ss, where m is the number of minutes and s is the number of seconds. To disable the inactivity timeout, enter 00:00.

Copyright © Dr Robot Inc. 2005

123

Connection Settings - UDP

To configure a channel’s UDP settings :

1. From the main menu, click Connection for either Channel 1 or Channel 2 to display the Connection Settings page for the selected channel.

2. In the available fields, enter the following information:

Figure IV.7 UDP Connection Settings

Datagram Mode

Datagram Type Configures remote IP or network broadcast address and the remote port. Enter 01 for directed or broadcast UDP.

Accept Incoming Select Yes to accept incoming UDP datagrams.

Endpoint Configuration

Local Port Enter the local port number.

Remote Port

Remote Host

Change Address

Table

Enter the port number of the remote device.

Enter the IP address of the remote device.

Field enabled when Datagram Type is set to FD. Enter values between

1-255 to identify units on the local network of device servers.

Copyright © Dr Robot Inc. 2005

124

IV.6.6

WLAN Configuration

Without adequate protection, a wireless LAN is susceptible to access by unauthorized users. As such, WFS802b includes the Wired Equivalent Privacy (WEP) encryption standard as an additional means of security.

To configure the WFS802b’s WLAN settings:

1.

Select WLAN from the main menu to open the WLAN Settings window.

Figure IV.8 WLAN Settings

2.

Enter or modify the following fields:

Network Interface Use the pull down menu to select a WLAN interface or an Ethernet interface.

Network Name Enter the name of the network where the WFS802b is located.

Ad Hoc Settings

Ad

Hoc Network

Creation

Select the checkbox when using a client (such as a wireless card) to communicate with the WFS802b instead of an Access Point.

Enter the network name for the Ad Hoc network.

Ad Hoc Network

Name

Ad Hoc Network Select from the pull down menu the radio channel for the Ad Hoc

Copyright © Dr Robot Inc. 2005

125

Channel

Ad Hoc Country network. The default value is 11.

From the pull down menu, select a country for the Ad Hoc network. The default is United States.

Wireless Network Security

Security As an additional security measure, enable WEP on the WFS802b. By default, WEP is disabled on WFS802b.

Authentication Select an authentication scheme (None or Shared) from the drop down menu.

Encryption

Encryption Key

Select the encryption type from the pull down menu. 128 bits is the default encryption.

Field is enabled when WEP is selected as the Security type. Enter the

Encryption Key in hexadecimal value

Advanced Settings

Data Rate

Radio Power

Management

WFS802b permits the control of the transmission rate. Select the data rate (in Mbps) from the pull down menu.

Power management reduces the overall power consumption of the

WFS802b unit. Selecting Enable increases the response time.

IV.6.7

OEM Pin Configuration

There are 11 configurable hardware pins on the WFS802b unit. For each pin, configure the pin function, communication direction, and its activity level.

To configure the WFS802b’s OEM Configurable Pins:

1. Click Configurable Pins from the main menu to open the Configurable Pins window.

Figure IV.9 Configurable Pins Settings

Copyright © Dr Robot Inc. 2005

126

2.

Configure or modify the following fields for each pin:

Function From the pull down menu, select the purpose of the specified pin.

Active Level

Direction

Select the signal active level (Low or High).

Select whether the pin inputs or outputs.

IV.6.8

Updating Settings

Click the Apply Settings button from the main menu to save and apply the configuration changes.

Copyright © Dr Robot Inc. 2005

127

V.

MCB3100 WiRobot Serial Bluetooth Wireless Module

V.1

Introduction

The MCB3100 Serial Bluetooth Wireless Module is a class II Bluetooth module with on-board communication stack. This device can be plugged into any UART or RS232 compatible serial port

(requires MCR3210P RS232 Interface Module for signal change) on almost any devices without needing to install drivers. It can be considered as a “wireless cable” to replacement for any RS232 serial cable and can be used in applications for wireless audio, still image, sensing and control data communications.

V.1.1

Features

.

Class 2 Bluetooth operation

.

On-board communication stack

.

Effective range: 15 meters indoor, 45 meters outdoor

.

Support UART data rate: 921.6/460.8/115.2 kbps

.

Plug-and-play in the WiRobot system

V.1.2

Applications

.

Robotic systems: both run-time and development-stage communication

.

General-purpose wireless data communication

V.2

Operations

V.2.1

Theory of Operation

The MCB3100 Serial Bluetooth Wireless Module is designed to run as part of the WiRobot system. It can be directly plugged on to the PMB5010 Robot Multimedia Controller board or the PMS5005

Robot Sensing and Motion Controller board. When connected to the MCR3210P RS232 Interface board through a cable, it can also serve as wireless links for any systems that have a standard RS232 interface (PC for example). By default, the UART data rate is pre-programmed to 115.2kbps with hardware flow control and can be adjusted according to the customer’s preferred setting at the time of purchase. All wireless firmware has been embedded into the module and user simply needs to issue a

“CONNECT” command to the MCB3100 in order to establish a connection with another MCB3100 wireless module.

V.2.2

Configuration (PC-PC for Sample)

1. Connect MCB3100 Bluetooth modules and MCR3210P RS232 interface modules with

8pin flat cable (provided by Dr Robot), red line should be first Pin.

2. Use null-modem RS232 cable connect MCR3210P RS232 interface module to PC serial port (such as Com1), and use one USB cable to connect MCR3210P RS232 interface module to one USB port. It just provides power to RS232 module.

3. Same connection to another PC.

4. Launch Hyper Terminal program, choose a port (just connected on step2), and set port settings as:

Bits per second: 115200,

Data bits: 8,

Parity: none,

Copyright © Dr Robot Inc. 2005

128

Stop bits: 1,

Flow control: hardware.

5. Plug USB cable again to reset Bluetooth module, you can get a message from

HyperTerminal, AT-ZV -CommandMode-, AT-ZV BDAddress xxxxxxxxxxxx.

6. At another PC, you need launch same configuration of HyperTerminal. Get same result, but

BDaddress should be different, it just like 00043e01xxxx.

7. At one PC, type command AT+ZV SPPConnect xxxxxxxxxxxx. Here xxxxxxxxxxxx is another Bluetooth module'BDAddress. If you can get AT-ZV ConnectionUp, AT-ZV -

BypassMode-, the connection between PCs is setup. You can type anything or transfer a file to another PC.

The connection command is AT+ZV SPPConnect xxxxxxxxxxxx.

The change baudrate command is AT+ZV ChangeBaud 460800.

V.3

Connections

V.3.1

Board Structure

Figure V.1 illustrates the structure of the board

Figure V.1 MCB3100 Structure

V.3.2

Connector Description

The MCB3100 is connected to WiRobot system via an 8-pin 2.54 mm-pitch single row connector:

Table V.1 Connectors

Pin Name Function

Clear to send

Request to send

Power supply ground

4

5

6

Copyright © Dr Robot Inc. 2005

CTS

RTS

GND

129

V.4

Specifications

Parameter

Power Supply Voltage (VCC)

Signal Pin Voltage

RF Frequency

Antenna Load

Low-level Input Voltage

High-level Input Voltage

Low-level Output Voltage

High-level Output Voltage

Low-level Output Current

High-level Output Current

Board Size

Table V.2 MCB3100 Specification

Conditions MIN TYP MAX

VCC = 3.3V

VCC = 3.3V

VCC = 3.3V, IOL =

2mA

VCC = 3.3V, IOH =

2mA

VCC = 3.3V, VOL =

0.4V

VCC = 3.3V, VOH =

2.4V

3.0 3.3 3.6

3.3

2400 2483.5

50

0.8

2.0

0.4

2.4

2.2

3.1

30 x 40

Unit

V

V

MHz

Ohm

V

V

V

V mA mA mm x mm

Copyright © Dr Robot Inc. 2005

130

VI.

MAC5310 Audio Codec and Audio Power Amplifier Module

VI.1

Introduction

The MAC5310 Audio Codec and Audio Power Amplifier Module can be used as audio input/output interface in the WiRobot system by plugging into the PMB5010 Multimedia Controller board. The onboard codec provides high resolution signal conversion from digital-to-analog (D/A) and from analogto-digital (A/D) using over-sampling sigma-delta technology. With the on-board audio output power amplifier and the microphone preamp in the codec, the external speaker and microphone can be directly connected to the MAC5310 board.

VI.1.1

Features

.

16-bit over-sampling sigma-delta A/D, D/A converter

.

Maximum output conversion rate:

- 16 ksps with on-chip FIR filter

- 64 ksps with FIR bypassed

.

Codec built-in FIR produces 84-db SNR for ADC and 85-db SNR for DAC over 11-kHz BW

.

2s-complement data format

.

Codec built-in functions including PGA, anti-aliasing analog filter, and operational amplifiers for general-purpose interface (such as MIC interface and hybrid interface)

.

On-board audio output power amplifier can support up to 1.5 W power to the external speaker

.

On-board oscillator

.

Plug-and-play in the WiRobot system

VI.1.2

Applications

.

Audio input/output for robotic systems

.

Voice and speech recognition

.

Voice and audio playback

VI.2

Operations

VI.2.1

Theory of Operation

The MAC5310 Module is designed to run as part of WiRobot system. It can be directly plugged on to the PMB5010 Robot Multimedia Controller board. No configuration procedure is needed. Once connected, the PMB5010 on-board firmware and the audio input/output device driver will take care of the low level operations of the voice/speech capturing and audio output.

VI.3

Connections

VI.3.1

Board Structure

Figure VI.1 shows the board structure, locations and functions of the connectors on the MAC5310 module board.

Speaker

Connector

System Interface

Connector

Microphone

Connector

Figure VI.1 MAC5310 Connector Locations

Copyright © Dr Robot Inc. 2005

131

VI.3.2

Connector Description

The definitions of the MAC5310 connector signals are listed in the following tables.

1

2

Table VI.1 Speaker Connector SPEAKER

Pin Name Function

SO1

SO2

Speaker output 1

Speaker output 2

Table VI.2 Microphone Connector MICROPHONE

Pin Name Function

2

3

MIP

MIM

Microphone input +

Microphone input -

Table VI.3 System Interface Connector CODEC

Pin Name Function

4, 6 GND Power supply ground

10

11

PDN

FC

Power down input

Request input for secondary communication

12 VCC3 3.3V

VI.4

Specifications

Parameter

Power Supply Voltage

Power Supply Voltage

Output Power

Table VI.4 MAC5310 Specification

Conditions

VCC5

VCC3

THD = 0.5%(max), f = 1 kHz,

RL = 8 Ohm

THD + N = 0.5%, f = 1 kHz,

MIN TYP MAX

4.5 5.0 5.5

3.0 3.3 3.6

1.0

1.5

W

Unit

V

V

Copyright © Dr Robot Inc. 2005

132

Analog input voltage, peak-to-peak

ADC or DAC conversion rate

On-board oscillator

RL = 8 Ohm

VCC3 = 3.3 V

Board Size

Note:

THD + N = Total Harmonic Distortion + Noise

2

16

8.1920

30 x 40

V kHz

MHz mmxmm

Copyright © Dr Robot Inc. 2005

133

VII.

DUR5200 Ultrasonic Range Sensor Module

VII.1

Introduction

The DUR5200 Ultrasonic Range Sensor Module can detect the range information from 4 cm to 340 cm. It transmits an ultrasonic "ping" when instructed by your program and returns a signal when it receives an echo. The distance data is precisely presented by the time interval between the instant when the measurement is enabled and the instant when the echo signal is received. There is an onboard oscillator that significantly reduces the burden of the controller to transmit signal with the required frequency. The DUR5200 is very easy to use and can be simply plug-in to the WiRobot

PMS5005 Sensing and Motion Controller board. The PMS5005 (shipped with WiRobot SDK for PC) will handle the critical timing functions and distance calculation.

VII.1.1

Features

.

On-board oscillator

.

4 cm to 340 cm effective range

.

40 KHz working frequency

.

Plug-and-play in the WiRobot system

VII.1.2

Applications

.

Mobile robot environment map building

.

Obstacle detection, collision avoidance

.

Robot range finder

.

General-purpose distance detection

VII.2

Operations

VII.2.1

Theory of Operation

The DUR5200 works by means of ultrasonic wave (40 KHz) that is beyond the range of human hearing. Sound wave propagation speed in the air is 343.5 m/s, when the ambient air temperature is

20°C. By detecting the propagation time of the sonic wave between the sensor and the object (if any) in the path of the wave, the controller is able to calculate the distance.

VII.2.2

Running as Part of WiRobot System

When using the DUR5200 with the WiRobot system, user can simply connect the module to one of the ultrasonic sensor module connectors on the PMS5005 controller board and the PMS5005 builtin sensor device driver will take care of the range data acquisition. Users can simply call a function offered by the WiRobot SDK software on PC (requires Microsoft platform) or send a data request packet (platform independent) to obtain the data. Note that DUR5200 can measure from 4 to 255 cm in WiRobot system since PMS5005 only uses one byte to represent the distance.

The sound wave propagation speed in the air depends on the temperature. If you also got the temperature sensor module in your WiRobot system, you can measure the distance more precisely by adding up the temperature compensation. The sound wave propagation speed (v) with temperature compensation can be calculated by the following formula: v = 331.5 + 0.6 * T [m/sec] where T is the air temperature (°C).

VII.2.3

Running as a General Purpose Ultrasonic Range Sensor Module

Copyright © Dr Robot Inc. 2005

134

When using the DUR5200 with the third party controller, the power supply and the input/output signals should be connected properly (please refer to Section VII.3 Connections). The basic operation is illustrated in Figure VII.1.

Range measurement starts from the rising edge of TE. Then the controller set TE to low (logic 0) after t1 (250

μsec). The controller should measure the time interval td from the rising edge of TE to the first rising edge of RS, which is the returned sound wave. td is equal to two times of the traveling time between the sensor to the object (transmitting and echoing). The time period between two measurements should be no less than 20 msec. The minimum distance that the DUR5200 can measure is 4 cm. This means that if the range is less than 4 cm, it will be reported as 4 cm.

Figure VII.1 Basic Operation Timing

The distance to object (in meter) can be obtained as follows:

Distance to object (in meter) = td (in second) * v (in meter/second) / 2

VII.3

Connections

VII.3.1

Board Structure

Figure VII.1 illustrates the structure of the board.

Figure VII.1 DUR5200 Structure

VII.3.2

Connector Description

The DUR5200 can be connected to the controller system via a 4-pin 2.54 mm-pitch single row connector:

1

2

3

Table VII.1 Ultrasonic Range Sensor Connectors

Pin Name Function

Vcc

RS

TE

Positive power source, 5 V DC

Ultrasonic echo receiving signal, active rising edge output

Ultrasonic transmitting enable, active high input

Copyright © Dr Robot Inc. 2005

135

4 GND Power supply ground

VII.4

Specifications

Table VII.2 DUR5200 Specification

Conditions MIN TYP MAX Parameter

Power Supply Voltage (Vcc)

Current Consumption

Working Frequency

Effective Range

Directivity

Board Size

Vcc = 5 V

25

˚C

4.9 5.0 5.1

45 50

40

4 340

±30

30 x 48

Unit

V mA

KHz cm

˚ mm x mm

Copyright © Dr Robot Inc. 2005

136

VIII.

DTA5102 Two-Axis Tilt and Acceleration Sensor Module

VIII.1

Introduction

The DTA5102 Tilt and Acceleration Sensor Module is capable of measuring both the static acceleration (tilt or orientation) caused by the Earth’s gravity or the shock caused by an impact. The module uses a CMOS micro-machined accelerometer IC combined with on-board low-pass-filters and signal amplifiers. The measurement range of the DTA5102 module is

±1 g.

VIII.1.1

Features

.

±1 g tilt and shock detection

.

On-board low-pass-filters and signal amplifiers

.

Linear output

.

Plug-and-play in the WiRobot system

VIII.1.2

Applications

.

Robotic application

.

Vibration monitoring

.

Impact/Acceleration measurement

.

Tilt, orientation and posture measurement

.

Handheld appliance control

.

Virtual reality input devices

.

Electronic diagnostic system

VIII.2

Operations

VIII.2.1

Theory of Operation

The structure of the micro-machined accelerometer is shown as Figure VIII.1. The sensing cell is a micro-machined variable capacitive device. The center plate moves with the acceleration and hence the values of the capacitors will change according to the distance between the plates. The change of the value is then measured, converted, amplified and outputted.

Figure VIII.1 Equivalent accelerometer model

The acceleration sensing directions of the DTA5102 are shown as Figure VIII.2. The output signals are basically consisting of static or low frequency data of tilt or orientation information and high frequency data of vibration or impact information. Either analog or digital filter or both can be used to extract relevant data for specific applications.

Copyright © Dr Robot Inc. 2005

137

- Y

- X + X

+ Y

Figure VIII.2 Acceleration sensing directions

To measure the tilt or orientation of an object, the DTA5102 should be mounted in such a way that the axes of sensitivity are parallel to the surface of the Earth. In this configuration, the relationship between the output voltage and the tilt angle of each axis is shown by the following equation

V

OUT

= V

ZEROG

+ (

Δ

G

Where

V

OUT

= Output voltage of each axis

V

ZEROG

= Voltage at zero g

Δ

V

Δ

G

= Sensitivity

G

×

sin

θ

)

G = Earth’s gravity (~9.81)

θ

= Tilting angle

Δ

V

Δ

G

can be obtained by experiment by placing the sensor level (so that the gravity vector is perpendicular to the measured sensor axis) to take the V

ZEROG

reading. Then, you should rotate the sensor so that the gravity vector is parallel with the measured axis and take the V

ONEG

reading. The equation then can be rewritten as:

V

OUT

= V

ZEROG

+ [ (V

ONEG

- V

ZEROG

)

×

sin

θ

]

The tilting angle then can be calculated by ArcSin () function or by Taylor polynomial approximation

θ

= sin

-1

(z) =

z

+

z +

6

3

3

z

5

40

+...

z

<

1

To detect the high frequency data, the sampling rate must be at least twice of the signal frequency according to Nyquist Sampling Criterion. As a rule of thumb, using 5 to 10 time higher sampling rate will get good results for data recovering. Using some digital filter may require even higher sampling rate. However, sampling rate higher than 20 KHz is generally not recommended for the DTA5102 module. Also, be aware of the signal aliasing effects.

The relationship between the output voltage and the acceleration in each axis direction is shown by the following equation

V

OUT

= V

ZEROG

+ (

Δ

G

Where

Acc = value of the acceleration.

Copyright © Dr Robot Inc. 2005

Acc)

138

VIII.2.2

Running as part of WiRobot System

When using the DTA5102 with the WiRobot system, user can simply connect the module to the tilt sensor module connector on the PMS5005 controller board and the PMS5005 built-in sensor device driver will take care of the data acquisition. Users can simply call a function offered by the WiRobot

SDK software on PC (requires Microsoft platform) or send a data request packet (platform independent) to obtain the data.

VIII.2.3

Running as a General Purpose Tilt and Acceleration Sensor Module

When using the DTA5102 with the third party controller, the power supply and the input/output signals should be connected properly (please refer to Section VIII.3). The controller can get the tilt and acceleration data via an analog to digital converter. The value of the angle or the acceleration can be calculated according to the equations in Section VIII.1.

For premium performance, several cautions need to be taken into account when operating the system:

.

The power supply voltage should be 5 VDC nominal.

.

The length of the cable connecting the DTA5102 and controller should be as short as possible.

.

The DTA5102 module and the controller should not be in a high current path.

.

If using switching power supply, be aware of the switching frequency may interfere with the

DTA5102 module.

VIII.3

Connections

VIII.3.1

Board Structure

Figure VIII.3 shows the board structure.

Figure VIII.3 DTA5102 Structure

VIII.3.2

Connector Description

The DTA5102 can be connected to the controller system via a 4-pin 2.54 mm-pitch single row connector:

1

2

3

4

Table VIII.1 Tilt and Acceleration Sensor Connectors

Pin Name Function

VCC

YOUT

XOUT

GND

Positive power source, 5 V DC

Y direction signal, analog output

X direction signal, analog output

Power supply ground

Copyright © Dr Robot Inc. 2005

139

VIII.4

Specifications

Table VIII.2 DTA5102 Specification

Parameter Conditions

Power Supply Voltage

Current Consumption

Acceleration Measuring Range

Nonlinearity

Bandwidth Response

Board Size

VCC

VCC = 5 V

MIN TYP MAX

4.75 5.0 5.25

10 15

± 1

-2.0 + 2.0

30

30 x 48

Unit

V mA g

%

Hz mm x mm

Copyright © Dr Robot Inc. 2005

140

IX.

DHM5150 Human Motion Sensor Module

IX.1

Introduction

The DHM5150 Human Motion Sensor Module incorporates a pyroelectric infrared sensor to detect infrared energy radiation from human body. The DHM5150 is able to detect human presence (like security alarm) in the range up to 500 cm. With the use of two modules, human moving direction can also be detected in the range up to 150 cm. Typical applications include a general-purpose security alarm and human presence and motion sensing in a robot system.

IX.1.1

Features

.

Human infrared radiation detection

.

On-board signal conditioning

.

Human presence detection up to 5 meters

.

Human motion direction up to 1.5 meters

.

Plug-and-play in the WiRobot system

.

Applications

.

Security alarm, human presence detection

.

Human moving direction measurement

.

Human-following devices

.

Human avoidance and security robot

IX.2

Operations

IX.2.1

Theory of Operation

Infrared radiation exists in the electromagnetic spectrum at a wavelength that is longer than visible light. Objects that generate heat also generate infrared radiation including animals and the human body. The infrared radiation generated by human is strongest at a wavelength of 9.4

μm.

The sensor used in the DHM5150 module has two sensing elements. Together with a Fresnel lens, the behavior of the sensor is shown in Figure IX.1.

Figure IX.1 Typical Sensor Behavior

IX.2.2

Running as Part of WiRobot System

Copyright © Dr Robot Inc. 2005

141

When using the DHM5150 with the WiRobot system, user can simply connect the module to one of the human sensor module connectors on the PMS5005 controller board and the PMS5005 built-in sensor device driver will take care of the data acquisition. Users can simply call a function offered by the WiRobot SDK software on PC (requires Microsoft platform) or send a data request packet

(platform independent) to obtain the data.

IX.2.3

Running as a General Purpose Human Motion Sensor Module

When using the DHM5150 with a third party controller, the power supply and the input/output signals should be connected properly (please refer to Section IX.3). The controller can get the human information data via an analog to digital converter.

There are analog outputs, one is the human motion (MS), and the other one is the human alarm (AS).

When no human presents, output voltage of MS and AS is 1.5V. The change of AS is basically 5 times larger than MS due to the on-board amplifier. The closer the human and the faster the motion will cause the longer voltage change shown in MS and AS.

Note that when using two sets of the DHM5150 for human motion detection, the moving direction information can be identified by analyzing the pattern, timing and magnitude of two sensor output signals.

IX.3

Connections

IX.3.1

Board Structure

Figure IX.2 illustrates the structure of the board.

Figure IX.2 DHM5150 Structure

IX.3.2

Connector Description

The DHM5150 can be connected to the controller system via a 4-pin 2.54 mm-pitch single row connector:

1

2

3

Table IX.1 DHM5150 Connector

Pin Name Function

Vcc

MS

AS

Positive power source, 5 V DC

Human motion signal, analog output

Human presence alarm, analog output

Copyright © Dr Robot Inc. 2005

142

IX.4

Specifications

Parameter

Power Supply Voltage

Current Consumption

Wavelength

Human Motion Range

Human Presence Range

Directivity - Horizontal

Directivity - Vertical

Output Signal Voltage

Board Size

Table IX.2 DHM5150 Specification

Conditions MIN TYP MAX

VCC

VCC = 5 V

2.2 3.3 5.0

10

5 14

150

500

100

60

VCC

30 x 48

IX.5

Fresnel Lens

Unit

V mA

μm cm cm

˚

˚

V mm x mm

Copyright © Dr Robot Inc. 2005

143

X.

DAT5280 Ambient Temperature Sensor Module

X.1

Introduction

The DAT5280 Ambient Temperature Sensor Module uses high-precision CMOS temperature sensor to generate linear voltage signal according to the ambient air temperature. With a temperature coefficient of 25.5 mV/

˚C and nonlinearity of ±0.5 %, the DAT5280 is superior in the functionality over conventional temperature sensors like thermometers. Typical applications include robotic system and high-precision thermal control.

X.1.1

Features

.

High linearity: ± 0.5%

.

Standard output: 0 – 3.3V

.

High temperature accuracy

.

Plug-and-play in the WiRobot system

X.1.2

Applications

.

Robotic system

.

Temperature sensing

.

Thermal control

X.2

Operations

X.2.1

Typical performance characteristics

The performance characteristics are shown in the figures X.1 and X.2. If needed, the temperature accuracy error could be removed by calibration on the individual module basis.

Copyright © Dr Robot Inc. 2005

Figure X.1 Output Voltage vs Ambient Temperature

144

Figure X.2 Accuracy vs Temperature

X.2.2

Running as part of WiRobot System

When using the DAT5280 with WiRobot system, user can simply connect the module to the temperature sensor module connector on the PMS5005 controller board and the PMS5005 built-in sensor device driver will take care of the data acquisition. Users can simply call a function offered by the WiRobot SDK software on PC (requires Microsoft platform) or send a data request packet

(platform independent) to obtain the data.

X.2.3

Running as a General Purpose Temperature Sensor Module

When using the DAT5280 with a third party controller, the power supply and the input/output signals should be connected properly (please refer to Section IX.3). The controller can get the temperature data via an analog to digital converter. The temperature reading can then be calculated according to

Figure IX.1 or the following equation

TV (in V) = 0.92 + 0.0255 * (Temperature)

X.3

Connections

X.3.1

Board Structure

Figure X.3 illustrates the structure of the board.

Figure X.3 DAT5280 Structure

Copyright © Dr Robot Inc. 2005

145

X.3.2

Connector Description

The DAT5280 can be connected to the controller system via a 3-pin 2.54 mm-pitch single row connector.

1

2

Table X.1 Temperature Sensor Connectors

Pin Name Function

VCC

TV

Positive power source, 5 V DC

Temperature voltage, analog signal output

X.4

Specifications

Parameter

Power Supply Voltage

Current Consumption

Nonlinearity

Temperature Sensitivity

Board Size

Table X.2 DAT5280 Specification

Conditions MIN TYP MAX

Vcc = 5 V

-20

˚C ~ +80˚C

-20

˚C ~ +100˚C

4.9 5.0 5.1

5.0

±0.5

4.66 25.5 26.34

30 x 24

Unit

V mA

% mV/

˚C mm x mm

Copyright © Dr Robot Inc. 2005

146

Chapter V.

TROUBLE SHOOTING

Copyright © Dr Robot Inc. 2005

147

Q: How to start the robot?

A: Push the red button behind the robot’s head.

Q: Why the robot does not start after I push the red button?

A: Please check the power whether the battery has been Plugged-in. If the robot does not start after plugging-in the battery, please charge the battery and make sure it's voltage is higher than 7.5V.

Q: Why I can’t connect the robot with my PC?

A: Please follow the step below:

1 Connecting the Bluetooth cables

.

Connect Serial cable, make sure the serial cable is connected to the COM1 socket of your PC at one end, and the other end should be connected to the RS232 interface module with power connector which is assembled together with a serial Bluetooth wireless module.

.

Connect USB cable, plug one end in your PC, and plug the other end in the RS232 interface module with power connector which is assembled together with a serial Bluetooth wireless module.

2. Turn on the robot. Check the LED lights on the socket board, and find out if they are flashing on the socket board. There should be 2 LED lights keep flashing fast on the upper board

PMS5005 in the right rear corner of the robot and 1 LED light keep flashing on the lower board in the right front corner of the robot. If these 3 LED lights are flashing, the robot is started completely.

3. Run the WiRobot Gateway. (It can be found at the desktop after installing the WiRobot

System.)

.

Wireless Connection

.

Input the Robot Address which you can find at the bottom of the robot and on the serial

Bluetooth wireless module which had already been plugged in the lower socket board

PMB5010 of the robot.

.

Click the "Connect" button when you are sure that the robot is completely started.

4. Waiting 1 to 3 minutes for the PC connecting to robot, the WiRobot Gateway will minimize automatically when connected.

5. If it is not connected, close the WiRobot Gateway and turn off the robot. Go back to 2 and try it again 10 seconds later.

6. If it is still not connected please check whether you have complete and unrestricted access to the computer and if you have plugged the serial cable in the COM1 serial port of your PC.

Detailed information can be found on page 10 of the user manual.

Q: How to connect the robot directly to PC using the serial cable?

A: Please check page 11.

Q: How to charge the battery?

A: User can simply take out the battery at the lowest deck of the robot to recharge. It will normally take about 20 hours to fully recharge the 2100mAh battery if slow charging is chosen. Fast charge would take about 1-2 hours.

Copyright © Dr Robot Inc. 2005

148

25 Valleywood Dr. Unit#20, Markham,

ON L3R 5L9 CANADA

T: (905) 943-9572 F: (905) 943-9197

Email: [email protected] www.DRROBOT.com

Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement

Table of contents