İçindekiler:

USB NEC Kızılötesi Verici ve Alıcı: 4 Adım (Resimlerle)
USB NEC Kızılötesi Verici ve Alıcı: 4 Adım (Resimlerle)

Video: USB NEC Kızılötesi Verici ve Alıcı: 4 Adım (Resimlerle)

Video: USB NEC Kızılötesi Verici ve Alıcı: 4 Adım (Resimlerle)
Video: IR (Infrared) İletişim Devresi Uygulaması 2024, Eylül
Anonim
USB NEC Kızılötesi Verici ve Alıcı
USB NEC Kızılötesi Verici ve Alıcı

Bu proje, üzerinde çalıştığım başka bir projenin bir parçası ve Instructables üzerinde bir Remote Control 2017 yarışması olduğu için bu projeyi yayınlamayı düşündüm. Bu projeyi beğendiyseniz, lütfen oy verin. Teşekkürler.

Bildiğiniz gibi, Microchip 8-bit PIC denetleyicilerinin büyük bir hayranıyım, bakınız:

JAL programlama dilini Pascal'a benzediği için kullanıyorum (ki bunu da seviyorum). JAL derleyicisi ve kitaplıklar şu adresten indirilebilir: https://www.justanotherlanguage.org/downloads (yayınlanan en son sürüm için aşağı kaydırın).

Normalde ne yaptığımı tam olarak anlamak için tüm kodları kendim yazarım ama bu proje için PIC'yi PC'nin USB portuna bağlamam gerekiyordu ve bu yüzden bu PIC denetleyicisi için bir JAL USB seri sürücüsüne ihtiyacım vardı. USB seri sürücüsünü, iyi çalışıyor gibi görünen JAL indirme paketinde kullandım. Bu USB seri sürücüsü belirli bir PIC için yazıldığından, PIC18F14K50 olan bu PIC'yi kullandım. Bu denetleyici, bu proje için ihtiyaç duyduğumdan çok daha fazla işlevselliğe sahip, bu yüzden şu anda bu USB sürücüsünün daha basit bir PIC sürümü olan PIC16F1455 üzerinde çalışmasını sağlama sürecindeyim ve bu da daha ucuz.

Peki bu proje ne hakkında? Bu Talimatlarda belirtilen cihazla, popüler NEC Kızılötesi protokolünü kullanarak USB bağlantı noktası aracılığıyla PC'nizden Kızılötesi Uzaktan Kumanda komutları gönderebilir ve alabilirsiniz. Bu şekilde Kızılötesi komutları izleyebilir ve NEC Kızılötesi Uzaktan Kumanda protokolünü kullanan herhangi bir cihazı kontrol edebilirsiniz. Proje, Kızılötesi mesajların kodunu çözer ve bir adres baytına ve bir komut baytına veya bir tekrar mesajına çevirir. Adres – elbette – TV veya Radyo gibi belirli bir cihazı adreslemek için kullanılır; burada komut baytı, Sesi Açma, Sesi Azaltma gibi gerçekleştirilmesi gereken işlevi gösterir. Bu mesajların kodunu çözmenin yanı sıra, bu cihaz kullanılarak Kızılötesi aracılığıyla da iletilebilirler.

Adım 1: NEC Kızılötesi Protokolü Hakkında Bazı Bilgiler

NEC Kızılötesi Protokolü Hakkında Bazı Bilgiler
NEC Kızılötesi Protokolü Hakkında Bazı Bilgiler

Bu protokole kısa bir giriş. NEC Kızılötesi Uzaktan Kumanda protokolü, satın alabileceğiniz birçok cihazda ve Uzaktan Kumandalarda kullanılmaktadır. 38 kHz'lik bir taşıyıcı üzerinde bir Kızılötesi sinyali modüle eder ve mantıksal bir '1' ve bir mantıksal '0' kodlamak için darbe mesafesi kodlamasını kullanır. Protokol, hem adresi hem de komut baytını ve her ikisinin de ters çevrilmiş bir sürümünü tek ve aynı mesajda göndererek ve alımdan sonra aynı olup olmadıklarını kontrol ederek mesajın uygun olup olmadığını görmek için basit bir kontrol kullanır. Uzaktan Kumandada bir düğmeye basıldığında, bir kez adres ve komutla birlikte eksiksiz bir Kızılötesi mesaj gönderir. Düğmeyi basılı tutmak, adres ve komut bilgisi olmadan daha kısa bir tekrar mesajı gönderilmesine neden olur. Buton basılı tutulurken iletilen mesajların tekrarlanma süresi sabittir.

NEC Kızılötesi protokolü hakkında daha fazla bilgi örneğin şu adreste bulunabilir:https://sibotic.files.wordpress.com/2013/12/adoh-n…

2. Adım: Gerekli Bileşenler

Gerekli Bileşenler
Gerekli Bileşenler
Gerekli Bileşenler
Gerekli Bileşenler

Bu proje için aşağıdaki bileşenlere sahip olmanız gerekir:

  • PIC mikrodenetleyici PIC18F14K50, bakınız:https://www.win-source.net/embedded-microcontrolle…
  • Kristal 12 MHz
  • Seramik kapasitör: 2*100nF, 1*220 nF, 2*18pF
  • Elektrolitik kondansatör 47 uF/16V
  • Kızılötesi Alıcı TSOP4838, bakınız:https://www.win-source.net/optical-sensors-photo-d…
  • Dirençler: 2*33k, 1*4k7, 1*1k, 3*330 Ohm, 1*22 Ohm
  • LED'ler: 2 * Kızılötesi, 1 Sarı, 1 Yeşil, 1 Kırmızı
  • Transistör BC640, bakınız:https://www.win-source.net/transistorsbjt-single-b…
  • Jumper (isteğe bağlı)
  • USB bağlantısı

Bileşenlerin nasıl bağlanacağını gösteren şematik diyagrama bakın. Resimde ve videoda gördüğünüz gibi bu proje için bir breadboard kullandım. Devre, gücünü bilgisayarın USB portundan alır.

Adım 3: Yazılım ve Cihazın Çalışması

Daha önce de belirtildiği gibi, yazılım bir PIC18F14K50 için yazılmıştır. JAL ile yazılmıştır. PIC'nizi programlamak için Intel Hex dosyası ektedir. Yazılım aşağıdaki işlevleri yerine getirir:

  • NEC Kızılötesi mesajlarının kodunu çözme ve USB üzerinden PC'ye gönderme. Mesaj, Kızılötesi alıcı tarafından üretilen bit akışından çözülür ve bir adres + komut mesajına veya tekrar mesajına çevrilir.
  • PC'den alınan NEC Kızılötesi mesajlarını USB yoluyla gönderme. Yazılımın ayrıca Kızılötesi LED'leri doğrudan çalıştıran 38 kHz taşıyıcı frekansı oluşturduğunu unutmayın. Kızılötesi LED'e paralel olarak, bir mesajın iletimini görünür kılmak için bir Sarı LED bağlanır.

Varsayılan olarak bu devre, bir Kızılötesi mesajın iletimi sırasında Kızılötesi alıcıyı sessize alacaktır. "Sesi Aç" konumuna bir atlama kablosu yerleştirilirse, bu sessiz işlevini devre dışı bırakacaktır. Bu durumda iletilen Kızılötesi mesajın kodu, iletime paralel olarak çözülür ve alım tamamlandıktan sonra, PC'ye alınan bir Kızılötesi mesaj olarak gönderilir. Geçerli bir NEC Kızılötesi mesajı alınırsa, Kırmızı 'IR OK' LED'i yanacaktır.

Bu cihazı çalıştırmak için PC'nizde bir Terminal Emulator programının olması gerekir. Bu amaçla 'Termit' kullandım. Cihaz PC'ye bağlandığında, Windows 10'da bu cihaz için önceden yüklenmiş bir Mikroçip sürücüsü göründüğünden, Windows 10 tarafından otomatik olarak ek bir COM bağlantı noktası olarak tanınacaktır. Bu COM bağlantı noktasının ayarı şöyle olmalıdır: 19200 baud 8 bit, 1 stop-bit, eşlik yok ve RTS/CTS akış kontrolü kullanılıyor. Baud hızı gerekirse başka bir değere ayarlanabilir, böylece 115200 baud hızı da çalışacaktır. Cihaz, Terminal Emulator programı ile bağlanarak USB portu üzerinden yapılandırıldıktan sonra Yeşil 'Yapılandırıldı' LED'i yanacaktır.

Kızılötesi mesajları alma

Kızılötesi mesaj alındığında, Terminal Emulator programında aşağıdakiler görüntülenecektir:

  • xx adresin (A) ve komutun (C) onaltılı sayısı olmak üzere tam bir mesaj olması durumunda 'A:xx C:xx'. Her ikisi için de değerler 0x00 (0) ile 0xFF (255) arasında değişebilir.
  • Mesajın tekrarlanması durumunda 'Tekrar'.

Kızılötesi mesajlar gönderme

Bunun için cihaza ne yapacağını söyleyen bir protokol tanımlamam gerekiyordu. Bir Terminal Emülatörü kullandığımızdan, bir mesajı tanımlamak için ASCII karakterlerini kullandım. Aygıta komut gönderme protokolü şu biçimi kullanır: '!AACCRR#', burada (tüm karakterler büyük/küçük harfe duyarlı değildir):

  • '!' mesajın başlangıcını belirtir.
  • 'AA' adresin onaltılık gösterimdeki değeridir, bu nedenle '0' ila '9' ve 'A' ila 'F',
  • 'CC', komutun onaltılık gösterimdeki değeridir, bu nedenle '0' ila '9' ve 'A' ila 'F'
  • 'RR', onaltılık gösterimde iletilmesi gereken tekrar mesajı sayısıdır, bu nedenle '0' ila '9' ve 'A' ila 'F'. '00' değeri, tekrar mesajı gönderilmediği anlamına gelir.

0x07 adresli, 0x05 komutlu ve 3 tekrarlı bir mesaj örneği daha sonra Terminal Emulator programında aşağıdaki gibi yazılmalıdır: !070503#

Bilgisayardan bir komut gönderildikten sonra cihazın farklı yanıtları olur:

  • 'Y', bir mesajın iletildiği anlamına gelir. Bu yanıtın tüm mesajlar - tüm tekrarlar dahil - iletildikten sonra verildiğine ve bu nedenle birçok tekrar mesajının iletilmesi gerektiğinde bu yanıtın verilmesi biraz zaman alabileceğine dikkat edin.
  • 'N', PC'ye gönderilen mesajda geçersiz bir karakter olduğu anlamına gelir.
  • 'B', komut verildiğinde bir Kızılötesi iletimin hala meşgul olduğu anlamına gelir.
  • ?', cihazın '!' beklediği, ancak başka bir şey aldığı anlamına gelir.

4. Adım:

Cihazın çalışırken kısa bir videosunu çektim. Bu video için hem iletimin hem de alımın çalıştığını görmek için Uzaktan Kumandalı ticari bir LED Lamba kullandım. Video aşağıdakileri gösterir:

  • USB aygıtının Terminal Öykünme programından yapılandırılması. Cihaz yapılandırıldığında, 'USB NEC Kızılötesi Verici ve Alıcı' mesajıyla yanıt verir. Cihazda, cihazın PC tarafından yapılandırıldığını gösteren Yeşil LED yanar.
  • Lamba Uzaktan Kumanda ile açılır. Bunun için Uzaktan Kumanda, 0x00 adresini ve cihaz tarafından kodu çözülen ve PC'de gösterilen 0x07 komutunu kullanır.
  • Lamba, Uzaktan Kumanda ile kapatılır. Bunun için Uzaktan Kumanda, 0x00 adresini ve cihaz tarafından kodu çözülen ve PC'de gösterilen 0x06 komutunu kullanır.
  • Lamba, PC'de aynı Uzaktan Kumanda komutu 0 tekrar değeri ile (tekrar yok) yazılarak, yani '!000700#' yazılarak açılır. Lamba açılır.
  • 0x00 adresi ve 0x0A komutu kullanılarak ve 0x30 tekrarları kullanılarak lambanın rengi maviye değiştirilir. Kızılötesi LED'lere paralel bağlı olan Sarı Led yanıp sönerek tekrar mesajının Kızılötesi üzerinden iletildiğini gösterir. Yazılan mesaj '!000A30#' şeklindedir.

Bu videonun kaydı sırasında "Unmute" jumper bağlantısının etkin olduğunu ve böylece iletilen iletinin "!000700#" olduğunu ve Terminal Emülasyon programında "A:00 C:07" olarak alındığını da görebileceğinizi unutmayın. Lambanın maviye boyandığı demoda, geçerli – tekrar – mesajlar alındıkları ve tekrar mesajlarının iletimine paralel olarak kodu çözüldüğü için iletildiği sürece Kırmızı LED'in yandığını da görebilirsiniz.

Kendi projenizi oluştururken ve tepkilerinizi dört gözle beklerken iyi eğlenceler. Eğer beğendiyseniz Remote Control 2017 yarışmasında bu projeye oy vermeyi unutmayın. Tekrar teşekkürler.

Önerilen: