I am contsrtucting this website as a personal project to learn how to program using HTML5, CSS and JavaScript. It will also give me a chance to learn how to webhost with github and to setup a custom domain. This website is a living project and is constently changing as I learn more about webdevelopment.
The investigation of a maximum power point tracking (MPPT) solar panel simulator is being conducted for the University of Victoria’s Canadian Cubesat Proposal team constructing a satellite for the Canadian Space Agency. This investigation is conducted because the Electrical & Power System team is responsible for determining an accurate power budget for the satellite. Simulator involves constructing a photovoltaic model and determining the average power output of the MPPT circuit. Theoretical results of the investigation so far have showed there is up to a 2% error in the simulation of the MPPT algorithm. When comparing the theoretical results of 4 W of power generation to the satellites max needed 3.91 W, it is inferred the power budget is accurate. Further work is needed to get experimental results for comparison to the power budget before finalizing satellite systems. The conclusion drawn in the theoretical aspect of the investigation is the results show the power budget is accurate for prototyping and developmental work for the satellite.
The project uses a Diffie-Hellman (DH) key exchange protocol, originally written in C and distributed as a part of the NetBench benchmark suite. The purpose of the project is to use SystemC and model one of its computationally intensive functions, NN_DigitMult, as a hardware module. On the course website the following 7 files have been made available to assist in this task: Makefile, dhdemo.cpp, dh_sw.h, dh_sw.cpp, dh_hw_mult.h, dh_hw_mult.cpp, digit.h. With the provided files, they can be compiled using the Makefile and the SystemC executable main.x can be run. The output looks like this: ***Agreed Key: 09 2a f1 41 e2 93 61 d5 ***Agreed Key: 64 30 94 c5 da d2 f6 da 49 6d 67 f1 16 55 b3 ea ee a2 c0 30 2b b5 4f 05 9e a4 58 ac 97 3b b9 a0 25 b7 56 fe 82 73 bb 22 d4 31 36 60 7f 41 e9 47 97 b9 5e 27 99 3e 73 f0 28 da b5 25 da e4 61 84 In the project files there are two control signals exchanged between software and hardware: enable and done. The enable signal is generated by software to enable hardware multiplication, and the done signal is generated by hardware to indicate that multiplication has been completed. The time in which to complete all multiplications was 180044021 ns, equivalent to 180.04 ms, while total time to create waveform traces and output the agreed key was 10 s for the simulation to come to a full stop. No errors were encountered in the process of generating the agreed key.
Working with a team, the investigation of water ingress in a power substation A-frame bus was conducted for BC Hydro as our Engineering Capstone project. The intention of the project was to determine a method for detecting water ingress without powering down the substation or coming in physical contact with the voltage bus. I was responsible for leading the mechanical modelling and Ssimulation aspects of the project. Our findings are proprietary to BC Hydro.
Implemented on an armv7 virtual machine, a cyclic Jacobi algorithm was used to perform singular value decomposition on a NxN input matrix. The intitial algorithm was implemented using floating point arithmitic. From there three avenues of optimization were taken: fixed point arithmitic; trignometric function approximations; and SIMD operations.
This project was undertook as part of the Fall 2018 MECH 458 course at the University of Victoria. The project is an implementation of an embedded control system for a conveyor belt and tray equipped with a sensor array, in order to detect classify and sort cylinders according to their four different material types: aluminium, steel, white plastic, and black plastic. The objective was to sort 48 pieces, 12 of each material, in under 60 seconds. The mechanical system and its sensors and actuators interface with an AVR AT90USB1287 development board which runs the embedded control program. Items are classified using data from a reflectivity sensor and inductive sensor. Optical sensors provide timing and gating information to the program. A brushed DC motor actuates the belt, while a 200-step stepper motor actuates the sorting tray. The video below highlights the system my lab partern and I implemented in action. Our system completed the objective in 25s with 1 sorting error allowing us to have top time and performance of the semester. Source code is available on my lab partners github.
This project was done as part of ECE 455 Lab at the University of Victoria. The project was to implement an Earliest Deadline First (EDF) scheduler and algorithm. Built on top of FreeRTOS scheduler, it is intended for scheduling periodic and aperiodic tasks. The system implemented utilizes a STM32 Discovery microcontroller board. Functionally the MCU is more than adequate for the scheduler implemented. The implemented scheduler uses auxiliary tasks for generation of user tasks and for monitoring the system. The monitor provides a snapshot of the current active and overdue task lists which are printed to the consol. Source code for this project can be found on my lab partners github. Testing of the system was done with tasks defined by the instructor.
In my first year of university, one of the projects I did with a team was building a beacon tracking robot. The platform the robot was built on used a Vex Robotics kit and was programmed using RobotC. The objective of the robot was to autonmously navigate to a beacon emmiting infrared light inside a ring, retrieve on object placed ontop of the beacon, and then remove it from the ring. The purpose of the project was to simulate the removal of radioactive waste from a contaminated zone. My primary responsibality in the robots development was programming the algorithms and interfacing with the sensors. I also aided with assembling robot chasis & body and making sensor circuits.
In highschool I was given the chance to work with a team to draft architectural plans for a client’s cabin. I was responsible for the cabins cross section blueprints. At the end of the project, the blueprints went on to be approved by the municipality.