PIC ile bir kumanda kodunun saklanması

Başlatan humanus, 23 Nisan 2009, 23:50:06

humanus

12f629 türü bir PIC ile enfraruj bir uzaktan kumandanın tek bir tuşunun kodunu belleğe kaydedip sonra aynı kodu tek bir hattan geri basabilmek mümkün müdür? Bunun için nasıl bir yol izlemem gerekir? Önerilerinizi bekliyorum.

Tagli

Kumandanın frekansını biliyorsan buna göre örnekleme yapıp kaydetmen gerekiyor. Oldukça kolay, özellikle de kumandanın protokolü hakkında da bilgi sahibiysen. Ama frekans bilgisi yoksa işin zor. Örnekleme aralığını kısaltarak şansını deneyebilirsin ama 16F629'un sadece 64 byte RAM'i olduğu düşünülürse bu da pek mümkün değil gibi. Ben yine de biraz deneme yanılma ile frekansın tutturulabileceğini düşünüyorum. Ondan sonra iş sıradanlaşır.

Eskiden baya moda olan Casio uzaktan kumandalı kol saatleri vardı. Bunların karşısına kumanda tutarak normalde hafızalarında olmayan bir komutu öğrenmelerini ve gerektiğinde tekrar göndermelerini sağlamak mümkündü.
Gökçe Tağlıoğlu

humanus

Tagli , cevabın için teşekkür ediyorum. Varsayalım taşıyıcı frekansı biliyoruz.Nasıl bir yöntem izlemeliyiz, kısaca özetler misin?

Tagli

Frakansı biliyorsak her bitin ne kadar süre hat üzerinde kaldığını da biliriz, bu süre x olsun. Herhangi bir sinyal yokken hatta 0 olduğunu düşünürsek, ilk 1'i gördüğümüz anda bunu kaydederiz, sonra x kadar bekleyip tekrar gelen veriye bakarız, onu da kaydederiz. Bu böyle devam eder. Ama sinyalin bittiğini nasıl anlarız onu bilmiyorum. Yani uzunca bir süre 0 okuyorsak bu arka arkaya gelen 0'lar da olabilir, veya gerçekten mesaj bitmiş de olabilir. Bu farkı nasıl anlarız bilmiyorum. Kumandanın kullandığı protokol bilinse, yani mesela mesaj paketlerinin kaç bitlik olduğu gibi bilgiler, paketin sonu rahatlıkla tespit edilebilir. Belki bu bilgi olmadan da paketlerin çok büyük olmadıkları varsayılıp RAM'i doldurana kadar kayda devam edip sonra da bu verileri inceleyerek paketlerin yapısı hakkında fikir edinebilirsin. RAM'deki bilgi işlem sonunda EEPROM'a yazılarak bir programlayıcı ile okunabilir.
Gökçe Tağlıoğlu

forsa1975

En çok kullanılan protokolleri tanımlamak gerekiyor. Rc5  sony ve diğer protokollerin frekansı başlangıç şekilleri ayırdetmesi gerekecek.  Öyle çok kolay bir iş değil. Başlangıç ve sonunu yakalamak demek protokolu tanıması demek eğer bunu yaparsanız sayısal değerini alıp saklayabilirsiniz. Sonrada o değeri aynı protokolu kullanarak üretmeniz gerekir.  İkinci yöntem high ve lowları süreleriyle kayıt edip aynı sinyali tekrar aynı sürelerde vermek. Bu daha kolay gözüküyor ama körükörüne birşey olur.

erkan614

arkadaşın dediği gibi
gpio.0 giriş ayarlanıp beklemeye başlar kumandayı karşısına getirip tuşa anlık bi dokunulur böylece kod brikere gönderilmesi sağlanır high olduğu zaman sayıçı sayar low'a düşdüğünde bi registere kaydedip tekrar sayar böylece her durum değiştirdiğinde nekadar o durumda kaldığını kaydetmiş olur bunu eproma yazar sonrada k128 ile epromu okuyup kodu elde ederiz
mesela olabilir

bigbey

TA6R

humanus

Cevaplar için teşekkür ediyorum. Tuş kodunu kopyalamayı düşündüğüm kumanda bilinen protokollerden birisi ile çalışmıyor. Çinli üreticilerin yaptığı ve belirli bir standartı olmayan bir ürün. Arkadaşların önerdiği H ve L durumlarını ve bu durumlar arasındaki süreleri kaydederek kodu kaydetme fikri yapılabilir geldi. Biraz üzerinde çalışacağım. Fikrini söyleyen herkese teşekkür ediyorum.