BSc FINAL YEAR THESIS PROJECTS
Proposed by:
Simon Winberg (simon.winberg@uct.ac.za)
2012
These topics are on the web at:
(the web version
includes a convenient topic listing and hyperlinks)
ID: |
SW-01 |
TITLE: |
SPI-Ladder: an embedded system rapid prototyping strategy |
DESCRIPTION: |
The SPI-Ladder project focuses on developing an embedded system rapid
prototyping platform design in order to construct and test products
constructed from a set of SPI system on chip (SoC) components (see
illustration below). Nowadays, SPI components are
widely accessible and low cost. The ease of the SPI protocol, and
the fairly fault-tolerant communications system built into most of these
SoCs, together with the simple hardware wiring, makes SPI an ideal
interfacing system and for a variety of electronic applications.
Figure: Concept sketch for SPI-Ladder
prototyping system Development and testing plans: as the figure above indicates, few electronic parts are expected to be necessary, although there may be a need to convert the 5V input to other levels depending on the PIC processor and SoCs chosen for testing. As illustrated, molex connectors are suggested as a means to both conenect comms and power between board levels as well as a means to hold the boards together. |
DELIVERABLES: |
PCB / circuit board. Considering the simplicity of the design, it is
likely that veriboard can be used to construct the prototyped board levels,
although doing so may need a different type of connector (i.e. other than
molex) between levels, possibly just simply soldering separate wires. The research-based part of the project can involve analysing speeds and determining to what expect this proposed system is actually usable. This would be written up in your thesis. |
SKILLS/REQUIREMENTS: |
Embedded systems development, circuit design and prototyping, C programming |
EXTRA INFORMATION: |
|
AREA: |
Embedded Systems |
ID: |
SW-02 |
TITLE: |
FLORA - Fynbos Leaf-based Online Recognition Application (an outdoors theme project) |
DESCRIPTION: |
This project relates to performing image-processing and
communications. The proposed product involves two parts: a cellphone or
digital camera, referred to as the Image Capture Device (ICD) and a central
processing server (CPS). The ICD will acquire an image of a leaf from a
fynbos plant; this image will be sent to the CPS for identification. The CPS
will then attempt to identify the leaf based on matching its colour and
shape, among other techniques, to a database of leaf characteristics and
patterns. If the CPS is able to perform a match, it will send back a
match accuracy measure (a percentage value indicating how likely the match
is), of no matches are found, the CPS will send back a message indicating
that the plant was not found and that the image has been tagged for a human
expert to attempt to determine what plant the image represents. In the prototype
version of the FLID, the connection between ICD and CPS will require manual
intervention, such as the users needing to download the image from
cellphone/camera and manually loading the image into the CPS program to
identify the image. Furthermore, the prototype will be configured and tested
with a relatively small set of samples which can be easily found around
campus. This project is most suited for a student who's willing to spend
some time in the outdoors looking for, and photographing plant specimens. A
certain amount of literature review will be needed to become familiar with
commonly used image-processing techniques needed for pattern matching
algorithms. Future work plans could include having a both the ICD and CPS
running as a cellphone application so that the identification can be
performed without the need for a communications link. I start has been made on FLORA, viewable at: http://forge.ee.uct.ac.za/flora/ If you choose to work on this project, you can take it further. |
DELIVERABLES: |
Application running on an embedded platform or on a mobile computer or on a smartphone |
SKILLS/REQUIREMENTS: |
C / C++ programming (some experience with image processing is recommended but not essential) |
EXTRA INFORMATION: |
|
AREA: |
Digital image processing, signal processing |
ID: |
SW-03 |
TITLE: |
LURCCI - Level-floor Undercover Robot Crawler
Controlled by Internet (phase 1) |
DESCRIPTION: |
The
plan for the LURCCI project is to develop a robot crawler that is controlled
remotely via internet, intended for moving around indoors on even floors. The
LURCCI robot can be built from a do-it-yourself robotics kit, which includes
the chassis, and drive mechanism for moving and steering the robot – together
this provides a platform on which further functionality is built. Other
features would be needed to make the robot more useful. This project is
design around multiple phases, each phase could be added by different
students working in parallel, or could be worked on in subsequent years by
different students. This is
the first time this project is being offered, and consequently, phases 1 and
2 are the requirements for this edition of the project. The full set of
phases for the robot is listed at the LURCCI Site. Phase
1: Assembling the robot kit, getting the platform together and tested.
Control movement of platform via a RS2332 tether. Testing speed,
manoeuvrability, battery life. Phase
2: Vision sensor. Adding 1x camera to the front of the robot which will be
used in later projects to enable remote control. A webcam for the first
prototype or a small COTS CCD camera kit can be used (ideally this camera
should be hooked up to a microcontroller running on the robot, but due to
time constrains this may need to be done by a future student working taking
the project further).
|
DELIVERABLES: |
Prototyped LURCII able to move around via manual PC
control |
SKILLS/REQUIREMENTS: |
Mechatronics, programming |
EXTRA INFORMATION: |
|
AREA: |
Mechatronics |
ID: |
SW-04 |
TITLE: |
KLAS -Kite Light Amusement Show |
DESCRIPTION: |
This project involves prototyping an electronics package, called
the 'Kite Light Amusement Show' (or KLAS), which can be corrected to the tail
of a standard kite. The KLAS is intended to serve two purposes: 1) to improve
the visability of the kite when flying in dim conditions (e.g., a means to
add lights to a survey or data logging kite that might be used to gather
weather-related readings at night), or 2) simply as something entertaining
for a kite-buff to show off -- see illustration below. Although this project
may at face-value sound simple, this is probably not going to be the case in
reality as there are a number of practical issues to solve in order
to make the KLAS a functional product. For example: the LED trail needs to be
easily integrated with an existing kite, some means will be needed to program
the cycle by which the LEDs are turned on and off. A variety of 'flight
tests' will need to be trial, trying different wind conditions. This project
has the potential to achieve an innovative product as well as a bread extent
of research work related to flying kites using electronics payloads at night.
|
DELIVERABLES: |
Design of the KLAS product, PCB or prototyped circuit built and tested, Demonstration (e.g. video footage) of the KLAS demonstrated. |
SKILLS/REQUIREMENTS: |
Electronics, Embedded systems, |
EXTRA INFORMATION: |
|
AREA: |
Electronics |
ID: |
SW-08 |
TITLE: |
RMB - Retro Morsecode Box |
DESCRIPTION: |
This is another one for those interested in music, but for also for
people with an appreciation for history and classic electronics. You
certainly don't need to be good at music for this project. The aim of the
Retro Morsecode Box (or RMB) is to revisit the exciting bygone erra of
mosecode and telegraphs. You have an option of either creating a wireless morse
code device, which you can use a walkie-talkie (or appropriately configured
radio received) to listen to your beep boop tunes.
Alternatively, you can develop a wired system to listen to your RMB
transmissions, in which case you'll probably need to create a prototyped PCBs
(e.g. using breadboards or veriboard), one for sending and the other for
receiving (you don't need to do two-way comms). You'll need to do some tests
to see what kind of distance you can get, how well the signals can travel
through walls, etc. If you want to take it further you can hook up PCs to
control the sending and receiving of data as morse code (i.e.,
replacing the human operator by a machine). The diagram below gives a
suggestion of what is needed.
|
DELIVERABLES: |
Prototyped RMB device. Demonstration showing the sending and receiving of morsecode signals. Report on distance tests (part of thesis). |
SKILLS/REQUIREMENTS: |
Electronics, microcontroller programming, C programming |
EXTRA INFORMATION: |
|
AREA: |
Electronics, Embedded systems |
ID: |
SW-12 |
TITLE: |
RWTM - Rhino Wireless Transceiver
Module |
DESCRIPTION: |
The Rhino project is a reconfigurable computing platform desiged for
Software Defined Radio (SDR) applications. The Rhino platform was built at
UCT by the SDRRG research group (for details of the Rhino platform see
the Rhino Site). |
DELIVERABLES: |
Prototyped antenna and analogue front-end (which connects to a A2D sampling module), VHDL/Verilog code for the front-end processing and Wireless communications protocol handling. |
SKILLS/REQUIREMENTS: |
Embedded systems; HDL coding; digital single processing; a reasonable understanding of signals and RF transmissions (although much of the RF skills you can pick up as part of doing this project) |
EXTRA INFORMATION: |
|
AREA: |
Digital systems; Electronics |
ID: |
SW-18 |
TITLE: |
ESPPA - Embedded Systems Past
Projects Archive |
DESCRIPTION: |
The EEE3074W course, which some of you may have been been through
and remember, involves a embedded systems prototyping project. From these
prototype projects, lots of useful code and information is found related to
the platforms used in the course. This project is about developing a
web-based archive and search feature that could be used to make better use of
these resources. For a sample starting point, which has already been put
together, see the EEE3074W Past Projects Archive. |
DELIVERABLES: |
Online and searchable archive populated with a selection of past projects. |
SKILLS/REQUIREMENTS: |
Understanding of embedded systems coding (so that you can understand how to organise the data), database design; Data mining; CGI/PHP scripting or web server programming. |
EXTRA INFORMATION: |
|
AREA: |
Embedded systems; Data mining |
ID: |
SW-23 |
TITLE: |
PRTF - Populating the Rhino Toolflow Framework |
DESCRIPTION: |
The Rhino toolflow describes the development process
by which a design for signal processing operations is transformed through a
sequece of engineering tasks into an executable implementation that runs on
the Rhino. It is envisioned that that the framework designed will be
populated with common signal processing components such as filters, mixers,
signal sources etc, all of which are fairly primitive building-block
structures used in most signal processing operations. Consequently, this
project is concerned with the creation of a subset of these components, and
implementing and testing these on a Rhino board (or compatable FPGA
platform). These signal processing routes could be written in MyHDL or VHDL /
Verilog. Suitable documentation and integration procedures will need to be
defined and explained in the thesis. Acknowledgement: Thanks to Gordon Inggs for suggesting this idea. |
DELIVERABLES: |
toolset of signal processing routines written in an HDL |
SKILLS/REQUIREMENTS: |
FPGA application development, HDL coding |
EXTRA INFORMATION: |
|
AREA: |
Digital systems, FPGAs |
ID: |
SW-24 |
TITLE: |
RTSMC: Real-time Sounds to Midi Converter |
DESCRIPTION: |
The objective of this project is to convert sound
information data sampled from a microphone into midi signals.
A microcontroller will be used to do the signal processing of the
sampled data and output midi control signals that can then be linked
to control midi devices, such as an electric piano or a software
synthesizer running on a PC and plays sounds on a sound card. The RTSMC needs
to be demonstrated showing that it can be used to play or record midi tunes
on a PC running music creation software (e.g., Propellerhead Reason,
Steinberg Cubase or Ableton live). Imagine that you're a good finger drummer (have a
look at this cool
YouTube video to see what I mean - with enough impatient finger tapping
you might be able to do something like that with just a table and your
fingers), but you can't play a piano or drums and would just like to record
your viby tunes. In this situation you might, for example, want to make
your tune play on a kick drum instrument (which can be synthesized by a
sound card MIDI device). The proposed RTSMC device is intended to be able to
do this; simply by put the device's microphone on a table and then tapping on
the table to create the desired drumming tunes. If you're a good whistler,
you could whistle the tune (to the possible frustration of your
neighbours) and have that saved as MIDI information and converted into flute
sounds.
Acknowledgement: |
DELIVERABLES: |
Prototyped RTSMC device |
SKILLS/REQUIREMENTS: |
Digital signal processing, embedded systems |
EXTRA INFORMATION: |
|
AREA: |
Embedded systems |
ID: |
SW-26 |
TITLE: |
RWSS - Revolving webcam surveillance stand |
DESCRIPTION: |
This
concept concerns developing a controllable platform for a webcam, which can
rotate the camera around its vertical axis (i.e. yaw movement). A computer
control program for a PC will be needed to perform the control, providing the
following features: Position
mode - press keys (e.g., 'z' for rotate to left, 'x' to rotate to right) to
position camera for (e.g.) for video call Take
panoramic photo (rotate -45yaw, photo 1, rotate 0, photo 2, rotate 45, photo
3, stitch the images together) Survey
mode - characterise environment (after a certain time delay for the user to
leave the room), continue rotating back and forth to see if there is any
change. See
image at http://forge.ee.uct.ac.za/proposals/index.htm#SW26. |
DELIVERABLES: |
Prototyped LURCII able to move around via manual PC control |
SKILLS/REQUIREMENTS: |
Mechatronics, programming |
EXTRA INFORMATION: |
|
AREA: |
Mechatronics |
ID: |
SW-19 |
TITLE: |
BEC - Blocks to Embedded C code in a
visual way |
DESCRIPTION: |
This project focuses on transforming a block diagram (that adheres to
a specific structure) into C code templates that an embedded software
programmer can use to experiment with and describe communication interfaces
and data flow links between parts of an embedded program. The automated C
code file generation both saves time for the programmers in writing function
declarations and provides a C-code view of what the communication links would
necessitate in terms of code. While this project may seem like a large amount
of work, much of this effort has already been provided and
is easily accessible, in terms of drawing models and translating them to
text. Specifically, the Institute for Software Integrated Systems (ISIS) has
developed a highly customizable 'generic modelling environment' (GME) that
can be used to create customised visual models (e.g., block and line
diagrams) that can be automatically convered into a different form (e.g., C
code or XML). More detail online at: http://forge.ee.uct.ac.za/proposals/#SW19 |
DELIVERABLES: |
·
Specification of the proposed
modelling language (include in thesis write-up) ·
Design of model interpreter
(flowcharts, procedure for how the model is converted into C code that can be
compiled & executed) ·
A prototyped model interpreter built
using the GME environment (only needs to handle a subset of the language) |
SKILLS/REQUIREMENTS: |
Good C++ programming; understanding of parallel
programming |
EXTRA INFORMATION: |
|
AREA: |
Parallel programming |
ID: |
SW-10 |
TITLE: |
RSPL - Rhino digital Signal Processing
domain specific Language (a Reconfigurable Computing theme project) |
DESCRIPTION: |
A domain specific language (or DSL) has been suggested as a
potentially necessary technology in making parallel computing and developing
of parallel programs more effective. The aim for this project is in part a
theoretical experiment, to analyse existing languages used for describing
signal processing, and to create either work on a small subset of an existing
language, or contemplate your own language, which you can test by using LEX
and YACC. Developing an effective and fully functional, suited to a wide
range of signal processing, is likely to take a long time. Therefore,
the emphasis on this project is not to create a complete new language, but
rather to prototype a small subset of potentially suitable programming
constructs which could be taken further by future students or as a postgrad
project. The DSL could be constructed in such a way that regular C or C++
code is surrounded by various DSL declarations. |
DELIVERABLES: |
Proposed syntax and semantics for an initial DSP language designed
around parallel operation. A prototype system in which a simple program can
be developed using the language and translated into a Pthreads C-based
program (or similar existing language) for doing tests. |
SKILLS/REQUIREMENTS: |
C++ Programming, understanding of a HDL (VHDL or
Verilog), Software engineering, compiler generation, C / C++ programming |
EXTRA INFORMATION: |
|
AREA: |
Parallel computing, reconfigurable computing |
ID: |
SW-07 |
TITLE: |
Tunes Pad |
DESCRIPTION: |
If you 're interested in making music, as well as tinkering with
electronics and coding, this is probably a project for you. The objective of
the Tunes Pad is to develop a custom music input pad, which
you can can play tunes on, and then hook it up to a hook up to a
computer to download the tunes. The diagram below gives a notion of what is
involved. You don't need to know how to play or read musical; but this
project might be an opportunity for you to understand more about how music is
structured and composed.
Acnknowledgement: Thanks to Karthik Rajeswaran
for discussions about music and midi controllers that inspired this idea. |
DELIVERABLES: |
The keypad and electronics needed to produce and capture music.
Optional extra: integration with PC to download recorded tunes. |
SKILLS/REQUIREMENTS: |
Electronics, microcontroller programming, C
programming |
EXTRA INFORMATION: |
|
AREA: |
Electronics, Embedded systems |
ID: |
SW-17 |
TITLE: |
VRAVP - Voice Recording Archive Via
Phone |
DESCRIPTION: |
This project is about setting up a low-cost PC-based,
phone-accessed recording archive. Outline of the system operation: a
user calls in to the system; users types in user code (i.e. login info), user
selects 1 to record or 2 to retrieve; user types in a 4-digit key phrase to
indicate a name for the recording. If 1 was selected, the program starts recording
to a MP3 file (named according to the 4-digit key phrase) and stops when
either the user hangs up, the time limit is exceeded, or the uses presses the
hash key to signal end recording and return to main menu. When the retrieve
option (item 2) is chosen, then the key phrase is entered, then the recorded
message corresponding to the key phrase is played back to the used, until
hash is pressed or the user hangs up. Pre-recorded voice responses should be
used for user responses, e.g. “invalid key” and “no recording linked to that
key phrase”. An optional additional feature are: 1) delete recordings (e.g., an
option 3), prompt on overwriting an existing message; 2) web-access, where a user to
log into the system (by entering in user code) and then be able to
download/upload/delete recordings; also able to send URLs (via email) to
friends so that they can access particular recordings from computer. |
DELIVERABLES: |
·
VRAVP application running on
a PC. ·
User manual explaining how to
use the system. ·
Acceptance Test (get some
friends together to test the system and ask them to fill out a survey on
their impressions of the system). ·
Demonstration of the system
(to supervisor). |
SKILLS/REQUIREMENTS: |
Digital signal processing (i.e. sampling analogue
data using a sound card, interpreting tones, etc). C/C++ Programming. |
EXTRA INFORMATION: |
|
AREA: |
Signal processing |
Some additional projects you may want to consider (but are no longer on my preferred list of project offerings).