This shows you the differences between two versions of the page.
pm:prj2024:fstancu:ioan.birjovanu [2024/05/24 09:32] ioan.birjovanu |
pm:prj2024:fstancu:ioan.birjovanu [2024/05/27 11:50] (current) ioan.birjovanu |
||
---|---|---|---|
Line 29: | Line 29: | ||
* **Servomotorul:** Un motor cu rotație fixă, unghiul de rotație al acestuia este controlat de microcontroller folosind un semnal PWM. | * **Servomotorul:** Un motor cu rotație fixă, unghiul de rotație al acestuia este controlat de microcontroller folosind un semnal PWM. | ||
* **Controllerul brushless:** Acesta controlează viteza de rotație a motorului brushless, primește valoarea PWM de la microcontroller. | * **Controllerul brushless:** Acesta controlează viteza de rotație a motorului brushless, primește valoarea PWM de la microcontroller. | ||
+ | |||
+ | <note tip> | ||
+ | Radiocomanda transmite receiverului 6 canale, dintre care noi folosim 4: | ||
+ | * Canalul 1: Joystick-ul drept, axa Ox - folosit pentru a controla virajul robotului. | ||
+ | * Canalul 2: Joystick-ul drept, axa Oy - folosit pentru a controla direcția de deplasare a robotului. | ||
+ | * Canalul 3: Joystick-ul stâng, axa Oy - folosit pentru a controla viteza motorului brushless. | ||
+ | * Canalul 5: Switch-ul A - folosit pentru a activa flamethrowerul. | ||
+ | </note> | ||
+ | |||
+ | {{ pm:prj2024:fstancu:flysky_schematic.jpg?770 }} | ||
+ | |||
+ | Astfel, acționând canalul 5 al teleccomenzii, robotul se va comporta în următorul fel: | ||
+ | |||
+ | {{ pm:prj2024:fstancu:robot_flame.jpg?770 }} | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 402: | Line 416: | ||
În codul de AVR, folosim hardware interrupts pe pinii de input pentru a identifica semnalele PWM de la receiverul radio, iar cu timerul 0 le măsurăm valoarea. Vom folosi apoi acele valori pentru a activa driverul de motoare DC pentru direcție, împreună cu servomotorul si controllerul de viteză pentru motorul brushless. Pentru a trimite un semnal PWM corespunzător valorii primite de la receiver la speed controller și servomotor, vom folosi timerul 1. | În codul de AVR, folosim hardware interrupts pe pinii de input pentru a identifica semnalele PWM de la receiverul radio, iar cu timerul 0 le măsurăm valoarea. Vom folosi apoi acele valori pentru a activa driverul de motoare DC pentru direcție, împreună cu servomotorul si controllerul de viteză pentru motorul brushless. Pentru a trimite un semnal PWM corespunzător valorii primite de la receiver la speed controller și servomotor, vom folosi timerul 1. | ||
- | ===== Rezultate Obţinute ===== | + | ===== Concluzii ===== |
+ | Acest proiect m-a ajutat să învăț despre programarea microprocesoarelor Atmel in AVR C, fără a folosi abstraction layer-ul oferit de Arduino IDE. De asemenea mi-a consolidat aptitudinile de CAD și de design de circuite. | ||
- | <note tip> | + | Abilitatea de a citi semnalele dintr-un receiver hobby-grade cu ajutorul unui microprocesor deschide o plajă largă de potențiale proiecte viitoare. |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
- | + | ||
- | ===== Concluzii ===== | + | |
===== Download ===== | ===== Download ===== | ||
- | + | <note tip> | |
- | <note warning> | + | Link Repository Git: [[https://github.com/IonutBirjovanu/AVR-BattleBot|BattleBot]] |
- | 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**. | + | |
</note> | </note> | ||
- | |||
- | ===== Jurnal ===== | ||
<note tip> | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | Arhiva care conține următoarele fisiere: |
+ | * 3D - un fisier cu toate piesele 3D folosite în proiectarea robotului. | ||
+ | * Battlebot - implementarea proiectului în Arduino | ||
+ | * media - conținut media cu robotul | ||
+ | * Schematic photos - figurile schematicelor robotului | ||
+ | * src - implementarea proiectului în AVR C | ||
</note> | </note> | ||
+ | |||
+ | {{pm:prj2024:fstancu:proiect_pm_birjovanu_ioan.zip|arhiva}} | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | **Resurse Software** |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * [[https://ocw.cs.pub.ro/courses/pm/lab/lab0-2023|Laboratorul 0: GPIO]] |
- | </note> | + | * [[https://ocw.cs.pub.ro/courses/pm/lab/lab2-2023|Laboratorul 2: Întreruperi, Timere]] |
+ | * [[https://ocw.cs.pub.ro/courses/pm/lab/lab3-2023-2024|Laboratorul 3: Timere, PWM]] | ||
+ | |||
+ | **Resurse Hardware** | ||
+ | * [[https://howtomechatronics.com/|HowToMechatronics]] | ||
+ | * [[https://electronoobs.com/|ElectroNoobs]] | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||