PIC ile IR Kumanda Kod Çözücü

Başlatan xoom, 13 Ocak 2014, 19:44:18

xoom

Evdeki TV'nin boştaki tuşlarınden biri ile PIC(12f675 Olabilir) ve Röle ile basit bir devre ile Kumandanın tuşunu okumak ve hafızaya almak istiyorum.
ve daha sonra evdeki televizyonun o tuşuna ne zaman basarsam röleyi çektirmek istiyorum.

internette 1-2 devre buldum fakat kodları proton ile yazılmış anlamadım. bir başka buldum tam istediğim ama sadece hex'i var.
ben bu işin mantığını CCS C ile veya en azından C ile çözmek istiyorum..
Bu konuda yol gösterici fikirlerinizi istiyorum..
yapmak istediğim iş için örnek bir devre paylaşacağım birazdan.

kantirici

#1
Öncelikle kumandanın protokolünü çözmek gerekiyor. Her protokolün başlangıç verisi ve bitlerin süreleri farklı. Bu süreleri ölçerek protokolü bulabilirsiniz. Yada internetten kumandanın prokolünü bulabilirsiniz.

Alıcı göz olarak 38khz tk19 (kumanda 38khz veri gönderiyorsa) kullanarak gelen IR sinyal çözülür.

MCU tarafında ise harici kesme ile düşen kenar tetikleme ile timer başlatırlı yükselen kenar tetikleme ile timera bakılarak bitler ve protokol tespit edilebilir.

http://www.kerrywong.com/2012/08/27/reverse-engineering-the-syma-s107g-ir-protocol/
https://www.google.com.tr/search?q=IR+protokol&source=lnms&tbm=isch&sa=X&ei=hynUUpeHFejX7AaqooG4Bw&ved=0CAcQ_AUoAQ&biw=1920&bih=908
https://320volt.com/ir-protokol-analizor-programi/

xoom

#2
www.vimeo.com/24645290

Yukaridaki devrenin şeması ve hexi var ama kaynak kodları yok ve ben yazılım kısmını öğrenmek istiyorum. Yukaridaki devrede herhangi bir kumandanın tuşu kayıt ediliyor daha sonra o tuş ile kontrol ediliyor. tam bu mantık
sanırım önce kumandaya basılınca gelen bilgiyi okuma işini halletmeyi öğrenmem gerekiyor.

Edit: Video link düzeltilmesi

kantirici

Aynen hocam önce gelen veriyi süreleri ve lojik geçişleri kayıt ederek daha sonra aynı veriyi oluşturuyor. Tabi bunu  IR LED'e modüle ederek uyguluyor, genelde 38 Khz kare dalga. Mesela protokol de lojik 1 için 500 usn 1, 500 us 0 göndermek gerekiyorsa 500us 38 khz kare dalga gönderip sonraki 500 us herhangi birşey göndermiyor. TK19 çıkışında bu bilde demodüle edilerek  1-0 geçişi sağlanıyor. Ayrıca tk19 çıkışı aktif 1.

suleymanq

InfraX Remote Manager programı var belki lazım olur size


एक होना

#5
hocam InfraX Remote Manager programı nereden bulabiliriz sağlıklı çalışan.
biraz önce google ye sordum birkaç sayfa gösterdi. indirdim programı pc ye yükledim ve kayboldu.
ya program sorunluydu yada program başka amaçlara hizmet ediyordu.
teşekkürler.

mesaj birleştirme:: 13 Ocak 2014, 22:50:55

Alıntı yapılan: xoom - 13 Ocak 2014, 20:20:15


Yukaridaki devrenin şeması ve hexi var ama kaynak kodları yok ve ben yazılım kısmını öğrenmek istiyorum. Yukaridaki devrede herhangi bir kumandanın tuşu kayıt ediliyor daha sonra o tuş ile kontrol ediliyor. tam bu mantık
sanırım önce kumandaya basılınca gelen bilgiyi okuma işini halletmeyi öğrenmem gerekiyor.

Edit: Video link düzeltilmesi

hocam görünürde video yok

xoom

Alıntı Yap
hocam görünürde video yok
Hocam linkteki videoları forum gösteremiyor sanırım. Videonun sol altındaki linke basarsanız video açılacaktır.
veya aşağıya Linki altıntı blokları arasına ekliyorum.
Alıntı Yaphttp://vimeo.com/24645290

एक होना

aradığım böyle bir şey değil.
yapmak istediğim şöyle bir şey
tv uydu medya oynatıcı gibi cihazların kumanda tuş kodlarını toplayıp isimlendirmek ve pc de hazırlayacağım ara yüz ile bir kumanda görünürlüğü oluşturmak.
hazırlanan ara yüzde uydu butonuna basıldığında tv için giriş kodu aktif olacak kanal değişimleri yapıldığında uydu kanalları değişecek ses aç dendiğinde tv sesi açılacak.
sistem kapat dendiğinde tanıtılmış olan cihazlar kapanacak.

bunun için kumanda datalarını toplayacak bir program lazım.

seri port için bir alıcı devre şeması buldum

seri  port dan kumanda sinyalini göndermek için de devre var. tek sıkıntım pc için kumanda datalarını toplayacak program.

suleymanq


एक होना


suleymanq

Bir şey değil, ben başka bir soru sormak istiyorum da
infrared 45 kHz civarında olduğunu biliyorum acaba bu yöntemle hem donanımsal hem yazılımsal olarak maksimum frekans değeri nekadar mümkün olabilmektedir MHzler mertebesinde sinyal işlenebilir mi acaba?

xoom

Yukarida paylaştığım gibi öğrenme özellikli bir devre yapmak istiyorum..
Peki bu öğrenme işini yani C de nasıl yapabiliriz

Yukaridaki devreye göre birşeyler yapmaya çalışıyorum.

SpeedyX

OUT gelmesinden itibaren ard arda gönderilen "1" ve "0" ların sürelerini bir diziye yazıp, bir zamanaşımı boyunca OUT sinyalı yoksa kayıdı sonlandırıp kalıcı hafızaya kaydedebilirsin.
Sonra yine aynı prosedürü çalıştırırsın ve yine benzer bir dizi çıkarırsın, bu diziyi hafızandaki dizilerle belli bir hata payına müsade ederek karşılaştırıp gelen komutun hangi dizi olduğunu bulursun.
Ondan sonra o komutla ne iş yapılıyorsa o işi yapar bitirirsin.
Bir buton olsun, ona basılıyken kayıt modu olsun, basılı değilken çalışma modu...
Kayıt modunda aynı sinyali 3-5 kere alıp dizideki sürelerin ortalamalarını alarak orta noktaları ve aralarındaki max farkları bularak da hata payını dinamik olarak çıkarabilirsin, bunları da o diziyle aynı konfigürasyon bölgesine parametre olarak kaydedebilirsin ve karşılaştırmada hata payı olarak kullanırsın..

Bundan sonra herkes öğrenen ir decoder yapabilir.. Son süreyi silmeyi unutmayın, o timeout süresi olacaktır, veriye dahil değildir.

emre salman

her kumandanın frekansı farklı bunun için üretilmiş tsop98200 var bu alıcı ise 20 khz ile 445 khz arasında veri okuyabiliyor 2 pulse arasındaki zamanı okuyup frekansı hesaplayabiliyorsun yalnız ben pic ile başaramadım
capture kesmesinde 2 pulse arasındaki zamanı 61 us olarak okuyorum ama osiloskopta 26 us gözüküyor verinin 38 khz de geldiğini varsayarsak 26 us doğru olması lazım yalnız ne yapıp ettiysem timer ile 26 us süreyi göremedim hep 60 us civarı çıkıyor sanırım pic okadar hızlı okuma yapamıyor

RaMu

#14
Uzun zamandır hortlayan konu göremiyorduk iyi oldu :)

Alıntı yapılan: zerolax - 11 Haziran 2016, 05:28:05
... 26 us doğru olması lazım yalnız ne yapıp ettiysem timer ile 26 us süreyi göremedim hep 60 us civarı çıkıyor sanırım pic okadar hızlı okuma yapamıyor

Pic dahada hızlı okuma yapar,
bir yerlerde bir hata yapılıyor.
Donanımsalda olabilir yazılımsalda.
İstersen kullandığın devre kod ve osiloskop çıktısını inceleyelim.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html