This project implements an embedded graphical interface for PID control.
The idea behind this project is allow user to control speed motor using PID (Proportional - Integral - Derivative) control system from an simple graphical interface.
This project uses a microcontroller plataform (STM32
) to implement a real PID control for DC motor control.
Development was done using STM32F746g-Discovery
board from STMicroelectronics
The first screen contains buttons and controls for update/clear PID variables and set point
The second screen contains two widgets to monitor input and output system values, PWM duty cycle to mosfet driver and RPM
The third screen contains a graph to show data
To build this project you need:
- A PC
host
runingGNU/Linux
- Toolchain arm-none-gnueabi-gcc for
arm cortex M
microcontrollers Make
tool to useMakefile
- Library LVGL (up to
7.0
) - OpenOCD tool for build/debug firmware
- STM32CubeMX to change peripheral
- CMSIS DSP to PID control
To run this project you need
- Devboard STM32F746g-Discovery
- DC motor 200RPM 3-6V,
- Driver Mosfet Irf 520
- RPM sensor (based on LM393)
- Encoder disc 20 steps
- Low pass filter
You can see the application running here