Differences

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

Link to this comparison view

pm:prj2025:eradu:andrei.pirlea [2025/05/23 00:51]
andrei.pirlea
pm:prj2025:eradu:andrei.pirlea [2025/05/30 00:14] (current)
andrei.pirlea
Line 19: Line 19:
  
 ===== Descriere generală ===== ===== Descriere generală =====
-{{ :​pm:​prj2025:​eradu:​andrei_pirlea_schema_bloc2.png |}}+ 
 +{{ :​pm:​prj2025:​eradu:​andrei.pirlea:​diagrama_finala.png |}}
  
 === Componente === === Componente ===
Line 29: Line 30:
   * DC Motor   * DC Motor
   * L293D - Motor Driver   * L293D - Motor Driver
-  * Butoane+  * Slip Ring 
 +  * Telecomandă IR 
 +  * Modul Receptor IR KY-022
   * Ecran   * Ecran
-  * Rezistori 
   * Modul DC-DC LM2596   * Modul DC-DC LM2596
  
 === Mod de funcționare === === Mod de funcționare ===
  
-  * Utilizatorul selectează ​cu ajutorul butoanelor ​numărul de participanți.+  * 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.   * 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.   * Dupa poziționarea dorită se rotește motorul DC pentru a lansa o carte, iar apoi se repetă punctul anterior.
Line 43: Line 46:
 ===== Hardware Design ===== ===== Hardware Design =====
  
-{{ :​pm:​prj2025:​eradu:​andrei_schematic.png?750 |}}+{{ :​pm:​prj2025:​eradu:​andrei.pirlea:​schema.png?750 |}} 
 + 
 +** 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: 
 +        * Conectat la ieșirile driverului TMC2209 (A și B) 
 +    * 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: 
 +        * Conectat la ieșirile driverului L293D 
 +    * LCD: 
 +        * ** SDA, SCL ** - conectați la Arduino 
 +        * ** Vcc ** - alimentare 5V 
 +        * ** GND ** - ground 
 +    * Receptor IR: 
 +        * Conectat la D32 
 +    * Type-C Trigger Board: 
 +        * ** VCC, GND ** - conectat la sursă de alimentare externă 
 +        * Alimentează LM2596 
 +    * Modul DC-DC LM2596: 
 +        * ** IN+, IN- ** - conectat la sursa Type-C 
 +        * Alimentează restul componentelor 
  
 **Listă de componente**:​ **Listă de componente**:​
Line 50: Line 88:
 | Stepper Motor Nema17 | [[https://​www.aliexpress.com/​item/​1005007883526124.html?​spm=a2g0o.order_list.order_list_main.11.1e991802qL2SdZ |Link]] | 1 | 30.44 | 30.44 | | Stepper Motor Nema17 | [[https://​www.aliexpress.com/​item/​1005007883526124.html?​spm=a2g0o.order_list.order_list_main.11.1e991802qL2SdZ |Link]] | 1 | 30.44 | 30.44 |
 | Motor Driver TMC2209 | [[https://​www.aliexpress.com/​item/​1005007284793233.html?​spm=a2g0o.order_list.order_list_main.22.1e991802qL2SdZ |Link]] | 1 | 17.02 | 17.02 | | Motor Driver TMC2209 | [[https://​www.aliexpress.com/​item/​1005007284793233.html?​spm=a2g0o.order_list.order_list_main.22.1e991802qL2SdZ |Link]] | 1 | 17.02 | 17.02 |
 +| Slip Ring | [[https://​a.aliexpress.com/​_EvOdmWO |Link]] | 1 | 19.00 | 19.00 |
 | USB-C Fast Charge Trigger Board 100W | [[https://​www.aliexpress.com/​item/​1005007321092831.html?​spm=a2g0o.order_list.order_list_main.28.1e991802qL2SdZ |Link]] | 1 | 9.60 | 9.60 | | USB-C Fast Charge Trigger Board 100W | [[https://​www.aliexpress.com/​item/​1005007321092831.html?​spm=a2g0o.order_list.order_list_main.28.1e991802qL2SdZ |Link]] | 1 | 9.60 | 9.60 |
 | Motor Driver L293D | [[https://​www.aliexpress.com/​item/​1005007796377595.html?​spm=a2g0o.productlist.main.6.57487c046nDdig&​algo_pvid=929d5b7a-c209-48e4-9187-78a439f8f529&​algo_exp_id=929d5b7a-c209-48e4-9187-78a439f8f529-5&​pdp_ext_f=%7B%22order%22%3A%2263%22%2C%22eval%22%3A%221%22%7D&​pdp_npi=4%40dis%21RON%2131.61%219.80%21%21%2148.33%2114.98%21%40210385bb17471772442597475ed23f%2112000042232992934%21sea%21RO%211637254093%21X&​curPageLogUid=XpH27NcxIz3l&​utparam-url=scene%3Asearch%7Cquery_from%3A |Link]] | 1 | 1.96 | 1.96 | | Motor Driver L293D | [[https://​www.aliexpress.com/​item/​1005007796377595.html?​spm=a2g0o.productlist.main.6.57487c046nDdig&​algo_pvid=929d5b7a-c209-48e4-9187-78a439f8f529&​algo_exp_id=929d5b7a-c209-48e4-9187-78a439f8f529-5&​pdp_ext_f=%7B%22order%22%3A%2263%22%2C%22eval%22%3A%221%22%7D&​pdp_npi=4%40dis%21RON%2131.61%219.80%21%21%2148.33%2114.98%21%40210385bb17471772442597475ed23f%2112000042232992934%21sea%21RO%211637254093%21X&​curPageLogUid=XpH27NcxIz3l&​utparam-url=scene%3Asearch%7Cquery_from%3A |Link]] | 1 | 1.96 | 1.96 |
 | DC Motor | [[https://​www.optimusdigital.ro/​ro/​motoare-motoare-fara-reductor/​359-motor-130-08400.html |Link]] | 1 | 4.95 | 4.95 | | DC Motor | [[https://​www.optimusdigital.ro/​ro/​motoare-motoare-fara-reductor/​359-motor-130-08400.html |Link]] | 1 | 4.95 | 4.95 |
-| Modul DC-DC LM2596 | [[https://​www.optimusdigital.ro/​ro/​surse-coboratoare-reglabile/​805-modul-dc-dc-lm2596-cu-afisaj-de-tensiune.html |Link]] | | 16.49 | 32.98 |+| Modul DC-DC LM2596 | [[https://​www.optimusdigital.ro/​ro/​surse-coboratoare-reglabile/​805-modul-dc-dc-lm2596-cu-afisaj-de-tensiune.html |Link]] | | 16.49 | 16.49 |
 | Ecran | [[https://​www.optimusdigital.ro/​ro/​optoelectronice-lcd-uri/​62-lcd-1602-cu-interfata-i2c-si-backlight-galben-verde.html |Link]] | 1 | 14.99 | 14.99 | | Ecran | [[https://​www.optimusdigital.ro/​ro/​optoelectronice-lcd-uri/​62-lcd-1602-cu-interfata-i2c-si-backlight-galben-verde.html |Link]] | 1 | 14.99 | 14.99 |
-Buton | [[https://​www.optimusdigital.ro/​ro/​butoane-i-comutatoare/​1119-buton-6x6x6.html?search_query=buton&​results=212 ​|Link]] | 0.36 0.72 +Kit Telecomandă și Receptor IR | [[https://​www.optimusdigital.ro/​ro/​kituri/4780-kit-telecomanda-i-receptor-infrarou.html?srsltid=AfmBOooKlVJgpe0fQMocjd3dbAA9I1sa-uNzTN2lKRLx5Q7FdGDBIPFV ​|Link]] | 7.30 7.30 
-Rezistor| [[https://​www.optimusdigital.ro/​ro/​componente-electronice-rezistoare/1088-rezistor-025w-100k.html?search_query=rezistor+10k&​results=13 |Link]] | 2 | 0.10 0.20 |+Rulment Oscilant KFL001 ​| [[https://​www.optimusdigital.ro/​ro/​mecanica-rulmenti/3778-rulment-oscilant-kfl001-cu-diametru-intern-12-mm-orizontal.html |Link]] | 2 | 6.99 | 13.98 | 
 +| Suruburi M3 | [[https://​www.dedeman.ro/​ro/​surub-cu-cap-inecat-crestat-cu-piulita-otel-zincat-alb-m3-x-30-mm-12-bucati/​p/​6014476?srsltid=AfmBOoqXUtdJHgbjqW1GqJJ2IQqxaGy3bo8oylzEe5RuAGn84dE7VU1D |Link]] | 1 | 3.36 | 3.36 | 
 +| Țeavă 12mm | [[https://​www.dedeman.ro/​ro/​teava-rotunda-otel-1000-x-12-x-1-mm/​p/​6026778?​srsltid=AfmBOopgjwd2SmEGz65jWSfqTWLtZ4-egZ3FSbFBK4Tw68ksoqZSLMKI ​|Link]] ​| 1 | 11.02 | 11.02 | 
 +| Alte șuruburi | [[https://​vadania.com/​wp-content/​uploads/​2023/​03/​image-3-1024x576.png |Link]] | 1 | 2.00 | 2.00 | 
 +| Bucăți de lemn | [[https://​cdn.shopify.com/​s/​files/​1/​0913/​3370/​files/​timber_large.jpg?​16104878114065735485 |Link]] | 1 5.00 5.00 |
  
-^ **Preț total:** ||||^ **185.85** ^+^ **Preț total:** ||||^ **230.10** ^
  
-<note tip> 
-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 
-</​note>​ 
  
 ===== Software Design ===== ===== Software Design =====
  
 Proiectul este implementat pe platforma Arduino, folosind limbajul de programare C/C++ specific mediului Arduino IDE. Proiectul este implementat pe platforma Arduino, folosind limbajul de programare C/C++ specific mediului Arduino IDE.
- 
-=== Link cod proiect === 
-https://​github.com/​andrei-27 
  
 === Laboratoare folosite === === Laboratoare folosite ===
  
-  * **Laboratorul 0 – GPIO** → folosit pentru configurarea ​pinilor ​pentru ​butoane.+  * **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 1 – UART** → folosit pentru a afișa informații de debug în consola serială.
-  * **Laboratorul 2 – Întreruperi** → folosit pentru tratarea ​apasărilor ​de buton folosind debouncing.+  * **Laboratorul 2 – Întreruperi** → folosit pentru tratarea ​semnalelor ​de la receptorul IR și implementarea debounce-ului pentru semnalele IR.
   * **Laboratorul 3 – Timere / PWM** →   * **Laboratorul 3 – Timere / PWM** →
     * Timer folosit pentru delay-uri pentru motorul DC.     * Timer folosit pentru delay-uri pentru motorul DC.
     * PWM folosit pentru controlul vitezei motorului DC prin L293D.     * PWM folosit pentru controlul vitezei motorului DC prin L293D.
   * **Laboratorul 6 – I2C** → folosit pentru afișajul pe ecran.   * **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=== === Pseudocod===
Line 95: Line 137:
  
 LOOP PRINCIPAL: LOOP PRINCIPAL:
-    // Selectare număr jucători +    // Selectare număr jucători ​prin comenzi IR 
-    ​PENTRU fiecare buton+    ​DACĂ cod IR este recepționat
-        ​DACĂ butonul este apăsat+        ​INTERPRETEAZĂ codul pentru a identifica comanda (excifra pentru număr jucători) 
-            setează numar_jucatori corespunzător +        setează numar_jucatori corespunzător 
-            Afișează pe LCD: "​Jucători:​ " + numar_jucatori +        Afișează pe LCD: "​Jucători:​ " + numar_jucatori 
-            Așteaptă ​până se eliberează butonul ​(debounce)+        Așteaptă ​o nouă comandă IR (debounce ​prin timp)
  
     DACĂ numar_jucatori > 0 && start == 1:     DACĂ numar_jucatori > 0 && start == 1:
Line 122: Line 164:
 </​code>​ </​code>​
  
-<note tip> +=== Link cod proiect === 
-Descrierea codului aplicaţiei (firmware): +https://github.com/andrei-27/card-dealer
-  * 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 ===== 
  
-<note tip> +===== Jurnal =====
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​+
  
-===== Concluzii =====+Lipituri 
 +{{ :​pm:​prj2025:​eradu:​andrei.pirlea:​fire.jpg?​700 |}}
  
-===== Download =====+Turetă 
 +{{ :​pm:​prj2025:​eradu:​andrei.pirlea:​tureta.jpg?​700 |}}
  
-<note warning> +Lansare cărți 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etcUn fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+{{ :pm:​prj2025:​eradu:​andrei.pirlea:​launch.jpg?700 |}}
  
-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**. +===== Rezultate Obţinute =====
-</​note>​+
  
-===== Jurnal =====+Î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: 
 +    * Selecta numărul de jucători (1–9) folosind telecomanda;​ 
 +    * Alege numărul de cărți ce trebuie distribuite fiecărui jucător; 
 +    * Controla un motor stepper pentru a roti cu precizie spre fiecare jucător; 
 +    * Acționa un motor DC pentru a lansa cărțile;​ 
 +    * Afișa starea sistemului și instrucțiunile pe un ecran LCD I2C; 
 +    * Efectua distribuirea într-un mod ciclic, fără întoarcere;​ 
 +    * Permite trimiterea de cărți individuale la un jucător ales ulterior. 
 +Funcționalitatea generală a fost conform așteptărilor,​ sistemul fiind stabil și ușor de utilizat în cadrul unui joc de societate.
  
-<note tip> +<html><iframe width="​560"​ height="​315"​ src="​https://​www.youtube.com/​embed/​J6MLmm3-O-Y?​si=argWEHQx8JUH6_UW"​ title="​YouTube video player"​ frameborder="​0"​ allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture;​ web-share"​ referrerpolicy="​strict-origin-when-cross-origin"​ allowfullscreen></​iframe>​</html>
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. +
-</note>+
  
-===== Bibliografie/​Resurse ===== 
  
-<​note>​ +===== Concluzii ===== 
-Listă cu documentedatasheet-uriresurse Internet folositeeventual grupate pe **Resurse Software** ş**Resurse Hardware**+ 
-</​note>​+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 motoarelorcomunicația I2C, utilizarea semnalelor IR și organizarea logicii într-un sistem embedded complex. De asemeneaproiectul a fost o bună ocazie de a exersa gândirea modularătestarea incrementală ștalentul meșteșugăresc
 + 
 +===== Download ===== 
 + 
 +{{:​pm:​prj2025:​eradu:​andrei.pirlea:​3d_parts_card_dealer.zip|}}
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2025/eradu/andrei.pirlea.1747950704.txt.gz · Last modified: 2025/05/23 00:51 by andrei.pirlea
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