PID control

electronoobs
http://electronoobs.com/eng_arduino_tut102_code1.php https://www.youtube.com/watch?v=8uLUtXfphhg If you want to control DC brushed motors with PID and move axis in a close loop control, this video will show you what you must have in mind, the connections, parts you need and the used code for Arduino. Uses https://github.com/NicoHood/PinChangeInterrupt https://www.youtube.com/watch?v=ZDtRWmBMCmw pin change interrupt https://www.youtube.com/watch?v=Uv9UeYUsA8A timer interrupt https://www.youtube.com/watch?v=JFTJ2SS4xyA ball balance https://github.com/cactus314/PID-Ping-Pong-Balance (additional code by https://www.youtube.com/watch?v=-h1OtBgMqcE channel Patrick Ferrel. https://www.youtube.com/watch?v=AN3yxIBAxTA and code https://pastebin.com/1JeWYaaK brushless control

pbs
https://github.com/BPS-space/bps-space.github.io/blob/master/control-theory/index.md links to http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid-introduction/ https://web.archive.org/web/20210506165437/https://www.chrobotics.com/library/understanding-euler-angles https://web.archive.org/web/20210307022920/http://www.chrobotics.com/library/understanding-quaternions https://www.amazon.com/Control-System-Design-Introduction-State-Space/dp/0486442780/

geekee ceebee
http://geekeeceebee.com/PID%20Controller.html code interrupts, timer Arduino code. https://www.youtube.com/watch?v=QSIksPKndEs However the Interrupt service routine for the encoder could be much more simple: use this on one Hall sensor's pin: attachInterrupt(digitalPinToInterrupt(pin), ISR, mode), and the 'mode' should be 'RISING'And to get the direction in the 'interrupt service routine', you only have to check whether the other Hall sensor's pin is HIGH or LOW at that moment. https://www.youtube.com/watch?v=-P-6bMbQh1E pid position control. Trapezoidal summing and other methods for numerical integration.

curio res
https://www.youtube.com/watch?v=HRaZLCBFVDE https://github.com/curiores/ArduinoTutorials

Gregory Hoist
https://www.youtube.com/watch?v=fusr9eTceEo https://github.com/arduinoNube/digital-pid-classroom-demo https://web.archive.org/web/20180705033511/http://wescottdesign.com/articles/pid/pidWithoutAPhd.pdf

solutions cubed
https://web.archive.org/web/20180315024615/http://blog.solutions-cubed.com/pid-motor-control-with-an-arduino/ position control pid with dc motor. https://web.archive.org/web/20210509035614/http://www.solutions-cubed.com/motor-control/

curios scientist
https://www.youtube.com/watch?v=jTIRUXJKMX4 dc motor position control https://curiousscientist.tech/blog/dc-motor-position-control-using-pid

homofaciens.de
https://www.youtube.com/watch?v=PQ1FBcQT0AI https://homofaciens.de/technics-computer-arduino-uno_en.htm and https://homofaciens.de/download/wiper_motor_servo.zip code. BTS7960 shoot through delay of 10uS when switching hbridge current direction.

reddit
https://www.reddit.com/r/arduino/comments/n3uv9d/2nd_proper_project_ever_pid_toy_car_balance/

arduino
https://pastebin.com/YiTRSV8X line following bot with pid control

hackflight
Hackflight is a simple, platform-independent, header-only C++ toolkit for building multirotor flight controllers. It is geared toward people like me who want to tinker with flight-control firmware, and use it to teach students about ideas like inertial measurement and PID tuning.

Nikodem Bartnik
https://github.com/NikodemBartnik/ArduinoTutorials/tree/master/Encoded%20motor with arduino library

https://www.youtube.com/watch?v=zZ40o9QnoUY

PID control with pot feedback
https://github.com/X-Sim/X-PID-Arduino-PID-motor-control

int updateMotor2Pid(int targetPosition, int currentPosition) pid code xsim

u_k = Kp * e_k + Kd * (e_k - e_k-1) / dt + Ki * (sum (e_k * dt)) pid code from paparazzi github Paparazzi uav.

ardupilot github, Diydrones arducopter finite lowpass filter on derivative calculation, elimintes high frequency noise.

https://github.com/PiStuffing/Quadcopter See quadcopter.py for general io i2c and pid on raspberry

onion
https://onion.io/2bt-pid-control-python/

github
https://github.com/sebnil/Selfbalancing-robot PID, FIR links to brt3ttb

https://github.com/br3ttb/Arduino-PID-Library from http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid-introduction/

https://github.com/John-NY/Arduino_Oven_Controller_PID br3ttb implementation with basic usage examples.

https://github.com/filipmu/Marlin-Mackerel Lymann filament extrusion, temp control.

https://www.elektormagazine.com/labs/3d-printer-head-and-mat-temperature-controller-using-arduino-130500-i

https://github.com/ineslara21/I-see-you/blob/master/face_tracking.py face tracking

Segway
Segway clone

Journals
https://www.researchgate.net/publication/285759625_Optimal_PID_controller_design_through_swarm_intelligence_algorithms_for_sun_tracking_system

http://folk.ntnu.no/skoge/prost/proceedings/afcon03/Papers/050.pdf In this paper the Preitl and Precup equations for Symmetrical Optimum tuning are  further  refined  to  allow  explicit  specification  of  the  closed  loop  damping  factor. The resulting  tuned controller values are applied to position control of a dc servomotor. by Martin Braae  University cape town. http://folk.ntnu.no/skoge/prost/proceedings/afcon03/Papers/069.pdf

PID algorithm
Applied Control Theory for Embedded Systems" came out in April. See details at http://www.wescottdesign.com/actfes/actfes.html
 * http://groups.google.com/group/comp.arch.embedded/browse_thread/thread/68223435f15d9f1e/#
 * http://www.wescottdesign.com/articles/pidwophd.html.
 * http://www.wescottdesign.com/articles/articles.html, or buy my book:*
 * http://www.wescottdesign.com/actfes/actfes.html.
 * http://www.wescottdesign.com
 * http://www.chiefdelphi.com/media/papers/download/1829
 * http://www.wescottdesign.com/articles/MSK/mskTop.html Masters Thesis http://www.wescottdesign.com/articles/MSK/msk.pdf File  msk.pdf

Applied digital micro control

 * Microcontroller Based Applied Digital Control (Hardcover) by Ibrahim Chapters 10 and 11 round out the discussion with controller realization and a practical case study; A liquid level digital control system.
 * Microcontroller Based Temperature Monitoring & Control by Dogan Ibrahim
 * Digital PID controller.Closing the loop with a PIC, by Kohtz D. http://mgnet.me/bOUDbGa

inverted pendulum
https://www.youtube.com/watch?v=Fo7kuUAHj3s links to Lagrange derivation

Links
State machine using millis for crude multi tasking nick rehm dRehmFlight VTOL is a new flight controller and stabilization package intended to be used for small to medium sized hobby or research projects. dRehmFlight is the code, and the physical flight controller is a Teensy 4.0 microcontroller with an MPU6050 IMU. This lightweight flight controller can be used for anything from basic multirotors, to advanced VTOL configurations, to simple fixed wing platforms. See inverted pendulum control with drone.

Arduino code and Five_axis_mill low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328. The controller is written in highly optimized C utilizing every clever feature of the AVR-chips to achieve precise timing and asynchronous operation. It is able to maintain up to 30kHz of stable, jitter free control pulses Optical encoders oroboto.net Math for inverted pendulum PID control. https://controlguru.com/table-of-contents/ Development of the PID controller by Stuart Bennett (IEEE Control Systems)