This is an old revision of the document!
Nume: Radu Eduard-Andrei Grupa: 333CC
Un robot care foloseste 4 stepper-motors pentru a inclina un plan pe care se afla un touchpad rezistiv care poate detecta pozitia unul ball bearing. Va folosi 2 algoritmi de control de tip PID pentru a muta ball bearing-ul catre centrul sau (sau orice punct de pe suprafata lui.
M-am inspirat din videoclipuri vazute online, si l-am ales deoarece am vrut ca proiectul meu sa includa un algoritm de control. Nu are o utilitate practica, dar poate fi vazut ca o jucarie anti-stres.
Robotul este format din piese printate 3D si consta intr-o platforma care isi poate schimba unghiul cu suprafata orizontala prin intermediul celor 4 motoare care controleaza cela 4 picioare.
Se incearca balansarea unei bile de metal pe platforma. Pentru determinarea pozitiei bilei se foloseste un touchpad rezistiv.
Se foloseste un algoritm de control de tip PID pentru determinarea unghiului optim pentru ca bila sa ajunga in centrul platformei si sa ramana acolo.
Pentru implementare am folosit un arduino uno R3 cu procesor atmega328p. Am folosit biblioteca AccelStepper pentru controlul mai facil al motoarelor.
class PID { public: PID(float kP, float kI, float kD, float target); void set_target(int target); void update(int current); float get_value(); private: float kP; float kI; float kD; float target; float proportional; float integral; float derivative; }; PID::PID(float kP, float kI, float kD, float target) : kP(kP), kI(kI), kD(kD), target(target) { proportional = 0; integral = 0; derivative = 0; } void PID::set_target(int target) { this->target = target; this->proportional = 0; this->integral = 0; this->derivative = 0; } void PID::update(int current) { current -= 512; float normalized_current = current / 512.0; derivative = target - normalized_current - proportional; proportional = target - normalized_current; integral += proportional; } float PID::get_value() { return kP * proportional + kI * integral + kD * derivative; }
Am adaugat codul pentru algoritmul de control si modelele 3mf ale pieselor necesare in acest repository de github:https://github.com/radueduard/BallBalancingRobot