This is an old revision of the document!
Acest proiect constă în realizarea unui dealer de cărți.
De ce un dealer de cărți și nu altceva? Pentru că mi se pare util și diferit de celelalte proiecte.
Din punct de vedere tehnic, acesta implică:
Utilizare PINI :
Listă de componente:
| Nume componentă | Link | Cantitate | Preț unitar (lei) | Preț final (lei) |
|---|---|---|---|---|
| Placa de dezvoltare Arduino MEGA 2560 | Link | 1 | 72.99 | 72.99 |
| Stepper Motor Nema17 | Link | 1 | 30.44 | 30.44 |
| Motor Driver TMC2209 | Link | 1 | 17.02 | 17.02 |
| USB-C Fast Charge Trigger Board 100W | Link | 1 | 9.60 | 9.60 |
| Motor Driver L293D | Link | 1 | 1.96 | 1.96 |
| DC Motor | Link | 1 | 4.95 | 4.95 |
| Modul DC-DC LM2596 | Link | 1 | 16.49 | 16.49 |
| Ecran | Link | 1 | 14.99 | 14.99 |
| Kit Telecomandă și Receptor IR | Link | 1 | 7.30 | 7.30 |
| Rulment Oscilant KFL001 | Link | 2 | 6.99 | 13.98 |
| Suruburi M3 | Link | 1 | 3.36 | 3.36 |
| Țeavă 12mm | Link | 1 | 11.02 | 11.02 |
| Alte șuruburi | Link | 1 | 2.00 | 2.00 |
| Bucăți de lemn | Link | 1 | 5.00 | 5.00 |
| Preț total: | 211.10 | ||||
|---|---|---|---|---|---|
Proiectul este implementat pe platforma Arduino, folosind limbajul de programare C/C++ specific mediului Arduino IDE.
Biblioteci externe folosite:
SETUP:
Initializează pinii butoanelo
Initializează driverul motorului DC
Initializează driverul motorului stepper
Initializează LCD-ul prin I2C
Initializează variabile
LOOP PRINCIPAL:
// Selectare număr jucători prin comenzi IR
DACĂ cod IR este recepționat:
INTERPRETEAZĂ codul pentru a identifica comanda (ex: cifra pentru număr jucători)
setează numar_jucatori corespunzător
Afișează pe LCD: "Jucători: " + numar_jucatori
Așteaptă o nouă comandă IR (debounce prin timp)
DACĂ numar_jucatori > 0 && start == 1:
Afișează pe LCD: "Distribuire cărți..."
PENTRU jucator ← 1 până la numar_jucatori:
// Mergi la poziția jucătorului
stepper.move(pași_necesari)
// Lansează cartea
PORNEȘTE motor_DC
AȘTEAPTĂ 100ms
OPREȘTE motor_DC
Afișează pe LCD: "Carte trimisă la Juc. " + jucator
// Resetare poziție
Afișează pe LCD: "Distribuire finalizată"
numar_jucatori ← 0
start ← 0
În urma realizării proiectului, am reușit să dezvolt un sistem automatizat de distribuire a cărților de joc, controlat printr-o telecomandă IR. Sistemul poate:
Funcționalitatea generală a fost conform așteptărilor, sistemul fiind stabil și ușor de utilizat în cadrul unui joc de societate.
Proiectul a demonstrat cum pot fi integrate mai multe componente hardware și software într-un sistem util. Utilizarea unei telecomenzi IR a simplificat interacțiunea și a adăugat flexibilitate. Prin acest proiect am aprofundat cunoștințe legate de controlul motoarelor, comunicația I2C, utilizarea semnalelor IR și organizarea logicii într-un sistem embedded complex. De asemenea, proiectul a fost o bună ocazie de a exersa gândirea modulară, testarea incrementală și talentul meșteșugăresc.
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 Alin, 331CC → :pm:prj2009:cc:dumitru_alin.