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:32]
alexandru.stefan03 [Bill of Materials (BOM)]
pm:prj2025:atoader:alexandru.stefan03 [2025/05/28 02:06] (current)
alexandru.stefan03 [Concluzii]
Line 28: Line 28:
  
   * **Modul SD + Card SD (SPI)**  ​   * **Modul SD + Card SD (SPI)**  ​
-    - Stochează ​fișierele cu modelele de desen.+    - Stochează ​timestamp-uri pentru ​desen.
     - Arduino accesează datele prin SPI.     - Arduino accesează datele prin SPI.
  
Line 97: Line 97:
 LCD-ul 1602 comunică cu Arduino prin interfață I2C și afișează modul curent de desen. LCD-ul 1602 comunică cu Arduino prin interfață I2C și afișează modul curent de desen.
  
-Modulul ​CH376S ​este conectat prin interfață SPI și citește ​fișiere `.TXT` ​de pe un SD Card drive ce conțin coordonate de mișcare.+Modulul ​SD este conectat prin interfață SPI și scrie fișiere `.TXT` pe un SD Card log-urile.
  
 Butonul permite utilizatorului să schimbe între diverse moduri de desen. Butonul permite utilizatorului să schimbe între diverse moduri de desen.
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 =====
  
-<note tip> +  * [[https://​youtube.com/​shorts/​D8XvRboe0RU|Desenare (Sand Drawing)]] 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+  * [[https://​youtube.com/​shorts/​DJ0Bj3kJju0|Selectare moduri]] 
-</note>+  * [[https://​youtube.com/​shorts/​nIZXOoKpGAE|Control PWM pe LED]] 
 + 
 + 
  
 ===== 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.1748385178.txt.gz · Last modified: 2025/05/28 01:32 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