The Kart module (214_Pr1) is a Summer School module for students between 2. and 3. semester. It's a home-made car remotely controlled by a smart-phone.
The work of the students can be summarized in four main tasks:
- design and assembly of the chassis
- analysis of the motor driver circuits (DC and stepper)
- configuring the controlling FPGAs
- completing and extending the GUI on the smart-phone
The kart is controlled by a smartphone via Bluetooth.
A Bluetooth receiver on the kart communicates via an RS232 serial link with the FPGA control board.
The control is distributed over several FPGA boards connected together via I2C:
- An I2C master receives RS232 controls, stores them in a set of registers and dispatches them at a regular interval on the I2C. The master also reads data values from the I2C, stores them into a second set of registers and sends the corresponding information at a regular rate over the RS232.
- A DC motor controller receives a speed value and builds a PWM and a direction control.
- A stepper motor controller receives the desired angle and builds the coil controls signals.
- A sensor board manages I/O comprising proximity sensors, hall sensors (for the driving speed) and LEDs.
The FPGA motherboards are equipped with an AGL125 IGLOO in a VQ100 package. They connect to daughterboards which drive different parts of the Kart. The motherboards are interconnected via an I2C link.
Existing daughterboards are:
- the serial interface board or the Kart/Bluetooth Bluetooth interface board
- a DC motor controller
- a stepper motor controller
- an I/O board
The sensors connected to the I/O board are:
- 1 to 4 VCNL4000 I2C Distance/Ambience Light Sensor
- 1 to 2 SS311PT Hall Sensor
- 1 ultrasound ranger
- 1 end of turn contact switch
Additionally, the power supply board comprises an ADC which provides the battery level.
The presentation Programming Introduction gives you an overview about the structure of the software/hardware and your tasks.
You'll get the FPGAs preprogrammed with a functional solution.
In addition you'll get a HDL-Designer projects, which you have to complete or adapt.
One goal is to implement an Android application that controls and monitors the kart.
The installable package of the (or rather a) solution can be found here: Kart.apk
An introduction to Android can be found here: Android Introduction
Another sample project to learn how to create vertical seek bars: Vertical SeekBar Example
You can download the Kart eclipse project with the basic interface here: Kart.zip
You can find the instructions how to import that archive into Eclipse in the "Programming Indtroduction" presentation...