This shows you the differences between two versions of the page.
|
pm:prj2026:florin.stancu:dana_maria.caruntu [2026/05/06 22:43] dana_maria.caruntu [Hardware Design] |
pm:prj2026:florin.stancu:dana_maria.caruntu [2026/05/15 02:55] (current) dana_maria.caruntu [Hardware Design] |
||
|---|---|---|---|
| Line 33: | Line 33: | ||
| * Fire de conexiune Dupont (Mama-Tata, Mama-Mama) | * Fire de conexiune Dupont (Mama-Tata, Mama-Mama) | ||
| * Elemente de fixare (coliere plastic, banda dublu adeziva) si un pix/carioca | * 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.g. Procyon 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 3) surse ş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 buffer) pentru 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 ===== | ||