PIC ile 32 butonlu joystick devresi

sequence

Üye
Katılım
24 Eki 2014
Mesajlar
12
Puanları
1
Yaş
42
Merhaba arkadaşlar. İnternet üzerinde ne kadar araştırsamda netice alamadığım bir konu var. Bilgisayarda simulatorde kullanmak üzere 32 butonlu bir joystick devresine ihtiyacım var. PIC programlama hakkında bilgim olmadığı için size danışmak istedim. Böyle bir devre oluşturmak için gerek şema gerekse hangi devre elemanlarının gerektiği ve pic programlanması hakkında yardımcı olabilir misiniz? Hatta ücreti karşılığında böyle bir devre yaptırmaya bile hazırım. Şimdiden teşekkürler.
 
pic le bu işi yapmak kolay da bilgisayar kısmı biraz problemli
pic bilgisayardaki hangi programla haberleşecek, hangi haberleşme protokolü kullanacak, pic bilgisayar bağlantısı kablolumu kablosuz mu olucak, kablosuzsa kumanda mesafesi maksimum ne olucak ve benzer sorularun netleşmesi gerekiyor. bunun kolay yolu billgisayara harici klavye ekleyip ihtiyac duyulursa klavye üzerinde revizyon yapmak olurdu herhelde.
 
Merhaba,
İstediğiniz proje oldukça kapsamlıdır.32,girişi tek bir MCU ile kontrol etmek bana pek mümkün görülmüyor.
18 girişi ile PC'de kontrol yapabiliyorum ama 32 giriş için 2 MCU kullanmak ve de bu PIC'leri dönüşümlü kullanmak gerekir diye düşünüyorum.Ayrıca da arkadaşın da yazdığı gibi PC tarafındaki yazılım çok önemlidir.Kapsamlı bir proje.Kolay gelsin.
 
Proje usb ile bilgisayara bağlanacak. yani kablolu olacak. Bilgisayarla haberleşmesi bir game pad gibi olacak. Yani usb yi taktığınızda aygıt yöneticisinde gamepad olarak görünecek. Bu projenin şeması ve detayları flight simulator ev kokpiti ile alakalı bir sitede mevcuttu aslında ancak site kapandığı için ulaşamıyorum. Normal bir gamepad i kullanarak 12 buton elde edebiliyorum ancak bu yeterli olmuyor. 2 gamepadi tek usb kablosu ile kullanıp 24 buton elde etme imkanı olsada olabilir.

İnternette yaptığım araştırmada aşağıdaki şemaya ulaşabildim bir de link vermişler ancak pek birşey anlayamadım

simulator-joystick.png


ucus-simulator-joystick-pic18f2550.png



ilgili dosya linki
 
USB mouse, joystick vs lerin neredeyse tamamı 1ms lik interrupt transfer kullanıyor. Dolayısı ile butonların tepki süreleri zaten mikro saniyeler olmayacak.
32 buton yeterince çok pini olan bir mcu kullanılarak da okunabilir. Paralel giriş, seri çıkışlı shift register kullanılıp 3-4 pin üzerinden de okunabilir, keypad tarar gibi de.
Tabii mcu USB destekli olmak zorunda.

Asıl sorun PC ye bunu USB gamepad olarak tanıtabilmekte.
Tam hatırlayamadığım, emin olamadığım konu USB de 32 buton için 32 endpoint tanımlamak gerekir diye hatırlıyorum ama bir device da 16 endpoint gibi de sınır vardı sanki. Emin de değilim dediğim gibi.
Belki devreyi 2 ayrı device olarak gösterip üzerinde 16+16 olarak tanımlamak mümkün olabilir.
USB.org a bi bakmak lazım.

Olabiliyorsa iş düzgün bir device descriptor yazmaya bakar.
 
veri seçici entegreler kullanarak portları çoğullayabilirsiniz. böylelikle örneğin 8x1 mux ile picin 4 portunu kullanarak 32 girişi kontrol edebilirsiniz
 
Yukarıda ki mesajımın altında bir link verdim. Orada devreyi usb ile gamepad şeklinde tanıtma ile ilgili dosyalar mecvut. Ben pek anlamıyorum ama siz bir inceleyin isterseniz.
 
Şimdi bi baktım da butonlar zaten bit olarak tanımlanacak ve 32 buton için 4 byte lık veri gönderimi yeterli görünüyor. Yani tek endpoint kullanmak yeterli. Her buton için endpoint tanımına nerden takıldım ben de anlamadım.

http://eleccelerator.com/tutorial-about-usb-hid-report-descriptors/
Burada gampad için descriptor nasıl yazılır anlatmış.

Sizin gönderdiğiniz projeye söyle bir baktım. Çok da incelemedim ama PPM_USB_HID.h dosyasında gerekli değişiklikleri yaparsanız olur sanırım.
Sizin devre ne varsa joystick, buton vs. descriptorun collection kısmında tam olarak tanıtmanız gerekli. Bunun dışında da veriyi gönderirken uygun yapıda göndemeniz gerekir. Yoksa desc. doğru olsa bile çalışmada sıkıntı çıkacaktır.

Butonları okumak işleri dediğim gibi. Direkt veya tarama şeklinde bağlı çok pin, yada paralel-seri shift reg.
 
Cok net bilgim yok ama mevcut bi gamepad software yada driverinin kaynak kodlari üzerinde inceleme yapılarak Pic donanımi ni hazirlamak daha gizli sonuç verir
 
sequence kardeş
Eklediğin linkte ki .sch, .bdr dosyaları devrenin baskı devresi ve açık şeması
.C ve .H dosyaları pic için hazırlanmış yazılım bunları olduğu gibi yada istediğin değişikliği yapıp, compile edip pic e yükleyip o devreyi çalıştırabilirsin.
Üzügünüm işin bilgisayar kısmında hala koskocaman bi soru işareti var :(
 

Forum istatistikleri

Konular
129,902
Mesajlar
931,152
Kullanıcılar
452,787
Son üye
Azemm333
Geri
Üst