İçindekiler:
- Adım 1: Malzemeler
- 2. Adım: Bulmaca
- Adım 3: Kablolama
- Adım 4: Kod
- Adım 5: Vaka ve Blokları Boyama
- Adım 6: Herhangi Bir Soru ??
Video: Renk Tabanlı Bulmaca: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Selam!
"Eğer Bu O Zaman Oysa" adlı bir okul projesi için Arduino kullanarak etkileşimli bir nesne oluşturmam gerekiyordu. Basit bir geri bildirim sistemi ile renk tabanlı bir bulmaca oluşturmaya karar verdim.
Ne yapar (kısaca):
- Renk sensörünün üzerindeki nesnenin rengini belirler.
- Bu rengin doğru çözümle eşleşip eşleşmediğini kontrol eder.
- Bulmacanın çözülüp çözülmediğine bağlı olarak "öldün" işaretini yükseltir veya kaldırmaz.
Yani bu bulmacanın çözülmesinin kolay olduğunu mu düşünüyorsunuz?
Nasıl çalıştığını bilen birine göre, çözümü değiştirebilseniz bile! Ama merak etmeyin, nasıl çalıştığı hakkında hiçbir fikri olmayan birine sihir gibi gelir. Tecrübelerime göre birçok insan bulmacanın renkle değil ağırlıkla ilgili olduğunu düşündü. Ve unutmamak gerekir ki, bulmacanın ustası sizsiniz, ne kadar ipucu vereceğiniz size kalmış.
Nasıl kullanırım (istiyorum):
Bu bulmacayı D&D kampanyamın etkileşimli bir parçası olarak kullanmak istiyorum.
Adım 1: Malzemeler
İnşa etmeye başlamadan önce aşağıdaki şeylere ihtiyacınız olacak:
Genel olarak:
Bir bulmaca bulmak için (yaratıcı) bir beyin
Arduino malzemeleri:
- Arduino Uno
- ekmek tahtası
- bir servo motor
- (TCS3200) Renk sensörü
- 7x Erkek - Dişi jumper kablolar (tercihen tüm farklı renkler, şiddetle tavsiye edilir)
- 11x Erkek - Erkek jumper kabloları
- powerbank (bilgisayarınız/dizüstü bilgisayarınız olmadan çalışmasını istemeniz durumunda)
kasa:
- Kapaklı bir (ayakkabı) kutusu (yapbozu inşa etmek için)
- birkaç parça karton (duvarları, ortadaki sütunu ve öldün işareti yapmak için)
- Ahşap bloklar, (en az) bir tarafı renk sensöründen daha büyük olmalıdır.
- boya: siyah, kırmızı, mavi ve yeşil (ve isterseniz ek renkler*)
- A4 beyaz kağıt
- Makas
- siyah bir işaretleyici
- Güçlü çift taraflı yapışkan bant
- Bir kalem
- Anında yapıştırıcı
- Soyma bıçağı veya Stanley bıçağı
* renklerle ilgili küçük bir not: Başlangıçta mor da kullandım ancak sensör kırmızı ve moru ayırt edemedi, bu yüzden onu hariç tuttum. Diğer renklerin de çok iyi sonuç vermeyebileceğini unutmayın (ama denemedim). Sensörüm ucuzdu, daha hassas bir sensör muhtemelen daha fazla rengi ayırt edebilir.
2. Adım: Bulmaca
Bu projenin en önemli kısmı, iyi bir beyin kırma bulmacasına sahip olmaktır.
İlk resimde de görebileceğiniz gibi (introlu olan), bloklarıma norse rünleri çizdim (alt kısım hariç her tarafa). Bulmaca ile ilgisi var. Daha sonra davaya basit bir soru yapıştırdım: "Gerçek zenginlik …?".
Rünleri tercüme etmek için yukarıdaki resmi kullandım. Ayrıca bulmacamı deneyen insanlara çevirileri verdim.
Bulmacanın çözümü:
Gerçek zenginlik mutluluktur!
Yani oyuncunun yapması gereken hazineyi (zenginlik sembollü blok) üzerinde mutluluk sembolü olan blokla değiştirmektir.
Benim bulmacamı kullanmaktan çekinmeyin ama kendi bulmacanızı bulmanız için sizi teşvik ederim.
Adım 3: Kablolama
Sadece 2 bileşen (ve arduino) olduğundan kablolama oldukça basittir. Açıklamada minimum sayıda kablo kullanıyorum, daha fazlasını kullanmak istiyorsanız çekinmeyin. (Resimde daha fazla kablo kullandım)
Arduino'dan breadboard'a: (2 Erkek - Erkek kablo kullanın)
- 5V pinini breadboard'unuzun + tarafına bağlayın.
- topraklama pinlerinden birini breadboard'unuzun - tarafına bağlayın.
Servo: (3 Erkek - Erkek kablo kullanın)
servonun üç kablosu vardır: güç, toprak ve sinyal.
- Güç tipik olarak kırmızı bir kablodur, bu kabloyu devre tahtanızın + tarafına bağlayın.
- Topraklama tipik olarak siyah veya kahverengi bir kablodur, bu kabloyu breadboard'unuzun - tarafına bağlayın.
- Sinyal tipik olarak sarı veya turuncu bir kablodur, bu kabloyu devre tahtanızdaki yatay bir sıraya bağlayın.*
Renk sensörü: (7 Erkek - Dişi kablo kullanın)
- VCC: bu kabloyu devre tahtanızın + tarafına bağlayın (bu güçtür).
- GND: bu kabloyu breadboard'unuzun - tarafına bağlayın (bu topraktır).
- S0: bu kabloyu breadboard'unuzdaki yatay bir sıraya bağlayın.*
- S1: bu kabloyu breadboard'unuzdaki yatay bir sıraya bağlayın.*
- S2: bu kabloyu breadboard'unuzdaki yatay bir sıraya bağlayın.*
- S3: bu kabloyu breadboard'unuzdaki yatay bir sıraya bağlayın.*
- OUT: bu kabloyu breadboard'unuzdaki yatay bir sıraya bağlayın.*
*Breadboard'da tam olarak nereye sabitleyeceğinizi söylemiyorum çünkü yapınızla birlikte en iyi olanı kendiniz bulmak daha kolay.
Breadboard'dan Arduino'ya: **(6 Erkek - Erkek kablo kullanın)
Kasaya koymadan önce her şeyin işe yarayıp yaramadığını görmek akıllıcadır, bunu yapmak için bu kabloları çıkarmanız ve daha sonra tekrar takmanız gerektiğini unutmayın. Hangi kablonun neye bağlı olduğunu hatırladığınızdan veya yazdığınızdan emin olun.
- servonun sinyal pinine bağladığınız sırayı Arduino üzerindeki pin 9'a bağlayın.
- renk sensörünün S0 pinine bağladığınız sırayı Arduino üzerindeki pin 4'e bağlayın.
- renk sensörünün S1 pinine bağladığınız sırayı Arduino üzerindeki pin 5'e bağlayın.
- renk sensörünün S2 pinine bağladığınız sırayı Arduino üzerindeki pin 6'ya bağlayın.
- renk sensörünün S3 pinine bağladığınız sırayı Arduino üzerindeki pin 7'ye bağlayın.
- renk sensörünün OUT pinine bağladığınız sırayı Arduino üzerindeki pin 8'e bağlayın.
** Yukarıda bahsettiğim satırlar, breadboard'unuzdaki satırlardır.
Adım 4: Kod
Buradaki ekte, bu projeyi çalıştırmak için ihtiyacınız olan kodu bulacaksınız. Koddaki yorumlar, ne yaptığı konusunda net olmalıdır. Renk sensörünün nasıl çalıştığı hakkında daha ayrıntılı bilgi istiyorsanız (kodu tam olarak anlamak istiyorsanız) "Sensör nasıl çalışır?" başlıklı bu eğiticilere bakmanızı tavsiye ederim. Bölüm.
Henüz orada olmasanız da, kodda ayarlamanız gereken birkaç şey var:
- Değişkenleri ayarlayın.
- Bilmecenize uyacak şekilde if ifadelerini ayarlayın (gerekirse).
Değişkenleri ayarlamadan önce sütunu yapmak ve bir sonraki adımdaki blokları boyamak kullanışlıdır, böylece tekrar yapmanıza gerek kalmaz.
Değişkenleri ayarlayın:
Kabloları doğru şekilde kurduysanız, kodun çalışması gerekir, bir parça kağıt, bir kalem ve (boyalı) blokları alın.*
- Geçici olarak geçersiz checkRiddle işlevini koddan yorumlayın. (böylece o kısım çalışmaz)
- Kodu Arduino'nuza yükleyin.
- Seri monitörü açın, çalışmaya başlayacak ve size R= … G= … B= … gösterecektir (ve birkaç şey daha, artık önemli değil)
- Renkli bir bloğu sensörün hemen önünde (son tasarımınızda olduğu kadar yakın) birkaç saniye tutun.
- Hala sensörün önünde tutarken Arduino'nuzun gücünü kesin. (usb portundan dışarı çekin)
- Renk sensörünün her bir renkte (R, G ve B) ölçülen dış (en yüksek ve en düşük) değerlerini yazın.
- En az değişen iki değeri seçin (örneğin R ve B).**
- Sensörün küçük hatalara izin vermesi için en yüksek değerde +10 ve en düşük değerde -10'a kadar sayın.
- Şimdi koddaki değerleri şimdi sahip olduğunuz değerlerle değiştirin. (Bir yorum, hangi değerleri değiştirmeniz gerektiğini söyler)
- Benden farklı bir renk kullanıyorsanız serial.print'i de değiştirin.
- Şimdi, yeni ölçülen değerlerinizi kullanarak kodu Arduino'nuza yeniden yükleyin.
- Aynı renkli bloğu önünde tutarak, seri monitörün koda koyduğunuz rengi güzel bir şekilde yazdırıp yazdırmadığını test edin. Sensörün önünde tuttuğunuz sürece tutarlı olduğundan emin olun.
- Hayır ise::(değerleri kontrol edin, aralığı büyütmeniz gerekip gerekmediğine bakın. Evet ise::) kod şimdi bu rengi tanıyor.
- Şimdi, kullanmak istediğiniz tüm renkler koda entegre edilene kadar bu işlemi (4 - 13. adım) tekrarlayın.
- void checkRiddle işlevinin yorumunu kaldırmayı unutmayın!
* Henüz boyamadıysanız önce "kasa" adımına gidin.
** İsterseniz 3'ünü (R, G ve B) kullanarak daha kesin olabilirsiniz, ancak bu proje için buna gerek yoktur.
İf ifadelerini bilmecenize göre ayarlayın: (yalnızca çözümü değiştirmek istiyorsanız)
Adım 5: Vaka ve Blokları Boyama
Kasa biraz zor bir kısım ama yapması zor değil, daha çok doğru ölçülere sahip olmakla ilgili. Ölçülerimi vermiyorum çünkü (büyük ihtimalle) aynı boyutta malzeme kullanmıyoruz.
Blokları boyamak:
Blokları kullanmak istediğiniz renklere boyayın. Sensörlü olanları ayırt etmek en kolayı olduğu için kırmızı, yeşil ve maviyi öneririm.
Runes üzerinde de kendi bulmaca boyasını yapmıyorsanız.
sütun:
Sütun, renk sensörünü ve ona bağlı kabloları (kısmen) gizlemektir. Sütunun ölçülerini belirlemek için renk sensörünüzün kenarlarını ölçmeniz ve sütununuzun ne kadar yüksek olmasını istediğinizi belirlemeniz gerekir. resimde görmek 3 cm yüksekliğindedir). Sonra bunu kartona çizip kesin, isterseniz boyayabilirsiniz.
Sütunun içine yerleştirmeden ÖNCE kabloları sensöre takın, artık pimlere ulaşamayacaksınız.
Sensörü direğe tutturmak için çift taraflı yapışkan bant kullandım. Bunu üçüncü resimde görebilirsiniz.
Sensör üzerindeki ledlerin direğin içinde (kenardan değil) olduğundan emin olun, blokların daha sonra üzerinde durması gerekir.
"Sen öldün" işareti:
Bir karton parçası kesin ve üzerine "öldünüz" yazın. İlk resimde gördüğünüz gibi diğer tarafa kılıçlı kızgın bir adamın resmini yapıştırdım. İşaretin alt kısmında bir çıkıntı olduğundan emin olun. İşareti servoya bantlamak için pabucu kullanın.
Odanın oluşturulması:
- Dava için seçtiğiniz kutuyu boyayın. (İstediğiniz renk siyah kullandım)
- Duvarların uzunluğunu belirlemek için odanın şeklini kutunun altına çizin. (Çizgileri bir cetvelle ölçün).
- Duvarların hangi yüksekliğe sahip olmasını istediğinizi belirleyin. Örneğimdeki duvarlar 5 santimetre yüksekliğindedir.
- Artık duvarlarınızın boyutlarına sahipsiniz, bunları kartona çizin ve kesin.
- Duvarları boya. (siyaha boyadım)
- Duvarları daha önce çizdiğiniz çizgilerin üzerine kutuya yapıştırın.
Artık odayı kurdunuz.
Kablolar ve işaret için delikler:
Kutuda, biri kablolar için, diğeri de "öldünüz" işareti için olmak üzere iki delik açmanız gerekir. ve dikkatli ol! delikler bir kez orada olduklarında kaldırılamaz.
renk sensörünün gitmesini istediğiniz yerin altına bir delik açın. Deliği olabildiğince küçültün ama kabloların gerilmesini önleyin, gevşemelerini istemezsiniz.
"Öldün" işaretinin deliği, kasaya çarpmadan çıkabilmesi için kullandığınız kartondan biraz daha kalın olmalıdır. Deliğin uzunluğu, işaretin ne kadar büyük olduğuna bağlıdır. Deliği açmak için bir Stanley bıçağı veya soyma bıçağı kullanın.
Şimdi servo motoru kutunun yan tarafına takmak için çift taraflı bandı kullanın.
Adım 6: Herhangi Bir Soru ??
Artık Arduino ile harika bir renk tabanlı bulmaca oluşturabilmelisiniz. Herhangi bir sorunuz varsa, sorduğunuzdan emin olun!
İyi eğlenceler inşa edin!
Önerilen:
Eğme Tabanlı Kolay Renk Değiştiren Kablosuz Rubik Küp Lambası: 10 Adım (Resimlerle)
Kolay Eğim Tabanlı Renk Değiştiren Kablosuz Rubik Küp Lambası: Bugün, hangi tarafın yukarıda olduğuna göre renk değiştiren bu harika Rubik Küp benzeri lambayı yapacağız. Küp, standart bir mikro-usb kablosuyla şarj edilen küçük bir LiPo pille çalışır ve testlerimde birkaç günlük pil ömrüne sahiptir. Bu
Renk Ayırma Sistemi: Arduino Tabanlı İki Kayışlı Sistem: 8 Adım
Renk Ayırma Sistemi: Arduino Tabanlı İki Bantlı Sistem: Endüstriyel alanda ürün ve eşyaların taşınması ve/veya paketlenmesi, konveyör bantlar kullanılarak yapılan hatlar kullanılarak yapılmaktadır. Bu kayışlar, öğeyi belirli bir hızla bir noktadan diğerine hareket ettirmeye yardımcı olur. Bazı işleme veya tanımlama görevleri
Renk Algılama Tabanlı Nesne Takibi: 10 Adım
Renk Algılamaya Dayalı Nesne Takibi: Öykü Bu projeyi Raspberry PI ve açık CV kullanarak görüntü işlemeyi öğrenmek için yaptım. Bu projeyi daha ilginç hale getirmek için iki adet SG90 Servo motor kullandım ve üzerine kamera monte ettim. Bir motor yatay olarak hareket etmek için kullanılırken, ikinci motor dikey olarak hareket etmek için
Arduino RGB Renk Seçici – Gerçek Hayattaki Nesnelerden Renk Seçin: 7 Adım (Resimlerle)
Arduino RGB Renk Seçici - Gerçek Hayattaki Nesnelerden Renk Seçin: Bu Arduino tabanlı RGB renk seçici ile fiziksel nesnelerden kolayca renk seçin, gerçek hayattaki nesnelerde gördüğünüz renkleri PC'nizde veya cep telefonunuzda yeniden oluşturmanıza olanak tanır. Ucuz bir TCS347 kullanarak nesnenin rengini taramak için bir düğmeye basmanız yeterlidir
Çok Yönlü Çark ve OpenCV Tabanlı Renk Takip Robotu: 6 Adım
Çok Yönlü Tekerlek ve OpenCV Tabanlı Renk İzleme Robotu: Renk takibimi uygulamak için çok yönlü tekerlek şasisi kullanıyorum ve OpenCVBot adlı bir mobil yazılım kullanıyorum. Buradaki yazılım geliştiriciler sayesinde, teşekkürler.OpenCV Bot, görüntü işleme yoluyla gerçek zamanlı herhangi bir nesneyi algılar veya izler