I’m interested in medical robotics, AI, software
development and learning new things!
The device uses a TI MSP-EXP432E401Y microcontroller and a VL53L1X time of flight (ToF) sensor to create a 3D spatial mapping of its surroundings indoors. The distance measurements are communicated from the ToF sensor to the microcontroller via I2C communication. Next, the measurements are sent to the user's PC via UART communication.
The device operates using four main stages: signal processing, communication stage, data processing and data visualization.
The user starts the Python program and C code program in Keil. The stepper motor will rotate the ToF sensor in specified increments to collect data for a 360-degree scan. The user will then move the device forward a specific distance along the hall and click 'continue' on the Python program. These steps are repeated until sufficient scans are taken. A point cloud and visualization are then shown of the scanned room.
An example of the point cloud and the 3D scan of a hallway are shown below.
This project was designed for the MacHacks2022 Hackathon in collaboration with two other students. Our team placed 1st in the competition. Check out the full project here.
Our project takes the reactants and products of a chemical reaction in the form of SMILES and translates them into a machine-readable format. This is done by tokenizing individual molecules for relevant chemical features. The tokenization is inspired by byte-pair-encoding that is utilized in NLP. It is able to recognize recurring subunits across databases that may be of importance. These tokens are then assigned unique IDs using a dictionary so that they can be input into our model. Each reaction is input as a series of tokens. We used a Long short-term memory (LSTM) artificial recurrent neural network (RNN) to train our classifier. The model classifies reactions based on the class of the enzyme (Enzyme Commission Number).
We used Google Colab to work in a collaborative coding setting. To translate the given data to meaningful input to our machine, we used SMILES Pair Encoding (SMILES PE). SMILES PE learns the vocabulary of SMILES substrings from the ChEMBL dataset and uses the vocabulary to tokenize the values. We then created our own library of tokens and assigned unique IDs to each token. The IDs/tokens present in each reaction were then input into our model. The model was trained using an LSTM RNN. A model was used to predict the class of the enzyme (the first EC number). The training set was then split by the main class of each reaction, and 7 subclass models were trained to predict the subclasses. When evaluating the models, the main model first predicted the class of the reaction; the reaction was then fed into the corresponding submodel to determine the second EC number.
Working alongside two students, a device that remotely monitors improvements in recovery of rotator cuff injury and/or surgery was created. Our device communicates with a Bluetooth device to provide live feedback.
First, the clinician can assign a specific exercise for their patient. When the device is started, and an exercise has been selected, the patient receives prompts that let them know if they are safely executing their exercises. In addition, the frequency of incorrect motions will be logged so that the clinician can request additional information if needed. Secondly, there will also be weekly check-ins to look at the ROM of the shoulder to track recovery.
A C program was created to interface with the sensors and collect data to be logged into a text file. The logged data is then processed through MATLAB. Finally, the MATLAB program filters the data collected to produce the range of motion and weekly trend graphs.
I worked alongside three students to create this project. We created a wearable watch that acts as a preventative device to monitor carbon monoxide levels in the air. Our targetted end-users include workers, such as engineers, paramedics and miners.
I worked on the Python code and breadboard setup. The program I wrote allows for the incoming data from the gas sensor to be translated into sound, light and text messages using peripherals.
The Raspberry Pi was used as a "mini-computer" to house the code and provide power to components on the breadboard. The Grove Multichannel Gas Sensor was used to measure gas concentration in parts per million. The incoming data is filtered, and as concentrations of a gas increase, users are notified to alert them of the severity of the situation. A series of conditional statements were used in the code to specify the severity of the unsafe gas levels. A Bluetooth connection was used to send information from the Raspberry Pi to the user's cell phone.
Using a microcontroller, time of flight sensor and stepper motor, a LIDAR device was created to create a 3D spatial mapping of the surrounding indoors.
Learn MoreA classifier was trained to take in the reactants and products of a chemical reaction in the form of SMILES and translates them into a machine-readable format.
Learn MoreAn absolute orientation sensor was used to monitor the motion of the user’s shoulder in order to track improvements in rotator cuff injuries.
Learn MoreA gas sensor was used to track the levels of carbon monoxide and notify the user of unsafe levels via light, sound and text messages.
Learn More