Control systems
Measuring error and driving physical behavior predictably despite noise, delay, saturation, and imperfect mechanics.
Projects
- 5-inch Carbon-Fiber FPV DroneA 5-inch carbon-fiber quadcopter I designed and built. I sized its propulsion and power from thrust, weight, and current calculations, configured and tuned Betaflight (PID loops, flight modes, GPS features, return-to-home), and evaluated GPS accuracy, RF link quality, and flight performance under GNSS jamming and IMU/GNSS integration constraints.
- easyPIDA hardware-agnostic Arduino PID controller library with independent instances, timing controls, anti-windup, derivative filtering, state introspection, and an optional relay autotuner.
- Brainiacs Autonomous Race CarA WRO Future Engineers vehicle dividing Jetson Nano perception from Arduino Mega real-time control, with OpenCV traffic-sign logic, PID steering, an MPU6050 IMU, and TCS34725 color sensing.
- PID Light TrackerAn Arduino project that uses light sensing and two servo axes to follow a light source with PID control.
- Water-shooting robotAn early Arduino mechatronics project: a stepper-driven lift sets nozzle height, a servo aims, a solenoid valve fires timed bursts, and a simple ballistic and water-level model estimates the required height for each target.
Writing
- Engineering a five-inch FPV drone from first principlesBuilding a five-inch FPV drone is an exercise in coupled constraints: every part you choose changes what the others have to do.
- Designing a PID library for real embedded controlThe PID equation is short. A controller that behaves predictably on an Arduino needs much more than three gains.
- Building an autonomous race car in twenty daysA small autonomous vehicle forced perception, control, power, mechanics, and team decisions into one unforgiving loop.
- What a two-axis light tracker teaches about PID controlA small Arduino robot turns control theory into something visible: error, overshoot, noise, saturation, and settling all happen in front of you.
- A first mechatronic loop without a pumpAn early Arduino project that hit targets with gravity-fed water bursts, and taught that the plant changes after every action.