Last Updated: 5/29/01 ------------------------- Functional Specifications ------------------------- This is what we ideally/eventually want to achieve. (Wish-list) Hardware: Input/Output: I/O pins that are not used by system components (eg. motors, communications) will be free for the user to use. There will be a bank of pins (possibly 40) on the cerebellum board for the user to connect to whatever he pleases. Power will be supplied to a 2-pin male connector on the cerebellum board. There will be a female DB-9 connector on the board for program downloading and RS-232 communications. Communications: One single serial cable will handle all serial communications between the PIC and the external PC. This includes porgram download. Communications with other modules (eg. vision) will be serial and asynchronous in nature, possibly utilizing a standard such as SPI or I2C. Motors: Simultaneous, independent control of 4 DC motors and 4 servo motors. DC motors will be driven by H-bridges capable of 50V, 2A. This would allow the rover to have 4-wheel drive, independent front and back steering, and pan-tilt for the camera. Power: Currently, the rover is expected to run on 9-12V DC batteries. Processing: Considering the amount of PIC CPU time that will go into controlling the motors and other peripherals, it will not be able to do any amount of number crunching. Possible future step: make the PIC a dedicated motor controller, and make the cerebellum something that can crunch algorithms and manage coordination between a bunch of other chips. If this happens, then we should look into the possibility of replacing the PIC with a Motorola DSP as the motor controller. Software: Software interfacing with the cerebellum can potentially take place on 3 levels. Top level: There will be a program available that will offer access to all of the cerebellum's functions over the serial interface. This program will run on the PIC and allows external software, running on some higher-level controller (PC/laptop/PDA), access to the cerebullum's I/O capabilities. This mode will be similar to the SV203. Major drawback: interaction latency due to speed limitation on serial commmunications. Middle level: There will be a library of C function calls / PIC assembly routines that user programs call to make use of various capabilities on the cerebellum, for example read_adc(), serial_send(), set_servo_position(), etc. Users (hobbyists) write their own programs using these functions. Their programs run on the PIC within the cerebullum instead of on an external controller of their choice. Bottom level: Users write their own programs from scratch. Downloader software already exists, but will be improved for presentability, stability and speed. In the long term, a unified program can be written that would offer the functionality similar to that of Interactive C for the Handyboard. Brainwave: Adoption of some standard protocol like SPI/I2C will give us an open module bus specification, allowing for expandability. Other modules can be connected onto the module bus as long as they talk on the same protocol.