İçindekiler:
- Adım 1: NEC Kızılötesi Protokolü Hakkında Bazı Bilgiler
- 2. Adım: Gerekli Bileşenler
- Adım 3: Yazılım ve Cihazın Çalışması
- 4. Adım:
Video: USB NEC Kızılötesi Verici ve Alıcı: 4 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
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
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
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:
Arduino Tabanlı Projeler için NRF24L01 Alıcı-Verici Modülü ile Kablosuz Haberleşme: 5 Adım (Resimli)
Arduino Tabanlı Projeler için NRF24L01 Alıcı-Verici Modülünü Kullanan Kablosuz İletişim: Bu, robotlar ve mikro denetleyiciler hakkında ikinci öğretici öğreticim. Robotunuzu canlı ve beklendiği gibi çalışıyor görmek gerçekten harika ve robotunuzu veya diğer şeyleri kablosuz olarak hızlı ve hızlı bir şekilde kontrol etmenizin daha eğlenceli olacağına inanıyorum
RF Modülü 433MHZ - 433MHZ RF Modülünden Mikrodenetleyici Olmadan Alıcı ve Verici Yapın: 5 Adım
RF Modülü 433MHZ | 433MHZ RF Modülünden Mikrodenetleyici Olmadan Alıcı ve Verici Yapın: Kablosuz veri göndermek ister misiniz? kolayca ve mikrodenetleyiciye ihtiyaç duymadan mı?İşte başlıyoruz, bu talimatta size kullanılmaya hazır temel rf verici ve alıcıyı göstereceğim!Bu talimatta çok ver
Arduino İle 2.4Ghz NRF24L01 Modülünü Kullanan Kablosuz Uzaktan Kumanda - Nrf24l01 Quadcopter için 4 Kanal / 6 Kanal Verici Alıcı - Rc Helikopter - Arduino Kullanan Rc Uçak: 5 Adım (Resimlerle)
Arduino İle 2.4Ghz NRF24L01 Modülünü Kullanan Kablosuz Uzaktan Kumanda | Nrf24l01 Quadcopter için 4 Kanal / 6 Kanal Verici Alıcı | Rc Helikopter | Arduino Kullanan Rc Uçak: Bir Rc araba çalıştırmak için | Quadcopter | dron | RC uçak | RC tekne, her zaman bir alıcı ve vericiye ihtiyacımız var, RC QUADCOPTER için 6 kanallı bir verici ve alıcıya ihtiyacımız olduğunu ve bu tür TX ve RX'in çok maliyetli olduğunu varsayalım, bu yüzden bir tane yapacağız
IR Tabanlı Kablosuz Ses Verici ve Alıcı: 6 Adım
IR Tabanlı Kablosuz Ses Vericisi ve Alıcısı: Kablosuz Ses, Bluetooth ve RF İletişiminin ana teknolojiler olduğu (çoğu ticari ses ekipmanı Bluetooth ile çalışsa da) halihazırda teknik olarak gelişmiş bir alandır. Basit bir IR Ses Bağlantı Devresi tasarlamak faydalı olmaz
Raspberry Pi için Kodi / OSMC Kızılötesi Alıcı ve Sıfırlama Şapkası Oluşturun: 5 Adım (Resimlerle)
Raspberry Pi için Kodi / OSMC Kızılötesi Alıcı ve Sıfırlama Şapkası Oluşturun: Bir Kodi / OSMC IR Alıcısı oluşturun ve Raspberry Pi için şapkayı sıfırlayın Ahududu Pi'nin açık olup olmadığına bakın.Ayrıca ailemin