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...
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.
A very basic setup:
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.
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.
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.
RemoteControl.c - the source code for the PIC in the above Remote Control.