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. 
The SPI ladder design involves two parts: 1) the hardware side comprising of a number of cicruit boards (or 'board levels') and 2) the software side that comprises a very simple and easy-to-use C-based framework for a PIC processor. The two parts are elaborated below:

  • Hardware: a PIC processor and at board level 0 (see diagram below) and a collection of SPI modules (board level 1 and above), where each board level contains a SPI SoC module that performs a particular hardware service (e.g., a SPI ADC to provide analogue sampling). Each board level 1 and above includes a DIP switch which is used to indicate the board number in binary.
  • Software: a set of software C code modules will be needed in order to test and evaluate this rapid prototyping system. This code can be optimised and tidied-up to serve as a coding framework to facilitate future use of the system.

SPI Ladder concept sketch

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).

 

LURCCI Robot Platform
Illustration of the LURCII robot crawler platform

 

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
(an outdoors theme project)

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.

Kite Light Amusement Show
Figure: Artistic impression of the KLAS

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
 (a music theme project)

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.

RMB Device
Figure: Illustration of the RMB Device


Disclaimer:  transmission power for the RMB device will need to be low, and on a suitable FSR / unlicensed band so that it doesn't cause unauthorised interferece with elecronic equipment (hence the suggestion to use the walkie-talkie radio channel).

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
(a Reconfigurable Computing theme project)

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).
The objective of the RWTM system is to develop a wireless transceiver module for the Rhino board, essentially a low-power FM transmitter/receiver that can send and received bytes of data. A speed such as 16KBps, using a simple whip antenna, may be adequate to proove the concept. It is hoped that HDL and other code implementations developed as a results of this project will  contribute towards to support resources and examples for the Rhino support kit.

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
(a community support theme)

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).

Application scenario

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.

Finger drumming
Finger drumming to make MIDI notes

 

Acknowledgement:
Thanks to Thabiso Nthathakane for suggesting leading to this idea.

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
(Alternate title: An experimental in visualizing and generating parallel code)  
(a community support theme)

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).
EMCII Model
Figure: Example BEC model

Model Integrated Computing (MIC) has become an essential means to increase the speed and customizability of creating complex products. Examples of MIC applications includes Altera Quartus II (in which a block diagram can be used to model hardware and then “interpreted” in order to synthesise the hardware) and MatLab Simulink (e.g., in which a signal process routine is modelled visually and then synthesised as a program or even a HDL description of hardware). For more information see http://www.isis.vanderbilt.edu/research/MIC). 

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. 

Possible starting point (not necessarily what you would develop):

 PLATFORM platform1; // create a processing platform (might translate into a thread)
 PLATFORM platform2;  // create a second processing platform
 void start () ON platform1 {  // implement a function on platform1
   printf("Hello world.");
   SEND "test" TO platform 2;
 }

 void start () ON platform2 { // platform2 waits for data and displays it
  char s[1024];
  WAIT  FOR s;
  printf("String received from remote platform: %s\n", s);
 }

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
 (a music theme project)

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.

Tunes Pad
Figure: Concept sketch of the Tunes Pad device

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
 (entrepreneurial theme)

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).