Merhaba Eşref,
Aslında doğru hayal etmişsin. Proje evrim geçirirken ikinci aşamada bu hale de gelmişti. Adetli üretmesem bile bu halini de en azından kendim için yapmak istiyorum. Zaten laser sensor siparişi vermiştim. Hatta bugün elime ulaştı. Bir adet Tank mouse'u laser mod yapacağım.
Gel gelelim yazdığım üzere tank mouse kablosu 8 uçlu olduğundan C64 te kullanımı mümkün olmayacak, sadece Amiga için kullanılabilir retro görünümlü bir lazer mouse olacak.
Lazer sensor de zaten nispeten daha pahalı olduğundan çok fazla kişinin yapmak isteyeceğini düşünmüyorum ama gene de bir miktar fazla PCB sipariş ederim.
Annemin evinde eski ps2 port a4 mouse vardı abi ps2 çeviri ile harika çalıştı belki aşağıdaki gibi ucuz ps2 port bir mousdan yararlanabiliriz.
Evet bu mouse'ları biliyorum bende de var bir kaç tane. Zaten PS/2 çözümü yapılacak olsa bu doğru ürün olurdu ama örneğin logitech'in kablosuzları çok hoşuma gidiyor ve kullanıyorum, yapmışken USB de çalışsın ki yaptığımıza deysin, dolayısı ile her ne kadar kolay olsa bile PS/2 only bir çözüm düşünmüyorum.
Yazını komple okudum ama abi, sanırım yanlış anlamadıysam Amiga USB portla çalışan bir mouse connector hazırlamayı planlıyorsun. Amiga USB 1 destekliyor sanırım. Ama senin yaptığın projede USB 2 sıfırı destekleyecekse harika olur. Benim yapmayı istediğim en çok şeylerden biri Amigaya tablet kalem bağlamak. Bu hayalim gerçek olur. Emeğine sağlık. Heyecanla takipteyim abi.
Yok sanırım bir yanlış anlaşılma oldu. Öncelikle Amiga USB portla ilgili hiçbir bilgim yok. Böyle bir şey de hedeflemedim. Bildiğin USB HID mouseları alıp Amiganın DB9 saoketine bağlamaya yarayan bir zımbırtı planlıyorum.
Tablet için, her ne kadar benim yapacağım konvertor tarafından tanınsa da, Amiga tarafında uygun driver olmadan çalışacağını sanmıyorum. Yani kısaca benim yapacağım ürün senin tableti görür ama bu bilgiyi Amigaya nasıl gönderebilir, bir bilgim yok. Belki bu dediğin yapılabilir, araştırmak lazım. En azından Amiganın desteklediği herhangi bir tablet varsa ve bu tablet DB9 porttan bağlanıyorsa yüksek ihtimal yapılabilir.
Adaptör daha mantıklı bence. Herkeste tank mouse olmayabilir, olsa da sökmek istemeyebilir falan.
Doğru diyorsun... Ama gene de masasında retro görünmlü olduğu ahlde canavar gbi çalışan takılmayan bir mouse görmek isteyenler de olabilir. En azından ben hala bu modele sıcak bakıyorum. Dediğin gibi büyük çoğunluk tercih etmeyecektir.
Amiga ve C64'de DB9'un en azından VCC ve GND aynı herhalde? Yoksa ikisine de uyumlu yapmak biraz karışık olurdu herhalde. Sol üstteki küçük transistörler 3V->5V çevrimi için herhalde değil mi?
Joystick/mouse portundaki bütün pin'lere output yapılacaksa level conversion gerçekten gerekli mi?
Öncelikle 5V ve GND aynı. Zaten standart bir joysticki iki bilgisayarda da kullanabiliyorsun. Dolayısı ile zaten yukarı, aşağı, sağ, sol ve ateş pinleri de aynı.
Amiga tarafında mouse hareket bilgisi yukarı, aşağı, sağ ve sol pinleri kullanılarak iletiliyor. Sol buton ateş pini. Sağ buton ise 9 numaralı pin, yani C64'te PotX'e karşılık geliyor.
C64 tarafında mouse'un iki modu var. Bir tam propotional, bir de joystick'i emule eden ve mouse desteği olmayan programlarda da çalışan bir çakma protkol. Kısaca mouse sağa hareket ettirildiğinde, joysticki sağa çekmişsin gibi davranıyor.
Propotional olan mod daha karışık, bununla ilgili olarak elde ettiğim bilgileri detaylı olarak yazacağım ama kısaca PotX ve PotY hatlarını kullanarak hareket bilgisi iletiliyor. Ancak burada yapılan işlem tahmin edileceği üzere analog bir voltaj seviyesi göndermek değil, aksine çok hassas bir zamanlama ile PotX ve PotY hattını 5V'a çekmek üzerine kurulu. Bu zamanlamanın senkron darbesi ise C64 tarafından üretiliyor. SID PotX veya PotY üzerinden ölçüm yapmadan önce ilgili pini GND seviyesine çekiyor. Bu anın mikroişlemci tarafından bir interrupt ile yakalanması gerekiyor. Dolyısı ile PotX ve PotY iki yönlü çalışabilmeli.
Her iki bilgisayarın içinde de sağ, sol, yukarı, aşağı ve ateş pinleri için 5V'a çeken pull-up dirençleri var. Dolayısı ile joystick yada mouse ilgili bacağı GND'ye çekmek sureti ile sinyal gönderiyor. Bu da aslında normalde pinlerde 5V olması anlamına geliyor.
Ben transistorları esasen level conversion maksadı ile eklemedim, işlemcinin dayanabileceğinden daha yüksek bir seviyede olan (5V vs 3.3V) pini GND ye çekmek için kullandım. Diyeceksin ki neden o zaman 4 tane var, sonuçta ateş vb için de kullanmalıydım.
Kullandığım işlemcide az sayıda 5V tolerant pin mevcut. Bunlardan iki tanesi USB D+ ve D- için harcanıyor. İki tanesini PotX ve PotY için harcadım. Bu hatlar çift yönlü çalışacağı için arada transistor vb olsun istemedim. Geri kalanları da buttnlar için harcadıktan sonra 4 adet yön httı için 5V tolerant pin kalmadı mecburen open collector transistor ile kullanmayı düşündüm.
Pin sayısı daha çok olan bir işlemci seçsem aslında bunlara da gerek kalmayacaktı çünkü 5V tolerant pinim daha çok olacaktı ama sırf bu sebepten ötürü daha büyük bir devre ve daha maliyetli bir işlemci kullanmak istemedim.
Hazır bu işe girmişken o usb port'a bir bluetooth dongle taksak da Ps3 controller ve wiimote'ları C64/Amiga'da kullansak?

Şu an için işlemcide USB Host olarak HID kodunu çalışır hale getirebilidim. HID protkolü ile klavye, mouse, joystick vb donanımlardan gelen verileri okuyabiliyorum. Ancak işlemcinin %63 kadarı bununla doldu.
Şimdi sözünü ettiğin BT dongle desteği verilebilir ancak HID nin aksine muhtemelen her donanım için farklı bir driver yazmak gerekecek. Halbuki HID standart bir protkol. Bir kere yazınca bir çok farklı mouse vb ile çalışabilecek. BT donglelar için durum nasıldır bilemiyorum. Eğer belirli bir standart varsa yapılabilir.
Bir de proje üzerinde çalışırken daha önce yazmadığım USB joystick ve joypad desteği de verilebileceğini farkettim. Hatta dün bir USB joypad alıp testlere başladım. Henüz implement edemedim ama muhtemelen bu donanım ile standart USB joystick ve gamepadleri de C64 ve Amiga ya bağlamak mümkün olabilecek.
Elinize sağlık. Bende cihaz içi, usb klavye, mouse, joystick bağlamayı sağlayacak bir parça düşünmüşümdür hep, şöyle dışarı 3-4 usb bağlantısı veren, floppy disk yuvası kapağına takılanlar gibi vb.
Dediğiniz şey mümkün ama bu proje dediğiniz proje değil.

O tarz bir kart yapıldığında, bağlanacak olan her donanım için driver desteğinin işletim sistemi tarafından sağlanması gerkecektir. Burada yapmak istediğim USB protokolünü işlemci üzerinde handle ederek, Amiga tarafına normal mouse bağlıymış gibi veri göndermek. Yani Amiga herhangi bir USB cihaza bağlı olduğunu bilmeyecek...
Hemen hemen her hid destekli usb mouse, Klavye ve joystick ile çalışıyor. Ben Logitech mk240 ile kullanıyorum. Aynı anda hem klavyesi joystick olarak kullanılabiliyor, hemde mouse normal işlevini yerine getiriyor.
Detaylı fotolar için teşekkür ederim. Fikir vermiş oldu. ARM cortex işlemci kullanılmış. Kapasite olarak benim seçtiğim işlemciden daha yüksek. Zaten saydığınız özellikler de bunu gösteriyor.
Klavye desteği verilmesi güzel bir özellik olabilir. Bunu ben de düşüneceğim. Ama yanlış anlaşılmasın, yazı yazmak için değil sadece yön tuşları ile joystick emulasyonu yapmak için bu destek sağlanabilir.
Bir de aklımı kurcalayan şöyle bir soru var. Örneğin joypad desteği verdik. Güncel en dandik usb pad üzerinde bile en az iki analog joystick, bir ton button mevcut. Bir şekilde kullanıcıya button remapping ve aktif olarak hangi joystick ile yön kumandası yapacağını seçtirtmek gerekiyor diye düşünüyorum. Bunu bu tarz bir konvertor ile nasıl programlanabilir yaparız acaba?
Bir kaç farklı preset mapping hazırlayarak, konvertor üzerine koyduğum button ile bunlar arasında geçiş yaptırtmak var aklımda. Acaba iş görür mü?
Esas aklımdaki şık çözüm, remapping vb ayarları bir usb stick üzerine kaydedip, bu sticki adaptore takarak, işlemci tarafından okunmasını sağlamak. Hatta bu yöntemle firmware upgrade de yapılabilir.
Ancak bu durumda bir de MSD (Mass Storage Device) ve FAT16, FAT32 file sistemlerini de işlemci üzerinde handle edilmesi gerekiyor ki bunu denedim ve bu işlemciye sığdıramadım. Daha büyük bir işlemci seçmek gerekiyor, TR'de bulunmuyor vb, vb ...
Sanırım bu versiyon için bu fikri uygulayamayacağım.
çok güzel bir proje/fikir kanımca...Arabirim olması, bir mouse içine yerleşmesinden daha pratik olacak sanırım... Projeyle ilgili denemeler, fikirleri ilgiyle okudum doğrusu... Eline sağlık delimawi...
Teşekkürler, bugün postadan lazer sensör gelince, dayanamadım, vazgemiş olduğum halde Tank mouse modunu da yapmaya karar verdim. Yani her ikisini de yapacağım. Hem convertor hem de mouse mod...
