This repository contains educational control system software, MATLAB/Simulink models, and Arduino firmware developed for laboratory training in the gPBL Control System Design with Arduino and MATLAB program.
Because this code interacts directly with physical hardware actuators (DC motors, servo motors) and high-current driver ICs (TA7291P), safety and physical operational security are of utmost importance.
When executing any scripts or Simulink models in this repository:
-
Current and Voltage Limits: Always use a current-limited DC bench power supply for the motor drive circuit (
$V_{CC2} \leq 12\text{V}$ , limit$\leq 1\text{A}$ ). Never connect high-voltage power supplies directly to the Arduino pins. - Common Ground (GND): Ensure a solid, unbroken ground reference between the Arduino GND, external motor power supply GND, and sensor GND to prevent floating voltages that could destroy the microcontroller's ATmega2560 ADC.
- Mechanical Clearing: Ensure the Ball & Beam track and motor gearboxes have clear physical clearance before running real-time feedback controllers. Unstable gain tuning can drive the actuator into mechanical endstops at high speed.
- Emergency Stop: Keep one hand on the power supply switch or USB disconnect cable during initial closed-loop controller tests.
If you discover a security vulnerability or serious physical safety hazard in any of the scripts, model builders, or firmware:
- Do not disclose publicly in a public GitHub issue.
- Contact the maintainer directly via GitHub Security Advisories or email:
thang.nguyen@hcmut.edu.vn(or via private GitHub repository message). - Please provide:
- Description of the vulnerability or risk (e.g., buffer overflow in
adiosrv.ino, unsafe execution of system commands, unbounded PWM output). - Steps to reproduce the issue.
- Suggested mitigation or patch.
- Description of the vulnerability or risk (e.g., buffer overflow in
We will review the report promptly and publish an advisory and fix where appropriate.
| Version / Branch | Supported | Notes |
|---|---|---|
main (Latest) |
Yes | Actively maintained with current fixes |
v1.0.x Releases |
Yes | Recommended for standard laboratory experiments |
| Older commits | No | Please upgrade to latest main |