WiRobot DRK6080/8080 USER MANUAL WiFi 802.11 Wireless Mobile System Version: 1.0.
Table of Contents Chapter I. WiRobot Getting Start Guide .......................................................................................... 4 I. Preface.............................................................................................................................................................. 5 I.1 Audience.................................................................................................................................................... 5 I.2 Feedback ..............
IV.2 Events ..................................................................................................................................................... 63 V. WiRobot DRK6080/8080 Specific APIs ............................................................................................ 64 V.1 Low Level Protection.......................................................................................................................... 64 Chapter IV. WiRobot Module ....................................
IX.2 Operations ........................................................................................................................................... 108 IX.3 Connections ......................................................................................................................................... 109 IX.4 Specifications .......................................................................................................................................110 IX.5 Fresnel Lens ................
Chapter I. Copyright © Dr Robot Inc.
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 support@drrobot.com. Copyright © Dr Robot Inc.
II. WiRobot Overview TM WiRobot 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.
II.
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.
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 Router connecting Connect your PC Ethernet card to one of the 4 LAN (NOT the WAN port) ports on the back of the DLink Wireless router. Make sure your PC is DHCP enabled. Copyright © Dr Robot Inc.
D-Link DI 514 Wireless Router LAN WAN PC Running the “WiRobot Control Center” WiFi WiRobot IV.1.2 Run the WiRobot Gateway Copyright © Dr Robot Inc.
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 IV.2.
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.
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.
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”. Figure V.3 Using ActiveX module under VB Step 3 V.
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 The WiRobotSDK1is 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.
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); m_ctlSDK.SuspendDcMotor (1); 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.
Chapter II. DRK6080/8080 System Specification -DRK6080 Wireless Mobile System -DRK8080 Wireless Mobile Animated Head System Copyright © Dr Robot Inc.
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.
I.1 Standard Electronics components and Operation Detail WiRobot DRK6080/8080 Specifications: Table I.
The standard WiRobot DRK series system electronic modules: Table I.
I.2 Mechanical Specification The following two diagrams illustrate the mechanical structure of the WiRobot DRK6080 and DRK8080 system: Figure I.1 WiRobot DRK6080 Copyright © Dr Robot Inc.
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.
I.3.3 Electrical Modules In this system, all electrical modules are located and connected as followed: Table I.
I.4 Other Specification Table I.4 Other Specification DRK6080 Weight (including one battery pack) Recommended Maximum Load II. Miscellaneous II.1 Battery Recharging ~2kg ~2.5kg DRK8080 ~2.5kg ~2.5kg 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.
Chapter III. WiRobot SDK Application Programming Interface (API) (For MS Windows) Copyright © Dr Robot Inc.
I. Convention Data Type int: UWord16: short: 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.
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.
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.
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.
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.
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.
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.
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.
Syntax: ival = GetSensorHumanAlarm1(); ival = GetSensorHumanAlarm2 (); Parameter: Return value: void short st //1 human alarm nd // 2 human alarm ival; 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.
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.
ival = GetSensorOverheatAD2(); Parameter: void Return value: short nd //2 overheating sensor ival; Return data interpretation: 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.
ival = GetSensorIRCode4 (); Parameter: Return value: void short // the fourth code ival Return data interpretation: 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.
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.
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.
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.
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.
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.
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.
G E + U Controller DC Motor Y F 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.
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; //1 or -1 short channel; // 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.
SetDcMotorVelocityControlPID sets up the PID control parameters of the specified DC motor control channel for velocity.
Syntax: SetDcMotorSensorUsage (channel, SensorType) Parameter: short channel; short SensorType; // 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 // 0 -- Single potentiometer sensor // 1 -- Dual potentiometer sensor // 2 – Quadrature encoder Return value: void Remarks: 1.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
short cmd2; short cmd3; short cmd4; short cmd5; short cmd6; short timePeriod; Return value: void // 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 // Executing time in milliseconds 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.
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; Return value: void // Full path of the BMP file for displaying Remarks: The graphic LCD display is mono with dimension of 128 pixels by 64 pixels.
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.
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.
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).
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.
V. WiRobot DRK6080/8080 Specific APIs V.1 Low Level Protection Front When bumpers (optional) are installed on WiRobot RDK6080/8080 with the connection configuration shown on the right, a build-in low-level bumper collision protection Bumper_0 Bumper_1 scheme can be enabled or disabled with the next two D_IN0 D_IN1 commands.
Chapter IV. WiRobot Module Copyright © Dr Robot Inc.
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.
o o 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. Figure I.2 PMS5005 Connector and Jumper Locations Copyright © Dr Robot Inc.
* 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.
System DC Motor Servo Motor Jack Terminals Connector J1 J2 J3 PSY PDM PSM S1-0 S1-1 S2-1 Range (V) 5.5 – 7.2 6.0 – 25.0 5.0 – 7.2 (mA) 500 System Specific System Specific 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.
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. 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.
MCB3100 BTOOTH 1 MCR3210 DUR5200 DTA5102 BTOOTH US_1 – 6 TILT 1 6 1 DHM5150 DAT5280 MIR5538/5540 MDM5253 HUMAN1 – 2 TEMPERATURE INFRAR MOTOR1_IN, _OUT MOTOR2_IN, _OUT SM1 - 6 ENCODER1 - 2 RANGE LCD 2 1 1 2 3rd party 3rd party GP2Y0A21YK MGL5128 6 2 1 1 Bluetooth wireless communication module RS232 interface module 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 pos
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 Positive Power Source Power Supply Ground Screw Terminal PSY, PDM, PSM Center Pin 1 Circle 2 Table I.
Table I.9 Ultrasonic Range Sensor Connectors US_1 - 6 Pin 1 2 3 4 Name VCCA URS UTE GND Signal Description +5.0 V Ultrasonic echo receiving signal, active rising edge Ultrasonic transmitting enable, active high Power supply ground Table I.10 Tilt and Acceleration Sensor Connector TILT Pin 1 2 3 4 Name VCCA AYD AXD GND Signal Description +5.0 V Y direction signal, analog 0 – 3.0V X direction signal, analog 0 – 3.0V Analog ground Table I.
Table I.14 Servo Motor Connectors SM1 - 6 Pin 1 2 3 Name SCL VSM GND Signal Description Servo motor control Positive servo motor power supply Servo motor power supply ground Table I.15 Quadrature Encoder Connector ENCODER1 - 2 Pin 1 2 3 4 5 Name ENCB VCC ENCA ENCI GND Signal Description Channel B signal +3.3V Channel A signal Index signal (reserved for future use) Power supply ground Table I.16 Infrared Range Sensor Connector RANGE Pin 1 2 3 Name VCC RVS GND Signal Description +5.
14 15 16 17 18 19 20 RESET R/W D/I E VEE A K Reset input Read/write Data/Instruction indication Enable Negative voltage output Power supply for LED backlight (+) Power supply for LED backlight (-) Table I.18 Custom A/D Expansion Connector EXP-AD Pin Signal 1, 2, 3, 4 5, 6, 15, 16 7 8 9 10 11 12 13 14 + 3.0 V Ground AD_IN1* AD_IN2* AD_IN3* AD_IN4 AD_IN5 AD_IN6 AD_IN7 AD_IN8 Description Analog power supply, max. 40mA Analog ground Analog 0 – 3.0V Analog 0 – 3.0V Analog 0 – 3.0V Analog 0 – 3.
22* 23* 24* D_IN5 D_IN6 D_IN7 Digital in Digital in Digital in * NOTE (Table I.19): These pins have been pulled-up to logic high (+ 3.3V) internally. I.3 1. 2. 3. Procedure to upgrade the PMS5005 firmware Download and save the latest PMS5005 firmware from www.DrRobot.com 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.
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. Figure I.7 COM Port Setting 7. The lower left corner of the hyper-terminal will show the connection status.
Figure I.8 Locating the HEX File 9. 10. 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: Figure I.9 Status after Turning on the PMS5005 11. 12.
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 Copyright © Dr Robot Inc.
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.
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.
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. Table II.2 Board Address Jumpers B_ADDR Bit 0 (LSB) 1 2 3 (MSB) Pin 1, 2 3, 4 5, 6 7, 8 Value 1 open open open open Value 0 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.
Table II.3 System Communication Connectors Connector Type Description BLUETOOTHT Upper Reach SCIT Lower Reach SCI port with handshaking and control signals for both wired and wireless modules 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.
Table II.7 Lower Reach Communication Port SCIT Pin Name 1 2 3 4 VCC RXD TXD GND Signal Description +3.3 V Data receiving Data transmitting Power supply ground Table II.8 Audio Codec and Amplifier Module Connector CODEC0 Pin 1 2 3 4, 6 5 7 8 9 10 11 12 Signal ADIN VCC5 AFS GND ADOUT ASCK AMCK RESET APDN AFC AVC3 Description Data input + 5.0V Frame sync Power supply ground Data output Shift clock NC Reset output Power down output Request output for secondary communication + 3.3V Table II.
16 D7 Image data bit 7 II.3 Procedure to upgrade the PMB5010 firmware 1. 2. 3. 4. 5. Download and save the latest PMB5010 firmware from www.DrRobot.com 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.
7. 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!). 8. 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.
Figure II.7 Status after Turning on the PMB5010 11. 12. 13. 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.
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.
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.
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 GND3 Signal ground Table III.3 Control Signal Connector MOTOROUT Pin Name 1 2 3 4 5, 6 7, 8 9, 10, 11, 12 13, 14, 15, 16 Function CTL1 CTL2 CTL3 ENA GND5 VCC5 GNDM VCCM Channel #1 PWM control signal Channel #2 PWM control signal Channel #3 PWM control signal Output enable for all channels Power supply ground for VCC5 + 5.0 V Power supply ground for VCCM Positive load power source Table III.
Enable Input Current PWM Input Current Output-on Resistance IENA ICTL ROUT 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 Copyright © Dr Robot Inc. 2005 25 ±1 T = 25 ˚C T = 150 ˚C 100 120 300 T < 150 ˚C 5.0 7.
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.
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 1 2 3 4 5 6 7 8 Name VCC RXD TXD RTS CRTS GND NC NC Function +3.3 V Data receiving Data transmitting Request to send Clear to send Power supply ground Reserved Reserved Table IV.2 Connector2 (COM2) Pin 1 2 3 4 5 6 7 8 Copyright © Dr Robot Inc.
IV.4 Specifications Table IV.
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.
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 1 2 3 4 5 6 7 8 Name VCC TXD RXD CTS RTS GND COMRST BTIN Function +3.3 V Data transmitting Data receiving Clear to send Request to send Power supply ground Reserved Reserved V.4 Specifications Table V.
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.
Figure VI.1 MAC5310 Connector Locations VI.3.2 Connector Description The definitions of the MAC5310 connector signals are listed in the following tables. Table VI.1 Speaker Connector SPEAKER Pin Name 1 2 SO1 SO2 Function Speaker output 1 Speaker output 2 Table VI.2 Microphone Connector MICROPHONE Pin Name 1 2 3 NC MIP MIM Function No connection Microphone input + Microphone input - Table VI.
Analog input voltage, peak-to-peak ADC or DAC conversion rate On-board oscillator Board Size THD + N = 0.5%, f = 1 kHz, RL = 8 Ohm VCC3 = 3.3 V 1.5 2 V 16 8.1920 30 x 40 kHz MHz mmxmm Note: THD + N = Total Harmonic Distortion + Noise Copyright © Dr Robot Inc.
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.
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.
4 GND Power supply ground VII.4 Specifications Table VII.2 DUR5200 Specification Parameter Power Supply Voltage (Vcc) Current Consumption Working Frequency Effective Range Directivity Board Size Copyright © Dr Robot Inc. 2005 Conditions MIN TYP MAX 4.9 5.0 45 40 5.
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.
-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.
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.
VIII.4 Specifications Table VIII.2 DTA5102 Specification Parameter Power Supply Voltage Current Consumption Acceleration Measuring Range Nonlinearity Bandwidth Response Board Size Copyright © Dr Robot Inc. 2005 Conditions MIN TYP MAX VCC VCC = 5 V 4.75 5.0 10 ±1 5.25 15 -2.0 + 2.
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.
IX.2.2 Running as Part of WiRobot System 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.
IX.4 Specifications Table IX.2 DHM5150 Specification Parameter Conditions MIN TYP MAX Unit Power Supply Voltage Current Consumption Wavelength VCC VCC = 5 V 2.2 3.3 5.0 10 14 V mA µm cm cm ˚ ˚ V mm x mm Human Motion Range Human Presence Range Directivity - Horizontal Directivity - Vertical Output Signal Voltage Board Size 5 150 500 100 60 VCC 30 x 48 IX.5 Fresnel Lens Copyright © Dr Robot Inc.
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.
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.
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. Table X.1 Temperature Sensor Connectors Pin Name 1 2 3 VCC TV GND Function Positive power source, 5 V DC Temperature voltage, analog signal output Power ground X.4 Specifications Table X.2 DAT5280 Specification Parameter Power Supply Voltage Current Consumption Nonlinearity Temperature Sensitivity Board Size Copyright © Dr Robot Inc.
Chapter V. Copyright © Dr Robot Inc.
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.
25 Valleywood Dr. Unit#20, Markham, ON L3R 5L9 CANADA T: (905) 943-9572 F: (905) 943-9197 Email: info@drrobot.com www.DRROBOT.