• No results found

1. Z-World BL2600 Single Board Computer

The Creature’s operating program runs on a Z-World BL2600 44.2 MHz single board computer (SBC). The computer is based on the Rabbit 3000 microprocessor, a descendant of the Zilog Z-80. It has been selected for use in other SMART program robots because of its ease of programming with the vendor’s feature-rich, proprietary Dynamic C language and IDE [11]. The BL2600 includes three serial ports capable of being configured for RS232 communications, and a 10/100 BaseT Ethernet connection [29]. The microprocessor has 512 kB static RAM and 512 kB flash memory. Its 36 digital I/O are divided into sixteen digital inputs, sixteen software-configurable as input or output, and four high current outputs. The BL2600 offers several jumper-selectable options for configuring its I/O. The installed BL2600’s J1 has been set to use an external 5V pull-up voltage from the electronics power bus. In addition to digital I/O, the SBC has twelve analog I/O pins, eight of which are eleven-bit A/D inputs. Most importantly, the BL2600 has four twelve-bit D/A outputs.

The BL2600 is connected to the sonar sensor head controller PCB via serial port C, which uses a three-wire RS232 arrangement consisting of a connection to ground, TxC, and RxC. The CPU is also connected to the IMU via a serial port F. It uses a three- wire RS232 and is connected to ground, TxF, and RxF. The table below provides a list of the pinouts used by the installed BL2600, their function, and the wire label number. I2C serial communications are bidirectional, and the BL2600’s configurable digital I/O channels, DIO00 and DIO01, are configured as outputs. Although configured as output pins, the value of the pin can be read using library functions in Dynamic C. Because they are open collector, the outputs float to the 5 V pull-up voltage when not held low. An external 5 V pull-up voltage is supplied to the BL2600 via the +K pin. The BL2600’s jumper, JP1, is set to provide open collector output using the five-volt power. This five- volt power and ground are supplied via Second-generation Electronics Bus’s I2C switch. The digital output grounds are connected to ground via leads to the same circuit. The connection of the SHARP IR rangers includes two ground connections to ground on the IR switched portion of the Second-generation Electronics Bus.

BL2600 Pinout Function Wire Label Number

DIO00 I2C Bus SCL 41

DIO01 I2C Bus SDA 40

DIO02 Motor 1 direction 46

DIO03 Motor 2 direction 47

DIO04 Motor 3 direction 48

AV0 Motor 1 analog speed 21

AV1 Motor 2 analog speed 22

AV3 Motor 3 analog speed 20

AIN0 IR 1 analog input 1

AIN1 IR 2 analog input 2

AIN2 IR 3 analog input 3

AIN3 IR 4 analog input 4

AIN4 IR 5 analog input 5

AIN5 IR 6 analog input 6

+K 5V pull up voltage D

2. Z-World BL2000 Single Board Computer

The BL2600 was not available initially in the Creature’s development, and the robot was designed from the start to use the BL2000, which has two analog voltage outputs. Herkamp provides an explanation of its capabilities [11]. It was decided early in development to use an analog voltage signal as the speed signal for each of the three motors. It was believed that doing so would reduce CPU workload that would otherwise need to be devoted to producing three PWM signals. Pressing the BL2000 into service as the Creature’s CPU resulted in an interesting problem that had not occurred previously in SMART program robots that used two analog motor speed signals for skid steering. Before motion testing could commence, a method of producing three analog signals needed to be conceived. To this end, a second BL2000 operating as a slave CPU was connected via RS435 for the express purpose of producing an analog signal directed by the master BL2000. This arrangement proved adequate, but a better solution was pursued during development. Installing the BL2600 reduced power consumption vis-à-vis the two CPUs and removed the failure mode of a communications loss between the CPUs, which would have resulted in restricted or possibly uncontrollable motion.

3. Microchip PIC16F690

Two devices were constructed and installed on the Creature using the PIC16F690 microcontroller manufactured by Microchip Inc. PICs are installed in the sonar sensor head controller and the wheel tachometer. This section describes the microcontrollers. For a description of the sensor devices, see the following section. The PIC16F690 was selected for its ease of programming, product support, on-board serial port, numerous pieces of example code, and widely available documentation. Although the PICs were programmed in assembly language, C language compilers were available.

Before developing a PIC microcontroller-based solution, a sonar controller PCB was designed using IC logic gates, binary counters, etc. Its component count exceeded twenty ICs, though, and its communications scheme was non-standard. A better solution using a microcontroller to reduce component count was sought. An example of the savings in component count is the wheel tachometer. In the three-wheel tachometer circuit a single PIC was used to replace an older two-wheel circuit that required over eight ICs. Also, a microcontroller solution provided flexibility in both devices’ implementations. If changes to a device were needed, the device could be reprogrammed to optimize it for another mode of operation. For example, operating parameters of the sonar, such as maximum range and time delay between sonar ranging attempts could be adjusted for outdoor use by easily by modifying the code rather than building a new hardware solution. In addition, the PIC’s built-in counters provided the researcher with a level of timing accuracy unmatched by the BL2600, which can only time events to 1 ms accuracy.

The manufacturer, Microchip Technology, provides a comprehensive manual on the device’s operation, I/O, capabilities, and assembly language syntax [30]. Of note, the devices have three built-in counters, one with sixteen bit range. Operated at 8 MHz and 1:1 clock prescaling, the internal counters offer 0.5 µs timing accuracy. The PIC16F690 has a PWM module, a capture and compare module, and a built-in serial UART. The serial port can send RS232 signals via a level shifting IC or I2C communications.

Both PIC16F690 microcontrollers installed on the robot are operated at 8 MHz using the microcontroller’s built-in oscillator. The sonar sensor head controller circuit uses one PIC16F690 communicating via RS232 at 57.6 kBd to pass its range data sentence. The wheel tachometer microcontroller uses I2C bus communications to pass its wheel speed data to the CPU when requested. The PICs’ programs, in Microchip PIC assembly language, were written and compiled in the MPLAB IDE running on a Dell laptop. A PIC Kit II programmer was connected between the programming laptop and the PIC to load the programs using Microchip’s In Circuit Serial Programming (ICSP), which allows the operator to program the microcontroller without need to remove it from the circuit board.