My Work
From software to hardware, here are all the projects I've developed and worked on!
Embedded Projects
An autonomous ROS-controlled ground rover with various capabilities:
-
Transmitting 4K quality video over a long distance
-
Recording 4K quality video on the on-board SD card chip
-
Send and receive GPS data, displaying it on a map in a C++/Qt-made console program
A patrolling robot can detect heat signals from wildlife in neighborhoods near wilderness trails. The robot transmits live thermal feed, marks the GPS locations containing wildlife, and uses light and sound to repel the wildlife animals.
A semi-high altitude fixed-wing UAV for monitoring crops and farms over large areas of land. It can transmit video, capture images, and can be controlled manually or via GPS way-points.
Software Projects
This library parses NMEA messages from a GPS device and processes the location data to a file.
​
The LibUBX library can be included in other programs. For example, an embedded Qt program with a GUI that displays real-time GPS location on a QMap.
A lightweight UAV flight controller for STM32H-type microcontrollers (such as the NUCLEO-H723ZG) supporting:
-
IMU and GPS sensors
-
Low battery voltage failsafe
-
Excessive pitch/roll angles and instability failsafe
A video and media encryption (and decryption) wrapper that utilizes the Crypto++ library using AES-256-CBC.
​
The encrypted media is written to a file. The decrypted media can also be played using the GStreamer pipeline.
My implementation of Conway's Game of Life:
-
Any live cell with fewer than two live neighbours dies (referred to as underpopulation or exposure).
-
Any live cell with more than three live neighbours dies (referred to as overpopulation or overcrowding).
-
Any live cell with two or three live neighbours lives, unchanged, to the next generation.
-
Any dead cell with three live neighbours will come to life.