Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2026:florin.stancu:dana_maria.caruntu [2026/05/06 21:58]
dana_maria.caruntu
pm:prj2026:florin.stancu:dana_maria.caruntu [2026/05/15 02:55] (current)
dana_maria.caruntu [Hardware Design]
Line 7: Line 7:
   * **Scopul lui:** Obiectivul este crearea unui plotter mobil, complet independent de sine sau axe fixe de ghidaj, care sa transforme calculele geometrice si comenzile primite (via USART) in arta fizica 2D.   * **Scopul lui:** Obiectivul este crearea unui plotter mobil, complet independent de sine sau axe fixe de ghidaj, care sa transforme calculele geometrice si comenzile primite (via USART) in arta fizica 2D.
   * **Ideea de la care am pornit:** Inspiratia a venit din nostalgia jucariilor copilariei (Spirograph) si din conceptul "​Turtle Graphics"​ (limbajul Logo). Am dorit sa reproduc acel mecanism de generare a formelor abstracte, dar folosind o abordare de inginerie embedded si programare bare-metal.   * **Ideea de la care am pornit:** Inspiratia a venit din nostalgia jucariilor copilariei (Spirograph) si din conceptul "​Turtle Graphics"​ (limbajul Logo). Am dorit sa reproduc acel mecanism de generare a formelor abstracte, dar folosind o abordare de inginerie embedded si programare bare-metal.
-* **De ce este util:** Pentru echipa este un exercitiu excelent de intelegere a cinematicii,​ controlului prin PWM si procesarii asincrone la nivel bare-metal. Pentru ceilalti, poate servi ca platforma educationala pentru a intelege cum algoritmii software se traduc direct in miscari mecanice.+  ​ **De ce este util:** Pentru echipa este un exercitiu excelent de intelegere a cinematicii,​ controlului prin PWM si procesarii asincrone la nivel bare-metal. Pentru ceilalti, poate servi ca platforma educationala pentru a intelege cum algoritmii software se traduc direct in miscari mecanice.
 ===== Descriere generală ===== ===== Descriere generală =====
  
Line 16: Line 16:
 </​note>​ </​note>​
  
 +{{:​pm:​prj2026:​florin.stancu:​diagramabloc.png?​800|}}
 ===== Hardware Design ===== ===== Hardware Design =====
  
-<note tip> +Design-ul fizic se bazeaza ​pe un sasiu circular pentru a permite rotatii precise pe locavand instrumentul de scris montat exact in centrul geometric pentru a asigura trasarea corecta a formelor matematiceConexiunile sunt realizate prin fire Dupont, separand logica de forta.
-Aici puneţi tot ce ţine de hardware design: +
-  * listă de piese +
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-urie.ghttp://​www.captain.at/​electronic-atmega16-mmc-schematic.png) +
-  * diagrame de semnal  +
-  * rezultatele simulării +
-</​note>​+
  
 +**Lista de piese:**
 +
 +  * 1 x Microcontroler ATmega324P (pe placa de dezvoltare)
 +  * 1 x Kit Sasiu Robot Rotund 2WD (include 2 roti motoare, 2 roti de sprijin)
 +  * 1 x Modul Driver Motoare Dual L298N
 +  * 1 x Modul Bluetooth HC-05 (interfata UART wireless)
 +  * 1 x Servomotor SG90 (pentru mecanismul Pen-Up/​Down)
 +  * 2 x Motoare DC cu reductor (incluse in kit)
 +  * 1 x Baterie 9V + Conector (alimentare logica microcontroler)
 +  * 1 x Suport 4 baterii AA (alimentare forta driver motoare)
 +  * Fire de conexiune Dupont (Mama-Tata, Mama-Mama)
 +  * Elemente de fixare (coliere plastic, banda dublu adeziva) si un pix/carioca
 +
 +^ Board Pin ^ Function ^ Component ^ Direction ^ Description ^
 +| Pin 4 | Digital Out | Driver L298N (IN1) | Output | Direcție motor stâng |
 +| Pin 5 | Digital Out | Driver L298N (IN2) | Output | Direcție motor stâng |
 +| Pin 6 | Digital Out | Driver L298N (IN3) | Output | Direcție motor drept |
 +| Pin 7 | Digital Out | Driver L298N (IN4) | Output | Direcție motor drept |
 +| Pin 10 | PWM Out | Driver L298N (ENA) | Output | Viteză motor stâng |
 +| Pin 11 | PWM Out | Driver L298N (ENB) | Output | Viteză motor drept |
 +| Pin 9 | PWM Out | Servomotor SG90 | Output | Control unghi braț |
 +| Pin 0 (RX) | UART RX | Bluetooth HC-05 | Input | Recepție date |
 +| Pin 1 (TX) | UART TX | Bluetooth HC-05 | Output | Transmisie date |
 +
 +
 +==== Schematic ====
 +{{:​pm:​prj2026:​florin.stancu:​schematic_spirobot.jpeg?​800|}}
 ===== Software Design ===== ===== Software Design =====
  
  
-<​note ​tip> +Dezvoltarea software este de tip bare-metal, bazată pe procesarea asincronă a comenzilor și controlul precis al mișcărilor. 
-Descrierea codului aplicaţiei (firmware): + 
-  * mediu de dezvoltare ​(if any) (e.g. AVR Studio, CodeVisionAVR) +  * **Mediu ​de dezvoltare:** C folosind avr-gcc și VS Code
-  * librării şi surse 3rd-party ​(e.gProcyon AVRlib+  * **Librării:** Exclusiv bibliotecile standard AVR (`<avr/io.h>`, `<​avr/​interrupt.h>`, `<​util/​delay.h>​`). 
-  * algoritmi şi structuri ​pe care plănuiţi să le implementaţi +  * **Algoritmi și structuri:** 
-  * (etapa 3surse şi funcţii implementate +    * **Cinematică de tracțiune diferențială:** Calculează cât timp trebuie acționate roțile la un anumit nivel PWM pentru a parcurge o distanță sau a executa o rotație la un unghi dat. 
-</note>+    **Parser de comenzi:** Un buffer simplu de tip inel (ring bufferpentru a stoca comenzile primite prin Bluetooth fără a bloca execuția. 
 +  * **Surse și funcții implementate:** 
 +    * `init_system()`:​ Configurează UART și Timerele pentru PWM. 
 +    * `ISR(USART0_RX_vect)`:​ Rutina de tratare a întreruperii pentru preluarea caracterelor trimise de pe telefon/PC. 
 +    * `set_pen(uint8_t state)`: Ajustează unghiul servomotorului pentru a ridica sau coborî pixul. 
 +    * `draw_segment(int speed_left, int speed_right,​ int duration)`: Comandă driverul L298N pentru a executa traiectoria calculată.
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
pm/prj2026/florin.stancu/dana_maria.caruntu.1778093919.txt.gz · Last modified: 2026/05/06 21:58 by dana_maria.caruntu
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