Subscribe To Robotics | IntroDuction | History | Home

Friends Dont Forget To check the archieve at the left end of the page

Make Your Own Robot Tutoials

Simple Beetle Bot | Wired Robot | Combat Robot | Solar Engine |

Beam Symet | Photopopper | Beam Trimet | Line Follower |

Latest Updates
Driver Less Car | I-Sobot | MotherBoard | MicroController | Artificial Brain |

Camera Sensors Hardware | Remote Control Working


Monday, March 17, 2008

Embedded Robotic Controllers

The centerpiece of all our robot designs is a small and versatile embedded controller
that each robot carries on-board. We called it the “EyeCon” (EyeBot
controller, Figure 1.6), since its chief specification was to provide an interface
for a digital camera in order to drive a mobile robot using on-board image
processing [Bräunl 2001].

Robots and Controllers

The EyeCon is a small, light, and fully self-contained embedded controller.
It combines a 32bit CPU with a number of standard interfaces and drivers for
DC motors, servos, several types of sensors, plus of course a digital color camera.
Unlike most other controllers, the EyeCon comes with a complete built-in
user interface: it comprises a large graphics display for displaying text messages
and graphics, as well as four user input buttons. Also, a microphone and
a speaker are included. The main characteristics of the EyeCon are:
EyeCon specs • 25MHz 32bit controller (Motorola M68332)
• 1MB RAM, extendable to 2MB
• 512KB ROM (for system + user programs)
• 1 Parallel port
• 3 Serial ports (1 at V24, 2 at TTL)
• 8 Digital inputs
• 8 Digital outputs
• 16 Timing processor unit inputs/outputs
• 8 Analog inputs
• Single compact PCB
• Interface for color and grayscale camera
• Large graphics LCD (128􀁵64 pixels)
• 4 input buttons
• Reset button
• Power switch
• Audio output
• Piezo speaker
• Adapter and volume potentiometer for external speaker
• Microphone for audio input
• Battery level indication
• Connectors for actuators and sensors:
• Digital camera
• 2 DC motors with encoders
• 12 Servos
• 6 Infrared sensors
• 6 Free analog inputs

One of the biggest achievements in designing hardware and software for the
EyeCon embedded controller was interfacing to a digital camera to allow onboard real-time image processing. We started with grayscale and color Connectix
“QuickCam” camera modules for which interface specifications were available.
However, this was no longer the case for successor models and it is
virtually impossible to interface a camera if the manufacturer does not disclose
the protocol. This lead us to develop our own camera module “EyeCam” using
low resolution CMOS sensor chips. The current design includes a FIFO hardware
buffer to increase the throughput of image data.

A number of simpler robots use only 8bit controllers [Jones, Flynn, Seiger
1999]. However, the major advantage of using a 32bit controller versus an 8bit
controller is not just its higher CPU frequency (about 25 times faster) and
wider word format (4 times), but the ability to use standard off-the-shelf C and
C++ compilers. Compilation makes program execution about 10 times faster
than interpretation, so in total this results in a system that is 1,000 times faster.
We are using the GNU C/C++ cross-compiler for compiling both the operating
system and user application programs under Linux or Windows. This compiler
is the industry standard and highly reliable. It is not comparable with any of
the C-subset interpreters available.

The EyeCon embedded controller runs our own “RoBIOS” (Robot Basic
Input Output System) operating system that resides in the controller’s flash-
ROM. This allows a very simple upgrade of a controller by simply downloading
a new system file. It only requires a few seconds and no extra equipment,
since both the Motorola background debugger circuitry and the writeable
flash-ROM are already integrated into the controller.

RoBIOS combines a small monitor program for loading, storing, and executing
programs with a library of user functions that control the operation of
all on-board and off-board devices (see Appendix B.5). The library functions
include displaying text/graphics on the LCD, reading push-button status, reading
sensor data, reading digital images, reading robot position data, driving
motors, v-omega (v􀁚) driving interface, etc. Included also is a thread-based
multitasking system with semaphores for synchronization. The RoBIOS operating
system is discussed in more detail in Chapter B.

Another important part of the EyeCon’s operating system is the HDT
(Hardware Description Table). This is a system table that can be loaded to
flash-ROM independent of the RoBIOS version. So it is possible to change the
system configuration by changing HDT entries, without touching the RoBIOS
operating system. RoBIOS can display the current HDT and allows selection
and testing of each system component listed (for example an infrared sensor or
a DC motor) by component-specific testing routines.

Figure 1.7 from [InroSoft 2006], the commercial producer of the EyeCon
controller, shows hardware schematics. Framed by the address and data buses
on the top and the chip-select lines on the bottom are the main system components
ROM, RAM, and latches for digital I/O. The LCD module is memory
mapped, and therefore looks like a special RAM chip in the schematics.

Optional parts like the RAM extension are shaded in this diagram. The digital
camera can be interfaced through the parallel port or the optional FIFO buffer.
While the Motorola M68332 CPU on the left already provides one serial port,
we are using an ST16C552 to add a parallel port and two further serial ports to
the EyeCon system. Serial-1 is converted to V24 level (range +12V to –12V)
with the help of a MAX232 chip. This allows us to link this serial port directly
to any other device, such as a PC, Macintosh, or workstation for program
download. The other two serial ports, Serial-2 and Serial-3, stay at TTL level
(+5V) for linking other TTL-level communication hardware, such as the wireless
module for Serial-2 and the IRDA wireless infrared module for Serial-3.

A number of CPU ports are hardwired to EyeCon system components; all
others can be freely assigned to sensors or actuators. By using the HDT, these
assignments can be defined in a structured way and are transparent to the user

program. The on-board motor controllers and feedback encoders utilize the
lower TPU channels plus some pins from the CPU port E, while the speaker
uses the highest TPU channel. Twelve TPU channels are provided with matching
connectors for servos, i.e. model car/plane motors with pulse width modulation
(PWM) control, so they can simply be plugged in and immediately operated.
The input keys are linked to CPU port F, while infrared distance sensors
(PSDs, position sensitive devices) can be linked to either port E or some of the
digital inputs.
An eight-line analog to digital (A/D) converter is directly linked to the
CPU. One of its channels is used for the microphone, and one is used for the
battery status. The remaining six channels are free and can be used for connecting
analog sensors.

No comments: