Developed embedded firmware for the Pololu 3pi+ 2040 robot using C and Lingua Franca on a Raspberry Pi RP2040 microcontroller, managing real-time tasks in a bare-metal environment.
Designed multi-sensor navigation with accelerometer and gyroscope for tilt detection, line tracking with infrared sensors, and bump detection via GPIO interrupts, enabling stable autonomous navigation with response times under 5ms.
Implemented I2C communication for real-time sensor data acquisition, employing low-pass filtering and calibration to reduce noise by 20%, ensuring reliable sensor fusion and orientation control with ±1.5° accuracy.
Programmed precise motor control using encoder feedback and PID tuning, achieving less than 2% error in encoder count accuracy and consistent speed across slopes up to 15°.
Utilized concurrent state-machine modeling and task coordination in Lingua Franca to synchronize parallel processes—line tracking, motor control, and obstacle avoidance—achieving sub-millisecond timing precision for efficient resource management and seamless performance.
Skills: Embedded firmware, C programming, Lingua Franca, Bare-metal programming, Raspberry Pi RP2040, Multi-sensor integration, Tilt detection, Line tracking, Infrared sensors, GPIO interrupts, Real-time response, I2C communication, Sensor calibration, Noise reduction, Low-pass filtering, Orientation control, Motor control, PID tuning, Encoder feedback, Speed tracking, Concurrent state machines, Task synchronization, Sub-millisecond timing, Real-time systems, Autonomous navigation, Resource management.
Programmed the Sawyer Robot to solve a Rubik’s Cube by implementing the Kociemba algorithm, achieving a 98% accuracy in edge detection and color recognition through OpenCV.
Leveraged Moveit Cartesian path planning with dynamic constraints to enhance precision and control during solving operations, optimizing the robot’s responsiveness and accuracy.
Developed an intricately synchronized 3D model visualization with ROS Python for real-time analysis and debugging.
Skills: Forward/Inverse Kinematics, Motion Planning, Computer Vision, System Dynamics, Controls, ROS, Machine Learning (Linear Regression, Clustering), Sawyer Robot programming, Rubik’s Cube solving, Kociemba algorithm, Edge detection, Color recognition, OpenCV, Moveit Cartesian path planning, Dynamic constraints, Precision enhancement, Responsiveness optimization, 3D model visualization, ROS Python, Real-time analysis, Debugging.
Investigated force/torque sensing techniques in a Transcranial Magnetic Stimulation setup under Prof. Ronald Fearing, advancing precision for depression treatment research, and engineered a custom load cell testing bench to calibrate ATI Mini45 Force/Torque sensors with 93% accuracy using machine-learning linear regression.
Implemented UDP protocol and UART communication between wireless transmitters and embedded systems (ESP32 and STM32), evaluating PD controller performance across platforms with Lingua Franca and Zephyr RTOS for stability and response time optimization.
Skills: Force/torque sensing, Transcranial Magnetic Stimulation, Precision engineering, Depression treatment research, Load cell calibration, ATI Mini45 Force/Torque sensors, Machine learning regression, Linear regression, UDP protocol, UART communication, Wireless transmitters, Embedded systems, ESP32, STM32, PD controller evaluation, Lingua Franca, Zephyr RTOS, Stability optimization, Response time optimization.
Designed and implemented a 32 bits 3-stage pipelined RISC-V CPU on Xilinx PYNQ Platform with UART and audio synthesizer, achieved a clock frequency of 60.67 MHz with a CPI of 1.18.
Segmented the CPU into five modular submodules (IF, ID, EX, RegFile, DMEM), implemented synchronous memories, and integrated audio/IO components, optimizing critical path delay to 16.481 ns.
Developed and executed 10+ Verilog & SystemVerilog testbenches, identifying and resolving over 5 critical bugs through simulations and hardware testing, enhancing CPU performance and reliability.
Skills: RISC-V, FPGA, CPU, Memory-mapped I/O interface, UART, Digital Synthesizer, Sigma-Delta DAC.
Engineered a high-performance human voice detection system by integrating a band-pass filter on a mic-board, utilizing RC circuits, and optimizing ADC performance on the microcontroller.
Employed Principal Component Analysis (PCA) to classify command words with 96% accuracy.
Implemented real-time control algorithms, including PWM signal generation and feedback control, to optimize the car's responsiveness to user instructions.
Skills: Arduino, Circuit Analysis (KVL/KCL, Mic Board Circuits, Amplifiers, Band-pass Filter), Power Supply, Oscilloscope, DAC/ADC, Motor Control (Encoder, PWN, BJT, Regulator), System Identification.
Engineered a health monitoring system using Arduino UNO, MAX30102 sensor, and OLED display, successfully measuring and displaying heart rate (BPM) and oxygen saturation (SpO2) levels, enhanced with a buzzer for immediate alerts.
· Developed the renowned Pacman game, incorporating advanced heuristics for improved gameplay. Analyzed and compared various search algorithms, including Breadth-First Search (BFS), Depth-First Search (DFS), and A*. Implemented a multi-agent system utilizing Alpha-Beta pruning to optimize decision-making. Enhanced the ghost-tracking mechanism by integrating probabilistic models, specifically Bayesian Networks and Hidden Markov Models.
Skills: Algorithm, MDP, Object Oriented Programming (OOP), Python, AI.
Developed a tower defense game using Python, integrating strategic gameplay elements and dynamic user interactions.
Implemented a Java-based simulation of the renowned Enigma machine, the message encryption device used in WWII, replicating its encryption mechanisms and functionalities.
Created a Java-based version-control system, designed to emulate Git's core functionalities and workflow processes.
Developed and fine-tuned a high-speed matrix computation program in Python and C, modeled after NumPy's efficient computational capabilities.
Developed a neural network-based solution for classifying MNIST digits and identifying languages, tailoring distinct network architectures for each task.
Implemented a GridWorld Agent using Markov Decision Processes (MDP), Value Iteration, and Q-Learning algorithms to optimize decision-making and navigation strategies.
Developed a PID Controller for a cart-and-pendulum system, incorporating detailed stability and observability analyses to precisely control their positions.