İçindekiler:

Arduino Riddlebox: 4 Adım (Resimlerle)
Arduino Riddlebox: 4 Adım (Resimlerle)

Video: Arduino Riddlebox: 4 Adım (Resimlerle)

Video: Arduino Riddlebox: 4 Adım (Resimlerle)
Video: 1. Q ışık kontrolörü artı QLC + ile başlar. Armatürler ve fonksiyonlar 2024, Ekim
Anonim
Arduino Bilmece Kutusu
Arduino Bilmece Kutusu

Bu Eğitilebilir Kitapta size Arduino destekli bir Riddlebox'ın nasıl yapıldığını göstereceğim. Bunu, kutunun bölmesine sakladığım kız arkadaşımın gerçek yılbaşı hediyesi için biraz eğlence katmak için yaptım.

USB kablosuna 5V uygulandığında, Arduino açılır ve LCD'de kısa bir öğretici ve ardından bir hediye veya hediye alabilen servo kumandalı bölmeyi açmak için çözülmesi gereken on bilmece dizisi gösterilir.

Ayrıca, ilerlemeyi sıfırlamak ve bölmeyi açmak için gizli, şifre korumalı bir ayarlar menüsü vardır.

Yerel donanım mağazamda bulabildiğimi kullandım ve gerisini 3D yazdırdım. Açıkçası, daha fazla sensör ekleyerek veya bazı parçaları dışarıda bırakarak Riddlebox'ı özelleştirebilirsiniz. Yaratıcılığınızı özgür bırakın.

İhtiyacın olacak:

  • Arduino Mega (bir Uno da yeterli olabilir)
  • Esnek atlama telleri
  • Anahtar anahtarı
  • 4x4 tuş takımı
  • I2C LCD 20x04
  • 2x SG90 servo motor
  • Alüminyum kasa
  • Metal menteşe
  • Aluminyum levha
  • Kesme diski ile başa çıkma testeresi veya döner alet
  • Sıcak yapıştırıcı tabancası
  • Yüksek yapıştırma tutkalı
  • USB flash sürücü
  • metal dosya

Adım 1: Donanımı Kurma

Donanımı Kurma
Donanımı Kurma

İlk önce bilmeceleri Arduino ile bir devre tahtası ve kullanmak istediğim bileşenler, yani tuş anahtarı ve tuş takımı ile prototipledim. Bu talimattaki Arduino kodunu olduğu gibi kullanmak için, parçaları aşağıda açıklandığı gibi bağlayın. Elbette, kodda uygun değişiklikleri yaptığınız sürece, bileşenleri ekleyip kaldırabilir veya farklı pinler kullanabilirsiniz.

Çoğu tuş takımında her satır ve her sütun için bir pin bulunur. Devreyi kapatmak için düğmelere basarken farklı pimler arasındaki sürekliliği test ederek hangi pimlerin sıra pimleri olduğunu öğrenin (örnek şemaya bakın). Kalan 4 pin kolon pinleri olmalıdır. (Not: bazen en dıştaki iki pin PCB üzerindeki bakır dolguya bağlanır ve göz ardı edilebilir)

COL0 - COL3 tuş takımı pinlerini Arduino pinleri 12 - 9 ve ROW0 - ROW3 pinlerini Arduino pinleri 8 - 5'e bağlayın.

LCD, I2C aracılığıyla bağlanır, bu nedenle sadece dört pin gereklidir: SDA, SCL, 5V ve GND.

Anahtar anahtarının üç konumu ve altı pimi vardır: Her iki C (ortak) pimi toprağa giderken, NO (normalde açık) etiketli iki pim sırasıyla Arduino pimi 22 ve 23'e gider. (Not: arduino girişleri yükseğe çekilir, bu yüzden sadece anahtarın ortak pinlerine topraklamamız gerekir)

İki servo, bölme kapısını fiziksel olarak açmak ve bir mandalla kilitlemek için kullanılır.

Servoların 5V ve GND'sini Arduino'ya bağlayın ve sinyal hatlarını şu şekilde bağlayın: kilit servo = pin 44, kapı servosu = pin 45.

Adım 2: Arduino Kodu ve Bilmeceler

Arduino Kodu ve Bilmeceler
Arduino Kodu ve Bilmeceler
Arduino Kodu ve Bilmeceler
Arduino Kodu ve Bilmeceler

Arduino kodu birkaç dosyadan oluşur. Ana çizim tüm donanımı, kitaplıkları ve global değişkenleri başlatır. Tüm bilmeceler ve menü blokları, kolay yönetim için fonksiyonlarda ayrı dosyalarda saklanır. EEPROM'a kaydedilen ilerleme durumu (yani, güç çevriminden sonra bile güvenlidir), ana dosyanın anahtar işlevinde hangi bilmece işlevlerinin çağrılacağını belirler.

Koddaki tüm kişisel bilgileri kaldırdım ve bazı çözümleri genel çözümlerle değiştirdim (1234…). Kodu uygun gördüğünüz şekilde değiştirmekten ve bazı kişiselleştirilmiş çözümler eklemekten çekinmeyin.

Bilmeceler ve menü blokları:

  1. Gelişmiş: İlerleme sıfırlama ve bölme kontrolleri içeren gelişmiş ayarlar menüsü.
  2. Giriş: Tebrik metni ve öğretici içeren giriş menüsü.
  3. İlköğretim: İyotun atom numarasıyla ilgili bilmece.
  4. Dış Kaynak Kullanımı: Oyuncunun, bir sayı bilmecesini otomatik olarak yanıtlayan bir e-posta adresiyle iletişim kurması gerekir. (Görüntülerdeki yıldız şeklindeki bilmece)
  5. Onaltı: Oyuncunun bir onaltılık sayıyı ondalık sayıya dönüştürmesi gerekir.
  6. Seçenekler: Oyuncunun bir flash sürücüde bulunan bir metin macerasını tamamlaması gerekiyor, bir sonraki seviyenin şifresi hikayede gizli. (bkz. Amnesia.rtf)
  7. Çevrimdışı: Oyuncu, anahtar anahtarını etkinleştirmek için anahtarı almalıdır (örneğin, posta yoluyla, çok hızlılarsa onları yavaşlatmanın en iyi yolu).
  8. Görünmez: Bir sonraki seviyenin şifresi bir kağıda görünmez mürekkeple yazılır.
  9. Matematik: Basit hesap görevi. (Zamanım tükendiği için daha çok doldurulmayan bir yer tutucu)
  10. Değişiklik: Euro banknotlarla ilgili kısa bilmece, farklı renkte banknotlar ile herhangi bir para birimine uyarlanabilir.
  11. Sabır: Oyuncu anahtarı 5 dakikalık bir süre boyunca çevirmemelidir, aksi takdirde zamanlayıcı sıfırlanır ve iki katına çıkar. (Not: Anahtarı yeterince sık çevirmek, değişkenin sınırlı boyutu nedeniyle taşmasına ve sıfıra sıfırlanmasına neden olur.)
  12. Cevap: "Cevap nedir?". Çözüm tabii ki 42.
  13. Bitiş Ekranı: Tebrikler ve bölmeyi açma talimatları. (anahtar üzerinden)

Kod dosyalarına yorumlar şeklinde daha fazla belge ekledim.

Bilginize: açılış ekranı sırasında 'A'yı basılı tutmak ayarlar menüsünü açar. Şifre: 2582

Adım 3: Ön Plakayı Oluşturma

Ön Plakayı Oluşturma
Ön Plakayı Oluşturma
Ön Plakayı Oluşturma
Ön Plakayı Oluşturma
Ön Plakayı Oluşturma
Ön Plakayı Oluşturma

Kasayı yerel hırdavatçıdan alüminyum levhayla birlikte satın aldım. Daha sonra bölme duvarlarını oluşturmak için yeniden kullandığım bölücülerle geldi.

Alüminyum levha çok genişti, bu yüzden bir testere ile çizdim ve kısalttım. Bununla birlikte, bir kaydırma testeresi, döner alet veya hatta kesme diski olan bir taşlama makinesi daha uygun olabilir, çünkü bu benim uzun zamanımı aldı ve bu süreçte iki bıçak kırdım. Kasanın önündeki boşluk kasıtlıdır. Bir güç bankası ve hafıza çubuğu yerleştirmek için alan sağlar.

Her şeyin nereye gitmesini istediğimi belirledikten sonra, işaretlenen bölümlerin köşelerinde delikler açtım ve tekrar kesme testeresini kullanarak kestim. Bölme bölümü için bir taşlama makinesinde kesme diski denedim ve fevkalade çalıştı. Bileşenlere uyacak şekilde açıklıkları kırpmak ve çapaklarını gidermek için metal bir dosya kullandım. Yörüngeli zımpara ile hızlı bir geçiş, her şeye mat bir görünüm kazandırdı. Bu elbette tamamen isteğe bağlı, alüminyum plakayı çok fazla kazıdım, bu yüzden zımparalama onları gizlemek ve keskin işaretlerimi kaldırmak için iyi bir yol gibi görünüyordu.

Bölmenin kapısı basitçe artık alüminyum levhanın kesilmiş bir parçasıdır.

Menteşeyi kapıya ve metal plakaya yüksek bağlayıcılı yapıştırıcı ile tutturdum. Her iki yüzeye de sürülerek 10-20 dakika kürlenmesine izin verilir. ve sonra her iki taraf birlikte bastırılır. Bağ anında gerçekleşir ve iki parçayı daha sonra ayarlamanın bir yolu yoktur.

Tuş takımı ve LCD ekran, kenarlarında bir miktar sıcak tutkalla yerinde duruyor. (Not: Bileşenlerin pimlerini alüminyum levhadan ayırdığınızdan emin olun. Bir parça sıcak tutkal hile yapar)

Anahtarın bir dişi ve somunu var, bu yüzden doğru boyutta bir delik açtım ve anahtarı taktım.

Bölmeyi otomatik olarak açabilmek için alüminyum levhanın altına hotglue ile kapıyı ve servoları kilitledim. Kilitleme kancası ve açma kolu ve kilit mandalı, bazı braketlerden şekil vermek için eğildi (tesisatçı bandına benzer). Bu şekilde biraz dayanıksız olduklarından ve muhtemelen başarısız olan ilk şey olacağından, bu bileşenleri 3D olarak basabilirdim ve muhtemelen de olmalıyım. Bu parçaları sırasıyla hotglue ve high bond yapıştırıcı ile yapıştırdım (resimlere bakın).

Ön taraf bu şekilde çok güzel görünmediğinden, farklı bileşenlerin etrafından dolaşmak için bazı çerçeveler basmaya karar verdim ve bunları da sıcak tutkalla yapıştırdım.

4. Adım: Vakayı Bitirmek

Vakayı Bitirmek
Vakayı Bitirmek
Vakayı Bitirmek
Vakayı Bitirmek

Daha önce bahsettiğim gibi, dava bazı bölücülerle geldi. Arduino için kaba bir bölme ve biraz alan oluşturmak için bir düzenlemeye karar verdim ve ardından hepsini yerine sabitlemek için yüksek yapışkanlı yapıştırıcı kullandım.

Tüm bileşenleri Arduino Mega'ya bağladıktan ve kasaya sıcak yapıştırdıktan sonra, USB kablosunu, dıştan erişilebilir olması için ayırıcılar arasındaki küçük açıklıktan besledim.

Alüminyum plakayı dikkatlice son konumuna yerleştirdikten sonra sıcak tutkal tabancasının memesini plaka ile kasa arasındaki dikişe bastırarak ve yapıştırıcıyı boşluğa zorlayarak yerine sabitledim. İlk başta bu sabitleme yönteminin doğruluğu konusunda şüpheliydim ama şu ana kadar öyle kaldı.

Yapılacak son şey, bazı son rötuşları uygulamaktı. MS Publisher'da bazı basit çıkartmalar tasarladım ve bunları yazdırdım, kestim ve ön plakaya basit bir yapıştırıcı ile yapıştırdım.

Elbette kaç tane çıkartma yapmak ve yapıştırmak istediğiniz tamamen size kalmış. Ayrıca bu, her şeyin biraz daha kötü görünmesi için bazı ayrışma tekniklerini uygulamak için iyi bir fırsat olabilir. Ne yazık ki bu sadece bu Eğitilebilir Yazıyı yazarken bana geldi.

Her neyse, umarım bu Riddlebox derlemesini beğenmişsinizdir. Herhangi bir sorunuz veya iyileştirme fikriniz varsa, aşağıya bir yorum bırakın, en kısa sürede size geri dönmeye çalışacağım.

Önerilen: