This is an old revision of the document!


Inverted Pendulum

Introducere

Proiectul implementeazǎ un pendul invers ce balanseazǎ un obiect pe verticalǎ în sus folosind un algoritm de control - PID. Sunt mai multe variante de pendul invers, unele mai ușor de implementat (folosirea unei roți cu greutǎți - însuși greutatea, obiectul balansat face balansarea), sau ce am ales sǎ realizez eu, balansarea unui obiect independent de modulul de balansare folosind un motor la baza acestuia.

Ideea de la care am pornit a fost în sine echilibrarea unui pendul, vǎzând pe internet tot felul de self-balancing robots și aplicarea unui algoritm de control.

Proiectul poate fi folosit în sine pentru explicarea mai ușoara a PID-ului altor studenți, având un feedback live asupra ce fac cele 3 elemente din PID asupra unui sistem controlat, putând din interfața web sǎ aplici noi valori la un singur click.

Descriere generală

User-ul va putea trimite valori pentru PID live cǎtre main controller (ESP32) folosind un web server. ESP-ul va aplica algoritmul de control asupra unui Motor folosind valorile pentru PID primite din aplicația web.

Pentru ușurarea sistemului avem urmatoarele surse de input:

  • Poziția si viteza motorului care face balansarea pendulului.
  • Pozitia pendulului la momentul actual folosind un incremental rotary encoder.

Folosind aceste lucruri putem ajunge la poziția de control a pendulului.

Hardware Design

Listă de piese:

  • ESP32 DevKit V1 - ESP32-WROOM-32 240Mhz
  • Incremental Rotary Encoder - folosit pentru calcularea unghiului
  • Motor DC 12V, 280RPM
  • Sursa de tensiune in comutatie Meanwell 12V 75W
  • Buck-Converter LM2596HS-ADJ
  • INFINEON IFX9201SG 6A H-bridge motor driver
  • Pendul realizat din fibra de sticla
  • Diverse bracket-uri si componente printate 3D
  • Componente electronice de baza (condensatoare, rezistente, etc.)

Schema electrica motor driver:

Schema electrica full: schematic_invertedpendulum.pdf

Modelul 3D al PCB-ului:

Modelele 3D ale proiectului:

Stare actuala pendul: (Nu a venit inca PCB-ul)

Software Design

Platform.io Plaftorm.io este un mediu de dezvoltare built on top of VS Code, mult mai rapid si mai versatil decat simplul Arduino IDE, ce ofera posibilitatea programarii multor environment-uri, printre care si cel de la Esspressif32.

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2024/tdicu/tudor.petracovici.1716370282.txt.gz · Last modified: 2024/05/22 12:31 by tudor.petracovici
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0