Mundarija:

LED matritsali pong tennis, Arduino va joystiklar: 5 qadam (rasmlar bilan)
LED matritsali pong tennis, Arduino va joystiklar: 5 qadam (rasmlar bilan)

Video: LED matritsali pong tennis, Arduino va joystiklar: 5 qadam (rasmlar bilan)

Video: LED matritsali pong tennis, Arduino va joystiklar: 5 qadam (rasmlar bilan)
Video: DIY 32 * 8 точечно-матричные спектральные часы / полноцветный RGB с голосовой активацией 2024, Noyabr
Anonim
LED matritsali pong tennis, Arduino va joystiklar
LED matritsali pong tennis, Arduino va joystiklar

Ushbu loyiha yangi boshlanuvchilar va tajribali hunarmandlar uchun mo'ljallangan. Oddiy darajada, uni non taxtasi, o'tish simlari yordamida va Blu-Tack bilan lehimsiz, men yog'ochdan foydalanganman. Biroq, yanada yuqori darajada, uni mukammal taxtaga yoki maxsus tenglikka lehimlash mumkin.

Bu blokirovka loyihasi bo'lgani uchun menda hech qanday asbob-uskunalar yoki materiallarga ega bo'lish imkoni yo'q edi, shuning uchun u Blu-Tack bilan juda kichik bo'lgan yog'och bo'laklariga yopishib qolgan, ammo shunga qaramay, bu birlashadigan qiziqarli loyiha. tez va Internetda arzon topish mumkin bo'lgan keng tarqalgan qismlardan iborat.

1 -qadam: qismlar

Pong o'yinini yaratish uchun sizga kerak;

  • 1x Arduino (har qanday turdagi ishlaydi)
  • 4x MAX7219 8x8 LED matritsalar
  • 2x Joysticks
  • 1x Piezo Buzzer (ixtiyoriy)
  • 15x ayol-jumper simlari (5 ta 3 ta guruh)
  • 15x erkak-urg'ochi o'tish simlari (3 marta 5 ta guruh)
  • 18x erkak-erkak o'tish simlari
  • 1x non paneli
  • 1x 220Ω qarshilik

Arduino Uno yoki Nano taxtasi o'rniga siz Arduino asosidagi non taxtasidan foydalanishingiz mumkin;

  • 1x ATmega328p 28 pinli IC
  • 1x 16 kHz kristalli osilator
  • 2x 22pF seramika kondansatkichlari
  • 1x USB FTDI UART konvertori
  • 1x 100uF elektrolitik kondansatkich
  • 1x Micro USB uzilishi (ixtiyoriy)

Asboblar;

  • Arduino IDE bilan kompyuter (va LedControl kutubxonasi)
  • Arduino uchun tegishli USB kabeli
  • Power Bank o'yinni kompyuterdan uzib qo'yadi

2 -qadam: simlarni ulash

Ulanish
Ulanish
Ulanish
Ulanish

Kabelni ulash juda oddiy, chunki sizga Matritsalar va Joystiklarning sarlavhalarini Arduino -ga ulash uchun o'tish simlari kifoya qiladi. Bitta murakkablik - bu kuch, chunki Arduino Uno -da faqat 3 ta GND ulanishi va bitta 5v ulanishi mavjud. Bu erda non paneli keladi va u barcha komponentlar uchun quvvat taqsimlovchi temir yo'l vazifasini bajaradi, agar siz NANOdan foydalansangiz, xuddi shu maqsadga xizmat qiladi va hamma narsani ulashga imkon beradi.

Ulanish uchun ushbu ulanishlarni bajaring.

  • Chap Joystick - GND va 5v mos keladigan elektr relslariga. SW - pin 9, VRx - A0, VRy - A1.
  • O'ng Joystick - GND va 5v mos keladigan elektr relslariga. SW - pin 8, VRx - A2, VRy - A3.
  • O'ng tarafdagi LED matritsasi - GND va 5v tegishli quvvat relslariga. DIN - 13, CS - 11, CLK - 12. (25 -satr bo'yicha)
  • Qolgan barcha LED matritsalarni birinchisining o'ngdan chapga ketishi uchun zanjirband qilish mumkin, shuning uchun kod to'g'ri ishlaydi.
  • Ixtiyoriy buzzer - anod (+) orqali 220Ω oqim cheklovchining 10 -pinli, katodli (-) - GND.

3 -qadam: muqobil simlar

Muqobil simlar
Muqobil simlar
Muqobil simlar
Muqobil simlar
Muqobil simlar
Muqobil simlar

Joyni tejash uchun uni Arduino UNO bilan ulaganimdan so'ng, men Arduino ICni UNOdan 16 MGtsli kristalli osilator va har tomondan erga 22pF kondansatörli non paneliga qo'yishga qaror qildim. Menimcha, bu juda muhim o'zgarish edi, chunki bu loyihani yanada chiroyli va tugallangan ko'rinishga olib keladi, lekin dasturni yangilash uchun USB FTDI dasturchisidan foydalanish kerak.

4 -qadam: Kod + tushuntirish

Kodni Arduino -ga yuklash uchun GitHub -dan LedControl kutubxonasini yuklab oling, github.com/wayoda/LedControl va Zip faylini qo'shing yoki IDE ichida Kutubxona menejeri orqali qo'shing. Shundan so'ng, biriktirilgan eskizni oching, asboblar ostidagi boshqaruv paneli va port sozlamalarida Arduino -ni tanlang va uni arduino -ga yuklang.

Tushuntirish

1 -qator: kutubxona qo'shiladi

5-23-qator: Barcha o'zgaruvchilar, doimiylar va pin raqamlarini o'rnatadi.

25 -qator: LED Martix -ni o'rnatadi va boshqaruv pimlarini va qancha displeyni o'rnatadi.

27 -qator: Qayta tiklash funktsiyasini o'rnatadi.

30-35 qator: O'chirish funktsiyasi, barcha displeylarni birgalikda yoqish/o'chirish.

38-43-qator: Barcha displeylarning yorqinligini birlashtirish uchun SetIntensity funktsiyasi.

46-51 qator: ClearAll funktsiyasi barcha displeylarni birga o'chiradi.

53-64-qator: joystik funktsiyasi, joystiklarning holatini aniqlash, ularni to'pni urish uchun 7 ta mumkin bo'lgan joylar xaritasiga joylashtiring va so'ngra tayoqni yangi holatiga o'tkazing.

67-435-chiziq: To'pni belgilangan balandlik va tezlikda chap o'yinchiga o'tkazadigan, o'yinchi uni urganligini tekshiradi va davom ettiradi va avariya holatini rost holatiga qo'yadi yoki to'pni qaytaradi, hisobga 1 qo'shadi va tezligini oshiradi.

438-811-qator: To'pni belgilangan balandlik va tezlikda o'ng o'yinchiga o'tkazadigan, o'yinchi uni urganligini tekshiradi, davom ettiradi va avariya holatini rost holatiga qo'yadi yoki to'pni qaytaradi, hisobga 1 qo'shadi va tezligini oshiradi.

813-823-qator: Belgilangan displeyda tabassum, shomil, xoch yoki savol belgilarini ko'rsatish funktsiyasi (o'ngda 0 dan chapga 3).

861-979-qator: 0-9 raqamlarini ko'rsatilgan displeyda ko'rsatish funktsiyasi.

981-1047-qator: Hisobni ekranning har bir tomoniga ko'rsatish funktsiyasi.

1049-1064-qator: pleer tayyor yoki yo'qligini tekshirish funktsiyasi.

1066-1076-qator: Dastur ishga tushganda bir marta bajariladigan kodning sozlash bo'limi.

1078-1136-qator: O'yin mantig'ining asosiy bo'limi, bu erda barcha funktsiyalar ishlatiladi va kim g'alaba qozonishi aniqlanadi va 5 soniyadan so'ng dastur ochiladi.

5 -qadam: O'qiganingiz uchun tashakkur

O'qiganingiz uchun tashakkur
O'qiganingiz uchun tashakkur

Bu ko'rsatmalarni o'qiganingiz uchun tashakkur, bu Arduino dasturlash haqida ko'proq bilib olganimdan so'ng, bir necha kun ichida birlashtirilgan qiziqarli blokirovka loyihasi edi. Agar sizga ma'qul kelgan bo'lsa, Arduino tanlovida unga ovoz berishingiz mumkin.

Tavsiya: