This shows you the differences between two versions of the page.
|
pm:prj2025:eradu:andrei.pirlea [2025/05/25 19:14] 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 **: | ** Utilizare PINI **: | ||
| * Arduino Mega: | * Arduino Mega: | ||
| - | * ** D2, D3, D6, D7 ** - pini digitali pentru controlul driverului TMC2209 | + | * ** D3, D4, D6, D7 ** - pini digitali pentru controlul driverului TMC2209 |
| - | * ** D27, D29 ** - pini digitali conectați la butoane pentru selecția numărului de participanți | + | * ** D32 ** - pin digital conectaț la receptorul IR |
| - | * ** D8, D9, D10 ** - pini digitali conectați la L293D pentru controlul motorului DC | + | * ** D10, D11, D12 ** - pini digitali conectați la L293D pentru controlul motorului DC |
| * ** D20, D21 ** - pinii SDA și SCL conectați la LCD | * ** D20, D21 ** - pinii SDA și SCL conectați la LCD | ||
| * ** 5V, GND** - pentru alimentare și ground | * ** 5V, GND** - pentru alimentare și ground | ||
| Line 70: | Line 73: | ||
| * ** Vcc ** - alimentare 5V | * ** Vcc ** - alimentare 5V | ||
| * ** GND ** - ground | * ** GND ** - ground | ||
| - | * Butoane: | + | * Receptor IR: |
| - | * Conectate la D6 și D7 | + | * Conectat la D32 |
| - | * Rezistențe de pull-down conectate la GND | + | |
| * Type-C Trigger Board: | * Type-C Trigger Board: | ||
| * ** VCC, GND ** - conectat la sursă de alimentare externă | * ** VCC, GND ** - conectat la sursă de alimentare externă | ||
| - | * ** Alimentează LM2596 | + | * Alimentează LM2596 |
| - | * Module DC-DC LM2596: | + | * Modul DC-DC LM2596: |
| - | * ** IN+, IN- ** - conectat lla sursa Type-C | + | * ** IN+, IN- ** - conectat la sursa Type-C |
| - | * ** Alimentează restul componentelor | + | * Alimentează restul componentelor |
| Line 86: | 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]] | 2 | 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]] | 1 | 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]] | 2 | 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]] | 1 | 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 103: | Line 110: | ||
| === 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. | ||
| Line 114: | Line 121: | ||
| Biblioteci externe folosite: | Biblioteci externe folosite: | ||
| *AccelStepper.h – pentru controlul motorului stepper | *AccelStepper.h – pentru controlul motorului stepper | ||
| - | *LiquidCrystal.h - pentru afișarea pe ecran | + | *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 | ||
| Line 128: | 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 (ex: cifra 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 160: | Line 169: | ||
| ===== Jurnal ===== | ===== Jurnal ===== | ||
| + | |||
| + | Lipituri | ||
| + | {{ :pm:prj2025:eradu:andrei.pirlea:fire.jpg?700 |}} | ||
| Turetă | Turetă | ||
| - | {{ :pm:prj2025:eradu:andrei_pirlea_jurnal1.jpeg?450 |}} | + | {{ :pm:prj2025:eradu:andrei.pirlea:tureta.jpg?700 |}} |
| Lansare cărți | Lansare cărți | ||
| - | {{ :pm:prj2025:eradu:andrei_pirlea_jurnal2.jpeg?600 |}} | + | {{ :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ă IR. Sistemul 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 Alin, 331CC -> **: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 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. |
| - | </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> | ||