Բովանդակություն:

Պոնգ թենիս LED մատրիցով, Arduino- ով և Joysticks- ով. 5 քայլ (նկարներով)
Պոնգ թենիս LED մատրիցով, Arduino- ով և Joysticks- ով. 5 քայլ (նկարներով)

Video: Պոնգ թենիս LED մատրիցով, Arduino- ով և Joysticks- ով. 5 քայլ (նկարներով)

Video: Պոնգ թենիս LED մատրիցով, Arduino- ով և Joysticks- ով. 5 քայլ (նկարներով)
Video: Ping Pong LED Wall v3 2024, Նոյեմբեր
Anonim
Պոնգ թենիս LED մատրիցով, Arduino- ով և Joysticks- ով
Պոնգ թենիս LED մատրիցով, Arduino- ով և Joysticks- ով

Այս նախագիծը նախատեսված է ինչպես սկսնակների, այնպես էլ փորձառու ասեղագործների համար: Հիմնական մակարդակում դա կարելի է անել գրատախտակի, ցատկող մետաղալարերի միջոցով և կառչել մի կտոր ջարդոնից (ես փայտ եմ օգտագործել) Blu-Tack- ով և առանց զոդման: Այնուամենայնիվ, ավելի առաջադեմ մակարդակում այն կարող է զոդվել ծայրամասային տախտակին կամ սովորական PCB- ին:

Քանի որ սա արգելափակման նախագիծ էր, ես մուտք չունեի շատ գործիքների կամ նյութերի, ուստի ինչու այն կպած էր մի կտոր ջարդոնի վրա, որը փոքր-ինչ չափազանց փոքր է Blu-Tack- ով, սակայն, չնայած դրան, դա զվարճալի նախագիծ է, որը համախմբվում է արագ և բաղկացած է սովորաբար հասանելի մասերից, որոնք կարելի է էժան գտնել առցանց:

Քայլ 1: Մասեր

Պոնգ խաղ պատրաստելու համար ձեզ հարկավոր է.

  • 1x Arduino (ցանկացած տեսակ կաշխատի)
  • 4x MAX7219 8x8 LED մատրիցներ
  • 2 անգամ ջոյսթիքս
  • 1x Piezo Buzzer (ըստ ցանկության)
  • 15x Female-Female Jumper Wires (3x խումբ 5 հոգուց)
  • 15x Արական և Իգական Թռչկոտող լարեր (3x խումբ 5 հոգուց)
  • 18x Արական և Արական ցատկող լարեր
  • 1x Breadboard
  • 1x 220Ω դիմադրություն

Arduino Uno- ի կամ Nano- ի տախտակի փոխարեն կարող եք օգտագործել Arduino- ի վրա պատրաստված տախտակի վրա;

  • 1x ATmega328p 28 պին IC
  • 1x 16kHz բյուրեղյա տատանում
  • 2x 22pF կերամիկական կոնդենսատորներ
  • 1x USB FTDI UART փոխարկիչ
  • 1x 100uF էլեկտրոլիտիկ կոնդենսատոր
  • 1x Micro USB Breakout (ըստ ցանկության)

Գործիքներ;

  • Համակարգիչ Arduino IDE- ով (և LedControl Library)
  • Համապատասխան USB մալուխ ձեր Arduino- ի համար
  • Power Bank ՝ խաղը ձեր համակարգչից հեռու պահելու համար

Քայլ 2: Լարերի տեղադրում

Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր

Էլեկտրամոնտաժը շատ պարզ է, քանի որ այն, ինչ ձեզ հարկավոր է, jumper լարերն են ՝ միացման և Joysticks- ի վերնագրերը Arduino- ին միացնելու համար: Միակ բարդությունը ուժն է, քանի որ Arduino Uno- ն ունի միայն 3 GND միացում և մեկ 5 վ միացում: Այնտեղ, որտեղ հայտնվում է հացահատիկը և գործում է որպես էներգիայի բաշխիչ երկաթուղի բոլոր բաղադրիչների համար: Եթե դուք օգտագործում եք NANO, ապա տախտակը կծառայի նույն նպատակին, ինչպես նաև թույլ կտա ձեզ միացնել ամեն ինչ:

Էլեկտրագծերի համար հետևեք այս միացումներին:

  • Ձախ ջոյստիկ - GND և 5v դեպի իրենց համապատասխան հոսանքի ռելսերը: SW - կապ 9, VRx - A0, VRy - A1:
  • Right Joystick - GND և 5v իրենց համապատասխան հոսանքի ռելսերին: SW - կապ 8, VRx - A2, VRy - A3:
  • Աջ LED մատրիցը `GND և 5v իրենց համապատասխան հոսանքի ռելսերին: DIN - 13, CS - 11, CLK - 12. (Ըստ տող 25 -ի)
  • Մնացած բոլոր LED մատրիցները կարող են շղթայված լինել առաջինի ելքից ՝ աջից ձախ, որպեսզի ծածկագիրը ճիշտ աշխատի:
  • Լրացուցիչ ազդանշանային ազդանշան - անոդ (+) մինչև 220Ω ընթացիկ սահմանափակող դիմադրություն մինչև քորոց 10, կաթոդ (-) - GND:

Քայլ 3: Այլընտրանքային էլեկտրագծեր

Այլընտրանքային էլեկտրագծեր
Այլընտրանքային էլեկտրագծեր
Այլընտրանքային էլեկտրագծեր
Այլընտրանքային էլեկտրագծեր
Այլընտրանքային էլեկտրագծեր
Այլընտրանքային էլեկտրագծեր

Arduino UNO- ով այն տարածքը խնայելու համար միացնելուց հետո որոշեցի Arduino IC- ն UNO- ից տեղադրել ՄԱԿ -ի տախտակի վրա 16Mhz բյուրեղյա տատանումով և զույգ 22pF կոնդենսատորներով ՝ յուրաքանչյուր կողմից գետնին: Ես կարծում եմ, որ սա արժանի փոփոխություն էր, քանի որ այն դարձնում է նախագիծը ավելի կոկիկ և ավարտված, սակայն ծրագիրը թարմացնելու համար պետք է օգտագործել USB FTDI ծրագրավորող:

Քայլ 4: Կոդ + Բացատրություն

Arduino- ում կոդը վերբեռնելու համար ներբեռնեք LedControl գրադարանը GitHub- ից այստեղ ՝

github.com/wayoda/LedControl և ավելացնել Zip ֆայլը կամ ավելացնել այն IDE- ում գտնվող Գրադարանի մենեջերի միջոցով: Դրանից հետո բացեք կցված ուրվագիծը, գործիքների ներքո ընտրեք ձեր Arduino- ն տախտակի և նավահանգստի պարամետրերում և վերբեռնեք այն arduino- ում:

Բացատրություն

Տող 1. Ավելացնում է գրադարանը

Տող 5-23. Տեղադրում է բոլոր փոփոխականները, հաստատունները և կապի համարները:

Տող 25. Տեղադրում է LED Martix- ը և սահմանում է կառավարման կապումներն ու քանի էկրան:

Տող 27. Կարգավորում է Վերագործարկման գործառույթը:

Տող 30-35. Անջատման գործառույթը `բոլոր էկրանները միասին միացնելու/անջատելու համար:

38-43 տող. SetIntensity գործառույթը `բոլոր էկրանների պայծառությունը միասին սահմանելու համար:

46-51 տող. ClearAll գործառույթը `բոլոր ցուցադրումները միասին սրբելու համար:

53-64 տող. Ջոյսթիք unctionոյսթիքերի դիրքը ստանալու համար դրանք քարտեզագրեք գնդակին հարվածելու համար չղջիկի 7 հնարավոր դիրքերի վրա, այնուհետև չղջիկը տեղափոխեք նոր դիրքի:

Տող 67-435. Ֆունկցիա, որը գնդակը տեղափոխում է ձախ խաղացողի նշված բարձրության և արագության վրա, ստուգում է, թե արդյոք խաղացողը հարվածել է դրան, կամ շարունակում է և դնում վթարի կարգավիճակը ճշմարիտ կամ հետ է տալիս գնդակը, 1-ին ավելացնում է հաշիվը և մեծացնում է արագությունը:

Տող 438-811. Գործառույթը, որը գնդակը տեղափոխում է ճիշտ խաղացողի նշված բարձրության և արագության վրա, ստուգում է, թե արդյոք խաղացողը հարվածել է դրան, կամ շարունակում է և դնում վթարի կարգավիճակը ճշմարիտ կամ հետ է տալիս գնդակը, 1-ին ավելացնում է հաշիվը և մեծացնում է արագությունը:

Տող 813-823. Ileպտերես դեմք, տիզ, խաչ կամ հարցական նշան ցուցադրման գործառույթ `նշված էկրանին (0-ից աջից 3-ը ձախ կողմում):

861-979 տող. 0-9 թվերը նշված էկրանին ցուցադրելու գործառույթ:

981-1047 տող. Հաշիվը ցուցադրելու էկրանի յուրաքանչյուր խաղացողի կողմը:

Տող 1049-1064. Ֆունկցիա `ստուգելու, արդյոք նվագարկիչը պատրաստ է:

1066-1076 տող. Կոդի բաժին այն ծածկագրի համար, որը գործարկվում է մեկ անգամ, երբ ծրագիրը սկսվում է:

1078-1136 տող. Խաղի տրամաբանության հիմնական օղակի բաժին, որտեղ օգտագործվում են բոլոր գործառույթները և որտեղ է որոշվում, թե ով է հաղթում, և այն վերսկսում է ծրագիրը հաշիվը ցուցադրելուց 5 վայրկյան հետո:

Քայլ 5: Շնորհակալություն կարդալու համար

Շնորհակալություն կարդալու համար
Շնորհակալություն կարդալու համար

Շնորհակալություն այս Instructable- ը կարդալու համար, սա զվարճալի արգելափակման ծրագիր էր, որը հավաքվեց մի քանի օրվա ընթացքում, երբ ես ավելին իմացա Arduino ծրագրավորման մասին: Եթե ձեզ դուր եկավ, ազատ քվեարկեք դրան Arduino մրցույթում:

Խորհուրդ ենք տալիս: