This is an old revision of the document!
Card Dealer
Autor: Andrei Pîrlea
Grupa: 332CA
Introducere
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ă:
utilizarea unui microcontroler Arduino Uno pentru controlul componentelor
integrarea unui motor stepper pentru controlul rotației
folosirea unui motor DC pentru lansarea cărților
Descriere generală
Componente
Arduino Mega
Nema17 - Stepper Motor
TMC2209 - Motor Driver
Type-C Trigger Board
DC Motor
L293D - Motor Driver
Telecomandă IR
Modul Receptor IR KY-022
Ecran
Modul DC-DC LM2596
Mod de funcționare
Utilizatorul selectează numărul de participanți și alte opțiuni folosind o telecomandă cu senzor IR.
Sistemul primește comenzile de la telecomandă și interpretează codurile IR pentru a controla fluxul aplicației.
Arduino Uno trimite driverului numarul de pași care trebuie făcuți de motor pentru pozitia fiecărui jucator aflat la joc.
Dupa poziționarea dorită se rotește motorul DC pentru a lansa o carte, iar apoi se repetă punctul anterior.
Hardware Design
Utilizare PINI :
Arduino Mega:
D3, D4, D6, D7 - pini digitali pentru controlul driverului TMC2209
D32 - pin digital conectaț la receptorul IR
D10, D11, D12 - pini digitali conectați la L293D pentru controlul motorului DC
D20, D21 - pinii SDA și SCL conectați la LCD
5V, GND - pentru alimentare și ground
TMC2209:
STEP, DIR, EN - semnale de control din Arduino Mega
VIO, GND, VM - alimentare logică și pentru motor
A+, A-, B+, B- - ieșiri către motorul Nema17
Nema17:
L293D:
IN1, IN2, EN - controlați de Arduino
OUT1, OUT2 - conectate la motorul DC
Vcc1 - 5V pentru logică
Vcc2 - alimentare motor
GND - ground
Motor DC:
LCD:
Receptor IR:
Type-C Trigger Board:
Modul DC-DC LM2596:
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 |
Software Design
Proiectul este implementat pe platforma Arduino, folosind limbajul de programare C/C++ specific mediului Arduino IDE.
Laboratoare folosite
Laboratorul 0 – GPIO → folosit pentru configurarea pinului pentru receptorul IR.
Laboratorul 1 – UART → folosit pentru a afișa informații de debug în consola serială.
Laboratorul 2 – Întreruperi → folosit pentru tratarea semnalelor de la receptorul IR și implementarea debounce-ului pentru semnalele IR.
Laboratorul 3 – Timere / PWM →
Laboratorul 6 – I2C → folosit pentru afișajul pe ecran.
Biblioteci
Biblioteci externe folosite:
AccelStepper.h – pentru controlul motorului stepper
LiquidCrystal_I2C.h - pentru afișarea pe ecran
IRremote.hpp - pentru recepția și decodarea semnalelor de la telecomanda cu IR
Wire.h - pentru comunicarea I2C între microcontroller și ecranul LCD
Pseudocod
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
Link cod proiect
Jurnal
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi 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 Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF