luni, 8 iunie 2020

Robotel cu automentinere pe verticala (Self Balancing Robot)

    Avand la dispozitie 2 motoreductoare cu roti, am zis sa testez si eu un asa-zis robotel cu automentinere pe verticala. Tentatia a fost sa fac unul ce se deplaseaza controlabil de pe un telefon cu ESP8266, dar am zis ca mai bine ma obisnuiesc cu controlul PID folosit si am testat un sistem cu Arduino, care doar isi mentine pozitia pe vericala (sau cel putin incearca).
    Dintre multele articole si materiale, m-am oprit la https://circuitdigest.com/microcontroller-projects/arduino-based-self-balancing-robot
si am testat programul, pentru a vedea macar ca se compileaza. Elementul de baza este senzorul MPU6050 care este un accelerometru cu giroscop.
   Trecand de pasul asta, am facut un montaj de test pe un breadboard dupa schema 
doar ca am pus doar leduri cu rezistente de 220Ω, pentru limitare curent.
incarcand programul, am constatat ca in functie de inclinare, s-ar comanda rotirea controlata a motoarelor, pentru compensarea pozitiei verticale:
    Am facut 2 filmulete:


    Am mai studiat diverse materiale si am realizat ca trebuie sa fac o "calibrare" a senzorului folosind programul MPU6050_calibration.ino si sa le introduc in programul robotelului:
   Deoarece echilibrul este cel mai important, am preferat sa aleg alt cadru, dupa proiectul de la https://www.thingiverse.com/thing:3369262
   Cadrul a fost printat de colegul meu, Catalin, deoarece imprimanta mea este indisponibila momentan, din cauza spatiului.
   Am facut mici modificari la suportii motoarelor, deoarece design-ul original nu e cel optim:
   Am dat gauri pentru a fixa modulul cu L298:
   Intre timp, am primit de la prietenul meu Tom, mai multe cablaje, dintre care si unul pentru robotel, pe care il proiectasem in Eagle PCB software:
   Am fixat si montajul cu Arduino si sistemul de alimentare cu 2 acumulatori 16850 cu BMS 2S:
   Am facut mici modificari ale programului original, pentru a schimba usor parametrii, de exemplu pozitia de echilibru si unghiurile maxime de mentinere:
   Initial, cei 3 parametrii PID (kp, kd, ki) trebuie sa fie pusi in zero, apoi se modifica pe rand pana robotul este stabil sau face miscari ce il fac sa stea pe verticala. Foarte util pentru alegerea acestor 3 parametrii este filmuletul How to Tune PID values for Self Balacing Bot din articolul original.
  De exemplu, in articol parametrii erau
iar eu am reusit sa il fac sa fie cat de cat ok cu parametrii:
   Am facut 3 filmulete in diverse stadii ale testelor:
DIY Self Balancing Robot using Arduino
DIY Self Balancing Robot using Arduino (2)
DIY Self Balancing Robot using Arduino (3)

Niciun comentariu:

Trimiteți un comentariu