İçindekiler:

3D4x Oyunu: 3D 4x4x4 Tic-Tac-Toe: 5 Adım (Resimlerle)
3D4x Oyunu: 3D 4x4x4 Tic-Tac-Toe: 5 Adım (Resimlerle)

Video: 3D4x Oyunu: 3D 4x4x4 Tic-Tac-Toe: 5 Adım (Resimlerle)

Video: 3D4x Oyunu: 3D 4x4x4 Tic-Tac-Toe: 5 Adım (Resimlerle)
Video: 3D4x Game: 3D 4x4x4 Tic-Tac-Toe - PromoVid 2024, Temmuz
Anonim
Image
Image
3D4x Oyunu: 3D 4x4x4 Tic-Tac-Toe
3D4x Oyunu: 3D 4x4x4 Tic-Tac-Toe
3D4x Oyunu: 3D 4x4x4 Tic-Tac-Toe
3D4x Oyunu: 3D 4x4x4 Tic-Tac-Toe
3D4x Oyunu: 3D 4x4x4 Tic-Tac-Toe
3D4x Oyunu: 3D 4x4x4 Tic-Tac-Toe

Aynı, eski, sıkıcı, 2 boyutlu tic-tac-toe oyununu oynamaktan sıkıldınız mı?? Peki sizin için bir çözümümüz var! 3 boyutlu Tic-tac-toe!!! 2 oyuncu için, bu 4x4x4 küpte arka arkaya 4 LED (herhangi bir yönde) alın ve siz kazanın! Yaparsın. sen oyna.

Adım 1: Bileşenleri ve Araçları Toplayın

Bileşenleri ve Araçları Toplayın
Bileşenleri ve Araçları Toplayın

Bu 3D Tic-Tac-Toe'nun en önemli bileşeni LED'dir. Halihazırda entegre bir denetleyiciye sahip olan PL9823'ü seçtik. Dört pini (Veri Girişi, Voltaj Beslemesi, Toprak, Veri Çıkışı) vardır ve LED'in rengini kolayca adreslemenizi ve kontrol etmenizi sağlar. Izgara yapısı birçok farklı şekilde inşa edilebilir, ancak bizim için bu en ucuz, en sağlam ve en estetik seçenekti.

Bileşen Listesi:

  • Arduino (Uno kullandık)
  • PL9823 LED'leri (en az 64)
  • Tahta şiş çubukları (24 cm uzunluğunda)
  • Kablolama (eski bir ethernet kablosunun içini kullandık)
  • Düğmeler (anlık durum)
  • 7 Direnç (220Ohm)
  • Breadboard'lar (düğmeler ve oynatma için 1, Arduino'ya kolay panel bağlantıları için 1)
  • Köpük polistiren levha (panelleri yapmak için ~2x30x30cm)
  • Köpük polistiren blok (tüm ızgara için taban olarak ~7x25x25cm)

Araç Listesi:

  • Havya
  • Lehimleme kalay
  • Zamk
  • cetvel ile cetvel
  • pense
  • Tel striptizci
  • Tel kesiciler
  • Makas
  • İşaretleyici
  • Dolma kalem
  • Cımbız

Adım 2: Izgarayı Yapın

Image
Image
Izgarayı Yap
Izgarayı Yap
Izgarayı Yap
Izgarayı Yap

4 adet 4x4 LED panelini ayrı ayrı yapıyoruz.

  • 00: Panel yerleşimini yapmak için strafor alın. Deseni çizin. Bu durumda, uçlarında 2 cm olan LED'ler arasında 6 cm boşluk kullandık.
  • 01: LED pimlerini straforun içine sokun. Önemli! Tüm LED'leri aynı yönde taktığınızdan emin olun. Bizim durumumuzda çıkış pinini sola doğru seçtik.
  • 02: Şimdi tahta şiş çubuklarını LED'lerin her iki tarafına sıralar halinde yerleştirin, tüm noktaların aynı yöne baktığından emin olun. Çubuğu LED ampullerin kenarlarına yapıştırın ve kurumaya bırakın.
  • 03: LED'lerin her iki tarafındaki tahta çubuk şiş sütunları için aynısını yapın, noktaların hepsinin aynı yöne baktığından emin olun. Yapıştırın ve kurumaya bırakın.
  • 04: Etrafındaki LED'leri gevşeterek yavaşça çıkarın. Paneli kaldırın ve ters çevirin. Arka tarafı daha güvenli olacak şekilde yapıştırın.
  • 05: Her şey kuruduktan sonra, lehimlemeyi kolaylaştırmak ve herhangi bir elektrik hattının geçmesini önlemek için pimleri bükün. Bir cımbız kullanıyoruz ve pimi tabana yakın bir yerden büküyoruz.
  • 06: Şimdi telleri hazırlayın. İçinde 4 bükümlü tel bulunan eski bir ethernet kablosu kullandık. Küçük kabloları kesmemeye dikkat ederek yalıtımı çıkarın. Ardından bükümleri açın, farklı çizgilere karşılık gelen renklerinizi seçin ve LED'ler arasında doğru uzunlukta kesin. Ardından, uçlardaki yalıtımı biraz sıyırın. Zemin=yeşil, Vdc=mavi, veri girişi/çıkışı=beyaz seçtik.
  • 07: Lehim! Çok sayıda bağlantı (64x4) vardır, bu nedenle doğru lehimlemeye dikkat edin.
  • 08: Paneli çıkarın ve köpük tabanın üzerine yerleştirin!

3. Adım: Joystick'i Yapın

Joystick'i yap
Joystick'i yap
Joystick'i yap
Joystick'i yap

Izgarada gezinmek ve seçim yapmak için joystick yapmak için bir devre tahtası kullandık. Yön kontrolörünü (her yön için 1 adet olmak üzere) ve seçim düğmesini (oyuncunun hareketine girer) tanımlayan devreyi (şemaya bakınız) oluşturmak için jumperlar, dirençler ve butonlar yerleştirdik. 5V ve toprak, Arduino'daki ilgili bağlantı noktalarına bağlanır. Analog ve dijital giriş pinleri için sırasıyla A5 ve 2 Arduino portlarını seçtik.

Seçim düğmesi, demetlenme önleyici dirençli temel bir şemaya sahiptir. Yön komutu, voltaj bölücü devre olarak çalışan bir direnç merdivenine dayanmaktadır: analog girişe giden voltaj, basılan düğmeye bağlıdır ve Arduino tarafından tek komut yönü olarak yorumlanır.

Adım 4: Kodu Yazın

Kodu Yaz
Kodu Yaz

Kullanmanız için kodumuzu yükledik:) Öncelikle Arduino'ya elektrik bağlantılarını yapın. Biraz daha kolaylaştırmak için Arduino'nun yanına mini bir breadboard koyduk. Arduino "GND" ve "5V" yi breadboad'un 2 hattına bağladık ve ardından her panelden ilgili toprak ve Vdc'yi bağladık. Data-In ve Data-Out için panellerin her biri için 13, 10, 7 ve 4 olmak üzere 4 farklı Arduino pini seçtik. PL9823 LED'leri, LED'in seri halindeki sayısal sırasına göre ayrı ayrı adreslenebilir. Örneğin 1. LED'i belirli bir renge çevirmek istiyorsanız, LED[0] adresine gidin. 16. LED için, LED'i[15] adresleyin. Artık güzel ışıklarla kodlamaya ve oynamaya hazırsınız! Aşağıda 3D tic-tac-toe oyununun kodunun genel bir açıklaması bulunmaktadır.

3D4x Oyununun Kodu

Mikro kontrollü LED'leri yönetmemizi sağlayan fastled.h kütüphanesini kullanıyoruz.

Küp sanal olarak 3D tamsayı dizisi “TTTMap”te hafızaya alınır, burada her bir öğe, sahip olduğu ilgili ışığa göre 5 durumdan 1'inde olabilir: 0= oyuncu yok, 1= oyuncu 1, 2= oyuncu 2, 3= kazanan bir kombinasyonda oyuncu 1 ve kazanan bir kombinasyonda 3= oyuncu 2. TTTMap'teki sanal küpün elemanlarını gerçek LED'lere eşlemek için LEDMap0, LEDMap1, LEDMap2, LEDMap3 tamsayı dizileri kullanılır.

"Kurulum" işlevi, panele bağlı Arduino bağlantı noktalarını başlatır, tüm LED'leri "siyah" olarak başlatır ve TTTMap dizisinin öğelerini 0'a başlatır.

“Döngü” işlevi “ReadButtonInput()”, “SendLED()” işlevlerini ve bir oyuncunun kazanması durumunda “VictoryAnimation()” işlevini çalıştırır. İlk fonksiyon yön komutunun analog girişini ve seçim düğmesinin dijital girişini okur. Düğme basılı tutulduğunda hareketin döngü hızında tekrarlanmasını önlemek için “ButtonPushed” ve “SelectPushed” boolean değişkenleri kullanılır. “SendLED()” işlevi, TTTMap'teki verilere göre seri kontrol sinyali göndererek LED'lerin durumlarını yeniler. Seçim düğmesine her basıldığında “ReadButtonInput()” tarafından çağrılan “CheckVictory()” temel bir işlevdir. Bu işlev, boşlukta seçilen noktanın çevreleyen pimlerle kazanan bir kombinasyon oluşturup oluşturmadığını kontrol eder. Kazanan kombinasyon durumunda, TTTMap'teki puanlar, kazanan oyuncuya göre 3 veya 4 numara ile işaretlenir ve heyecan verici “VictoryAnimation()” çalışır!

Tekrar oynamak için Arduino'daki sıfırlama düğmesine basmanız yeterli:)

Adım 5: Arkadaşlarınızla Oynayın

Arkadaşlarınla oyna!
Arkadaşlarınla oyna!
Arkadaşlarınla oyna!
Arkadaşlarınla oyna!
Arkadaşlarınla oyna!
Arkadaşlarınla oyna!

Burada açıklamaya gerek yok… KEYFİNİ ÇIKARIN!

Önerilen: