BoeBot Service Sample

This file is part of the Microsoft Robotics Studio Code Samples. Copyright © Microsoft Corporation. All rights reserved.
Updated Dec-2007 by Trevor Taylor, Software Technology, Australia

The BoeBot service is a Decentralized System Service (DSS) that connects to a Parallax BoeBot over a Bluetooth serial connection. The service consists of two parts: BASICStamp2 and BSServices.

Hardware and Software Prerequisites

·         A Parallax BoeBot.

·         An EB500 Bluetooth module.

·         A Bluetooth device on your PC (either built-in or a USB-to-Bluetooth device).

·         Microsoft Robotics Studio Version 1.5

Note: The BoeBot must be configured as described in the following table. This is not the same as in the Parallax documentation.

Pin Number Usage
0 EB500 DO NOT USE (Serial In)
1 EB500 DO NOT USE (Serial Out)
2 Right IR Detector
3 Right IR LED
4 Pizeoelectric Speaker
5 EB500 DO NOT USE (Connected Flag)
6 EB500 DO NOT USE
7 Left Whisker
8 Right Whisker
9 Left IR LED
10 Left IR Detector
11 *** Free - Available for use ***
12 Right Servo Motor
13 Left Servo Motor
14 LED 1
15 LED 2

When you have built and configured your BoeBot, it should look like the following photo:

To Start and Run the Sample

Start the Microsoft Robotics Studio Command Prompt from the Programs menu.

To use the BoeBot with MSRS you must configure the Bluetooth connection. The EB500 will be visible if you search for available devices. You must "pair" with it by supplying a passkey. The default passkey is 0000. Once you have established the pairing, record the outgoing COM port number and then enter it into the configuration file called Parallax.BoeBot.Config.xml in the Apps/SoftTech/Config folder under MSRS. There is a field called SerialPort in the config file.

For the BoeBot to communicate with the MSRS service, you must download the monitor program into the BASICStamp on the BoeBot. You can use the BASICStamp Editor supplied by Parallax for this. You must use a physical connection, not the Bluetooth connection for downloading. The monitor program is called BoeBotControlForMsrs.bs2 and is in the Apps/SoftTech/Parallax/Boe-Bot directory. Note that this is a modified version of the program supplied by Parallax and must be used if you want to use the extra features available in the BoeBot service.

Start a DssHost node and create an instance of the service by typing the following command:

dsshost /p:50000 /m:"Apps/SoftTech/Config/Parallax.BoeBot.manifest.xml"

This will start the service and you get a response like this:

Initializing Dss Node with manifest file: .../Apps/SoftTech/Config/Parallax.BoeBot.manifest.xml 

This just starts the BoeBot service, which is not much use on its own because it requires another service to control the robot. When the service starts up, the robot will beep twice and the LEDs will flash if a connection is successfully established.

If you prefer, you can use a command procedure that starts both the robot and a simple Dashboard. The Dashboard can be used to drive the robot around. To run the command procedure, change directory to Apps\SoftTech and run it as follows:

cd Apps\SoftTech
RunBoeBot

When the Dashboard starts up, enter localhost as the machine name and click on Connect. The bsdrive service should appear in the services listbox. Double-click on bsdrive to select it, then click on the Drive button to enable driving. Now you can use the "trackball" to drive the robot around.

To Inspect the Service

Start Internet Explorer (IE) and type the "Service uri" specified in your command prompt.  For example:

http://localhost:50000/basicstamp2

This will display the BoeBot service running on your node. You will be able to see the current state of the service, including the COM port, the IR sensors, whiskers, motors, etc. If you look in the Service Directory you should see some other services as well.

Using the Service

The BoeBot service implements the generic Differential Drive contract defined by MSRS. This is what allows the Dashboard and the Drive-by-wire tutorial to be used to drive the robot around.

If you want to take advantage of the additional operations available for the BoeBot you must partner directly with the BoeBot service, not the generic drive. These operations are:

Note: These additional functions are only available if you download the updated version of the monitor program mentioned above. For more information on these operations, please look in the source code for the BASICStamp2 service.

This updated service now also includes a Compact Framework (CF) version so that you can use a PDA or Windows CE device to drive the Boe-Bot. The original code for this was written by Olivier Bloch from Microsoft France. See Drive a Boe-Bot from a Windows Mobile Device using MSRS for more information.