Nüve Forum


Elektrik ve Elektronik Mühendisliği Bölümü hakkinda bilgisayardan kumanda ile program acma kapama ile ilgili bilgiler


Geçenlerde hocamız, bilgisayarda sıradaki slayta uzaktan kumanda ile geçiş yapılabilmesini sağlayan minik bir kumanda ile derse girmişti. Güzel düşünmüşler, kafamda yer etti... Bir önceki haftasonu, zamanında merakıma kurban olmuş ve

Like Tree1Likes
  • 1 Post By parametre

Cevapla

 

LinkBack Seçenekler Stil
  #1  
Alt 12.06.11, 19:18
parametre - ait kullanıcı resmi (Avatar)
Genel Yönetici
 
Üyelik tarihi: Sep 2009
Nereden: Kocaeli
İletiler: 593
parametre için ne kadar gurur duyulsa azdır.parametre için ne kadar gurur duyulsa azdır.parametre için ne kadar gurur duyulsa azdır.parametre için ne kadar gurur duyulsa azdır.parametre için ne kadar gurur duyulsa azdır.parametre için ne kadar gurur duyulsa azdır.parametre için ne kadar gurur duyulsa azdır.parametre için ne kadar gurur duyulsa azdır.parametre için ne kadar gurur duyulsa azdır.parametre için ne kadar gurur duyulsa azdır.parametre için ne kadar gurur duyulsa azdır.
Standart bilgisayardan kumanda ile program acma kapama

Geçenlerde hocamız, bilgisayarda sıradaki slayta uzaktan kumanda ile geçiş yapılabilmesini sağlayan minik bir kumanda ile derse girmişti. Güzel düşünmüşler, kafamda yer etti... Bir önceki haftasonu, zamanında merakıma kurban olmuş ve bir köşeye atılmış eski bir vcd çaların kumanda algılayıcısına gözüm ilişti. O an hocanın kumandası da aklıma geldi, ordan esti kafama bu fikir. Önceki haftasonumu bunu yapabilip yapamayacağıma karar vermek için bilgi toplamakla geçirdim. Bu haftasonu da işe koyuldum. Sonunda bitti ve gayet güzel çalışıyor...
Kızılötesi İletişim
Kızılötesi iletişim değişik protokoller ile gerçekleştirilir. Ancak tüm protokoller aynı mantığa dayanır. Verici, bitler ile şekillendirdiği dalgayı(genelde kare dalga kullanılır) kızılötesi ışık yayan diyota gönderir. Yayılan ışığa duyarlı olan sensör, ışığı aldığı anda tipine göre 0 veya 1 lojik seviyesinde çıkış verir. Çıkış, bir mikroişlemci yardımıyla okunur ve tekrar 1 ve 0lara dönüştürülerek iletişim gerçekleştirilmiş olur. Kızılötesi iletişimde en çok kullanılan protokoller konusunda daha çok bilgi edinmek için şu sayfa ziyaret edilebilirsiniz.

Yandaki resimde bir kumandaya ait "1" tuşunun ürettiği sinyalin genlik/zaman grafiği var. Kumadaların çoğu genelde şekilde gibi dalgalar üretir. Ancak üretilen dalgalarda 1 ve 0 bitlerinin kodlanışı, dalgaların üretiliş periyodu, kodlanıp gönderilen verinin uzunluğu gibi özellikler değişiklik gösterir. Tuşa ait sinyalin örneklenmesi ile oluşturulan ses dosyasını indirmek için burayı tıklayabilirsiniz...

Sensörün Ses Kartının Mikrofon Girişine Bağlanması
Önce işin elektronik kısmıyla başlayalım. Gördüğüm kadarıyla en yaygın kızılötesi sensörler, Telefunken'in TK19'u ve Siemens'in SFH506'sı. İnternette datasheetlerini bulabilirsiniz. Kullandığım sensörü yukarıda sözünü ettiğim vcd çalardan çektim. Bu yüzden modelini bilmiyorum. En sağ bacağa +5V, orta bacağa toprağı bağlayıp sol bacaktan çıkış aldım. Kullandığım sensör kızılötesi ışık yokken, 1 lojik seviyesinde çıkış veriyor ve sensöre sinyal ulaştığında çıkışı 0 lojik seviyesine çekiyor. TK19 ve SFH506'da resimdeki + ve - kutuplar yer değiştirilerek durum tersine çevirilebilir. Yani sinyal yokken 0, varken 1 çıkışı alınabilir. Ses kartına direkt 5v vermek zararlı olabileceğinden seviyeyi mümkün olduğu kadar aşağı çekmemiz gerekiyor. Elimdeki en yüksek direnç 1000K civarında olduğu için araya bu direnci bağlayarak voltajı düşürdüm...

Sensörün mikrofon girişine nasıl bağlanacağını yandaki resimde görebilirsiniz. Güç ihtiyacını usb girişinden karşıladım. Usb girişi bize yaklaşık 5 volt kadar gerilim sağlar. Bunun için bir usb kablosunu gözden çıkarmanız gerekiyor. Dıştaki kabı soyduktan sonra karşınıza 4 kablo çıkacak. Kırmızı olanı +5V, siyah olanı toprak, beyaz olanı data+, yeşil olanı da data- kablosu. Sadece siyah ve kırmızı olanlara ihtiyacımız olacak.


Resim: Kızılötesi sensör ve bilgisayara bağlanışı.

Kızılötesi Işık İle İletilen Sinyali Ses Kartı Yardımıyla Örnekleme
İşin asıl önemli kısmına, yazılım kısmına gelelim. Daha önce ses kartı yardımıyla telefon hattından arayan numarayı çözümlemeye çalışmıştım. Ancak oluşan cızırtıları bir türlü engelleyemediğim için bu işten vazgeçmiştim. Bu sefer de cızırtı var ama genelde çözümleme işlemini pek etkilemiyor.

Ses kartı kendisine gelen analog sinyalleri dijital sinyallere, dijital sinyalleri analog sinyallere dönüştürebilir; yani bir çeşit çift yönlü analog<->dijital dönüştürücüsü olarak çalışır. Kartın bu özelliğinden yararlanarak analog sinyali örnekleyip bilgisayar ortamına aktarabilir ve böylece sinyali çözümleyip ne taşıdığına karar verebiliriz. Visual Basic ile hazırladığım programda kullandığım örnekleme yaklaşımı şöyle:
- Program kendisine, tampon bellek bölgesi, sinyal tespit bölgesi olmak üzere dörder KBlık iki bellek bölgesi ve sinyal tespit bölgesinden geçerken içlerinde bir sinyale ait olduğu tespit edilen örneklerin nakledilip depolanacağı bir de dinamik bellek bölgesi ayırır.
- Ses kartından alınan her örnek anında tampon bellek bölgesine yazılır. Tampon bellek dolunca, içeriği sinyal tespit bölgesine taşınır ve gerçek zamanlı örnekleme işlemi aksatılmadan sürdürülür.
- Sinyal tespit bölgesinde örneklerin ortalama genlikleri hesaplanır ve basit bir eşikleme ile bir sinyale ait olup olmadıkları tespit edilir. Eğer örnekler bir sinyale aitse, dinamik belleğe kopyalanırlar. Aksi halde iki farklı durum söz konusu:
1) Zaten bir sinyale ait örnekler biriktirilmiyordu, program hala sinyal bekliyor. Bu durumda sinyal tespit bölgesi temizlenir ve sonraki örnek grubu beklenir.
2) Önceden bir sinyale ait örnekler biriktiriliyordu ve sinyal kesildi, artık dinamik bellek bölgesinde biriktirilen örnekler işlenmeye hazır, onları işleyecek fonksiyon çağrılır ve dinamik bellek bölgesi temizlenerek sonraki sinyal için hazır hale getirilir. Bu işlem sırasında tampon bellek bölgesinden sinyal tespit bölgesine örnek aktarımı yapılmaz ancak gerçek zamanlı örnekleme devam eder...

Böylece sinyal işlemede, özellikle de ses tanımada kullanılan çerçeveleme mantığını da kullanmış oluyoruz. Burada bellek boyutu(aynı zamanda çerçeve boyutunu da belirliyor) için seçilen 4096 rastgele bir değer değil. Bu değere çeşitli parametreler değiştirilerek yapılan gözlemler sonucunda ulaşıldı. Tampon bellek boyutunun düşürülmesi, kumandanın ürettiği kare dalgalar yarım dalga periyodu boyunca(bazı kumandalarda daha kısa veya daha uzun süre) 0 seviyesinde tutulduğundan sinyal henüz bütünüyle alınamamışken programın sinyalin bittiğini zannetmesine yol açar. Boyutun arttırılması ise programın bellek bölgeleri arasında veri taşıma işlemlerini gerçekleştirirken daha çok zaman harcamasına ve arasıra çok kısa süreli de olsa kullanıcıya yanıt vermeyi kesmesine yol açar. Daha da önemlisi sinyalin başlangıcına ait örneklerin gözardı edilmesine yol açabilir. Bu durum "Gözlemler/Sonuçlar" kısmında daha ayrıntılı bir biçimde açıklanmıştır.

Tüm Protokoller İle Anlaşılabilmesini Sağlayacak Bir Algoritma
Yukarıda verdiğim linke tıkladıysanız ne kadar çok kızılötesi iletişim protokolü olduğunu görmüşsünüzdür. Bir kumandanın hangi protokolle iletişim kurduğunu yani aslında hangi dille konuştuğunu anlamak için tüm bu protokolleri ayrı ayrı inceleyip programı da o şekilde dizayn etmek gerekir. Ama kumandanın ne söylediğini anlamamıza gerek yok. Yapmamız gereken şey her gelen sinyali, kendisini betimleyecek benzersiz bir niteleyici ile simgelemek. Programda bu niteleyiciye ses tanımada kullanılan "öznitelik vektörü" teriminden esinlenerek "öznitelik" ismini verdim.

Yazdığım program niteleyici değeri bulurken şu adımları izler:
- Sinyalin bütünü içerisinde en küçük ve en büyük genlik değerlerini tespit et.
- Bu değerlerin mutlak değerlerini topla, toplamı ikiye böl ve oluşan değeri eşik değer olarak kabul et(Bu değer en büyük ve en küçük genlik değerlerine eşit uzaklıkta bulunan genlik değeridir. Eşiğin üstündeki örnek değerleri kare dalganın tepesini, altındakiler de çukurunu temsil eder.)
- Sinyale ait ilk örnekten başla ve karşına çıkacak her bir tepe<->çukur geçişinde, bulunduğun konumu(örnek cinsinden) not al ve bir önceki değer ile arasındaki farkı bir değişken içerisinden sakla.
- Sinyale ait en son örneğe geldiğinde farkları tutan değişken aynı zamanda niteleyici ya da programda kullandığım ismiyle sinyalin "Özniteliği" olmuş olacak...

Yöntem uygulanırken dikkat edilmesi gereken 3 önemli nokta daha var:
- İlk fark değeri sinyalin çerçeve başlangıcına uzaklığı olduğundan her seferinde farklı bir sayı taşır. Dolayısıyla karşılaştırma işleminde ilk fark değerleri ihmal edilmelidir.
- Kumandalar, tuşa basılı kalınması halinde aynı sinyali tekrar tekrar yollar. Bu yüzden program karşılaştırma yaparken tanıtım esnasında elde ettiği öznitelik değerinin uzunluğuna bakmalıdır. Öznitelik değerinin uzunluğunu en aza indirgemek için bir tuş programa tanıtılırken, sinyalin mümkün olan en kısa halinin iletilmesi, yani tuşa kısaca basılması gerekir. Böylece tuş programa tanıtıldıktan sonra tuşa ne kadar uzun süre basılırsa basılsın program sadece sinyalin tekrar etmeyen kısmını hesaba katar.
- Elde edilen niteleyici değerler örneklerin konumlarının birbirleri arasındaki farka dayandığından, eşleştirme işlemi sırasında karşılaştırılan nitelik değerinlerine ait her bir elemana 1-2 örneklik sapma toleransı tanınmalıdır.

Bu üç noktaya da dikkat edildikten sonra aynı tuşun farklı zamanlarda çıkardığı sinyalin bu yöntem izlenerek işlenmesi sürekli aynı sonucu doğuracaktır. Sonuçta tuşun gerçekte hangi bitleri kodlayıp gönderdiğini bilemesek bile, yani kumandanın kendi dilinde ne söylediğini bilemesek bile kendi geliştirdiğimiz dilde ne söylediğini anlayabiliyoruz. İstenirse, herbir protokol incelenerek, tutulan öznitelik değerlerinin kullanılan protokolde ne ifade ettiği çözümlenebilir.

Sinyaller Algılandıktan Sonra Verilecek Tepki
Program daha önce kaydedilen bir tuşa basıldığında onu algılayıp, yine daha önce kaydedilen komutu çalıştırır. Komut "Sistem|||ÇalıştırılacakExe Parametreler" ve "Tuş|||KısayolTuşu+KısayolTuşu+..." olmak üzere iki biçimde girilebilir. İlk biçimde girilen komut programın belirtilen çalıştırılabilir dosyayı belirtilen parametreler ile çalıştırmasını sağlar. İkinci biçimde komut girilmesi halinde programa herhangi bir klavye tuşu girilebilir. Tuşlar + ile ayrılmalıdır. Program sinyali aldığında belirtilen tuşlara sırayla basar ve son bastığı tuşu başta olmak üzere tümünü sırayla bırakır. Programda tüm klavye tuşlarını tanımlamaya ve hata ayıklamaya üşendim, belki daha sonra zaman bulursam bunları da yaparım. Programın son derlenmiş halini aşağıdaki linkten indirebilirsiniz...


Resim: Sinyal çözümleyici program, programı indirmek için tıklayın.

Gözlemler, Sonuçlar
- Denemelerde kullanılan 5 farklı kumandanın ikisinde maximum genlik değeri ile minimum genlik değeri arasındaki fark çok düşük ölçülmüştür. Geliştirilen yöntem en düşük genlik değeri ile en yüksek genlik değeri arasında bir noktayı eşik değer olarak belirlediğinden, program bu kumandalarda sinyalleri niteleyen benzersiz değerler bulmakta zorlanmıştır. Bu probleme, maximum ve minimum genlik değerleri arasındaki farkın yüksek olduğu kumandalarda yöntemin işleyişine etki edemeyen gürültü/cızırtı sebep olmaktadır.

- Farklı örnekleme frekansları ile sinyaller örneklenmiş ve en uygun örnekleme frekansı tespit edilmeye çalışılmıştır. Örnekleme frekansının olabilecek en düşük değerde tutulması ve bu arada da gelen sinyallerde kare dalgaların örneklenememesine başka bir değişle dalga kaybına sebep olunmamaması gerekir. Bu hususlar göz önünde tutularak örnekleme frekansı 11025 hertz olarak seçilmiştir. Bu frekasta denenen tüm kumandalar arasında dalga tepesi/çukuru başına düşen en düşük örnek sayısı 5 olarak ölçülmüştür. Amaca en uygun örnekleme frekansının bu olduğu söylenebilir...

- Sinyal başlangıcının o an alınan örnek grubunda(sinyal tespit bölgesinde veya çerçevede) sonlara düşmesi, hesaplanan ortalama genlik değerinin düşük olmasına ve sinyalin başladığının anlaşılamamasına sebep olabilmektedir. Nadiren oluşan bu durumda program, tümü sinyale ait olan sonraki örnek grubunu sinyalin başlangıcı olarak seçmekte ve nitelik değerini yanlış hesaplamaktadır. Bu sorunun ortaya çıkmasında tampon bellek bölgesi ile sinyal tespit bölgesinin boyut seçimi ve ortalama genlik eşiğinin değeri etkili olmaktadır. Boyutlar programda 4K olarak seçilmiştir. Ortalama genlik değerinin maximum ve minimum genlik değerleri arasındaki uzaklık ile orantılı olarak seçilmesinin sorunu tamamen ortadan kaldıracağını düşünüyorum. (aklıma sonradan geldi henüz denemedim)...
Bugün, daha önce kurduğum sensör devresinin bilgisayarın sağlığı açısından tehlikeli olduğunu fakettim. Sensör de ses kartı da aynı kaynağa bağlı ve eğer mikrofonun - kutbuna usbnin + kutbu değerse kısa devre olur... Hem daha önce denemelerde kullandığım 5 kumandadan 2sinin sinyallerinin program tarafından anlaşılamadığını söylemiştim. İçime sinmedi. Öyle 3 tane çalıştı 2 tane çalışmadı olmaz; "Yapacaksan tam yap Hüseyin"...

Programda tanımlamaya üşendiğim diğer tüm klavye tuşlarını tanımladım(eksik tuş kaldı mı bilmiyorum) ve TK19 alıcı modülü kullanarak bugün devreyi tekrar kurdum. Devreyi öyle kurunca cızırtı sıfırlandı. Ayrıca TK19'un kullanılmasıyla daha önce bahsettiğim max-min genlik değerleri arasındaki farkın düşük ölçülmesi sorunu da çözülmüş oldu. TK19'un giriş ve çıkışı daha önce kullandığım sesörün tam tersi. Şöyle de bir durum var; sonuçta ses kartının - kutubu ile usbnin - kutubu aynı. Bu yüzden sensör çıkışında + kutubun değil - kutubun mikrofon girişine bağlanması gerekiyor, aksi halde kısa devre olur ve bilgisayar bozulabilir. Ayrıca sensör çıkışının, sadece mikrofon girişinin + kutubuna bağlanması yeterli, - kutup boşta kalabilir. Çünkü - kutuplar içeriden zaten bağlı...

Programda kare dalganın tepesi ve çukurunu belirleyebilmek için kullanılacak eşik değerini bulurken, maximum ve minimum genlik değerlerini hesaplamak için genliklerin mutlak değerini alıyordum. Bu sefer mutlak değer almadım ve oluşan eşik değer maximum genlik ile 0 noktası arasında olmuş oldu. Ayrıca öznitelik verisinin uzunluğunun da kumanda dosyasında saklanmasını ve kullanıcı tarafından değiştirilebilmesini sağladım.

Sonuçta yöntem son değişikliklerden sonra, en başta hedeflediğimiz gibi tüm protokoller ile uyumlu hale geldi ve daha önce anlaşılamadığını söylediğim 2 kumanda da artık problem yaratmıyor...
24/06/2010 tarihinde eklendi:


Resim:
Sensör devresinin son hali

Sensörün çıkış aldığım bacağı ile mikrofonun + kutbu arasında yaklaşık 2.5 volt kadar bir potansiyel fark olduğunu farkettim. Bu yüzden çıkış hiç 0V olmuyordu. Araya diyot bağlayarak mikrofonun + kutbundaki voltajın TK19'un çıkışına gelmesini engelledim.

Algoritmamızda sinyal başlangıcı tespitinin nadiren yanlış yapılabildiğini söylemiştim. Bu istisnai durumu ortadan kaldırmak için sinyalin başlangıcını içerdiği tespit edilen her örnek grubunun, kendisinden önceki grup ile birlikte dinamik bellek bölgesine aktarılmasını sağladım. Böylece sinyal başlangıcı çerçevenin/grubun sonlarına düşüp tespit edilemese bile, sonraki örnek grubunda tespit yapılacağından, farkedilemedikleri için dışlanan örnekler de çözümleme işlemine dahil edilmiş olur.

Bellek üzerinde verilerin sinyal tespit bölgesine taşınmasının uzun sürmesi halinde mikrofondan tampon belleğe örnek aktarımının kesintiye uğraması sebebiyle gerçek zamanlı örnekleme işleminde aksamalar meydana gelebiliyordu. Dönüşümlü iki tampon bellek kullanımı ile problem tümüyle giderildi. Bu sayede bir tampon bellek alanı dolduktan sonra örnekleme diğer tampon bellek alanı kullanılarak yapılırken, dolan bellek alanından veri kopyalama işlemi de örnekleme işlemini etkilemeden yapılabilmektedir.

Program sinyal uzunluğunu tespit edemiyordu. Tuşa basılı kalınması durumunda sinyal sürekli tekrarlandığı için program da sinyali tekrarlı biçimde değerlendiriyordu. Zaman kaybına sebep olan bu sorun programın sinyal uzunluğunu tespit etmesi sağlanarak çözüldü. Buna göre program, kumanda dosyası içinde saklanan bir ortalama aralık değerine rastlandığında sinyalin yeterli bölümünün alındığına karar verir ve sinyalin geri kalan kısmına değerlendirmeye almaz.

Sinyali niteleyecek değerler elde edilirken tüm tepe<->çukur geçişlerinin önemsenmesi yerine sadece dalga tepelerinin dikkate alınması sağlandı. Böylece nitelik değeri yarı yarıya kısalmış olur ve karşılaştırma işlemi önceki yönteme göre iki kat daha hızlı tamamlanır...

Bellek içerisinde çok sık veri transferi gerçekleştirildiği için hız da büyük önem kazanıyor. Transfer işlemleri için kullanılan klasik döngüler yerine oldukça hızlı çalışan kernel32 kütüphanesine ait RtlMoveMemory fonksiyonu kullanılarak hızda farkedilir bir artış sağlandı.

Son olarak daha önce programın elde ettiği nitelik değerlerinin, kumandanın kullandığı protokolde ne anlama geldiğinin bulunabileceğini söylemiştim. Artık sadece dalga tepelerini hesaba kattığımızdan karşılık gelen değerin bulunması daha da kolaylaştı. Bundan emin olmak için televizyon kumandasının hangi protokole uyduğunu araştırıp, algoritmamızla elde ettiğim nitelik değeri ile gönderilen gerçek değeri karşılaştırdım. Kumanda NEC protokolünü kullanıyormuş. İşte sonuç:
Konka KK-Y267 Menü Tuşu: 00000010 00010101
0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 (kodlanıp gönderilen gerçek değer)
|2420|67|22|22|22|21|22|22|33|22|22|22|22|33|22|33 |22|33|48 (programın elde ettiği değer)
Baştaki ilk değerin önemli olmadığını ve sinyalin başlangıcının çerçeve başlangıcına uzaklığını temsil ettiğini yazmıştım. 67 başlangıç işareti ve 48 de sonlanma işareti olarak düşünülebilir. 22 0 değerini, 33 1 değerini temsil etmektedir. Yine daha önce çözümleme işleminde +-1 örneklik kayma töleransı tanımamız gerektiğini yazmıştım. Bu yüzden 21 de 23 te 0 değerini temsil eder. Farklı protokoller için 0 ve 1 değerlerini temsil edecek sayılar da farklı olur. "... ne söylediğini anlayamasak bile..." demiştim, ama görüldüğü gibi artık kumandanın ne söylediğini de anlayabiliyoruz ...

Test Edildi: WinXP, Win7Son Sürüm: 1.1.0İndirme Linki: Tıklayınız
Güncelleme (17/07/2010)
- Önbellek boyutunun kullanıcı tarafından değiştirilebilmesine imkan sağlandı.
- Kumanda ile ilgili ayarların tümü bir pencerede toplandı. Ayarlar ile ilgili açıklamalar aşağıda:
- Ses seviyesi: Mikrofonun ses seviyesini ayarlar.
- Önbellek boyutu: Örnekleme için kullanılan önbellek boyutunu ayarlar. Bu ayar oldukça önemlidir. Çünkü sinyal tespiti önbellek üzerinde gerçekleştirilir ve dalga boyu büyük işaretlerde düşük önbellek boyutu sinyallerin tümünün tespit edilmesine engel olur.
- Fark eşiği: Kullanılan algoritmada elde edilen vektörlerin her bir elemanına tanınacak töleransı ayarlar. Genelde zaman kayması 1-3 örnek arasında olur ve istisna oluşturabilecek kumandalar dışında kumandaların çoğunda bu değer düşük seçilmelidir.
- Aralık eşiği: Gelen işaretlerin bittiğinin anlaşılması için geçecek minimum sinyalsiz süreyi örnek cinsinden ayarlar.
- Sinyal genlik eşiği: Sinyal tespit edilirken sinyalin varlığına işaret edecek minimum genlik değerini ayarlar.



Daha önce seri port girişinden veya PICler yardımıyla usb girişinden veri ileten kumanda sensör devrelerine rastlamış olabilirsiniz. Bu sefer yeni bir yöntem ile kurulmuş oldukça basit ve ucuz maliyetli bir devre yardımıyla bilgisayarınızı kontrol edebilirsiniz. Üstelik programlama bilmenize(PIC için) gerek yok. Sadece biraz lehim kokusu ...

Aslında paketlediğim programların çalışma prensipleri ile ilgili bilgi vermiyordum ama programı süsleyip paketlemeyi de düşünmemiştim. Programın çalışma prensibi ile ilgili teknik bilgilere, sinyallerin örneklenebilmesi için gerekli devre ve bağlantılara şu sayfadan ulaşabilirsiniz.

Program ses kartı aracılığıyla örneklediği kızılötesi sinyalleri yorumlayarak bilgisayarın herhangi bir uzaktan kumanda ile yönetilebilmesini sağlar. Tüm protokoller ile uyumludur ve gerekli ayarların doğru yapılması halinde tüm kumandalar ile çalıştırılabilir.

Program kurulduktan sonra "Yeni" menüsüne yanda görüldüğü gibi kumanda dosyası seçeneği yerleştirilir. Bu seçenek bilgisayarınızı yeniden başlatana kadar görünmeyebilir...

Farklı programlar farklı tuş kombinasyonları kullandıkları için aynı tuşların farklı işlevlerde olmasını isteyebilirsiniz. Örneğin Windows Media Player'da Çal/Duraklat işlevi ctrl+p ile yerine getirilirken Winamp'ta c ile yerine getirilir. Farklı programları yönetmek amacıyla istediğiniz kadar kumanda dosyası oluşturabilir ve içlerine istediğiniz kadar tuş kaydedebilirsiniz. Program kaldırıldığında bu seçenek de kaldırılır.

Ses Aygıtı, Kanal Ve Seviye Seçimi
Program başlarken bilgisayarda bulunan ses aygıtlarını listeler. Ses aygıtı seçildikten sonra devrenin bağlandığını mikrofon kanalı seçilmelidir. Seviye, örneklenen sinyalin genlik yüzdesini ayarlar. Varsayılan olarak değer %50'dir. Program çok düşük olmadıkları sürece farklı genlik değerlerine adapte olabilen bir yöntem kullandığı için bu ayarın genelde fazla bir önemi yoktur. Kullanılmasının gerekli olabileceği durumlar için konmuştur (örneğin çok düşük genliklerde örneklenen sinyalin genliği arttırmak için).

Tuşları Programa Tanıtma
Program tanımadığı bir tuş ile karşılaştığında, "Son Algı" kısmına "Tuş kayıtlı değil" bilgisini yazarak durumu kullanıcıya bildirir. Bu bilgi göründükten sonra "Tuşu Kaydet" butonuna basılarak "Tanıtılmış Tuşlar" formu açılır. Gerekli bilgiler doldurulduktan sonra "Kaydet" butonuna basılır. Böylece tuş programa tanıtılmış olur ve bu tuşa her basıldığında belirtilen komut çalıştırılır.

Komut Girişi
Komut programa iki farklı şekilde girilebilir:
1) tuş|||kısayoltuşu1+kısayoltuşu2+...
Bu şekilde girilen komut, ait olduğu tuş basıldığında girilen kısayol tuşlarına sırayla basılmasını sağlar ve son basılan başta olmak üzere tümü sırayla bırakılır.
2) çalıştır|||çalıştırılabilirdosya parametreler
Bu komut, belirtilen çalıştırılabilir dosyanın belirtilen parametreler ile çalıştırılmasını sağlar. Bu sayede komut istemcisinin de tüm komutları kullanılabilir hale gelir. Örneğin bir tuşa "çalıştır|||cmd /c shutdown /p" komutu atanarak o tuşun bilgisayarı kapatması sağlanabilir.

Kısayol Tuşları
Kısayol tuşları aşağıda yazıldıkları gibi girilmelidir.
0-9, a-z (Türkçe karakterler hariç)
f1 -f12
numlock , capslock
sol, sağ, yukarı, aşağı (yön tuşları)
shift , ctrl, alt, delete, home, esc, boşluk(space tuşu), enter

"Sonucu Göster" Seçeneği
Program basılan tuşu tanıdığında 1 saniye boyunca ekran görüntüsünde görüldüğü gibi ekranın sol üst köşesinde tuşa verilen adı görüntüler. Bu seçeneği seçmeyerek atanmış komutların sessizce çalışmasını sağlayabilirsiniz.

Sinyal Tekrar Aralığı
Sinyalin tekrar eden kısımlarının atılması için kullanılan bir değerdir. Bu ayar varsayılan olarak tüm yeni kumanda dosyalarında 150'dir. Özel durumlar dışında değiştirilmesi önerilmez.

Genlik Eşiği
Sinyalin algılanması için gereken minimum genlik değeridir. Varsayılan olarak yeni kumanda dosyalarının tümünde bu değer 40'tır. Yine özel durumlar dışında değiştirilmesi önerilmez.

Niteleyici Uzunluğu

Sadece bilgi amaçlı olarak yerleştirilmiştir. Sinyalin kaç bitten oluştuğunu gösterir(başlama ve sonlanma işaretleri dahil). Bu bilgi program tarafından hesaplanır ve kullanıcı tarafından değiştirilemez.

Kumanda Yükle / Kaydet
"Kumanda Yükle" butonu bir kumanda dosyasının önbelleğe alınmasını sağlar. Herhangi bir kumanda dosyasına çift tıklanarak aynı işlev yerine getirilebilir. "Kaydet" butonu kumanda isminde, sinyal tekrar aralığı ile genlik eşiği değerlerinde yapılan değişikliklerin ve önbellekte tutulan tuş bilgilerinin yüklü olan kumanda dosyasına kaydedilmesini sağlar.

Programı Simge Durumuna Geçirme
Program çalışıyorken sağ alt köşede simge durumunda beklemeye geçirilebilir. Simge üzerine sağ veya sol tıklanarak ana pencereye dönülür.

Sürekli aynı hatayla karşılaşıyorum. "önce bir kumanda dosyası yüklenmiş olması gereklidir" programda ise kumanda dosyası ile karşılaşmadım malesef. Onu ben oluşturacaksam nasıl oluşturacağım. Bir türlü çözemedim. Yapan arkadaşların ve program sahibinin yardımına ihtiyacım var...
Yukarıdaki ekran görüntülerinde var; masaüstüne sağ tıklayıp yeni menüsünden "Atasoy Kumanda Dosyası" seçeneğini seçerek yeni bir kumanda dosyası oluşturabilirsiniz...
hepsini yaptımda tuş kaydetmeyi bir türlü yapamadım tuş kaydedebilmek için programın başlatılması ve kaydedilecek tuşun algılanması gerekir diyor
Önce 'Başla' tuşu ile örnekleme işlemini başlatmanız gerekiyor. Program, ilk yüklendiğinde hiçbir tuşu tanımaz. Tuşları programa kendiniz tanıtmalısınız. Bunun için, kumandanın tanıtmak istediğiniz tuşuna basıp 'Son Algı' kısmında 'Tuş kayıtlı değil' bilgisini aldıktan sonra 'Tuşu Kaydet'e basmak. Eğer 'Başla'ya bastıktan sonra kumandanın herhangi bir tuşuna bastığınızda 'Sinyal Bekleniyor' bilgisini görmeye devam ederseniz, program sinyali alamıyor demektir. Yani ya ses aygıtınızın mikrofonunu kısmışsınız ya da sensör devrenizde bir problem var.

Not:
Program kullanılırken veya devre kurulurken meydana gelebilecek bütün sorunlar kullanıcının sorumluluğundadır...

ayrıntılı bilgi bul inktedir
Eklenmiş Dosya
Dosya tipi: zip UzaktanKumandaSetup.zip (1,13 MB (Megabyte), 20x kez indirilmiştir)
__________________

Güzel Sanatlar Fakültesi/Lisesi Yetenek Sınavlarına Hazırlık Kursu
Resim Yağlı Boya Hobi Kursu
Hızlı ve Etkili Okuma Kursu
Çocuklar için Hızlı Okuma Kursu
Çocuklar için Resim Kursu
Diksiyon Kursu
Nefes Tejnikleri Kursu

NuveRadyo Linki
Flatcast Tema Yapımı
Photoshop Dersleri Linki
Corel Draw Dersleri Linki
Corel PHOTO-PAINT Dersleri
Alıntı ile Cevapla
Cevapla

Tags
acma, bilgisayardan, kapama, kumanda, program

Seçenekler
Stil

Yetkileriniz
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık



Bütün zaman ayarları WEZ +2 olarak düzenlenmiştir. Şu anki saat: 03:11 .