Bilgisayara kızılötesi alıcı devresi yapıp bağladım. Sonra da WinLIRC programını beğenmeyip kendim Delphi'de program yazdım. Fakat bir kumandada gelen sinyaller karakterler halinde gelirken; Bir başka kumandada tuşa basılınca sadece null değeri gönderiyor.
1200 ile 115200 bit/s arası hızları denedim. Hepsinde aynı.
Bu uzaktan kumandaların gönderdiği sinyal nasıl bir şey oluyor? Hepsinin standart bir sinyal yapısı var mı? Sinyali yakalamak için timer(zamanlayıcı) kurup mesela her 10ms de bir kontrol etmek mi gerekiyor? Yoksa gelen her sinyalin belirli bir bit değeri oluyor da o değeri mi bulmak lazım?
Bilgili arkadaşlardan yardım ve ilgili internet adresi bekliyorum.
Her kumandanın kendine ait bir frekansı vardır. Bunu da kumandanın içerisindeki kristal (genelde sarı renkli Dikdörtgen bişey) belirler. Senin yaptığın alıcının frekans değerine göre kumanda bulman lazım. Zaten genelde bular ikisi birden yapılır. Yani alıcı- verici devreleri diye geçer...
genelde TV kumanladaları 38Khz de çalışır tek bir standart yoktur (4 - 5 farklı standart var SIRC RC5....). alırken ne gibi bir devre ve program kullandım bilmiyorum ama yazdığın program diğer protokole uymuyor olabilir.
Sevgili arkadasım,IR sistemlerinde 3 tane frekansdan bahsedilir, 1.IR ısıgın kendi frekansı 2.IR ısık ile aktarılacak verinin module edildigi frekans (ki bu genelde 36k ie 60k arasıdır) 3.Veri akıs hızı ,ya da boud rate.
Fakat, Unutulmamalıdırki her tip kumandanın farklı bir protokolu vardır.Sony,philips,... filan kendi protokollerini yazmıstır.Hangi protokolu kullanıyorsan ona gore okuma ve yazma yapacaksın,
Bence soyle yap: 1.Once bir IR vericisi ve belli bir module frekansı ola n alıcı al 2.Sonra protokolunu sec. Eger protokolunu kendin yapmak istiyorsan benim bitirme projemi inceleyebilirsin.sitemde var. Kolay gelsin
TV alıcılarında da farklı standartlar var mıdır? Varsa en çok kullanılan standart hangisidir?
Baba Soru : IR Alıcım 38Khz de sabit, Ben de sadece 38 Khz lik sinyalleri almak istesem, Baud Rate de sabit olsa mesela 115200 bit/s, ve sadece TV kumandaları (38Hz) kullanmak istesem;
Nasıl bir sinyal tanıma algoritması yapmam gerekir?
1-)Timer kurarak mı? (Mesela her 1/38000 saniyede bir sinyal alıp kontrol etmem mi gerekir) 2-)Yoksa kumandadan sinyalin geldiği zaman sinyal değerine bakıp mı?(mesela gelen sinyal A karakterine ait)
1. yoldan yaparsam zaman ayarı tam hassas olmuyor. (mesela bir 200msde alıyor bir 50ms de) 2. yoldan yaptığımda ise bir kumanda A karakteri yolluyor ise diğeri sürekli NULL yolluyor.
Gel de çık işin içinden....
Sn. Salih Bey; Bitirme projenizi inceledim. Arabalarla istasyonlar arasında ir iletişimi ile ilgili devreler ve yol tanıma algoritmaları var. Bu alıcı ve verici devreleri bende zaten var. Bana lazım olan "evrensel bir ir protokolü". Evet ben de biliyorum böyle bir protokol yok ama tüm protokolleri içinde bulundurabilecek bir ir alıcı programı yapmak istiyorum. İlginiz için çok teşekkür ederim.
bende yaklaşık 3 yıl önce mevcut programları beğenmediğimden aynı kumanda programını yazdım. Ben kod çözümlemeyi c++ ile bi dll ile yaptım hız açısından, programı ise vb ile yazdım. Eğer istersen kaynak kodlarını yollayabilrim. Soruna gelince ilk olarak sistemin doannım kısmını anlatmamışsın. İnternetteki projelerde genel olarak ya mikroişlemcili olarak yapılıyor yada direk olarak kızılötesi alıcıdan gelen sinyal çözülüyor. Eğer ilk şekilde yaparsan program kolay olur. Ancak mikroişlemci programında sorun çıkar. Bunu hazır olarak yapmanı tavsye ederim (ben öyle yaptım) diğer şekilde ise yani sinyal çözümlemesini bilgisayara yapacaksan hangi sinyal sistemini kullanacağını tespit etmen gerekli. Bu sinyal sisteminin timingini iyice öğrendikten sonra kızılötesi gözü seri portun dcd bacağına bağlayarak bilgisayara çözdürülür. Ben bu konuda çalışma yapıyordum ki zaman problemi çıktı ve bırakmak zorunda kaldım. Eski bilgilerime bi göz atıp ayrıntılı mesaj yazmaya çalışrım.
Devremde mikroişlemci yok. IR alıcıyı direk RX yada DCD'ye bağlıyorum. Malesef sinyal çözümlemesini kendim yapmalıyım.
3 yıl önce PIC16F84 ile benzer bir alıcı daha yapmıştım (antrak gazetesindeki winamp kontrol) Ve visual basic'te bir program yazdım, gelen sinyalleri timer kullanarak çözmeye çalıştım. Fakat fazla başarılı olamamıştım.
Şimdiki programı delphi'de yazacağım. Seri porta bir sinyal gelince çalışan olayım da var, timer kontrolü de. Tek sorun hangisiyle yapacağıma karar veremedim. Şimdilik sinyal çözümlemesini onReceive(sinyal gelince çalışan olay) içine yazarak yapıyorum.
Yazdığın kodları ve sinyal çözümlemeyle ilgili bilgileri görmek isterim. C veya visual basic olması farketmez algoritmayı anlamam yeterli olur. Şimdiden teşekkür ederim.
Ir alıcıyı direk olarak rs232 portunun rxd bacağına bağlayamazsın çünkü rxd bacağı rs232 timinginde sinyal alır uzaktan kumandaları ürettiği sinyal farklıdır. Bundan dolayı sabit bir baud rate kullansan bile her seferinde farklı değr okursun. Çözüm dcd bacağını kulanmaktır.
Ben antraktaki devreye göre program yapmıştım, bu devredeki pic sinyal çözümlemesini yapıp rs232 poruna seri olarak gönderdiğinden epey bi kolay oluyor. Belirli aralıklarla (100ms yeterlidir) seri poru kontrol edip eğer data varsa okutarak bunu yapmak gayet basit. Eğer böyle bir sistem kullanmaya karar verirsen benim yazdığım dll yi kullanabilirsin.
Eğer picsiz yapacaksanhttp://www.geocities.com/devre_projesi/code.html adresinde canon markalı uzaktan kumandanın kullandığı protokol gayet açık bi şekilde anlatılmış. Bu sisteme göre ilk olarak rs232 nin dcd bacağındaki sinyali kontrol edeceksin. 9000us boyunca sinyal yüksek ise data geliyor demektir. Bundan sonra 4500us düşük sinyal gelir, daha sonra her bir bitten önce 600us yüksek arkasından bit değeri 0 için 600us düşük, bit değeri 1 için 1200us düşük sinyal ve bir sonraki bit için 600us yüksek sinyal. Böyle bir sinyali bilgisayarda çözümlemek için en azında 250us de bir data kontrolu yapmak gerekr.
Eğer bu ir sinyal sistemini değil başka bir sistemi kullanmak istiyorsan bunu internette arayarak bulabilirsin.
Şimdi önceki mesajındaki soruna gelecek olursak ir sinyal sistemleri rs232 sinyalleri sabit genişlikli pulse sinyaline göredir yani bit değeri 0 içinde bit 1 içinde aynı sinyal genişliği vardır ancak ir sinyallerinde 0 için 600us olan sinyal 1 için 1200us dir. Sİnyal çözümlerken ilk olarak dcd pini yüksek olduğunda timer zamanına göre 9000us boyunca işlem yapma 9000us sonra data al düşük ise sinyal geliyor demektir 4500us bekle. Daha sonra kumandanın gönderdiği bit sayısına göre (linkteki sayfaya göre 32 bit data gelir) bir döngü aç ve dcd pininden data okumaya başla her 600us de bir data oku eğer düşükten sonra yüksek geliyorsa okuduğun bit 0 dır, eğer düşükten sonra düşük geliyırsa okuduğun bit 1 dir ve 600us bekle ve bir sonraki biti okumak için döngü başına dön. Kabaca bu şekide olmalı timer zamanlarını deneyerek yada düşünerek daha uygun olarak tayin edebilirsin sanırım. Eğer fırsat bulabilirsem yada canon kumanda bulabilirsem c++ ile bu şekilde çözmek için denemeler yapabilirim.
Bu arada mail adresi verirsen mail olarak yazdığım kodları sna gönderebilirim.
DaRt, verdiğin bilgiler için çok teşekkürler. Bir de dcd bacağını deneyeyim bakalım.
Hocam kodları ve dll'yi yollayabilirsen sevinirim.
Sanırım artık 'Evrensel IR Alıcısı' projemi tamamlayabileceğim.
Yardımcı olan herkese çok teşekkürler.
way be bende böyl şeyler yapabilirmiyim acaba?? yıldız teknik end. elektronik 2 yıllık okuyorum liseden de alt yapım war elektroniği çok seviyorum ama tabiki olanak yok iş bile bulamıyosun.... yine de seviyorum bir tutku...
Arkadaşlar benim bitirme ödevim kızılötesi iletişim kullanarak kalvye kontrollerini kumandaya aktarmak.Bu iş için bir program buldum.Şu an bana lazım olan seri bir kızılötesi alıcı ve ona uygun bir uzaktan kumanda.Bunları nereden temin edebilirim?
yeni mesaja git
Yeni mesajları sizin için sürekli kontrol ediyoruz, bir mesaj yazılırsa otomatik yükleyeceğiz.Bir Daha Gösterme