Proportional–Integral–Derivative (PID) Controller#
This page describes information about a Proportional–Integral–Derivative Controller (a PID Controller or three-term controller). Rather than rely on the voltage sent to the motors to determine their speed (with each motor and gearbox requiring slightly different voltages) this uses a motor encoder that measures the speed of the motors themselves, then uses that to determine the difference between the intended and actual motor speeds. This is used to determine the distance each motor has traveled.
More later...
See: PID Controller on Wikipedia
Links#
- pimotors on github, by the author of Pootle's Place blog
- RobotPID (Complete PID in Python with integral etc.)
- Robert O'Hanlan's Robot PID
- Programming PID Control (Society of Robots)
- Reading encoder Tue Apr 10, 2018 12:04 am
- Python Rotary Encoder
The rest needs a lot of cleanup, titles, etc.
- https://www.microchip.com/forums/m337816.aspx
- https://onion.io/2bt-pid-control-python/
- https://pypi.org/project/simple-pid/ (too simple)
- http://code.activestate.com/recipes/577231-discrete-pid-controller/ (also too simple)
- https://www.oreilly.com/library/view/intelligent-iot-projects/9781787286429/26242fa7-713e-4e5d-b1dc-b5566a39d5b7.xhtml
- https://www.element14.com/community/community/raspberry-pi/blog/2019/02/12/pid-based-dc-motor-controller-project
- https://www.phidgets.com/docs21/DC_Motor_-_PID_Control
- http://robotsforroboticists.com/pid-control/
- https://www.stuffaboutcode.com/2014/10/raspberry-pi-initio-robot-driving.html
- https://github.com/martinohanlon/initio