ir kumanda

Başlatan mitec, 04 Mayıs 2012, 00:49:57

mitec

uzun süredir yaptığım projelerde kullanmak üzere basit bir ir kumanda yapmayı düşünüyordum.fakat ilk sorun bu kumandayı nasıl yapacağım değil nasıl bir kutuya koyacağımdı.bir türlü şöyle 5-6 tuşlu narin bir kutu bulamamıştım.sonunda piyasada arçelik-beko servis kumandası adı altında satılan bu kumandayı buldum.üstelik sadece 5 tl.
http://postimage.org/image/z0ovrih6d/
aslında amacım sadece kumandanın kutusunu kullanmaktı.verici devresini pic+555 yada yapabilirsem sadece pic ile kendim yapmayı planlıyordum. şimdi aklıma daha parlak bir fikir geldi.eğer bu kumandanın kodlarını çözebilirsem ekstradan bir verici yapmama gerek kalmaz.
fakat  arçelik-beko nun hangi  protokolü kullandığını bulamadım.bu konu hakkında fikir sahibi olan varmı?
yada kodları çözmek için nerden başlamalıyım ne yapmalıyım en azından prensip olarak anlatabilecek var mı?
yani kumanda kodları nasıl çözülür

ete

Kumanda kodlarını çözmenin bir iki yolu varç Birincisi önüne bir IR alıcısı yerleştirip onun çıkışını hafızalı bir skop da incelemektir. Her IR bilgisibir paket halinde gönderilir ve paketin mutlaka bir header (paket başı) sinyali vardır.
Bu genellikle uzun bir LOW sinyalidir. Yada peşine kısa bir hIGH da takarlar. Bu işi yapmadan önce mevcut protokolleri incelemeni öneririm. Oradan gerekli bilgileri aldıktan sonra sinyalin şekli kime uyuyor tespit edebilirsin.

İkinci metod da ise bir işlemci ile uzun LOW ve usun High sinyallerinin sürelerini ölçer kayda alırsın Sonra onları mevcut protokol süreleri ile karşılaştırp kime uyduğuna bakabilirsin. Bu biraz karanlıkta iğne aramaya benzer ama sonuç alabilirsin.

Yada muhtelif protokoller için alıcılar yapar denersin. hangisini okuyabiliyorsan odur sonuçta protokol.

Epeyce bir çalışma gerektiriyor.

Ete

mitec

ete hocam teşekkür ederim.skopum yok ilk söykediğinizi deneme şansımda yok fakat high low sürelerini ölçerek birşeyler çıkarabilecekmiyim bilmiyorum hemen denemelere başlıyorum.bu arada arkadaşlardan arçelik-beko ir protokolü hakkında bilgi sahibi olan varsa yardımlarını bekliyorum
son çare olarak eğerki kendi vericimi yapmaya kalkarsam 12675 i 3 volt ile çalıştırmam bir sorun yaratırmı?nelere dikkat etmeliyim sigorta ayarları v.s

fatih88

mitec kardeşim bende ır kumanda için çalışıyorum şuan 9 tane röleyi kontrol ediyor ama bazı sorunları var çözer çözmez foruma koyacağım şehir dışı işlerden gözümü açamadım bir türlü ama benim kumanda protokolü rc5 arçelik bildiğim kadarı ile kendi protokolünü kullanıyor şimdiden başarılar 
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

Mucit23

12F675 3 volt ile çalışır. Sigorta ayarlarında Boden kapalı olsun yeter.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

mitec

Alıntı yapılan: Mucit23 - 04 Mayıs 2012, 14:47:46
12F675 3 volt ile çalışır. Sigorta ayarlarında Boden kapalı olsun yeter.
teşekkür ederim
benim amacım kumandanın protokolünü çözmek filan değil sadece bu beş tuş çalışsın yeter.
başından sonuna kadar bütün high ve low sürelerini ölçtüm.herhangi bir prokolle karşılaştırmadım ama ilk 5 bit bütün tuşlarda aynı
6.bitten itibaren süreler teker teker değişmeye başlıyor bende tam bu noktadan itibaren hangi tuşa basılmış olduğunu programda algılamaya çalışacağım inşallah doğru yoldayımdır

fatih88

mitec kardeşim illaki bu kumandamı olması gerekiyor philis tv kumandası olmazmı benim devre yarım yamalak çalışıyor 7 kanalı açtıktan sonra pic şişiyor algılama cok gec oluyor ivedi bir şekilde çözmem gerekiyor benimde onu sana başarılar dilerim
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

ete

Arçelik muhtemelen NEC protokolünü kullanıyor olsa gerek.
Aşağıdaki linkte bu protokolün geniş incelemesi mevcut.
Sinyal süreleri data formatı hepsi mevcut. Okuduğun kodlarla yada sürelerle karşılaştır.

http://www.sbprojects.com/knowledge/ir/nec.php

Ete

mitec

hocam şu ana kadar okuduklarımı size sırayla yazayım
4 mhz kristal ile çalışıyorum pulsin komutuyla aldığım değeri 10  la çarparak sanırım us karşılığını bulmuş oluyorum
185*10 =1850 us-----0
86*10=860 us-------- 1
185*10 =1850 us-----0
86*10=860 us-------- 1
yalnız bu ilk 4 bitin 0 olanaları her ölçümde 185 değerini vermiyor.bir ölçümde 185 bir ölçümde 80 bir ölçümde 185 bir ölçümde 80 sıra hiç şaşmıyor hep bir 185 bir 80 şeklinde devam ediyor 1 olanları hep 86
daha sonra
up down ve servis tuşları 92*10=920 us---0
artı ve eksi tusları           180*10=1800 us--1

aslında devamınıda ölçmüştüm ama notlarım birbirine karıştı buradan itibaren ölçümlere devam ediyorum olmazsa hepsi bitince bir grafik çizip buraya koyarım

mitec

hocam yaptığım ölçümlerde çıkan sonuç bu;



sizce şimdi ne yapmalıyım?

ete

Aldığın değerlere bakılırsa bir protokol var gözüküyor ama sinyal şekli gözükmediği için kime uyduğu belli değil. Bu verilerle hiç bir şey yapılması mümkün değil maalesef. Her şeyden önemlisi header sinyal yok bu verilerde en önemliside odur.
O olmadan yada onun ne şekilde olduğunu öğrenmedenbir şey yapılması mümkün değildir.

Ete

mitec

hocam her tuşun en az bir yerinden birbirinde farklı süreler var.bu süreleri ölçerek o farklılıklar sayesinde hangi tuşa basıldığını tespit edebiliriz sanırım.belki çok sağlıklı olmaz ama ben denemeyi düşünüyorum.

ete

Ben boşuna uğraşma derim. Kodu çözmeden bir şey yapabilmen mümkün değil. Öyle olsa neden bu kadar kodlarla uğraşsınlarki
Ete

mitec

hocam son derece haklısınız ama yinede denemeden duramadım.
sonuç;
aslında çok kötü değil tuşlara birer defa ve çok sık olmayan aralıklarla basılduğında % 95 oranında doğru işi yapıyor.fakat uzun süre basınca yada arka arkaya basınca herşey birbirine giriyor.
verdiğiniz linkteki protokolleri tekrar incelerken bir şey dikkatimi çekti.benim kumanda kodları aslında rc5 protokolüne çok benziyor
"The 3rd bit is a toggle bit. This bit is inverted every time a key is released and pressed again."bendede 3.bit sürekli değişiyor galiba.
üstelik sürelerde çok çok yakın.(benimde biraz hatalı ölçüm yaptığımı düşünürsek )

artık anladım yapacak tek şey bir skopla gerçek grafiği görmek
şimdi bi arkadaşımdan ödünç skop almaya gidiyorum

mitec

ete hocam rc-5 protokolünü baz alarak sonunda elimdeki kumandadan sonuç elde etmeyi başardım.gerçekten mükemmel çalışıyor.bir kere bile hata oluşmadı kodları biraz sizin sony kumanda kodlarından esinlenerek oluşturdum süreleri biraz esnek tuttum.sonuç olarak istediğimi elde ettim beş tuş ile istediğim işleri yapabiliyorum elimdeki değişik kumandalarlada test ettim herhangi bir karışma yok.yinede yazdığım kodlara birde siz bakarmısınız doğru yapabilmişmiyim yada daha fazla iyileştirme yapılabilirmi?

main:
        pulsin porta.1,0,al
        if al1>75 and al1<200 then goto basla
        goto main
basla:
        for say=0 to 15
        pulsin porta.1,1,sonuc[say]
        next say
cikan:
        for say=0 to 15
        if sonuc(say)>100 then son.bit0[say]=1
        if sonuc(say)<100 then son.bit0[say]=0
        next say

        if son=1600 then goto servis
        if son=1088 then goto up
        if son=1344 then goto dovn
        if son=672 then goto arti
        if son=928 then goto eksi
        goto main

Powered by EzPortal