Adding Intelligence To The iRobot Create
The iRobot Create's built-in microcontroller is accessible via the serial port, available from the cargo bay interface connector or the connection on the side of the robot (Fig. 7). The latter is comparable to the port found on the Roomba. It is not an RS-232 port, so you need to use the accompany cable (Fig. 8) to access the system.
The cargo bay interface is also designed for direct access by the likes of iRobot's Command Module (Fig. 9). The module fits inside the cargo bay (Fig. 10). The $59 Command Module contains a 20-MHz Atmel MegaAVR with a USB interface. This microcontroller interfaces with the Create microcontroller using the serial port on the cargo bay interface. The unit draws power from the Create's battery.
The Command Module is only one way of adding intelligence to the Create. Other modules from third parties are in the works, and it is not too difficult for someone to build their own interface to plug into the cargo bay port.
The cargo bay port provides power from the Create's battery, and also provides the serial port interface that runs at speeds up to 115.2 Kbaud. Commands can be sent across the interface to control the behavior of the on-board microcontroller. In general, the functions can be initiated at a higher level, alleviating the host processor from the low level chores. This can limit the fine control that direct access to the motors would provide, but this approach provides a more robust support platform. It is possible to control things like the drive motors, but there is the latency of the serial interface to consider.
The Create has nine built-in demos, including one for finding and mating with its docking/recharging station (see the Video). Create's controller can also store scripts — sequences of basic commands. The scripts can be invoked with minimal overhead, allowing more complex actions to be initiated by the host.
The Create's serial interface also provides access to the main infrared sensor. This sensor can detect data from a handheld infrared remote control unit providing basic wireless control options. The motors provide odometer support. Finally, the unit has basic audio output support.
The Command Module has access to all of these facilities, but its MegaAVR is programmable in assembler and C. The tools are freely available. Debugging is not as easy as a JTAG interface but more than sufficient for most applications. The Command Module can be powered while the Create is essentially powered down, and the Command Module can be powered off while the Create is turned on.
The Command Module hides most of the cargo bay connector pins and exposes many (but not all) of the MegaAVR IO pins. Surprisingly, the documentation only makes mention of the digital and analog support. There is actually a serial interface that is available as well, which can be very handy in controlling off-module devices.
Overall, the Create is an impressive platform for the price. Like the Roobma, its plastic construction is good but not rugged. It will last a long time with proper care. The drive and sensors are well designed. It is more likely that any additions via the cargo bay will be more susceptible to damage than the platform itself.
The next article in this series will take a closer look at the software support of the Create and the Command Center.
For more information, visit Atmel, iRobot, and Microsoft.