Differences

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

Link to this comparison view

pm:prj2025:atoader:alexandru.stefan03 [2025/05/28 01:56]
alexandru.stefan03 [Rezultate Obţinute]
pm:prj2025:atoader:alexandru.stefan03 [2025/05/28 02:06] (current)
alexandru.stefan03 [Concluzii]
Line 113: Line 113:
 {{:​pm:​prj2025:​atoader:​screenshot_2025-05-20_005906.png?​600|}} {{:​pm:​prj2025:​atoader:​screenshot_2025-05-20_005906.png?​600|}}
  
-Aici puneţi tot ce ţine de hardware design: 
-  * listă de piese 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) 
-  * diagrame de semnal ​ 
-  * rezultatele simulării 
  
  
 ===== Software Design ===== ===== Software Design =====
 +
 +==== Descrierea codului aplicației (firmware) ====
 +
 +  * **Mediu de dezvoltare:​** Arduino IDE, programarea s-a realizat în limbajul C/C++ specific platformei Arduino.
 +  ​
 +  * **Librării și surse 3rd-party:​**
 +    * `Stepper.h` – folosită pentru controlul motoarelor pas cu pas 28BYJ-48 prin driverele ULN2003.
 +    * `LiquidCrystal_I2C.h` – pentru controlul unui ecran LCD 1602 prin interfața I2C (cu backlight).
 +    * `SPI.h` și `SD.h` – pentru inițializarea și operarea modulului de card microSD pe magistrala SPI.
 +  ​
 +  * **Algoritmi și structuri implementate:​**
 +    * Mișcare sincronă a celor două motoare folosind funcția personalizată `stepTogether`,​ care calculează pașii proporțional în funcție de traiectoria dorită.
 +    * Funcții abstracte `stepX` și `stepY` pentru a naviga în planul X/Y, care țin cont de limitele de mișcare și actualizează poziția curentă.
 +    * Implementare a două moduri de desen: **zigzag** și **spirală**,​ selectabile cu un buton și afișate pe ecranul LCD.
 +    * Algoritm PWM software (cu `digitalWrite` și `delayMicroseconds`) pentru controlul vizual pe un LED conectat la pin analogic.
 +    * Comenzi seriale interpretate în `loop()` pentru a permite controlul manual al brațului desenator din tastatură (WASD și alte shortcut-uri).
 +  ​
 +  * **Funcții implementate principale:​**
 +    * `drawZigZag(int size)` – desenează modelul zigzag pe întreaga suprafață.
 +    * `drawSquareSpiral(int size)` – desenează o spirală pătrată cu pasul specificat.
 +    * `stepX(int steps)` și `stepY(int steps)` – mută bila în plan pe axele X/Y.
 +    * `center()` și `goHome()` – repoziționează bila în centrul sau la originea suprafeței.
 +    * `logFile = SD.open(...)` – scrie un log cu tipul desenului și timpul de execuție în milisecunde.
 +
 +----
  
  
-<note tip> 
-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 
-</​note>​ 
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-Desenare : https://​youtube.com/​shorts/​D8XvRboe0RU +  * [[https://​youtube.com/​shorts/​D8XvRboe0RU|Desenare (Sand Drawing)]] 
-Selectare moduri : https://​youtube.com/​shorts/​DJ0Bj3kJju0 +  * [[https://​youtube.com/​shorts/​DJ0Bj3kJju0|Selectare moduri]] 
-LED PWM : https://​youtube.com/​shorts/​nIZXOoKpGAE+  * [[https://​youtube.com/​shorts/​nIZXOoKpGAE|Control PWM pe LED]] 
  
  
Line 141: Line 155:
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download =====+Proiectul „Sand Drawing Machine” a fost o oportunitate excelentă de a combina partea de hardware cu cea software într-o aplicație creativă și interactivă. Utilizând un Arduino Uno, două motoare pas cu pas 28BYJ-48 și un ecran LCD cu interfață I2C, am reușit să construiesc un dispozitiv care poate desena modele precum spirale și zigzaguri într-un strat de nisip, cu ajutorul unei bile metalice ghidate magnetic.
  
-<note warning>​ +Pe parcursul dezvoltării am întâlnit provocări legate de sincronizarea motoarelorcontrolul precis al pozițieicitirea ​de pe cardul SD șafișarea informațiilor ​pe LCD, dar toate acestea au fost depășite prin testare și implementarea unor soluții personalizate.
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surseschemeetc. Un fişier README, un ChangeLog, un script ​de compilare ş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 Alin331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**+Funcționalitățile software, precum controlul PWM al LED-ului, salvarea logurilor ​pe cardul SD și comutarea modurilor prin buton, au adus un plus de interactivitate proiectuluiAm învățat importanța gestionării resurselor hardware limitate ale microcontrollerului,​ precum și avantajele modularizării codului ​în funcții clare. 
-</​note>​+ 
 +Consider că proiectul poate fi extins în viitor prin adăugarea unor senzori pentru auto-calibrare,​ integrarea unei aplicații mobile pentru control ​de la distanță ​sau adăugarea unor modele mai complexe citite de pe fișiere externe. 
 + 
 +**În concluzie**, Sand Drawing Machine demonstrează cu succes cum pot fi combinate cunoștințele de electronică,​ programare și design pentru a crea un sistem funcțional,​ estetic și educativ
 + 
 +===== Download =====
  
-===== Jurnal =====+{{:​pm:​prj2025:​atoader:​cod_sand_drawing.zip|}}
  
-<note tip> 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. 
-</​note>​ 
  
-===== Bibliografie/​Resurse ===== 
  
-<​note>​ 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. 
-</​note>​ 
  
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ 
  
pm/prj2025/atoader/alexandru.stefan03.1748386577.txt.gz · Last modified: 2025/05/28 01:56 by alexandru.stefan03
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