İçindekiler:

El Arduino Pong Konsolu: 6 Adım (Resimlerle)
El Arduino Pong Konsolu: 6 Adım (Resimlerle)

Video: El Arduino Pong Konsolu: 6 Adım (Resimlerle)

Video: El Arduino Pong Konsolu: 6 Adım (Resimlerle)
Video: 1. Q ışık kontrolörü artı QLC + ile başlar. Armatürler ve fonksiyonlar 2024, Kasım
Anonim
El Arduino Pong Konsolu
El Arduino Pong Konsolu

DFRobot kısa süre önce bana ulaştı ve özel Arduino Nano kartlarını ve OLED'lerini kullanmamı istedi. İlk başta akıllı bir bisiklet yaratmak istedim ve onu bütünüyle inşa ettim. Ama ne yazık ki Nano, ihtiyaç duyulan devasa taslağı çalıştırıp saklamak için çok zayıftı. Bu yüzden önceki projelerimden birini, Pong oyunu çalıştıran bir Neopiksel matrisini tekrar ziyaret etmeye karar verdim. Bunun yerine taşınabilir hale getirmek istedim ve 1,7 OLED mükemmel bir ekran olurdu.

Parça Listesi:

  • Arduino nano
  • OLED
  • hoparlör

1. Adım: Video

Image
Image

2. Adım: Oyunu Tasarlamak

Oyunu Tasarlamak
Oyunu Tasarlamak

Bu Pong oyunu için nispeten basit tutmak istedim, bu da bilgisayar kontrollü kürek veya süslü top yansıma algoritmaları anlamına geliyordu. Temel olarak, kullanıcının yukarı veya aşağı hareket ettirebileceği tek bir kürek vardır ve topun kürekle çarpışması, x ekseni vektörünün dönmesine neden olur. Top her vurulduğunda çalan bir ses var. Oyun cihazı açıldığında, oyun başlığı ve talimatların bulunduğu bir ekran gelir. Ek olarak, annem üst düğmeye basılana kadar arka planda dönen küçük bir tema şarkısı yarattı.

3. Adım: Oyun Aygıtını Tasarlama

Oyun Aygıtını Tasarlama
Oyun Aygıtını Tasarlama
Oyun Aygıtını Tasarlama
Oyun Aygıtını Tasarlama
Oyun Aygıtını Tasarlama
Oyun Aygıtını Tasarlama
Oyun Aygıtını Tasarlama
Oyun Aygıtını Tasarlama

CAD programım Fusion 360, bu yüzden pong oyun cihazımı tasarlamak için kullanmaya karar verdim. Kullanılan her bileşeni tasarlayarak başladım: bir OLED, Arduino Nano ve bir hoparlör. Bu şekilde, her bir bileşenin kasanın içine tam olarak nereye ve nasıl sığması gerektiğini görebilirim. Daha sonra Nano ve PCB'yi kasanın arka kısmına ve OLED'i de üstüne koydum. Sıra, hoparlörü ve düğmeleri nereye koyacağınız sorusuydu. 3W hoparlörün ekranın hemen altına inebileceğine (üstten bakarak) karar verdim ve bu da sesin boğulmaması için hoparlörün üzerine bir "ızgara" koymayı gerektirdi. Son olarak, kontrol eklemek için sol tarafa iki düğme ekledim.

Adım 4: Aygıtı Oluşturma

Cihazı Oluşturma
Cihazı Oluşturma
Cihazı Oluşturma
Cihazı Oluşturma
Cihazı Oluşturma
Cihazı Oluşturma

Alt yarı, üst yarı ve 2 düğmeden oluşan her parçayı 3D yazdırarak başladım. Daha sonra 4x6cm'ye dişi bir başlık lehimledim ve onu Nano'ya bağladım. Bu sadece OLED'in kolayca çıkarılmasını sağlamakla kalmaz, aynı zamanda Arduino Nano'nun üzerine çıkarır. Kablolama bilgileri için şemayı kontrol edin. Ardından, güç için basit bir mikro USB devre kartıyla birlikte iki düğmeyi bağladım. Hoparlör de takıldı ve doğru konumuna yerleştirdi. My Fusion 360 tasarımı, 3 mm makine vidalarının OLED'i, hoparlörü tutmasını ve cihazın iki yarısını birbirine bağlamasını sağlar. Ancak, onları tam olarak yapmak zorundaydım, bu yüzden 8 delik açmak için matkap premi kullandım: 2 hoparlör için, 2 ekran için ve 4 altta. Dosyalar için Thingiverse bağlantısını ziyaret edebilirsiniz.

Adım 5: Oyunu Programlama

Programı küçük tutmak için basit bir arayüzün kullanılması hayati önem taşıyordu. Birkaç kitaplık ekleyerek başladım: Adafruit_GFX, Adafruit_SSD1351 ve Arduino Timer kitaplığı. Ardından, OLED'in pinleri ve 16 bit renk tanımları gibi pinlerimi ve renklerimi tanımladım. Kodumda, raket boyutlarını değiştirmek ve topun ne kadar hızlı hareket ettiğini değiştirmek gibi oyunun nasıl oynandığını değiştirmenin 4 yolu da var. Ardından, puan ve çeşitli koordinatlar dahil olmak üzere her değişkenin tanımlandığı bir bölüm bulunur. Cihaz çalıştırıldığında, bir top görüntüsü ve ekranda daha önce kodda tanımlanan küçük bir tema şarkısı ile birlikte bir metin belirir. Oyun başladığında, biri küreği güncelleyen ve diğeri topu güncelleyen iki zamanlayıcı oluşturulur. Topun konumu her güncellendiğinde, ekran sınırını geçmediğinden veya bir raketle temas ettiğinden emin olmak için koordinatları kontrol edilir. X veya y ekseni her zıpladığında ters çevrilir ve küçük bir ton çalar. Oyunun nasıl oynandığını görmek için bu yazının başındaki videoyu izleyin.

Adım 6: Pong Oynamak

Pong oynamak!
Pong oynamak!
Pong oynamak!
Pong oynamak!
Pong oynamak!
Pong oynamak!
Pong oynamak!
Pong oynamak!

Oyunun adı mümkün olan en düşük puanı almaktır. Zaman sınırı yok, bu yüzden çok zevkli ve hatta transa neden oluyor. Tek gereken, raketi yukarı veya aşağı hareket ettirmek için iki düğmeden birine basmaktır. Arduino'nun EEPROM'unu kullanarak en yüksek puanı saklamanın bir yolunu eklemek de mümkündür.

Önerilen: