Mundarija:
- 1 -qadam: video
- 2 -qadam: O'yinni loyihalash
- 3 -qadam: O'yin qurilmasini loyihalash
- 4 -qadam: Qurilmani qurish
- 5 -qadam: O'yinni dasturlash
- 6 -qadam: Pong o'ynash
Video: Portativ Arduino pong konsoli: 6 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Yaqinda DFRobot menga Arduino Nano maxsus platasi va OLED -dan foydalanishimni so'radi. Avvaliga men aqlli velosiped yaratmoqchi edim va uni to'liq qurdim. Afsuski, Nano juda katta eskizni ishga tushirish va saqlash uchun juda zaif edi. Shunday qilib, men oldingi loyihalarimdan birini, pong o'yini o'tkazgan Neopixel matritsasini qayta ko'rib chiqishga qaror qildim. Men uni portativ qilishni xohlardim va 1,7 dyuymli OLED mukammal displeyni yaratadi.
Bo'limlar ro'yxati:
- Arduino nano
- OLED
- Karnay
1 -qadam: video
2 -qadam: O'yinni loyihalash
Bu pong o'yini uchun men uni sodda qilib saqlamoqchi edim, bu nokompyuter tomonidan boshqariladigan belkurak yoki chiroyli to'pni aks ettirish algoritmlarini anglatardi. Asosan, foydalanuvchi yuqoriga yoki pastga siljiy oladigan bitta belkurak bor va to'pning eshkak bilan to'qnashishi uning x o'qi vektorini ag'darishga olib keladi. Har safar to'pga zarba berilganda, ovoz eshitiladi. O'yin qurilmasi yoqilganda, ekranda o'yin nomi va ko'rsatmalari paydo bo'ladi. Bundan tashqari, onam kichik mavzuli qo'shiq yaratdi, u yuqori tugma bosilmaguncha fonda aylanib yuradi.
3 -qadam: O'yin qurilmasini loyihalash
Mening SAPR dasturim-bu Fusion 360, shuning uchun men uni pong o'yin qurilmasini loyihalashda ishlatishga qaror qildim. Men ishlatilgan har bir komponentni loyihalashdan boshladim: OLED, Arduino Nano va karnay, shuning uchun men har bir komponentning korpus ichiga qayerda va qanday joylashishini aniq ko'ra olaman. Keyin men nano va tenglikni korpusning orqa qismiga, ustiga OLED qo'ydim. Keyin karnay va tugmachalarni qaerga qo'yish kerakligi haqida savol tug'ildi. Men 3W karnay ekranning pastidan o'tishi mumkin deb qaror qildim (tepadan qarab), va ovoz o'chib ketmasligi uchun karnay ustidan "panjara" qo'yish kerak edi. Nihoyat, boshqaruvni qo'shish uchun chap tomonga ikkita tugma qo'shdim.
4 -qadam: Qurilmani qurish
Men har bir qismni pastki yarmi, yuqori yarmi va 2 tugmachadan iborat 3D bosib chiqarishdan boshladim. Keyin men 4x6 sm uzunlikdagi ayol boshini lehimladim va uni Nano -ga uladim. Bu nafaqat OLED -ni osongina olib tashlash imkonini beradi, balki uni Arduino Nano -dan yuqoriga ko'taradi. Simlar haqida ma'lumot olish uchun sxemani tekshiring. Keyin men ikkita tugmachani, shuningdek, quvvat uchun oddiy USB -USB simi taxtasini uladim. Karnay ham biriktirilgan va uni to'g'ri joyiga qo'ygan. My Fusion 360 konstruktsiyasi OLED, karnayni ushlab turish va qurilmaning ikki yarmini ulash uchun 3 mm vintli vintlardek ruxsat beradi. Lekin, men ularni aniq qilishim kerak edi, shuning uchun men matkap yordamida 8 teshik ochdim: 2 karnay uchun, 2 ekran uchun va 4 tagida. Fayllar uchun Thingiverse havolasiga tashrif buyurishingiz mumkin.
5 -qadam: O'yinni dasturlash
Dasturning kichikligi uchun oddiy interfeysdan foydalanish juda muhim edi. Men bir nechta kutubxonalarni qo'shishdan boshladim: Adafruit_GFX, Adafruit_SSD1351 va Arduino Timer kutubxonasi. Keyin men pin va ranglarni aniqladim, masalan, OLED pinlari va 16 bitli rang ta'riflari. Mening kodimda, shuningdek, eshkak o'lchamlarini o'zgartirish va to'pning tez harakatlanishi kabi o'yinning qanday o'zgarishini o'zgartirishning 4 usuli mavjud. Keyin har bir o'zgaruvchi aniqlanadigan bo'lim mavjud, shu jumladan ball va turli koordinatalar. Qachonki, qurilma koptok tasviri bilan ishlasa va ekranda ba'zi matnlar paydo bo'ladigan bo'lsa, kodda ilgari ta'riflangan kichik mavzu qo'shig'i bo'ladi. O'yin boshlangandan so'ng, ikkita taymer yaratiladi, biri qalqonni, ikkinchisi to'pni yangilaydi. Har safar to'pning pozitsiyasi yangilanib turganda, uning koordinatalari ekran chegarasidan o'tib ketmasligiga yoki u eshkakka tegib turganiga tekshiriladi. Har safar u x yoki y o'qi teskari aylanadi va kichik ohang o'ynaydi. O'yin qanday o'tishini bilish uchun ushbu yozuvning boshidagi videoni tomosha qiling.
6 -qadam: Pong o'ynash
O'yinning nomi - mumkin bo'lgan eng past ballni olish. Vaqt chegarasi yo'q, shuning uchun bu juda yoqimli va hatto transni keltirib chiqaradi. Qalamni yuqoriga yoki pastga siljitish uchun ikkita tugmachadan birini bosish kifoya. Bundan tashqari, Arduino EEPROM yordamida eng yuqori ballni saqlash usulini qo'shish mumkin.
Tavsiya:
DIY Raspberry Pi Zero portativ o'yin konsoli: 6 qadam (rasmlar bilan)
DIY Raspberry Pi Zero qo'lda ishlaydigan o'yin konsoli: Ushbu loyihada men sizga Raspberry Pi Zero, NiMH batareyalari, uydan ortiqcha zaryadsizlanishdan himoya qilish sxemasi, orqa ko'zoynak va audio kuchaytirgichni qanday ishlatilishini ko'rsataman. retro o'yinlar. Qani boshladik
ESP32 portativ o'yin konsoli: 21 qadam (rasmlar bilan)
ESP32 portativ o'yin konsoli: NES emulyatorli o'yin konsoli yaratish uchun ESP32 va ATtiny861 dan qanday foydalanish ko'rsatmalari
GamePi - portativ emulyator konsoli: 17 qadam (rasmlar bilan)
GamePi - portativ emulyator konsoli: kirish: Bu ko'rsatma Raspberry Pi 3 bilan ishlaydigan portativ emulyatsion konsoli tuzilishini tasvirlaydi - men uni suvga cho'mdirdim GamePi. Bunday qurilmalar uchun shunga o'xshash ko'rsatmalar juda ko'p, lekin ularning ko'pchiligi juda katta, juda kichik
Portativ RetroGame konsoli (Raspberry Pi): 9 qadam (rasmlar bilan)
Portativ RetroGame konsoli (Raspberry Pi): Bu ko'rsatma Rotterdam amaliy fanlar universiteti uchun FabLab tayyorlash kursi uchun yozilgan, bu kurs uchun men Raspberry Pi va maxsus Shell bilan birgalikda portativ o'yin konsoli yaratmoqchiman. menda maktab topshirig'i bor edi
Simsiz boshqaruv va sensorli portativ konsoli (Arduino MEGA va UNO): 10 qadam (rasmlar bilan)
Simsiz boshqaruv va sensorlar bilan ishlaydigan portativ konsoli (Arduino MEGA va UNO): Men nimani ishlatganman:- Arduino MEGA- 2x Arduino UNO- Adafruit 3.5 " TFT 320x480 sensorli ekran HXD8357D- Buzzer- 4Ohm 3W karnay- 5 mm LED chiroqlar- Ultimaker 2+ printer/ qora PLA filamentli- lazerli kesuvchi MDF yog'ochli- qora bo'yoq (yog'och uchun)- 3x nRF24