top of page

Projects

Maze Solving Robot
MazeSolvingRobot

Programming of a robot using MATLAB/Simulink in order to solve a maze.

Image Steganography Decoder (ISD-P0)
Picture2.png

Development of an image steganography decoder using Verilog and Xilinx.

LoT Transmitter/Receiver
LoT.JPG

Design and programming of a "Light of Things" (LoT) transmitter/receiver using STM32 microcontrollers.

Power Supply PCB Design
IMG20230511151626_edited.jpg

Power management submodule design. Involved the design, ordering and testing of a custom PCB.

ARU PCB Design
IMG20230808114519_edited.jpg

Design of two custom PCBs for the power management of a sea ice imaging rig.

Servo Motor Controller Design
IMG20220301101018_edited.jpg

Design of a digital controller for a physical servo motor system.

Maze Solving Robot

This project involved the programming of an Arduino using MATLAB/Simulink. The Arduino interfaced with four line sensors, motor controllers for each wheel and is powered using two batteries.
The robot was programmed to be able to follow both curved and straight lines, as well to handle multiple types of intersections. Using a right hand turn algorithm, the robot was able to navigate through the maze and reach the end.
Coding was done using the stateflow package on Simulink.

Power Supply PCB Design

For our fourth year design course, we needed to work in groups to design a prototype addressing an issue experienced by ornithologists at the Fitzpatrick Institute of African Ornithology at UCT. Our idea was a wireless perch scale for use in remote locations. My submodule was the design of a power supply and management PCB. 

The PCB included space for two batteries, as well as built in charging via either USB C or micro USB. The battery voltage is then boosted and regulated from 3.7V to 5V. A 3.3V linear regulator is also included in the PCB. Included is also mounting pins for either a Raspberry Pi Zero, and an ESP32 CAM microcontroller. There are also voltage output pins for both the 5V and 3.3V lines, for the other submodules to get power from.

Image Steganography Decoder (ISD-P0)

The main focus of this project was the development and simulation of a digital accelerator using an FPGA (Field Programmable Gate Array). Our project focused on the development of an image steganography decoder. Steganography is the practice of hiding information in plain sight. 

In order to develop the decoder, we used Xilinx's Vivado software to simulate the system. The system was able to read in images and retrieve the secret message embedded in the image. 

The seven segment display on the FPGA was also programmed to be able to show scrolling text, in order to display the decoded message once the program is implemented on the FPGA.

ARU PCB Design

Design of two custom PCBs to be used with ARU's sea ice imaging rig. The system consists of a Livox AVIA LiDAR and an Intel Realsense D455 Depth Camera. An Intel NUC was used to interface with these two devices. The rig needed to be operational in extreme environments. 
A temperature controller PCB was design to work with an STM Nucleo microcontroller, which would work as an on-off controller to keep the temperature of the enclosed battery consistent.
A power distribution PCB was also designed. It needed to be able to switch between two different supplies, as well as have multiple outputs from the single input. The design also included a switch to turn off the whole rig.

LoT Transmitter and Recevier

This project involved the design of a Light of Things (LoT) transmitter and receiver, implements using STM32f0Discovery boards. An asynchronous communication protocol was determined for the system.

The transmitter consisted of a laser diode for data transmission, as well as potentiometer connected through an analog to digital converter (ADC) to simulate variable data input. The value read in via the ADC is transmitted via the laser diode to the receiver node.

The receiver consisted of a light dependent resistor (LDR), which was directed at the laser diode of the transmitter. A potentiometer and comparator were used to adjust the circuit depending on the ambient light. When the LDR had the laser diode shining on it, the comparator output would go high. Thus, the microcontroller could read in the data.

Servo motor digital controller

A servo motor is a device used to drive and rotate parts of machinery with high efficiency and accuracy. The system consists of an input angle which is converted to an electrical signal. A motor then used this signal to control the output angle. In order to design a controller for this system, system identification first needed to be done. Three different step responses were found, for three different operating conditions. These step responses were used to find three different transfer functions, which could be used to describe the system.

A robust controller was then designed, which could match the output angle to that of the input, for all operating conditions. This controller was implemented digitally using a C# program. 
Finally, a programmable logic controller (PLC) was programmed to control the system, in conjunction with a human machine interface (HMI). The programming of the PLC was done using ISPSoft software. The HMI was designed to allow a user to digitally input a signal, rather than using the physical input of the system. The interface also displayed the output value.

Location

Cape Town, South Africa

Email

Links

  • LinkedIn
  • GitHub
bottom of page