» elektronik »Pong ile minyatür oyun konsolu oyunu

Pong ile minyatür oyun konsolu oyunu

selamlar sitemizin sakinleri!
Bugün, herkesin tekrarlayabileceği bir mikro oyun konsolu olan bir projemiz var.


Gerekli malzemeler ve bileşenler:








Bu kılavuz AlexGyver YouTube kanalından alınmıştır. Bu proje için mikrodenetleyici buna ihtiyaç duyar:


Bu, DIP paketindeki Attiny85, bizim için yeterli olacak. Lehimlememek için sözde soketi alırız.

Ayrıca 128 x 32 piksel çözünürlüğe sahip Aliexpress, OLED ile bir ekrana ihtiyacımız var.


Pimler de kullanışlı.

Burada kullanacağımız düğmeler:

Tabii ki, klavyeleri alabilirsin, ancak sonlandırılmaları gerekecek, ama gerçekten kesmek ve lehimlemek istemiyorum. Pil bölmesi şu tiptedir:

Ve oyun konsolumuzu bir breadboard ile birleştireceğiz (isterseniz, kendiniz bir tahta yapabilirsiniz). USBasp programlayıcısını yanıp söneriz, ancak herhangi bir AVR yapar.

Bağlantı şeması Bileşenler aşağıdaki gibi olacaktır:

Ekran mikrodenetleyicinin I2C veri yolu pimlerine bağlanır. Düğmeleri diğer ücretsiz pinlere bağlarız. Ayrıca sistemi açmak / kapatmak için bir anahtar ekleyin. Ve temelde hepsi bu, gücü bağlamak için kalır.
Aygıt yazılımı, programcı tarafından aşağıdaki şemaya göre mikro denetleyiciye yüklenir:
Pong ile minyatür oyun konsolu oyunu

Şimdi montaja başlayalım ve breadboard üzerindeki tüm öğeleri ayarlayalım. Birleştirmeye ve her şeyin nasıl göründüğüne bakmaya çalışalım.


Oldukça çileci çıktı. Fena değil. Breadboard'un fazla kısmı kesilebilir.


Şimdi tüm bileşenleri sadece bacaklarını lehimleyerek sabitliyoruz.



Şimdi sonuçları şemaya göre bağlamanız gerekiyor. Bu amaçla, yazar ince bir Çin montaj teli kullanmanızı önerir.

Kolaylık sağlamak için, bu yansıtılmış bağlantı şemasını kullanabilirsiniz.

Bu teller, doğrudan lehimleyebileceğiniz kadar ince bir yalıtıma sahiptir. Yalıtımın kendisi eriyecek ve tel lehimlenecektir.

Ardından pil bölmesini ve anahtarı kapatmaya devam edin. Bölme ayrıca bir sıcak tutkal tabancası ile sabitlenmelidir.


Peki, hepsi bu, sistem monte edildi, bellenimi indirmek için kalıyor. “Taşı” yı breadboard üzerindeki programcıya bağlayarak ayrı ayrı parlatacağız.


Yazılım, yazarın tüm projelerinde olduğu gibi, kamu malıdır ve buradan indirilebilir. Ayrıca proje sayfasında bir şema ve bu proje hakkında gerekli diğer tüm bilgileri bulacaksınız.

Bir şey net değilse, indirme hakkında ayrıntılı olarak durmayacağız, o zaman her zaman yazar için ayrıntılı talimatlara bakabilirsiniz.
Yazılım için, Arduino ide, Attiny serisi mikrodenetleyicilerle çalışmak için çekirdeği kurun, bir tahta seçin, bir programcı seçin.


Sonra 8 veya 16 MHz frekansını seçiyoruz, “Tools” sekmesini açıyoruz, “Record Loader” ı bulup seçiyoruz.

Orada yükleyici yoktur, ancak mikrodenetleyici gerekli frekansa ayarlanacaktır. Ardından “Sketch” sekmesini seçin - “programcı üzerinden indir”. Ve çizim mikrodenetleyiciye yüklenene kadar bekleriz.

Şimdi “taşı” çıkartıyoruz ve mini oyun konsolumuzun kalbine yerleştiriyoruz.


Gördüğünüz gibi çalışıyor! Ve şimdi ürün yazılımında neler olduğuna daha yakından bakalım. ATtiny85, çok küçük olan 512 bayt RAM'e sahip bir mikrodenetleyicidir. Böyle bir ekranla çalışmak için kütüphanelerin% 99'u resmi doğru şekilde yeniden çizmek için mikrodenetleyicinin yan tarafında bir tampon kullanır, çünkü bu ekran kendi tamponundan veri okuyamaz ve bu arada oradadır.

128 * 32 piksellik bu ekran için arabellek 512 bayt alacaktır, eğer her bir bitin durumunu, yani bir pikseli hatırlamak istiyorsak.
Arabelleğe ek olarak, diğer verileri de depolamamız gerekiyor, bu nedenle bu seçenek kesinlikle böyle bir boyutun belleğine uymuyor.

Bu nedenle, 4 piksellik kareleri arabelleğe alarak ekran çözünürlüğünü 64 * 16 piksele düşürmeye karar verildi.

Yazar bu göstergeyle doğrudan çalıştı ve fikrini başarıyla uygulamayı başardı. Bir taslak, Attiny kullanarak bu ekranla çalışmak isteyen biri için kullanışlı olabilir.


Şimdi oyunun kendisi ile ilgili. Oldukça basit çalışıyor. Bir top ayrı bir zamanlayıcıda hareket eder, hareket aynı koordinatlara sahip bir noktayı silmekten ve yeni koordinatlara yeni bir nokta eklemekten oluşur.

Koordinatların hesaplanması, görüntüleme sistemindeki koordinatlara hız değerlerinin eklenmesidir.
Top yatay duvarların ötesine geçtiğinde, basitçe onları sektirir, hızın dikey bileşenini tersine, yani eksi işareti (-) ile değiştirir.

Buna ek olarak, program oyun alanının dikey sınırlarını kontrol eder, eğer top rakete çarparsa (kuyu veya doğru şekilde adlandırırsanız), o zaman sıçrar ve sıçrama açısı rastgele.
Top raketi arkasındaki duvarı kırarsa, oyuncu geçerli turu kaybetti ve rakip bir puan alır.

Oyuncunun raketinin hareketi topun hareketi ile aynı şekilde uygulanır, yani eski raket silinir ve zaten yeni koordinatlarla yeni bir çizilir. Düğmeye tıkladığınızda koordinatlar değişir.
Böylece, tüm ekranı temizlemek ve tüm öğeleri tekrar oluşturmaktan çok daha hızlı çıkıyor.


Şimdi rakibin raketi için. AI (yapay zeka) tarafından kontrol edilir.

Elbette yapay zeka yüksek sesle söylenir, ancak yine de bu zeka çok basit bir şey yapar, yani raketi topun şu anki yönünde hareket ettirir, merkezini dikey eksen boyunca topun dikey koordinatıyla hizalamaya çalışır. Böyle bir rakibi gerçekten yenmek için yazar onu yavaşlattı, yani bir sonraki hamlesini zamanlayıcı ile tekrar hesaplar ve böylece topu yakalamak ve böylece onu püskürtmek için zamanları olmayabilir.

Ayrıca oyunda artan karmaşıklık mekaniği uygulandı. Oyuncunun lehine her 10 puanda topun hızı artar. Bununla birlikte, AI'nın (rakip) reaksiyon hızı da büyüyor.

Sonuç olarak, işte bu kadar basit bir küçük Pong. Hiçbir şey için değil, bu video oyunu ilk önce geliştirildi, çünkü acemi bir programcı bile yazabilir. Ancak projenin belirgin sadeliğine rağmen, Çin ekranıyla yaygara, yazardan yaklaşık 20 saat saf zaman aldı. Aynı zamanda, oyunun kodunu yazmak için harcanan zamanı ve hata ayıklama ve devreyi kurmakla ilgili diğer iş akışını dikkate almadı.



Bu şeyde, vızıltı kendisi uygulama değil montaj sürecidir.Oyun geliştirmek, hatta bu basit olanlar bile, gerçekten oldukça ilginç olabilir. Özellikle onları çok küçük bir mikrodenetleyiciye itmeye çalıştığınızda. Çin ekranı köşede sizi bekliyor ...

Hepsi bu. İlginiz için teşekkürler. Yakında görüşürüz!

Yazarın videosu:
6.5
5.5
5.5

Yorum ekle

    • gülümsegülümsemelerxaxatamamdontknowyahoonea
      patronçizikaptalevetevet-evetagresifgizli
      üzgünümdansdance2dance3pardonyardımiçecekler
      Durarkadaşlariyigoodgooddüdükbaygınlıkdil
      dumanzırıltıcraybeyanalaycıDon-t_mentionindir
      ısıöfkelilaugh1mdatoplantımoskingnegatif
      Not_ipatlamış mısırcezalandırmakokumakkorkutmakkorkutuyorarama
      alaythank_youbuto_clueumnikakutanlaşmak
      kötübeeeblack_eyeblum3kızarmakövünçcan sıkıntısı
      sansürlüşakasecret2tehdit etmekzaferyusun_bespectacled
      shokrespektlolPrevedkarşılamaKrutoyya_za
      ya_dobryiyardımcıne_huliganne_othodiFludyasakyakın
1 açıklama
ketçap
intihal yerine kendinizinkini bulmak daha iyi olur

Okumanızı tavsiye ederiz:

Akıllı telefon için verin ...