Kart
(→Tasks) |
(→FPGA Design) |
||
Line 45: | Line 45: | ||
=== FPGA Design === | === FPGA Design === | ||
− | + | A [[Media:ELN_kart.zip|FPGA design environment]] is available, based on: | |
+ | * [http://www.mentor.com/products/fpga/hdl_design/hdl_designer_series/ HDL designer] for graphical design entry | ||
+ | * [http://www.mentor.com/products/fv/modelsim/ ModelSim] for simulation | ||
+ | * [http://www.microsemi.com/products/fpga-soc/design-resources/design-software/libero-ide Libero IDE] for synthesis and programming | ||
− | |||
{{TaskBox|content= | {{TaskBox|content= | ||
− | Download the [[Media:ELN_kart.zip|ELN_kart.zip]] and unpack it to your ''U:\'' drive.}} | + | Download the [[Media:ELN_kart.zip|ELN_kart.zip]] and unpack it to your ''U:\'' drive. |
+ | }} | ||
{{WarningBox|content= | {{WarningBox|content= | ||
− | Make sure that there is no space character in the path to ELN_kart.}} | + | Make sure that there is no space character in the path to ELN_kart. |
+ | }} | ||
+ | |||
+ | With this, the following designs have to be completed: | ||
+ | * the DC motor controller FPGA has to generate the PWM and direction signals for the propulsion motor | ||
+ | * the [[Kart/stepper_motor_controller#FPGA_design|stepper motor controller FPGA]] has to generate the 4 phases to turn the steering wheels to the desired angle | ||
=== Android App === | === Android App === |
Revision as of 14:19, 9 June 2015
|
The Kart module (214_Pr1) is a Summer School module for students between the 2nd and the 3rd semester. It is a home-made model car remotely controlled by a smartphone.
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)
- configuration of the controlling FPGAs
- completion and extension of the control GUI on the smartphone
System Architecture
The kart is controlled by a smartphone via Bluetooth.
Distributed boards
A Bluetooth receiver on the kart communicates via an RS232 serial link with the FPGA control board. This board stores the control values in a set of registers and dispatches them at a regular interval on an I2C link. The master also reads data values from the slave boards, stores them into a second set of registers and sends the corresponding information at a regular pace over the RS232 with a very simple protocol.
The control is distributed over several FPGA boards connected together via I2C. These base boards each hold a slave function board:
- A Bluetooth RS232 modem sits on the I2C master FPGA
- 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.
Tasks
The programming introduction gives an overview about the structure of the software/hardware and the students' tasks. They comprise:
- FPGA design for driving the hardware and reading the sensors
- Android application development for the remote control
The students receive FPGA boards preprogrammed with a functional solution and androïd phones with a demo application. This allows to start the development either with the FPGA design or the Android application development.
FPGA Design
A FPGA design environment is available, based on:
- HDL designer for graphical design entry
- ModelSim for simulation
- Libero IDE for synthesis and programming
With this, the following designs have to be completed:
- the DC motor controller FPGA has to generate the PWM and direction signals for the propulsion motor
- the stepper motor controller FPGA has to generate the 4 phases to turn the steering wheels to the desired angle
Android App
One goal is to implement an Android application that controls and monitors the kart.
Introduction
The installable package of the (or rather a) solution can be found here: Kart.apk
Android
An introduction to Android can be found here: Android Introduction
Another sample project to learn how to create vertical seek bars: Vertical SeekBar Example
Starting point
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...
Components
Power supply
The power supply board provides the 5 V and the 3.3 V to the other boards. This is generated from two 6 V battery packs.
The power supply board also comprises an ADC which provides the battery level.
FPGA boards
The FPGA motherboards are equipped with an AGL125 IGLOO in a VQ100 package. They hold daughterboards which drive different parts of the Kart. The motherboards are interconnected via an I2C link.
FPGA daughterboards
Existing daughterboards are:
- a Bluetooth interface board
- a DC motor controller
- a stepper motor controller
- an I/O board for the sensors
Sensors
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
Additional Information
- Additional informations for collaborators
- To do list
- When preparing the labs, follow the setup guide