Mundarija:

Portativ Arduino pong konsoli: 6 qadam (rasmlar bilan)
Portativ Arduino pong konsoli: 6 qadam (rasmlar bilan)

Video: Portativ Arduino pong konsoli: 6 qadam (rasmlar bilan)

Video: Portativ Arduino pong konsoli: 6 qadam (rasmlar bilan)
Video: 🎮Вызов принят: микро игровая консоль 2024, Noyabr
Anonim
Portativ Arduino pong konsoli
Portativ Arduino pong konsoli

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

Image
Image

2 -qadam: O'yinni loyihalash

O'yinni loyihalash
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

O'yin qurilmasini loyihalash
O'yin qurilmasini loyihalash
O'yin qurilmasini loyihalash
O'yin qurilmasini loyihalash
O'yin qurilmasini loyihalash
O'yin qurilmasini loyihalash
O'yin qurilmasini loyihalash
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

Qurilmani qurish
Qurilmani qurish
Qurilmani qurish
Qurilmani qurish
Qurilmani qurish
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

Pong o'ynash!
Pong o'ynash!
Pong o'ynash!
Pong o'ynash!
Pong o'ynash!
Pong o'ynash!
Pong o'ynash!
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: