top of page

Personal Projects

RomniBot: Omni-directional Robot

Winter 2022 / Spring 2023

  • 3D-Printed robot designed, programmed and wired in-house. Ultimate goal of achieving autonomous driving using an array of measurement and perception equipment. Revision 1.0 provides lots of chassis surface area for this reason.

  • Transmitter PCB design complete and currently being assembled.
  • Designed with Solidworks, programmed with Arduino, however soon to be transitioned to Raspberry Pi for autonomous driving preparation.

Quaxel - STL to Voxel Mesh Converter

Summer 2022

  • The purpose of this program is to convert STL files' geometry into a voxel (cube) mesh representation. A voxel representation of a solid enables a designer or engineer to conduct FEA, and CFD on a component. Voxel meshes are the most primitive of mesh types when it comes to FEA, however they are also used in computer graphics and visualization. Therefore, it felt like a good middle ground for future development down either path.

  • The program is not yet complete, as it requires extensive robustness and speed improvements. These will be worked on post-graduation, when I convert the program to C++. However, as seen below, the program can handle various complicated geometries.

  • Through this project I was able to learn more about STL file formatting, Quad Tree and KD Tree data types, recursion and Ray Tracing.
     

Various Tool Augmentations

  • Filament Guide: This design is overly complicated, and was just made for fun. The Rev 2.0 filament guide connects to the x axis gantry, is 1 solid component, and requires 1 additional socket head screw, lock washer and nut. PS, ignore the filament fractures (humidity).
     

  • Soft Jaw: To hold work pieces softer than the jaws that came with the vise. A TPU soft jaw would outperform this PLA version due to its compliance, however I do not currently have any TPU.

Graham Scan - 2D Convex Hull Generator

Summer 2021

  • Completed a Python implementation of the Graham Scan for generating 2D convex hulls of randomly positioned sets of Cartesian points. This implementation used only numpy arrays and lists. A module contains the function definition, and is to be used by a grander computational geometry package that I am currently building.

  • Since creating this program, I have learned about the relevance of Queues and Stacks to computational geometry, and will be making a revision to the code such that the Python linked list class "deque" from the collections package will be used to implement a stack.

Python - Dijkstra's Shortest Path Algorithm

Summer 2021

  • Dijkstra's algorithm is used in Graph Theory and extensions from it, to find the shortest path between a datum point, and any other point in a graph/network. 

  • This initial implementation instantiates a 2D symmetric graph of coordinates, whose cost is purely displacement, using the created "graph" class, and then uses the Dijkstra function to calculate the shortest distance between a selected node and all other nodes. Extensions of this routine would be to return a graphical representation of each path, as well as allow for asymmetric graphs.

Summer 2020

  • Soldered both active and passive circuits elements such as resistors, capacitors, transistors, stomp switches and potentiometers to a printed circuit board, and assembled IC components, and external jacks for DC power supply.

  • Completed testing and troubleshooting.

Fixed "Wah" Guitar Pedal

2 DOF Sun Tracking Solar Panel

Summer 2019

  • Wrote Arduino code to track a powerful light source using a matrix of 4 photo-resistors and two perpendicular servo motors.

  • Brackets and housing for all components were designed in Solidworks.

Future Projects

  • Smart mirror, linked to Evernote account, to list word of the day

  • The 'Ant' - Desktop PCB Milling Machine

  • 3D-Printed Orrery

  • 3D-Printed Scara 3D Printer

bottom of page