Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
commodore.gen.trGenel KategoriProjeRetro Bilgisayarlar ve Güncel Fareler üzerine fikir teatisi (C64, Amiga)
Sayfa: [1] 2 3 ... 6   Aşağı git
Yazdır
Gönderen Konu: Retro Bilgisayarlar ve Güncel Fareler üzerine fikir teatisi (C64, Amiga)  (Okunma Sayısı 48993 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« : Ağustos 07, 2017, 00:44:41 ÖÖ »

Bu sonbahar için üzerine eğilmeye karar verdiğim projeler arasında hatırlarsınız, Amiga için lazer mouse projesi de vardı. Hazır HDI-520 PCB'lerini beklerken bu konuya biraz kafa yordum.

Henüz daha hiçbir teknik araştırma yapmadan önce aklımdan geçen çözüm şu idi; tipini ergonomisini beğendiğin çok pahalı olmayan bir mouse satın al, içini aç, optik sensor kısmına dokunmadan mouse içerisine ekleyeceğin bir işlemci ile, sensorden aldığın veriyi, Amiga'nın istediği hale sok.

Geçtiğimiz haftasonu marka olarak kaliteli olduğunu düşündüğüm için logitech firmasının mağazada bulabildiğim en ucuz mouse'unu aldım ve eve geldim. Hemen içini açtım ve beklediğimden çok farklı bir manzara ile karşılaştım. Beklentim bir optik sensor + USB HID çipi yada bir mikroişlemci iken, konuyla hiç ilgilenmediğim on üç beş senede artık tüm bu birimlerin tek bir kılıfa düşürülmüş oldğunu gördüm. Aslında 20-30 tl mertebelerindeki ürünlerin yaygın olması da bunun bir işareti idi.

Aslen avago firması tarafından geliştirilmekte olan bu sensorlerin bir şekilde (sanıyorum lisanslı paralel üretim, kopya değil) pixart adlı bir taiwan firması tarafından oldukça ucuza üretilir hale gelmiş olduğunu öğrendim. Muhtemelen piaysada alacağınız giriş ve orta seviye tüm mouselarda bu sensorler ile karşılaşacaksınız.

Firmanın şu an aktif üretimdeki ürünleri aşağıdaki linkte.
http://www.pixart.com.tw/product_data_table.asp?productclassify_id=1&productclassify2_id=

Bunlar haricinde şu anda artık üretimde olmayan ama halen piyasada kullanılmakta olan PAN serisi sensorlerinin de var olduğunu gördüm.

Neyse konuyu dağıtmadan devam edecek olursak, benim ilk düşüncem yattı. Daha doğrusu proje için yaptığım ilk yatırım olan mouse bir işe yaramadı. Zira sensorden sadece USB çıkışları vardı ki bunu bir mikroişlemci ile okumak için işlemci üzerinde USB host stack koşturmak gerekiyor. Yani işlemci kendisini bir PC gibi tanıtarak mousedan veri almalı ki uğraşılacak iş değil. (Büyük konuşmamak lazım, projenin şu an gelmiş olduğumuz halinde bu işle uğraşıyorum..Kahkaha)

Firmanın PS/2 çıkışlı çipleri de mevcut. PS/2 üzerinden bir işlemci ile veri almak daha rahat olmasına karşın, piyasada PS/2 mouse yaygınlığı USB olanlara göre oldukça düşük olduğu için projeye önemli bir kısıtlama getirecekti. Bu sebeple sadece PS/2 mouseların Amiga için convert edilebilmesi fikrini sevemedim.

Tam bu noktada proje hafif hafif şekil değiştirmeye başlarken, projeden beklentilerimi listelemye karar verdim.

1. Sadece benim için değil, en azından bu sayfaları okuyan herkesin tekrarlayabileceği bir çözüm olmalı. (Örneğin donör olarak seçeceğim bir mouse olacakca bu kolay bulunabilir olmalıydı.)
2. Amiga için yapmışken, C64 için de 1351 emulasyonu sağlayabilmek güzel olurdu. (Sonradan bu konu olmazsa olmaza dönüştü.)

Özellikle hem Amiga hem de C64 desteği konusu biraz sıkıntılı. Detaylarına sonraki postlarda her iki sistemin mouse haberleşme protokülü ile ilgili teknik detayları yazarken gireceğim ama bu beklenti, kabaca DB9 üzerindeki 9 hattın 9 unun da kullanılması zaruri hale getiriyor. Bu konuda canımı sıkan detaya da birazdan geliyorum.

Madem bu şekilde ucuz bir mouse bulup içerisini modifiye edemiyorum, o zaman mouse'u komple kendim yapabilir miyim diye düşünmeye başladım. Elektronik olarak olası zira bu sensorları aliexpress vb üzerinden temin etmek kolay. Tabiki bu şekilde temin ederken de USB olan versiyonu değil, seri çıkışlı bir tipini seçip, sensorun peşine ekleyeceğimiz bir mikroişlemci ile Amiga yada yapabilirsek C64 1351 formatı ile haberleşecek bir kod yazılabilirdi.

Tek sorun mouse için bir kasa yapmak. Kahkaha

Tam da bu noktada aklıma gelen fikir, şu anda bolca bulunan Amiga Tank mouse kutularını kullanmak oldu. Hemen bozuk bir Amiga mouse kutusunu açtım, ölçtüm biçtim, olabilir gibi görünüyordu. Hatta geri dönüşebilir, orjinal ürüne zarar vermeyen bir mod olabiliyordu. Yani mouse kutusuna hiç bir zarar vermeden PCB ve top mekaniği sökülecek, yeni üretilen PCB takılacaktı.

Bu işe uygun olduğunu düşündüğüm bir kaç farklı optik sensor için aliexpress den sipariş açtım.

Bu esnada PCB yi de çizip baskıya göndereyim, ikinci bir bekleme olmasın diye kolları sıvadıktan bir süre sonra, Amiga mouse kablo konnektöründe 8 hat olduğunu gördüm ve şok oldum. İhtiyaç olmadığı için bir hat hiç çekilmemişti. Bu durumda bu proje C64 için bir çözüm sunmayacaktı. DB9 kablosunun yeniden yapılmsı da pek tercih edeceğim bir çözüm değil zira hazır bulunacak kablolar ile mouse un kullanımı hiç pratik olmayacaktı. Kablolar çok kalın ve kaba...

Daha önce başka projelerde de yaşadığım ümitsizlik ve hatta projeden vazgeçme noktasına gelmişken, son çare olarak başta aslında istemediğim bir çözüm olan USB>DB9 çevirici adaptörü yaparak projeye devam etme kararı verdim.

(EK: Ve bu noktada proje için yapılmış, henüz elime bile ulaşmamış olan optik sensor yatırımları da boşa gitmiş oluyor...Kahkaha)

Yapılacak olan küçük bir kart. Amiga veya C64 joystick portuna takılacak, öteki tarafında bir dişi USB soketi olacak. Takılan mouse her ne ise Amiga veya C64 ile kullanılmasına olanak verecek. Mümkünse çok küçük olacak...

Evet proje bir kere daha şekil değiştirdi.

Şimdi ki derdimiz, olabildiğince ucuz bir şekilde USB Host özellğini bir mikroişlemci ile sunabilmek. Daha önce hiç mikroişlemci ile USB host yapmadığım için benim için de iyi bir tecrübe olacak. İlk iş sevdiğim ve tecrübeli olduğum PIC ailesine bakmak oldu. Malesef 16, 18 gibi 8 bit serilerinde donanımsal olarak USB Host desteği yok. 16Bitlik 24FJ serisindeki bazı modellerde bu özellik var ve serinin en düşük bireylerinden biri olan 24FJ64GB002 çipinde bu özellik mevcut. Hemen bakıyorum, artık bir tesadüf müdür bir işaret midir bilinmez, direnc.net te bu işlemci mevcut ve fiyatı oldukça uygun...

Hemen işlemci siparişini verip projeyi bir USB>DB9 adaptörü olarak sürdürmeye karar veriyorum. Şu an için proje kod adı USB2CBM ...

Test PCB sini çiziyorum ve elde basılabilir olduğu için sipariş etmeden önce mavi kağıt, ütü, preoksit+asit, montaj aşamalarını hızlıca geçip testlere başlıyorum...









Bu gecelik bu kadar. Yazının devamında 16Bit PIC ile ilk deneyimler, USB Host olayı, USB HID kavramları, Amiga ve C64 mouse protokolleri ile devam edeceğiz.
Proje ile ilgili olarak düşünce ve yorumlarınızı paylaşmanızı özellikle rica ederim.

NOT:
Bu projede neredeyse her adımda ve hatta proje her şekil değiştirdiğinde, "E bu zaten yapılmıştı" diye düşüneceksiniz. Ben de farkındayım ama hala projeye devam etmek için geçerli olduğunu düşündüğüm sebeplerim var. Şu ana kadar yapılmışı olduğunu bildiğim ticari ve açık kaynak kodlu projelerden önemsediklerim aşağıda:

PS/2 to C64 Mouse Adapter
http://sensi.org/~svo/[m]ouse/

Micromys V4 (30-35eur)
PS/2 Mouse Interface for Amiga, Atari ST and Commodore 64/128
http://www.vesalia.de/e_micromysv4.htm
 
Serial mouse interface for Commodore
http://www.zimmers.net/anonftp/pub/cbm/documents/projects/interfaces/mouse/Mouse.html

Rys MKII adapter was created for simply connecting the USB HID device to your Amiga / C64 / Atari ST computer. ($35)
http://retroami.com.pl/index.php?id_product=158&controller=product&id_lang=1

Connect most Mouse / Gamepad / Joystick or Keyboard to your retro computer ($30)
http://www.amiga.org/forums/showthread.php?t=70463

Laser upgrade for Amiga mice (45eur)
http://amigastore.eu/en/559-laser-upgrade-for-amiga-mice.html
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
Gökçe Bozkurt
Deneyimli
*****
Mesaj Sayısı: 2.968


Nigripinis


Üyelik Bilgileri WWW
« Yanıtla #1 : Ağustos 07, 2017, 01:06:24 ÖÖ »

Bunun şeffaf kılıflı halini kullanıyorum

http://www.ebay.co.uk/itm/Commodore-Amiga-Mouse-USB-PC-Adapter-Compact-Design-White-Version-All-Amigas-/132179624032?hash=item1ec6850060:g:xIUAAOSwbqpT9G1F
Logged

A4000|FastlaneZ3|RetinaZ3|Tandem Ide|CF
A2000|G-Force 040/33|Cybervision64-3D|
A2000|Mobo|GVP HX-2000-II|Supra 8Mb
A2000|Mobo|8Up!6Mb
A1200|PPC 040/25/200|Mediator Sx|Vodoo4500|256Mb
A1200|Hawk 8Mb|CF
A1200|Mobo|Elbox 4Mb
A600|ACA030|Indivision ECS|A604|CF
A600|Mobo|A
AmigaEsref
Genel Yönetici
*****
Mesaj Sayısı: 5.628


love is where you find it.


Üyelik Bilgileri WWW
« Yanıtla #2 : Ağustos 07, 2017, 01:20:12 ÖÖ »

Abi ellerine sağlık ben konu başlığını gördüğümde ilk hayal ettiğim bu linkteki oldu.
http://amigastore.eu/en/559-laser-upgrade-for-amiga-mice.html

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.
http://urun.n11.com/mouse/a4-tech-op720d-optik-ps2-siyah-mouse-P194508561?cid=604001&gclid=EAIaIQobChMIpcagj9HD1QIV9ArTCh0FlwH-EAkYASABEgJ04vD_BwE&gclsrc=aw.ds

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.
« Son Düzenleme: Ağustos 07, 2017, 01:23:23 ÖÖ Gönderen: AmigaEsref » Logged

AMIGA 500 | GOTEK | 1 MB RAM | 1.3 ROM | Pi Zero HDMI
AMIGA 1200 | 8GB CF | 3.2 ROM | TF1230 Turbo Kart | HDMI-520
COMMODORE 64 | IRQHack64 | KissCart64 | 64K CUPCAKE-CART | Pi 1541 | 1084 S
'Cause I'm CRT., I'm retro | CRT, and I'll win the fight | CRT, I'm a power load | CRT, watch me shine
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #3 : Ağustos 07, 2017, 03:01:55 ÖÖ »

Adaptör daha mantıklı bence. Herkeste tank mouse olmayabilir, olsa da sökmek istemeyebilir falan.

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?

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?
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
Levent (Lvnt)
Uzman
*****
Mesaj Sayısı: 2.396



Üyelik Bilgileri
« Yanıtla #4 : Ağustos 07, 2017, 11:20:50 ÖÖ »

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.
Logged

Use the brute force, Luke
Gökçe Bozkurt
Deneyimli
*****
Mesaj Sayısı: 2.968


Nigripinis


Üyelik Bilgileri WWW
« Yanıtla #5 : Ağustos 07, 2017, 11:30:19 ÖÖ »

dışarı bağlantı demek usb kart demek,
mouse apayrı bir olay Levent

şöyle dışarı 3-4 usb bağlantısı veren,
Logged

A4000|FastlaneZ3|RetinaZ3|Tandem Ide|CF
A2000|G-Force 040/33|Cybervision64-3D|
A2000|Mobo|GVP HX-2000-II|Supra 8Mb
A2000|Mobo|8Up!6Mb
A1200|PPC 040/25/200|Mediator Sx|Vodoo4500|256Mb
A1200|Hawk 8Mb|CF
A1200|Mobo|Elbox 4Mb
A600|ACA030|Indivision ECS|A604|CF
A600|Mobo|A
hasimayaz
Ziyaretçi
« Yanıtla #6 : Ağustos 07, 2017, 16:38:17 ÖS »

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.







Logged
LW3D
Yönetici
*****
Mesaj Sayısı: 11.418


Günü Kurtaran Avam Hiooargggh :)


Üyelik Bilgileri WWW
« Yanıtla #7 : Ağustos 07, 2017, 21:12:32 ÖS »

ç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...
Logged

eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #8 : Ağustos 07, 2017, 23:34:42 ÖS »

Merhaba Eşref,

Abi ellerine sağlık ben konu başlığını gördüğümde ilk hayal ettiğim bu linkteki oldu.
http://amigastore.eu/en/559-laser-upgrade-for-amiga-mice.html


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...

Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
Gökçe Bozkurt
Deneyimli
*****
Mesaj Sayısı: 2.968


Nigripinis


Üyelik Bilgileri WWW
« Yanıtla #9 : Ağustos 08, 2017, 00:42:48 ÖÖ »

Tank mouse içine yerleşecek pcb için bende isterim
hemde en az 3 tane isterim.
Son anda yurtdışından almaktan vazgeçmiştim.
Bu haber harika oldu..
Logged

A4000|FastlaneZ3|RetinaZ3|Tandem Ide|CF
A2000|G-Force 040/33|Cybervision64-3D|
A2000|Mobo|GVP HX-2000-II|Supra 8Mb
A2000|Mobo|8Up!6Mb
A1200|PPC 040/25/200|Mediator Sx|Vodoo4500|256Mb
A1200|Hawk 8Mb|CF
A1200|Mobo|Elbox 4Mb
A600|ACA030|Indivision ECS|A604|CF
A600|Mobo|A
Decypher
Deneyimli
*****
Mesaj Sayısı: 687



Üyelik Bilgileri
« Yanıtla #10 : Ağustos 08, 2017, 00:45:18 ÖÖ »

Tank fare modu için fareyi herhangi bir şekilde kesip biçmemiz gerekecek mi, yoksa sadece iç aksamı çıkarmak yetecek mi?

Converter harika olacak, şimdiden sabırsızlanıyorum ama duruma göre mouse mod da cazip gelebilir
Logged
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #11 : Ağustos 08, 2017, 01:00:10 ÖÖ »

Tank modu için kesip biçme gerekmeyecek şekilde planlıyorum. Sadece PCB çıkartılıp yerine yeni PCB takılacak. Normalde alt kısımda topun olduğu deliğin kapatılması için bir küçük 3D printed parça çizmeyi planlıyorum ama bunu da kesmeden biçmeden yapıştırmadan monte edilecek şekilde çizeceğim.

Gel gelelim tekrar söylüyorum bu lazer sensrler ucuz değil. Sadece sensor $10 civarı.

https://tr.aliexpress.com/item/ADNS-9800-ADNS-6190-002-A9800-sensor-with-new-Optical-lens-NEW-ORIGINAL-ADNS9800-FREE-SHIPPING/32817297261.html?spm=a2g0s.9042311.0.0.Wy0eEZ

Buna PCB, mikroişlemci vb de eklenince maliyet daha da artacak ancak amigastore.eu daki gibi 44 eur da olmayacaktır diye düşünüyorum.
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #12 : Ağustos 08, 2017, 01:41:59 ÖÖ »

@delimawi : Tamamen sesli düşünüyorum, config için C64/Amigaya program yazabilirsin. 9 no'lu pin Amiga ve C64'de bidirectional anladığım kadarıyla. Bu pin üstünden host bilgisayar ve donanım arasında dumanla haberleşme tarzı basit bir komünikasyon protokolü kurabilirsin.

Buton olayı akılda kalıcı değil ve kişiyi fonksiyonaliteyi kullanmaya teşvik edici olmuyor.
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #13 : Ağustos 08, 2017, 12:02:10 ÖS »

@delimawi : Tamamen sesli düşünüyorum, config için C64/Amigaya program yazabilirsin. 9 no'lu pin Amiga ve C64'de bidirectional anladığım kadarıyla. Bu pin üstünden host bilgisayar ve donanım arasında dumanla haberleşme tarzı basit bir komünikasyon protokolü kurabilirsin.

Buton olayı akılda kalıcı değil ve kişiyi fonksiyonaliteyi kullanmaya teşvik edici olmuyor.

Aslında güzel fikir ama bu PotX ve PotY pinlerindeki ölçüm işlemini SID kendi başına mı yapıyor yoksa C64 tarafında çalışan yazılım mı ölçümü tetikliyor çok emin değilim. Eğer SID CPU dan bağımsız zaten periyodik olarak bu işlemi gerçekleştiriyorsa dediğin işi yapamayız.

Bir de Amiga tarafında hiç bilgi bulamadım. Bu PotX ve PotY, C64 deki ile aynı yöntemle mi ölçümleniyor bilmiyorum.

Kısa bir bilgi olarak bu PotX ve PotY nin nasıl çalıştığını not düşmek gerekebilir.

Ölçüm yapılacağı zaman SID ilgili pini şase seviyesine çekiyor ve 256 cycle boyunca bekliyor. Bu pin üzerinde pikofarad mertebesinde çok küçük bir kondansatör var. Bu şaseye çekip bekleme süresince kondansatör tamamen boşalmış oluyor. Normalde buraya bir paddle bağlı ise, bu pin ile +5V arasında bir potansiyometre bulunuyor.

SID, pini boşa bıraktıktan sonra 256 cycle boyunca belirli bir eşik seviyesinin üzerine çıkmasını bekliyor. Bu durumda aslında joystick portundaki sözüne ettiğim potansiyonetre üzerinden kondansatör şarj oluyor. Direnç değeri küçük ise bu çabuk gerçekleşiyor, yok eğer direnç büyük ise, daha geç şarj oluyor.

Tam eşik seviyesini geçtiği andaki counter değeri SID'in ilgili registerine alınıyor. Yazılım da bunu okuyarak potansiyometrenin pozisyonunu okumuş oluyor. Yani aslında PotX ve PotY bir ADC gibi çalışmıyor daha çok bir ohm metre gibi çalışıyor. Bu pinlere analog bir değer uygulayarak değerini register üzerinden okumak mümkün değil.

1351'i geliştirirken yaptıkları ise şu: 1351 PotX sinyalinin şaseye çekilmesini bekliyor. Daha sonra 256 cycle boşa sayıyor. Zira bu esnada SID de ölçüm yapmıyor deşarj olmasını bekliyor. Sonraki 256 cycle'in uygun bir anında 1351 Pot pinini 5V a çekiyor ve SID değeri registere alıyor.

Ancak C64 ve 1351'in clockları asenkron olduğu için bir kaç cycle jitter oluşabiliyor. Bu da mouse pointerinde titremeye sebep olabiliyor. Bunun için 8 bitlik Pot değerinin en düşük değerli biti discard ediliyor. 0 nolu bit noise bit olarak tanımlanmış.

Tabiki geriye kalan 7 bit de mouse'un absolute pozisyonnun raporlamak için yetersiz olduğundan her bir ölçümde, bir önceki ölçüme relatif olarak ne kadar hareket olduğu bilgisi signed olarak gönderiliyor. +-64 pixel maksimum.

Bir de cihazın PAL ve NTSC olmasına göre clock sinyalinde biraz farklılık olabiliyor. Bu ayrı bir hata kaynağı.

Bu PotX ve PotY sinyalini mikroişlemci ile manipule edebilmek için sanıyorum ki peş peşe gelen iki şaseye çekiş arasındaki zaman okunarak (uC clocku cinsinden) üretilecek pulse ayarlanacak. Bu sayede NTSC ve PAL makineye otomatik uyum sağlamış olacak...
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #14 : Ağustos 08, 2017, 13:53:35 ÖS »

@delimawi : Ben yanlış hatırlıyormuşum, SID bu okuma işini 512 cycle'da bir kendisi yapıyormuş. Readonly bir register üstünden mikroişlemciye sunuyor.

Ama aklıma başka çakal bir yöntem geldi, belki böyle bir şey uygulanabilir.

C64 için örnek vereyim,

Menü programı çalıştırılır. Joystick üstündeki ateş tuşuna basılmasını ister.
Basıldıktan sonra menü programı da adaptör de aynı state machine'i koşturur. Ekranda yapılan seçimi adaptör aynı state machine'i koşturduğu için bilir.

Bilgisayardan adaptöre veri göndermeden aslında göndermiş gibi oluruz.
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
Sayfa: [1] 2 3 ... 6   Yukarı git
Yazdır
Gitmek istediğiniz yer: