İçindekiler:

Kızılötesi Zar Sensörü: 5 Adım
Kızılötesi Zar Sensörü: 5 Adım

Video: Kızılötesi Zar Sensörü: 5 Adım

Video: Kızılötesi Zar Sensörü: 5 Adım
Video: PIR Sensörü Hareket Sensörü Arduino ile Nasıl Çalışır, Bağlanır, Hassasiyet ve Zaman Ayarı 2024, Temmuz
Anonim
Kızılötesi Zar Sensörü
Kızılötesi Zar Sensörü
Kızılötesi Zar Sensörü
Kızılötesi Zar Sensörü

Benim adım Calvin ve size Kızılötesi zar sensörünün nasıl yapıldığını göstereceğim ve nasıl çalıştığını anlatacağım.

Şu anda Bilgisayar Mühendisliği okuyan bir Taylor Üniversitesi öğrencisiyim ve ekibim ve benden 1 inçlik bir kareye sığabilecek herhangi bir nesneyi sıralayabilecek bir mekanizma tasarlamam ve inşa etmem istendi. Kolay yolu seçip basit bir renk sensörü kullanarak m&m'leri sıralamayı seçebilirdik, ancak bunun ötesine geçmeye ve zarları gösterilen sayıya göre sıralamaya karar verdik. Zarların yüzünün nasıl okunacağına dair bir rehber bulmak için saatlerce uğraştıktan sonra şu bağlantıya rastladım:

makezine.com/2009/09/19/dice-reader-versio…

Ancak bu bağlantı bana zarın yüzünün nasıl okunacağı fikrinden fazlasını vermedi, bu yüzden verilen fikri kullanarak Arduino ile bağlanabilecek bir sensör inşa etmek ve geliştirmek için yola çıktım. kolaylıkla ve zarın yüzünü mümkün olduğunca doğru okuyabilir, böylece bize bu Kızılötesi Zar Sensörünü verir.

Gereçler

Şimdi malzemelere geçelim:

İhtiyacın olacak:

1 x Arduino Uno

5 x IR Alıcıları

5 x IR Yayıcı

www.sparkfun.com/products/241

5 x 270 ohm dirençler

5 x 10k ohm dirençler

1 x 74HC595N çip

çeşitli erkek başlıklar

1 x Prototip tahtası (özel bir freze tahtası almıyorsanız)

Adım 1: Nasıl Çalıştığını Anlamak

Nasıl Çalıştığını Anlamak
Nasıl Çalıştığını Anlamak
Nasıl Çalıştığını Anlamak
Nasıl Çalıştığını Anlamak

Bu sensör, zarın yüzlerini okumak için 5 pip konumu kullanır. Bu pip konumlarında zarın yüzeyinden sıçramak için Kızılötesi ışık kullanır ve denetleyiciye beyaz mı yoksa siyah mı olduğunu söyler.

Merak ediyor olabilirsiniz, o zaman neden sadece 5 pip konumu? Zarı etkili bir şekilde okumak için 9'a da ihtiyacınız olmaz mı?

Zarların simetrisi nedeniyle, zarlar üzerindeki 5 özel konumun kullanılması, zardaki farklı sayılar arasındaki farkı, yönelimden bağımsız olarak söylemek için yeterli olabilir (resim 1). Bu, zar sensörünü daha verimli hale getirir, çünkü yalnızca tam olarak ihtiyaç duyduğu şeyi arar ve ekstra bir şey yapmaz.

Verici, bu 5 pip konumunun her birinde sensör üzerindeki alıcının tam altına gider, sensör daha sonra IR ışığı yayar ve ardından alıcı zarın yüzeyinden sıçrayan IR ışığının miktarını okur. (resim 3) Alınan değer belirtilen kalibrasyon numaralarından büyükse, sensör o noktayı bir nokta olarak görür, değilse beyaz boşluktur. (resim 2)

Adım 2: Tasarım ve Planlama

Tasarım ve Planlama
Tasarım ve Planlama
Tasarım ve Planlama
Tasarım ve Planlama
Tasarım ve Planlama
Tasarım ve Planlama
Tasarım ve Planlama
Tasarım ve Planlama

Bir zar sensörü oluşturmanın ilk adımı şemaları oluşturmaktır, bu geliştirmenin en zor veya en kolay adımı olabilir. Öncelikle EAGLE by Autodesk adlı bir yazılıma ihtiyacınız var, şemaları oluşturmak için kullandığım yazılım buydu.

2 farklı tür şema ekledim, bir şemada sensörün daha doğru olmasına yardımcı olmak için bir kaydırma yazmacı çipi var ve diğeri kaydırma yazmacı çipi yok, ancak bu şema benim vereceğim kodla çalışmayacak daha sonra, bu yüzden kendi başınıza bir şeyler geliştirmeniz gerekecek.

Shift register ile tasarladığım sensör için pano düzenimi de ekledim.

Kartı tasarlamaya başlamak için 5 IR Alıcınız ve 5 IR Vericiniz var, alıcılar 10k direnç gerektirir ve emitörler 270 ohm direnç gerektirir, bu nedenle bu öğelerin her biri için şunları yapın:

VCC (5V) -> Direnç -> Analog Okuma Pimi -> IR alıcı -> GND

VCC (5V) -> Direnç -> IR emitör -> GND

Analog okuma pini, direnç ile IR Alıcısı arasında başka bir dal olarak çıkar ve Arduino üzerindeki analog pin'e gider. Ayrıca emitörün doğrudan alıcının altına girdiğinden emin olmanız gerekiyor, ilk yaptığımda bu hatayı yaptım ve çok kötü sonuçlar aldım, bu yüzden Receiver'ın üstte olduğundan emin olun.

Özel kartımda, diğer emitörlerden herhangi bir IR ışığı sızmasını önlemek için verici ve alıcı çiftlerinin her birine birer birer güç sağlamak için kaydırma yazmacı kullanıyorum. Bu bana pip konumlarının her birinden daha doğru bir okuma sağlar, eğer shift register kullanmamayı seçerseniz, yine de sizin için işe yarayacaktır, sadece biraz daha az doğru olabilir. Shift register'da 3-4 ve 7-8 pinlerini birlikte birleştirebilirsiniz, çünkü bunların başlık olarak olması tamamen gerekli değildir. Onları başlık olarak bıraktım ve ileride geliştirme yapmak istersem başlıklara atlama telleri koydum.

Şemayı tasarladıktan sonra, devre şemanızın bir tahta düzenini yapmanız gerekir. Bu kısım çok zor olabilir çünkü yollarınızın çakışmadığından emin olmanız ve yollarınızın ve deliklerinizin makinenizin özelliklerini karşıladığından emin olmanız gerekir. Eklediğim tahta düzeni, tahtamı frezelemek için kullandığım makine için belirli boyutlara sahipti. Tahtayı yapabildiğim kadar küçük olacak şekilde yerleştirmek için birkaç saat harcıyorum. Bu tahtada hala iyileştirme için yer vardı ama benim için çalıştı, bu yüzden olduğu gibi bıraktım. Tüm Topraklama elemanlarını bağlayan bakır GND'ye sahip bir versiyon ve eklenmemiş bir versiyon vardır.

Şemanızı bir breadboard veya prototip tahta üzerine inşa etmek için de kullanabilirsiniz, çünkü bunları elde etmek çok daha kolaydır ve özel bir tahtaya sahip olmanız gerekmediğinden daha ucuz bir seçenektir.

Pano tasarımına sahip olduğunuzda bir sonraki adıma geçebilirsiniz!

Adım 3: Tahtayı Oluşturma

Yönetim Kurulunu Oluşturmak
Yönetim Kurulunu Oluşturmak
Yönetim Kurulunu Oluşturmak
Yönetim Kurulunu Oluşturmak
Yönetim Kurulunu Oluşturmak
Yönetim Kurulunu Oluşturmak

Bu kısım tamamen panonun nasıl oluşturulmasını istediğinize bağlıdır. Konseptin çalışıp çalışmadığını ve ne kadar doğru olduğunu test etmek için sensörü bir prototip panosu üzerinde yarattım, bu yüzden şemayı kaydırma yazmacı olmadan takip ettim ve kartı oluşturdum. Her şeyi, hatların üst üste gelmemesi ve yanlışlıkla bağlanmaması gereken hatları lehimlememeniz için yerleştirdiğinizden emin olmalısınız. Bir prototip panosunda yaparken çok dikkatli olmalısınız, bu yüzden acele etmeyin ve acele etmeyin. Açık kablolara da dikkat etmelisiniz, çünkü bunlar hareket edebilir ve sistemde kısa devrelere neden olabilir.

Tahtanın frezelenmesini seçtiyseniz, bu işlem daha basittir. Pano dosyasını, belirli değirmenci ayarlarıyla değirmenciye gönderin. Kendiniz yapıyorsanız, çıkarmadan önce yapın, bakırın tamamının yeterince derin öğütüldüğünden emin olun, Yaptığım ilk tahta bakır yeterince derin öğütülmedi ve bir tane daha öğütmek zorunda kaldım.

Her şeyin panoya istenen düzende lehimlendiğinden emin olun ve zaman ayırdığınızdan emin olun ve PCB üzerinde lehimleme yapıyorsanız, kartın doğru tarafında lehimlediğinizden emin olun.

IR Alıcıları ve Vericileri takarken, vericinin tam olarak alıcının altında olduğundan emin olun. Onları doğru yere yerleştirmek için IR bileşenlerinin bacaklarını bükerek oynamanız gerekecek. Pip konumlarının olması gereken yerde olup olmadığını kontrol etmek için elinizin altında bir zar bulundurun.

Her şeyi lehimleyip tahtaya ekledikten sonra, sensörü programlamaya başlıyorsunuz.

Adım 4: Kartın Programlanması

Kurulu Programlama
Kurulu Programlama
Kurulu Programlama
Kurulu Programlama

Bu, sensörü mümkün olduğunca doğru hale getirmenin ve kartı programlamanın zor kısmıdır. Neyse ki, programlamayı çok daha kolay hale getirmek için yeni oluşturulan sensörünüzle kullanmanız için bir kütüphane oluşturdum, ancak bu sensörün bulunduğu aydınlatmaya bağlı olarak sensörü kalibre etmeniz gerekecek.

Başlamak için bu sensörle arayüz oluşturacak bir Arduino'nuz olmalıdır. 5 Analog pin ve 3 dijital pin kullanır.

Kendi analog ve dijital pinlerinizi seçmek için oluşturduğum kütüphaneyi kullanma imkanınız var ancak bunu sensör ile arayüz oluşturmak için yaptığım pinleri kullanarak anlatacağım. Hangi pinin nereye takıldığını kolayca açıklamak için pin setinin etrafındaki pin numaraları ve renkli kutularla bağlantılı resmi işaretledim.

Sensörde, 1-5 Kırmızı pimleri A0-A4'e gider, dolayısıyla Kırmızı 1, A0'a gider vb. 1-8 Beyaz pinler biraz daha fazla açıklama gerektirir.

Beyaz 1 - Veri pini, Arduino'nun verileri kaydırma yazmacına gönderdiği yer burasıdır. Bu pini Arduino'daki dijital pin 3'e ayarladım

Beyaz 2 - Q0, bu durumda eski, hiç genişletmeye karar vermem durumunda dahil ettim

Beyaz 3 ve 4 - Eşleştirilecek, bu ikisini birlikte lehimleyebilir veya benim yaptığım gibi bir jumper kullanabilirsiniz.

Beyaz 5 - mandal pimi, tırtılların açılıp kapandığını görme sürecindeki son adım olan çok önemli bir pim. Bu pini Arduino'daki pin 12'ye ayarladım

Beyaz 6 - Saat Pimi, Bu, Arduino'dan shift register'a saati sağlar. Bunu dijital pin 13'e ayarladım.

Beyaz 7 ve 8 - Eşleştirilecek, bu ikisini birlikte lehimleyebilir veya benim yaptığım gibi bir jumper kullanabilirsiniz.

Beyaz kutunun hemen yanında Toprak ve VCC pinleri var. Bu sensöre güç vermek için Arduino'dan veya başka bir kaynaktan 5v sağlamanız gerekir.

PIP Konum numaraları kodda bulunabilir.

Şimdi onu bağlamanız gerektiğine göre, onu kalibre etmemiz gerekiyor. Amacım, sizin için kalibre edebilecek bir komut dosyası oluşturmaktı ama bunu yapmak için zamanım kalmadı. Kalibrasyon yaparken, sensörün kontrollü bir aydınlatma ortamında olduğundan emin olmalısınız, dışarıdan gelen ışığa karşı hassasiyetini hissedin. Siyah nokta ve beyaz nokta ile her pip konumundan bir değer almanız ve aradaki farkı ortalamanız gerekir. Kalibre etmek için zarın sadece iki tarafını kullandım, 1. tarafı, 6. tarafı ve 6. tarafı 90 derece döndürülmüş olarak kullandım. Her pip konumu için beyaz ve siyah için bir numaranız olduğunda, bunların ortalamasını almanız ve iki sayının ortasını bulmanız gerekir. Örneğin, ilk pip konumundan beyaz için 200 ve ilk pip konumunun karanlık değeri için 300 alırsam, kalibrasyon numarası 250 olur. Bunu 5 pip konumunun tümü için yaptığınızda, sensörünüz düzgün bir şekilde çalışır. kalibre edilmişse, dice. ReadFace(); kullanabilirsiniz. zarın mevcut yüzünü almak için.

Adım 5: Uygulama

Başvuru
Başvuru
Başvuru
Başvuru
Başvuru
Başvuru

Artık başarıyla bir zar sensörü oluşturdunuz! Tebrikler! Bu sensörü oluşturmak benim için uzun bir deneme yanılma yolu oldu, bu yüzden amacım orada bir zar sensörü oluşturmak isteyen herkese yardım etmek.

Bu sensörü kullanan inşa ettiğimiz projeden birkaç örnek ekledim. İlk resimde, zarı her seferinde sensörün üzerine düzgün bir şekilde yerleştirmek için bir çark kullandık. İkinci resim projemizin nihai ürünüydü ve taban, zarın yüzünün ne olduğuna bağlı olarak dönecek ve üçüncü resim, bu sensörleri sergilemek için tasarladığım ve inşa ettiğim bir ekran kutusu.

Aklınıza koyarsanız, bu sensörün olasılığı sonsuzdur. Umarım bu öğreticiyi eğlenceli ve eğitici bulursunuz ve umarım kendiniz için bir tane yapmaya çalışırsınız.

Tanrı kutsasın!

Önerilen: