Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

1 Mayıs 2021 Cumartesi

Kızılötesi Algılama ve Arduino

Kızılötesi Algılama ve Arduino

Anlayabileceğiniz gibi, bir IR sisteminin temel gereksinimleri, bir sinyali iletmek ve sinyali almak için verici ve alıcı modüllerdir. Gördüğümüz IR sensörleri genellikle EM spektrumunun (nanometre, nm cinsinden verilir) aynı bant genişliğinde çalışan (gönderen ve alan) bir çift olarak gelir. Bunları ardışık olarak satmak harikadır, ancak parçaları kesip değiştiriyorsanız, bant genişliği iki bileşene uyması için kullanılan özelliktir.

Kızılötesini nasıl kullanacağız ?

Bu tür bir teknolojinin bariz kullanımı uzaktan kumandadır, ancak kızılötesi bir ton harika uygulamanın bir parçasıdır. Engellerden kaçınmak ve bir duvara yakın olduğunda bilmek için robotunuza 'gözler' vermek mi istiyorsunuz? Kızılötesi, uygun bir seçenektir. Hareket algılandığında bir eylemi tetikleyebilecek bir hareket sensörü oluşturmak istiyorsanız, kesinlikle IR'yi kullanabilirsiniz. Gece görüş kameraları ve termal görüntüleme bile kızılötesi teknolojiyi kullanır. Kızılötesi teknolojisi için çok sayıda uygulama vardır ve onu kullanan üretici dostu ürünler de yaygın ve iyi belgelenmiştir!

Basit bir kırılma ışını devresi yapacağız. Adafruit'teki arkadaşlarımız , bu kullanım için yapılmış harika bir modül çifti yaptılar. Aksiyon filmlerindeki hırsızlık sahnelerini düşünün, kahraman yeşil lazer alarmları labirentinde dikkatlice hareket ediyor. Yeşil lazer kısmı olmadan bunlardan birini yapacağız. Bir dakika bekle; sen bir yapıcısın! Birine çok meraklıysanız, eklemekten çekinmeyin!

kızılötesi kırılma ışını kırma eskiz

Örnek bir yük devresi olarak temel bir piezo hoparlör devresi kullanacağız. Bu devre, kullandığımız kızılötesi ışının durumuna tepki verecektir. Kırılma kirişleri, anahtarlar hakkındaki makalemizin de harika bir uzantısıdır, ancak kabloları ve fiziksel anahtarı kaldırıyoruz. Esasen kurulumun hoparlör kısmını istediğiniz herhangi bir şeyle değiştirebilirsiniz, ancak alarm sistemi ile uyumlu bir zil sesi görünür. Daha sonraki eğitimlerde, Arduino'nuzla bir IR uzaktan kumanda yapacağız! 

Bugün bizimle birlikte takip etmek için şunlara ihtiyacınız olacak:

  • Arduino Uno
  • Piezo Hoparlör
  • Bağlantı telleri
  • Adafruit 3mm IR Break Beam modülü

Donanım Kesintileri ve Pullup Dirençleri

Devremizin taslağını yazarken bakacağımız birkaç ekstra şey var. Programımızın ışın frenlemesine tepki vermesi ve bu olduğunda bir ses çalması gerekecek.

Bu olayı kontrol etmek için donanım kesintilerini kullanacağız. Donanım kesintileri için mükemmel bir uygulama olmayabilir, ancak konsepti tanıtmak için harika bir yer! Kesintileri kullanırken veya hatta sadece donanım kullanırken, kontrol pimini bilinen bir duruma getirmek iyi bir uygulamadır. Bu şekilde, onunla arayüz oluşturduğumuzda nasıl tepki vereceğini doğru bir şekilde tahmin edebiliriz.

Pim bilinen bir durumda değilse, ona kayan diyoruz. Kayma, esas olarak, pimin mantığının açık veya kapalı olmadığı ve muhtemelen iki değer arasında salınım yaptığı anlamına gelir. Bu nedenle, pimi bilinen bir duruma getirmek için, pimi yüksek mantığa bağlamak için bir çekme direnci kullanabiliriz. ATMega328 için dahili olarak çekme dirençleri mevcuttur; biz de Uno'yu kullanıyoruz ve bunlara işlev kullanılarak erişilebilir

pinMode ([PinNumber], INPUT_PULLUP);

Kesinti pimleri yaptıkları işte harikadır. Sadece boşta durmak, bir pin mantığının yüksekten alçağa veya tam tersi şekilde gitmesini beklemek için yapılmıştır. Bu olduğunda, o olaya hizmet etmek için kodunuza rutinler / işlevler girebilirler.

İyi çalışıyor, devrenin arkasındaki koda bakalım.

Kod

# tanım PIEZOPIN 3 # tanım BEAMPIN 2

Uçucu int sensorState = 0 , lastState = 0 ; // Değişkenler uçucu olmalıdır veya bunları

void kurulumu () {
pinMode ( PIEZOPIN , ÇIKIŞ ); Çıkış için // initialism Piezo pinMode ([ BEAMPIN ] INPUT_PULLUP );
attachInterrupt ( digitalPinToInterrupt ( 2 ), buzz_ISR , ALÇALMA ); Seri . başlangıç ( 9600 ); }


geçersiz döngü () {
sensorState = digitalRead ( BEAMPIN ); // ışının mevcut durumunu oku if ( sensorState == HIGH ) { // Işın kırık değilse bana her şeyin yolunda olduğunu söyle.
analogWrite ( PIEZOPIN , 0 ); Seri . println ( "Herşey Tamam" ); } else { Serial . println ( "Her Şey Tamam Değil" );
} }

void buzz_ISR () {
analogWrite ( PIEZOPIN , 20 ); // Buzzer'ı Tetikle! }

Pekala, devrenizi ve taslağınızı bir araya getirin ve çalıştırın. Siz ışınlarını kırana kadar sisteminiz kesinlikle hiçbir şey yapmamalıdır; bunu yaptığınızda piezonun tetiklendiğini duymalı ve bir uğultu sesi çıkarmalısınız! 

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.

Hiç yorum yok:

Yorum Gönder

Yorum yazdığınız ve üye olduğunuz için Size teşekkür ederim.Burada olduğunuza göre hepimizin ilgi alanı Elektronik ve Programlama sonsuz bir dünyadayız.Hepimize Başarılar...

Not: Yalnızca bu blogun üyesi yorum gönderebilir.