İçindekiler:

Arduino MEGA ile Mastermind Star Wars: 5 Adım (Resimlerle)
Arduino MEGA ile Mastermind Star Wars: 5 Adım (Resimlerle)

Video: Arduino MEGA ile Mastermind Star Wars: 5 Adım (Resimlerle)

Video: Arduino MEGA ile Mastermind Star Wars: 5 Adım (Resimlerle)
Video: DIY Radar With Ultrasonic Sensor And Chat-GPT Generated Arduino Code | Coders Cafe 2024, Temmuz
Anonim
Arduino MEGA ile Mastermind Star Wars
Arduino MEGA ile Mastermind Star Wars
Arduino MEGA ile Mastermind Star Wars
Arduino MEGA ile Mastermind Star Wars
Arduino MEGA ile Mastermind Star Wars
Arduino MEGA ile Mastermind Star Wars

Bunlar isyan için olumsuz zamanlar. Ölüm Yıldızı yok edilmiş olsa da, İmparatorluk birlikleri ücretsiz donanım ve Arduino'yu gizli bir silah olarak kullanıyor.

Özgür teknolojilerin avantajı budur, herhangi bir kişi (iyi ya da kötü) bunları kullanabilir.

Anoat gezegeninde bulunan gizli bir üste, Imperial Destroyer'ı kopyalayabilen bir 3D yazıcı inşa ediyorlar.

İmparatorluğu yenmenin tek çözümü, Luke Skycuartielles ve Obi-Wan Banzi tarafından komuta edilen bir grup isyancının imparatorluk birliklerini yenmesi ve gizli silahı yok etme planlarına erişim sağlayacak anahtarı elde etmesidir.

Bu anahtar 4 renkten oluşur ve şifresini çözmek için 10 deneme hakkınız vardır. Sadece dört kural var:

  1. Renkler tekrar edilebilir
  2. Beyaz ışık, doğru renk ve konuma ulaştığınızı gösterir.
  3. Mor bir ışık, renge çarptığınızı ancak konuma gelmediğinizi gösterir.
  4. Işık yoksa rengi veya konumu tahmin etmemişsinizdir.

Acele etmelisiniz, çünkü diğer uçta kötü Darth Ballmer anahtarı sizden önce almaya çalışacaktır. Bu durumda ne olduğunu öğrenemeyecek ve gizli silahın planlarına ulaşamayacaksınız. Göreviniz başarısız olmuş olacak.

Küçük Padawan, anahtarı deşifre etmek ve böylece Galaksiyi kurtarmak için güç sana eşlik etsin.

Adım 1: Malzeme

Malzeme
Malzeme

Mastermind Star Wars with Arduino'yu yapmak için gereken malzeme üç bölüme ayrılmıştır.

  • Konutun gerçekleştirilmesi için marangozluk ve kırtasiye
  • Tüm elektronik cihazlar için bileşenler, kablolar ve Arduino
  • Aletler

Marangozlukla başlayalım. Aşağıdaki malzeme gereklidir:

  • 90x60'tan 2 x MDF panoları
  • 1 x sebze kağıt levha

Elektronik kısımda, aşağıdaki malzemeye ihtiyaç vardır:

  • 1 x NeoPixel Şerit 5 metre
  • 1 x Arduino MEGA
  • 1 x kapasitör 100 µF
  • 4 x direnç 470 Ω
  • 5 x siyah düğme
  • 5 x beyaz düğme
  • 1 x güç 5V-5A
  • 1 x güç 5V-2A

Son olarak, araç kısmında aşağıdakileri kullandık:

  • Silikon Tabancası Sıcak
  • Lazer CNC de MxN
  • Elektrik kaynakçı
  • kaynakçı teneke

2. Adım: Tasarım

Tasarım
Tasarım
Tasarım
Tasarım
Tasarım
Tasarım

Bu projenin en önemli kısımlarından biri konut tasarımıdır. Lazer kesici ile kesilmiş 3 parçadan oluşmaktadır.

Baza 90x60 mdf parçadan alınmıştır. Yeterince büyük bir lazer kesiciye ihtiyacınız olacağından malzemenin boyutlarını dikkate alın.

SVG dosyasını bu adımın sonunda bulabilirsiniz.

Üst kapak, Star Wars tematik çizimlerinin yanı sıra hem butonlar hem de pikseller için delikleri içeren kapaktır.

Baz ile aynı şekle sahiptir.

Yan duvarlar, kerf adı verilen lazer kesim tekniği kullanılarak yapılmıştır. Bu, malzemenin esnek olmasını sağlar. Duvarları yerleştirmek için bazı parçalar kılavuz görevi görecek şekilde tasarlanmıştır.

Son olarak, her NeoPixel matrisi, NeoPixel'in ışığını dağıtmak için bir tarafta NeoPixel'in sabitlendiği ve diğer tarafta bitkisel bir kağıdın sabitlendiği bir ızgaraya sahiptir. Burada, kendiniz kesip üretebilmeniz için tüm SVG dosyalarına sahipsiniz.

Adım 3: Elektronik Montaj

Elektronik Montaj
Elektronik Montaj
Elektronik Montaj
Elektronik Montaj
Elektronik Montaj
Elektronik Montaj
Elektronik Montaj
Elektronik Montaj

Elektroniğin montajının ilk aşaması, 5 metrelik NeoPixel şeridini, her oyuncu için 10 piksel ve 4 ayrı pikselden oluşan 8 şerit halinde kesmekti. Oyuncu başına toplam 84 piksel. Bir yandan 10 şerit birbiri ardına monte edilir ve her şeridi birkaç milimetreye paralel yerleştirmek için yeterli kablo bırakılır. Bu piksel matrisi, her oynamayı ve sonucu göstermeye hizmet edecektir. 4 piksel tuşun dört rengini gösterir ve diğer dört piksel sonucu gösterir. Sonuç olarak şunları yapmamız gerektiğini hatırlatırım:

  • Piksel beyaz ise, konumu ve rengi başarılı olmuştur.
  • Piksel mor ise, renk doğrudur ancak konum değildir.
  • Piksel kapalıysa, ne renk ne de konum doğru değildir.

Yaptığımız hatalardan biri güç kabloları ve GND. Daha basit olabilirdi ama sonra fark ettik. Piksellerin numaralandırılması aşağıdan yukarıya doğru gittiği için veri kablosunun bir sıra izlemesi gerekir.

Öte yandan, aralarında bağlanması gereken 4 ayrı pikselimiz var. Bu pikseller bize butonlar ile seçtiğimiz rengi gösterecektir.

Verileri korumak için her şeride seri olarak 470Ω direnç bağlanır. Her piksel şeridinin veri kablosu bir dijital pime bağlanır. Arduino MEGA'da seçilen pinler 6, 7, 8 ve 9'dur.

Örneğin, 6 ve 7 oyuncu 1 ve 8 ve 9 oyuncu 2 içindir.

Kullanmış olduğumuz butonlar atari makinelerinin tipik butonlarıdır. İyi görüneceklerini düşündük ve böyle oldu.

Diğer butonlar kullanılabilir ancak daha küçük veya daha büyük olmaları durumunda lazer CNC ile kesmeden önce DXF dosyasının değiştirilmesi gerektiği dikkate alınmalıdır.

Oyuncuları ayırt etmek için bazı düğmeler beyaz, diğerleri siyahtır.

Her oyuncunun 4 yukarı ve 1 aşağı düğmesi vardır. 4 üst düğme, tuşun her konumunun rengini seçmeye yarar.

Alttaki düğme doğrulamak için kullanılır, yani rengin ve konumun başarılı olup olmadığının ilgili doğrulamasıyla birlikte piksel matrisinde görünmesi için anahtarı gönderir.

Her şeyi monte etmeden önce tüm kabloları lehimledik. Bu yüzden çok fazla kabloya ihtiyacınız olacak. Oyunun boyutuna bağlı olacaktır. Bizim durumumuzda oldukça büyük oldu.

Örneğin ethernet kablosunu kullanarak açıp iç kabloları alabilirsiniz. Bu iyi bir çözüm. Bunları mümkün olduğunca düzenli tutmaya çalışın çünkü o zaman elektrik şemasında gördüğünüz gibi Arduino MEGA ile bağlantıların yapılması gerekecektir.

Binmeden önce hepiniz asker olduğunuzda denemek zorundasınız. Test edilmiştir çünkü yuvaya takıldığında sıcak silikon ile yapışacaktır ve arızalanırsa karmaşıklaşacağından çıkarılacaktır. Piksel matrislerini yerleştirmek için, kapağın ızgarası ile aynı boyutlarda, bir tarafında piksellerin sıkıştığı ve diğer tarafında bitkisel bir kağıt bulunan bir ızgara tasarlanmıştır.

Bu kağıt, her pikselin ışığını yayarak çok daha güzel bir efekt verir. Daha sonra o yapı içerdeki üst kısma yapışır. Biraz karmaşık ama özenle iyi bir sonuç elde edilir.

Besleme biraz karmaşıktı. Prensip olarak ve şemaya baktığımızda sadece tek bir şarj cihazı kullanacaktık. Ancak ilk testler ve NeoPixel tüketiminden sonra bunun iki şarj cihazı alacağını gördük.

Her piksel maksimum 60 mA tüketebilir. 168 piksel ile çarparsak, yaklaşık 10 A'lık bir tüketim elde edersiniz.

Her ne kadar bu en kötü durumda olsa da. Programlamada, NeoPixel'in yoğunluğunu en üst düzeye çıkarmamayı zaten hesaba kattık.

%50'ye bile ulaşamıyoruz, bu nedenle 5V ve 5A şarj cihazı fazlasıyla yeterli.

Öte yandan Arduino MEGA, jak konektörü veya USB bağlantı noktası aracılığıyla bağlanabilen ayrı bir şarj cihazına sahiptir. Olası bir iyileştirme, tüm sistem için tek bir şarj cihazına sahip olmak olabilir.

Adım 4: Oyun Programlama

Oyun Programlama
Oyun Programlama
Oyun Programlama
Oyun Programlama

Programlama iki kitaplık kullanılarak yapılmıştır: OneButton ve Adafruit_NeoPixel.

OneButton kitaplığı, düğmelerin kesintilerle basit bir şekilde kontrol edilmesini sağlar.

Adafruit_NeoPixel kütüphanesi, NeoPixel şeridini çok basit bir şekilde kontrol etmemizi sağladı.

Programlama, yazılım programının olabileceği farklı durumlara dayanmaktadır:

Oyuna başlamak. Durum = 0

Bu durumda oyun başlatılır ve her iki oyuncuda da oyunun başlayacağını gösteren bir dizi ışık vardır. Bu durum sırasında butonlar yanıt vermez.

Başlangıç hali. Durum = 1

İlk durumda, iki oyuncudan birinin onay düğmesine (beşinci düğme) çift tıklamasını bekleyin. Bu işlem oyunun başlamasına izin verecektir.

Oyunu hazırlamak. Durum = 2

Oyunun hazırlık aşamasında tüm değişkenler sıfırlanır ve anahtar için rastgele renk seçimi başlatılır.

Oyun Durumu = 3

3. durumda oyun başlar. Her oyuncu butonlarla bir anahtar seçer ve onay butonuna tıklayarak onaylar. Bu durum iki şekilde sona erebilir: bir oyuncu anahtarı keşfettiğinde veya iki oyuncu sahip oldukları 10 denemeyi tükettiğinde.

Bir kazanan Devlet = 4

Bir oyuncu kazanırsa, tahtasında yeşil bir onay işareti ve kazanan kombinasyon ve kaybeden üzerinde kırmızı bir çarpı işareti gösterilir.

Bağlı oyun. Durum = 5

Beraberlik durumunda, herhangi bir tahtada hiçbir şey gösterilmez ve her iki oyuncunun tahtasında kazanan kombinasyon.

Oyunda ister kazanan ister beraberlik olsun, sonraki durum çift tıklamayı bekleyen ilk durum olacaktır.

Tüm kodu aşağıda bulabilirsiniz. İspanyolca olan tek şey:)

Adım 5: Test Etme ve İyileştirmeler

Oyun oynanarak test edilir. Yukarıdaki videoda tam bir oyun görebilirsiniz.

Buradan Arduino ile Mastermind Star Wars'a eklenebilecek birkaç iyileştirme düşünebiliriz.

Sonra onları listeliyorum.

  • İki oyuncu için toplam 10 deneme ile sırayla oynayabilmek. Bir oyuncu bir tuşu denediğinde, diğer oyuncu oyunu görecektir.
  • Sadece bir kişinin oynayabileceği şekilde bireysel bir oyun modu.
  • Her birini kendi anahtarıyla modlayın.
  • Bir OLED ekran ekleyin.
  • Her şey için tek bir şarj cihazı kullanın.
  • NodeMCU ESP8266'ya bağlanın

Eminim birçok insan birçok iyileştirme ile karşımıza çıkacaktır. Aşağıdaki yorumları bekliyorum.

Ve güç seninle olsun.

Önerilen: