DIGILENT DESIGN CONTEST • DIGILENT DESIGN CONTEST • DIGILENT DESIGN CONTEST • DIGILENT DESIGN CONTEST
FIGURE 4. Global Map Control displaying the
current GPS position.
control station and the robot. Between the two,
communication is achieved by using a radio
transceiver. Both the robot and control unit
software were developed in Microchip’s
MPLAB32 IDE. Since the MCU has to serve
several tasks at once — some of them being
computational intensive and others having real
time requirements — a Real Time Operating
System (RTOS) was chosen to provide
multitasking and also because it has the ability to
meet a deadline. FreeRTOS ( www.freertos.org)
is a free real time operating system written in C
that is designed for embedded devices and is able
to be ported to several microcontroller
architectures. We chose FreeRTOS because it is
small and features a preemptive kernel that is
highly configurable. That being said, we
encourage you to look it up.
• Digilent Cerebot32MX4
• Digilent PmodRF1
• Digilent PmodNIC
A Hardware Abstraction Layer
(HAL) was created on top of
FreeRTOS and Microchip’s PIC32MX
Peripheral library. This abstraction
layer hides the complexity of the
hardware, and makes code easier
to understand and less error prone.
The HAL covers all the peripherals
(MCU’s UART, AT86RF212
transceiver — the chip used on
PmodRF1, etc.), most of them
being interrupt driven which results
in non-blocking method calls.
The control unit is a bridge
between the computer and the
robot. It offers two choices of
connectivity: Ethernet and serial.
Uptime information and battery
voltage are shown on the mounted
To achieve its functionality, the
control unit uses the following
FIGURE 5. Local map widget
displaying the robot’s path.
SERVO 02.2012 49