Table of Contents

Nume proiect

Introducere

Prezentarea pe scurt a proiectului:

Descriere generală

Descriere module

Mod de interacțiune

  1. Utilizatorul apasă un buton → Arduino detectează schimbarea.
  2. Arduino citește fișierul de pe cardul SD.
  3. Arduino trimite comenzi către driver-ele motoarelor.
  4. Magnetul se mișcă sub nisip și atrage bila → creează desenul.
  5. Display-ul OLED afișează modul activ.

Hardware Design

Listă de piese

Materiale suplimentare

Bill of Materials (BOM)

Nr. Componentă Descriere
1 Arduino UNO R3 Microcontroller principal
2 2x 28BYJ-48 + 2x ULN2003 Driver Motoare pas cu pas + drivere ULN2003
3 LCD 1602 I2C Display pentru afișare moduri desen
4 Micro SD Card Adapter Modul scriere fișiere pe Micro SD
5 Buton push Selectare mod desen
6 Breadboard 800 puncte Pentru conexiuni temporare
7 Fire (40 bucăți) Conexiuni între componente
8 Sursă alimentare 5V Alimentare pentru Arduino
9 Bila metalică + magnet neodim Componente mecanice pentru desen

Funcționalitate hardware

Dispozitivul se bazează pe un Arduino UNO, care controlează două motoare pas cu pas 28BYJ-48, fiecare legat la un driver ULN2003. Cele două motoare mișcă un magnet într-un plan XY sub o tavă cu nisip, ghidând o bilă metalică pentru a desena modele.

LCD-ul 1602 comunică cu Arduino prin interfață I2C și afișează modul curent de desen.

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.

Pini folosiți (Arduino UNO)

Componentă Pin Arduino Tip conexiune Detalii tehnice
Stepper 1 D8-D11 PWM Control IN1-IN4 prin ULN2003
Stepper 2 D4-D7 PWM Control IN1-IN4 prin ULN2003
LCD I2C A4 (SDA), A5 (SCL) I2C Comunicare I2C standard la 0x27
CH376S D0 (RX), D1 (TX) SPI Comunicarea SPI pentru citirea SD Card
Buton D12 Digital Input

Software Design

Descrierea codului aplicației (firmware)


Rezultate Obţinute

Concluzii

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.

Pe parcursul dezvoltării am întâlnit provocări legate de sincronizarea motoarelor, controlul precis al poziției, citirea de pe cardul SD și afișarea informațiilor pe LCD, dar toate acestea au fost depășite prin testare și implementarea unor soluții personalizate.

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 proiectului. Am învățat importanța gestionării resurselor hardware limitate ale microcontrollerului, precum și avantajele modularizării codului în funcții clare.

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

cod_sand_drawing.zip