İçindekiler:

Crack the Code Game, Arduino Tabanlı Puzzle Kutusu: 4 Adım (Resimli)
Crack the Code Game, Arduino Tabanlı Puzzle Kutusu: 4 Adım (Resimli)

Video: Crack the Code Game, Arduino Tabanlı Puzzle Kutusu: 4 Adım (Resimli)

Video: Crack the Code Game, Arduino Tabanlı Puzzle Kutusu: 4 Adım (Resimli)
Video: Sérigraphie - Spide la Pub à Perpignan dans les Pyrénées Orientales, 66 2024, Kasım
Anonim
Image
Image
Crack the Code Game, Arduino Tabanlı Puzzle Kutusu
Crack the Code Game, Arduino Tabanlı Puzzle Kutusu
Crack the Code Game, Arduino Tabanlı Puzzle Kutusu
Crack the Code Game, Arduino Tabanlı Puzzle Kutusu

Tinkercad Projeleri »

Bu Eğitilebilir Kitapta, kasaya rastgele oluşturulmuş kodu tahmin etmek için bir döner kodlayıcı kadranı kullandığınız kod oyununu kendi crack'inizi nasıl oluşturacağınızı göstereceğim. Kasanın ön tarafında, tahmin ettiğiniz rakamların kaçının doğru, kaçının doğru yerde olduğunu söyleyen 8 adet LED bulunmaktadır.

Kasa başlangıçta açıktır ve iç bölmeye bir şey koymanıza izin verir. Arduino ve pil, arkada ayrı bir bölmeye yerleştirilmiştir. Daha sonra kasayı kilitlemek için kadrana basıyorsunuz, bu da kapının iç kısmındaki bir servo kullanılarak yapılıyor. Ardından, rakamları seçmek için kadranı çevirerek ve her bir rakamı onaylamak için kadrana basarak kodu girmeniz gerekir. Dördüncü haneniz seçildikten sonra kasa, kapıdaki kırmızı ve yeşil led'leri kullanarak kaç rakamınızın doğru ve kaçının doğru yerde olduğunu gösterir.

Kırmızı LED doğru rakamı gösterir ve yeşil LED de doğru yerde olduğunu gösterir. Yani kodu kırmak ve kasayı açmak için dört kırmızı ve yeşil LED'i de yakmanız gerekiyor.

Kasa, kodu kırmak için kaç tahmin yaptığınızı takip eder ve bu, kodu kırmayı başardığınızda görüntülenir. İlk başta karmaşık gelebilir ama aslında o kadar da zor değil, sadece önceki tahminlerinizi hatırlamanız ve üzerine inşa etmeniz gerekiyor. Çoğu zaman, ilk tahminlerinizin ne kadar şanslı olduğuna bağlı olarak, kodu 5 ila 10 tahminde kırabilmeniz gerekir.

Bu Eğitilebilir Kitaptan hoşlanıyorsanız, lütfen Arduino yarışmasında oy vermeyi düşünün.

Gereçler

Bu Crack The Code kasasını oluşturmak için ihtiyacınız olacak:

  • Arduino Uno - Buradan Satın Alın
  • I2C OLED Ekran – Buradan Satın Alın
  • Buton Kodlayıcı – Buradan Satın Alın
  • 4 x 5mm Kırmızı LED – Buradan Satın Alın
  • 4 x 5mm Yeşil LED – Buradan Satın Alın
  • 8 x 220Ω Dirençler – Buradan Satın Alın
  • Mikro Servo – Buradan Satın Alın
  • Şerit Kablo - Buradan Satın Alın
  • Başlık Şeritleri - Buradan Satın Alın
  • Güç Anahtarı - Buradan Satın Alın
  • 3mm MDF Levha - Buradan Satın Alın

Ayrıca bazı temel aletlere, ahşap yapıştırıcıya, bir tutkal tabancasına ve bir havyaya da ihtiyacınız olacak.

Kasanın parçalarının lazerle kesilmesi gerekir. Bir lazer kesiciye erişiminiz yoksa, çevrimiçi bir lazer kesim hizmeti kullanmayı düşünün, oldukça uygun fiyatlı hale geldiler ve bileşenleri kesip kapınıza teslim edecekler.

Bu, Instructable - K40 Laser Cutter'da kullandığım lazer kesici.

Adım 1: Kutuyu Birleştirin

Kutuyu Birleştirin
Kutuyu Birleştirin
Kutuyu Birleştirin
Kutuyu Birleştirin
Kutuyu Birleştirin
Kutuyu Birleştirin
Kutuyu Birleştirin
Kutuyu Birleştirin

Kasayı Inkscape'de 3mm MDF'den kesilecek şekilde tasarladım. Dilerseniz parçaları 3 mm akrilik veya kontrplaktan da kesebilirsiniz. Farklı kalınlıkta bir malzeme kullanırsanız, kutu bileşenlerindeki yuvaları birbirine doğru şekilde oturacak şekilde ayarlamanız gerekir.

Lazer kesim dosyalarını buradan indirebilirsiniz.

Kutunun dışını oluşturan 6 panel vardır, ön ve arka kapılar için arka ve ön içlerinde oyuklar vardır. Paneller, takip edebilmeniz için yazdırma dosyasında etiketlenmiştir.

Kadran ayrıca, daha sonra birbirine yapıştırılan bazı lazerle kesilmiş parçalar kullanılarak yapılmıştır.

Kasanın daha çok kasa gibi görünmesi için kutunun üstüne ve iki yanına yapıştırılmış üç dekoratif panel vardır. Ayrıca kapıyı oluşturan iki panel ve kasayı elektronik bölmeden ayırmak için kutunun ortasına giren bir ayırıcı panel bulunmaktadır.

Parçalar tek bir MDF 400 x 500 mm parçasına sığar ve lazer kesiciniz tüm parçaları bir kerede kesecek kadar büyük değilse daha küçük parçalara bölünebilir.

Dekoratif panelleri önce üst ve yanlara yapıştırmaya başladım. Hangisinin hangisi olduğunu bilmek için parçaları doğru sırayla aldığınızdan emin olun. Üç farklı parça var, üst ve alt aynı, yanlar aynı ve ön ve arka aynı.

Paneller kuruduktan sonra kutuyu monte edebilirsiniz.

Merkez ayırıcının kesiklerinin yanlarda olduğundan emin olun. Bunlar, kutunun önünden Arduino ve pilin oturduğu kutunun arkasına kadar herhangi bir kabloyu çalıştırmak içindir.

Menteşeler de lazer kesimdir ve siz kapıyı hizaladıktan sonra yerine yapıştırılır. Kapıya paralel olduklarından emin olun yoksa açmakta zorlanacaksınız. Ayrıca, geçerken kutunun kenarına sürtünmemesi için kapının menteşeli iç kenarından biraz zımparalamanız gerekebilir.

Arka kapağın vidalarını açmak için dört kareyi arka panelin arkasındaki köşelere yapıştırın.

Ardından vidalar için delikler açabilir ve ekranı, Arduino'yu, arka kapağı ve son olarak kodlayıcıyı monte etmeye başlayabilirsiniz.

Adım 2: Elektroniği Bağlayın

Elektroniği bağlayın
Elektroniği bağlayın
Elektroniği bağlayın
Elektroniği bağlayın
Elektroniği bağlayın
Elektroniği bağlayın

Tinkercad Circuits'te devreyi breadboard üzerinde tasarladım ve sonrasında OLED ekrana ekledim.

6 ila 13 arasındaki dijital IO pinlerine bağlı 8 LED'imiz var. Kilitleme servosu pin 5'e bağlı. Encoder 2, 3 ve 4 pinlerine bağlı ve OLED ekran Arduino'nun I2C arayüzüne bağlı.

Her bir LED için 220 ohm'luk bir direnç kullandım, doğrudan negatif led'e lehimledim ve kablolamayı düzgün tutmak ve her Arduino pinine hangi kablonun gitmesi gerektiğini takip etmeye yardımcı olmak için bileşenleri renkli şerit kablo kullanarak birbirine bağladım.

Şerit kabloları arka bölmeye ittim ve Arduino'ya takmak için bazı pin başlık şeritlerini şerit kabloya lehimledim.

Ayrıca arka kapağa bir güç anahtarı taktım ve oyuna güç sağlamak için şarj edilebilir bir pile bağlamak için bunu bir pil fişine bağladım. İsterseniz 9V pil de kullanabilirsiniz.

Son olarak, kilitleme servosunu kutunun içindeki dudağın üzerinden geçecek ve kol kutuyu kilitlemek için dudağın içine doğru itebilecek şekilde kapının kenarına doğru konumlandırmanız gerekir. Bu en güçlü kilitleme mekanizması değil ama gerçekten basit ve oyunun amacı için iyi çalışıyor.

Adım 3: Arduino'yu Programlama

Arduino'yu Programlamak
Arduino'yu Programlamak
Arduino'yu Programlamak
Arduino'yu Programlamak

Oldukça fazla olduğu için kodu her zamanki kadar ayrıntılı olarak incelemeyeceğim. Bu bağlantı aracılığıyla kod indirme ile birlikte bulabileceğiniz her bir bölümünü açıklayan ayrıntılı bir yazı hazırladım - Kod Oyunu Kodunu Kırın.

Özetle; OLED ekranını ve servoyu kontrol etmek için kitaplıkları içe aktararak başlıyoruz.

Ardından ekran için parametreleri ayarlıyoruz ve tüm değişkenlerimizi oluşturuyoruz. Bunlar pin 2 ve 3'teki yükselen kenar kesmeleri aracılığıyla yapıldığından, kodlayıcı dönüşlerini izlemeye adanmış birkaç değişken vardır.

Rastgele oluşturulmuş kodu depolamak için oluşturulmuş iki kod dizisi vardır ve biri de kullanıcıların mevcut tahminini depolamak için.

Kurulum fonksiyonunda ekranı başlatıyoruz, servoyu takıyoruz, IO pin modlarını ayarlıyoruz ve ardından ekranda Crack The Code metin animasyonunu görüntülüyoruz.

Döngü işlevleri LED'leri yakıp söndürür ve daha sonra kullanıcı oyunu başlatmak için kadrana basana kadar bekleyen güvenli kilitlemeye bas mesajını görüntüler. Aynı kod, oyunun sonunda çalıştırılır ve daha sonra deneme sayısını görüntüler ve yeni bir oyun başlatmak için bir tuşa basılmasını bekler.

Enkoder butonunda bazı geri dönme kodu vardır ve bir kez basıldığında, servo kasayı kilitler ve rastgele bir kod üretilir. Kod daha sonra kullanıcıdan tahminini girmesini isteyen bir fonksiyon çağırır ve daha sonra tahminini kontrol etmek için başka bir fonksiyon çağırır, bu kullanıcı kodu doğru tahmin edene kadar tekrarlanır.

Kodlayıcı her açıldığında çağrılan ve görüntülenen kodun değiştirilmesi gereken, görüntülenen kodu güncelleme işlevi vardır.

Yeni bir kod oluşturma işlevi, kod dizisindeki dört öğenin her birine rastgele bir rakam atar.

Bir kod tahmini girme işlevi, kullanıcının kodlayıcıyı kullanarak bir rakam seçmesine ve ardından kodlayıcıyı aşağı iterek her bir rakam girişini onaylamasına olanak tanır.

Kontrol kodu tahmin fonksiyonu daha sonra tahmin edilen koda bakar ve kaç rakamın doğru olduğuna ve kaç tanesinin doğru yerde olduğuna karar verir.

Güncelleme LED'leri işlevi, kullanıcıların tahminine göre doğru sayıda kırmızı ve yeşil LED'i değiştirir.

Başlatma ani işlevi, başlatma sırasında Crack The Code animasyonunu görüntüler.

Son olarak, iki kesme işlevi, kodlayıcıdan gelen girişi yönetir, biri saat yönünde çevrildiğinde rakamı yukarı doğru, diğeri saat yönünün tersine çevrildiğinde aşağı doğru artırır.

Adım 4: Crack the Code Oyununu Oynamak

Crack the Code Oyunu Oynamak
Crack the Code Oyunu Oynamak
Crack the Code Oyunu Oynamak
Crack the Code Oyunu Oynamak
Crack the Code Oyunu Oynamak
Crack the Code Oyunu Oynamak
Crack the Code Oyunu Oynamak
Crack the Code Oyunu Oynamak

Oyunu oynamayı öğrenmenin en iyi yolu baştaki videoyu izlemektir, sonlara doğru oynanan oyunun iki örneği vardır.

Kasa başlangıçta açılır ve içine bir şey koymanıza izin verir.

Ardından kasayı kilitlemek ve yeni bir kod oluşturmak için kadrana basın.

Tahmin edilen kod, haneyi artırmak için kadran kullanılarak girilir ve sonraki haneye gitmek veya dört hanenin tümü seçildiğinde kodu onaylamak için kadrana basılarak girilir.

Ön taraftaki LED'ler daha sonra bize tahminimizde neyin doğru olduğunu söylemek için yanar.

Daha sonra, doğru kodu tahmin edip kasayı tekrar açana kadar bir sonraki tahmininizi yapmak için bu geri bildirimi kullanırsınız. Doğru kodu girdiğinizde, kasanın kilidi açılır ve kodu kırmak için yaptığınız deneme sayısı görüntülenir.

Kendi crack şifreli kasanızı oluşturmanın keyfini çıkarın. Bu Eğitilebilir Tabloyu beğendiyseniz, lütfen Arduino yarışmasında oy vermeyi düşünün.

Arduino Yarışması 2020
Arduino Yarışması 2020
Arduino Yarışması 2020
Arduino Yarışması 2020

Arduino Yarışması 2020'de İkincilik Ödülü

Önerilen: