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:53]
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** ^
  
  
Line 64: Line 107:
  
 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 88: 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 115: Line 164:
 </​code>​ </​code>​
  
 +=== Link cod proiect ===
 +https://​github.com/​andrei-27/​card-dealer
 +
 +
 +===== Jurnal =====
 +
 +Lipituri
 +{{ :​pm:​prj2025:​eradu:​andrei.pirlea:​fire.jpg?​700 |}}
 +
 +Turetă
 +{{ :​pm:​prj2025:​eradu:​andrei.pirlea:​tureta.jpg?​700 |}}
 +
 +Lansare cărți
 +{{ :​pm:​prj2025:​eradu:​andrei.pirlea:​launch.jpg?​700 |}}
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Î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ă IRSistemul poate: 
-Care au fost rezultatele obţinute în urma realizării proiectului ​vostru+    * Selecta numărul de jucători (1–9) folosind telecomanda;​ 
-</​note>​+    * 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.
  
-===== Concluzii =====+<​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>​
  
-===== Download ===== 
  
-<note warning>​ +===== Concluzii =====
-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 Alin331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +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 flexibilitatePrin 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.
-</​note>​+
  
-===== Bibliografie/​Resurse ​=====+===== Download ​=====
  
-<​note>​ +{{:​pm:​prj2025:​eradu:​andrei.pirlea:​3d_parts_card_dealer.zip|}}
-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>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2025/eradu/andrei.pirlea.1747950827.txt.gz · Last modified: 2025/05/23 00:53 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