Propeller (Parallax)
Home Command Module

I started out using the Command Module that is available for the Create.  After trying things and posting a lot of the source code here, I wanted something with more memory and power.  Now I am using the Parallax Propeller chip to control the Create.  I like the Propeller Proto Board because it is cheap and has lots of room to solder stuff on.  I started with a "PRC" board purchased from http://www.wulfden.org/PRC/index.shtml which I still use on the side, it makes it a little easier to test stuff.

Check out my Propeller Step-by-Step Connectivity page to get started with a Parallax Propeller Proto Board and the Create.

This is a picture of our ServerBot all dressed-up.  Great for serving drinks at parties or sending snacks to the kids in the other room.  Here is a PDF of the Instructable explaining how it is made.  

My NEW Propeller Command Module:

Form Factor matches the iRobot Create Command Module.  12v, 5v, and 3.3v Voltage Regulators.
This one has all of the Create I/O brought out to headers as well as i2c and SPI and Digital I/O for serial and servos and whatever else you want to connect to the Propeller.  XBee (show) is the preferred radio for high-speed radio communications.  The new XBee WiFi module is another option for direct control from other WiFi devices.  And SD Card socket is on the bottom of the right side of the board.  A "bootload" is installed on the propellers eeprom which looks for autoexec.bat on the SD Card to see what program to launch so you can save your .binary to the SD Card and press Reset instead of re-burning the app to the eeprom every time.  The Bootloader can even use Kermit to upload files to the SD Card remotely for remote updates.  This is my first version, I'll be making another one with 3-pin headers for all of the I/O and a couple of other mods that I noticed would be nice.

My OLD Propeller Command Module for the iRobot Create...
Parallax Propeller Chip, 64K EEPROM, 5Mhz Crystal
9v Regulator, 5v Regulator, 3.3v Regulator
1 Radio Serial Interface, 2 additional serial interfaces
1 3.3v i2c bus, 2 5v i2c bus
6 general I/O connections
2 Microphone Inputs
IR LED connector with resistors onboard
Lowside Driver 2 connector
All resistors and microphone capacitors are surface-mount
5v and 3.3v headers

Here are the ExpressPCB files.  Download the ExpressPCB applications (Free) to view/edit these.  The pcb file is the one I ordered this board from.  You can modify it if you like.  Just install the software, run the ExpressPCB application, load the CreateModule.pcb, and choose "Order boards via Internet" from the Layout menu.

CreateModule.sch - ExpressPCB Schematic
CreateModule.pcb - ExpressPCB Circuit Board (Updated 12/13/07)

 

My new XBee Interface boards...
 

A very basic setup:
An LM317 (top left corner) regulator takes Create Battery Power down to 9v which then supplies the Proto Board which has it's own 3.3v and 5v regulators.  The XBee (top right) is powered from the 3.3v regulator.


Connections allow the Proto Board to Sense the Creates Power status, toggle Create Power On/Off, Sense "Docked" status, allows Serial communications with Create for control and reception of Sensor Data, XBee Radio for remote control and debugging.

 AN EXPERIMENT USING THE CMUCAM FOR COLOR TRACKING
+ 2 SONARS AND 2 SHARP IR RANGE SENSORS


CMUCamera.spin is available on the Right -->

Communication:

I am using Maxstream's XBee/Zigbee radio modules for communication between the Create and my laptop ($20 to $30 each).  Wifi would be nice, but it's too power hungry and requires more processing then what I've got, so I've been avoiding it.  All sensor data is available on the PIC to be sent out via XBee/Zigbee radios at 57600 baud to my remote computer so I have a pretty good real-time display of what it "sees".

Using a PRC board:

A 9v regulator is feeding the PRC board, which has a 5v and 3.3v regulator onboard.  The 3.3v supplies the Propeller and the XBee Radio.  From the Create DB25 connector I am using VPwr to the 9v regulator, TX, RX, Power Toggle, Charging Indicator, and the 5v Regulated Supply pin for Power Sensing.  The Propeller runs CreateOI.spin to handle communications with the Create.  The Main app runs independently of the CreateOI and can access sensor data and issue commands to the Create via the CreateOI object.

The Video/Keyboard/Mouse board is feeding Video to a C2000 Video Cube transmitter so I can use the TV Object on the Propeller to display data on any nearby TV.

This is my Delphi Application which talks to my Create with the CMUCamera attached.  I can request an image at any time to be streamed to me from the camera.  Otherwise the camera can be used for color-tracking to track an object.

 Here is the COM Port to TCP Server application I use to allow me to connect to my XBee Radio to talk to the Robot from any network connection.  CreateTCPConduit.exe  This app is written in Delphi and by default opens COM1 and Listens for TCP connections on Port 5555.  Anything sent or received by either connection is simply passed-through to the other connection.  Allows multiple simultaneous TCP Client connections as well as monitoring the flow of data in both directions.

Parallax Propeller
Source Code..........

Get Started:
CreateSerialTest.spin - A basic stand-alone spin application to get streaming data from the Create and displays some sensor data.  You can also change modes and run the demos with this application.  This is the best app to start with to make sure your basic connections are working okay and to view the type of data you will get from your Create.  Please verify the PINs to make sure they match your own configuration.

TPA81 Thermopile Array:
TPA81Object.spin - An object to use the Devantech TPA81 Thermopile Array.
TPA81_Test.spin

CMUCAM:
CMU.exe - A standalone windows executable to test your CMU Camera directly connected to a PC Serial Port.  Supports Frame Dump, Color Tracking and Window Tracking.  Set jumpers to 38400 baud (this works better when it is to be used over a Radio link).  Click on the image to pick a color to track.  Here is the Source Code for Delphi 4... CMU.zip
CMUCamera.spin - Interface a CMUCam to your Create for Color Tracking and Image Transmission.
CMUCamera_Test.spin - test application for CMUCamera.spin.


My CMUCam Lights.
4 x White 5v 10,000mcd LED's help the camera see the same color consistently at about three feet from a dark to light room.  LED's are mounted on a round circuit board from Radio Shack with a 5/8" hole drilled in the center to slip over(around) the camera lense and held on with a rubber band.

 

CREATE Object:
CreateOI.spin - the object I use to talk-to and control the iRobot Create.  It takes care of making Sensor data from the Create available to other Objects.  I polls the Create plus five Sonars, an RFID Reader and the Analog2i2c PIC(below).  Updated 7/31/07.
CreateOI_Test.spin - a basic application that uses the CreateOI.spin to drive the robot via a serial link using Hyperterminal.  Updated 7/31/07.

SONAR:
SRF02Object.spin - Handles five SRF02 i2c Sonars.  Used by CreateOI.Spin.
SRF02Object_TestApp.spin

ANALOG Inputs:
Analog2i2c.c - The Propeller doesn't do Analog Inputs well, but i2c works Just Fine.  This is source for a PIC which continuously reads and stores Analog Input values and sends them out via i2c and/or serial port upon request.
PIC_A2D.spin - Propeller object to communicate with the Analog2i2c PIC (above) via i2c.  Also used by CreateOI.Spin.
PIC_A2D_TestApp.spin

LCD Display:
i2cLCDObject.spin - Propeller object to talk to the LCD03 4x20 display.

TEXT-to-SPEECH:
SP03Object.spin - Propeller object for the SP03 Text to Speech i2c module.
SP03Object_TestApp.spin

DIGITAL COMPASS:
CMPS03Object.spin - Propeller object for the CMPS03 Digital Compass.  i2c Interface.  This is my preferred Compass.
CMPS03Object_TestApp.spin - Test App for the CMPS03 Object.  Also used to Calibrate the Compass.

ServerBot:
Download the Propeller Tool Archive of my current ServerBot project.

 

Accelerometer Remote Control

My new Remote is an XBee Radio with a PIC16F690 and a Memsic Accelerometer for a wireless Radio remote with tilt-control.  Here is the Video Clip of it in action.

VCLP1464.MP4

RemoteControl.c - the source code for the PIC in the above Remote Control.