Dün lazer sensor elime ulaştığı anda içime düşen sensörü deneme isteğime artık daha fazla karşı koyamadım ve "Amiga Tank Mouse Laser Upgrade" tasarımına başladım. Evet nur topu gibi bir proje daha doğmuş oldu. Bu arada açılmış proje sayısı bu oturumda üçe çıkmış oldu. Scandoubler, USB2CBM ve bu ismi uzun modifikasyon projesi.
Hemen proje detaylarına geçmeden önce, bu optik veya lazer sensörlerin nasıl çalıştığına kısaca bakalım. Bir led yada lazer sensor mouse pad'i aydınlatıyor, bir CMOS kamerada sürekli fotograf çekerek iki frame arasındaki farklılıkları karşılaştırıp hareket var ise hangi yöne doğru ne kadar olduğunu hesaplıyor. Bu iş için sofistike bir DSP kullanılıyor. Çekilen fotograflar sensorden sensore değişmekle beraber, benim kullandığım ADNS9800 sensoründe 30x30 pixel.
DSP, CMOS kamera ve aydınlatma (lazer, led vb...) artık aynı kılıf içerisine girmiş durumda. Bir fotograf çekilmesi söz konusu olduğuna göre aslında bir de lens meselesi var. Bu çipin fotograf çeken kısmındaki açıklık 1mm civarı. Tam bu noktada, lensin çok hassas olarak konumlandırılması ve mouse pad ile arasındaki mesafenin çok hassas ayarlanmış olması gerekiyor. (Odak uzaklığı) Eğer odak uzaklığı kayık olur ise çekilen fotolar net olmayacak ve mouse performansı düşük olacaktır.
Bir fikir vermek adına kullandığım sensorün PDF'inden bir bölümü alıntılıyorum:

Göreceğiniz üzere optimum mesafe 2.4mm ve +-0.22mm marj var. Yani sensörü doğru ölçüp biçerek Tank mouse içerisine çok hassas yerleştirmeliyiz.
Bu arada ben ADNS9800 Sensor ve ADNS6190 Lens'i birlikte aldım. Mouse üreticileri genelde kendi lenslerini kendileri üretiyorlar.
Takım olarak bu sensor ve lensin görünümü şu şekilde:

Lens sensore uygun yapıldığı için tam olarak birbirlerine oturuyorlar. Sensorun SMD olmamasının sebebi ise, mouse içerisindeki PCB yüksekliğinin serbest bırakılabilmesi. Bu noktada tek dikkat edeceğimiz konu, lens'in alt noktası ile pad arasında tam 2.4 mm olmasını sağlamak. Hemen 3D tasarım programının başına geçerek, Tank Mouse'dan aldığımız ölçülere göre, hem mouse altındaki artık olmayan top yuvasını kapatacak, hem bu lensi tam 2.4mm de tutacak, hem de yapacağımız PCB'yi vidalayacağımız bir parçayı modellemeye başlıyoruz.
Yapacağımız parça bu:

Bu parça alttan Tank Mouse'a takılacak, üst kısma lens takılacak ve en son PCB en üste gelip vidalanınca, tüm parçalar sabitlenmiş olacak. Lens sandwich gibi arada kalacak. Tabiki bu parçayı çizerken hem 3D basılabilir olmasına, hem de lens altında tam 2.4mm kalmasına özellikle dikkat ediyoruz.
Soldan sağa 3D bastığımız parça, lens ve Tank Mouse alt kısmı.

Parçamız ve lens bir birlerine gayet güzel oturdu.

Son olarak Mouse'a yerleştiriyoruz.

Şimdi sensorun PDF'ini açıp, referans tasarımı inceliyoruz ve kendi devremizi bu tasarımdan uzaklaşmadan çiziyoruz. Elimde bol miktarda olduğu ve ucuz olduğu için gene PIC kullandım. 5V çalışabilen bir model olduğu için doğrudan Amigaya bağlayacağız. Level shifting vb derdimiz olmayacak. Kullandığımız ADNS9800 sensoru de hem 3.3V hem de 5V ile çalışabiliyor.

Bu tasarım Amiga için olacak. Tank mouse içerisindeki kabloyu soketinden çıkartıp doğrudan bu PCB'ye takacağız. Ama gene de eğer olur da PCB bastırırsam diye, C64 kısmını da test edebilmeye olanak kalsın maksadı ile POTX POTY hataları için de hazırlık yaptım.
PCB'ye dökünce aşağıdaki gibi bir tasarım ortaya çıktı. Eğer PCB bastıracaksam bu projeyi siyah bastıracağım. Zaten sensorun kendi PCB si de siyah, cool görünecektir.

Neyse, mavi kağıt, ütü, asit, peroksit, sıvı kalay derken protoip PCB hazır. Ortadaki slotu açmak biraz zorladı.

Zaten fazla bir parça yok, hemen diziyoruz. Bol miktardaki yeşil atlamalar tasarımdaki bir hatadan kaynaklanmıyor. Çift taraflı çizdiğim PCB'yi tek taraflı basınca, tüm şase hattını ve arka yüzdeki bir kaç yolu bu şekilde döşemem gerekti.


Yeni gelen PCB evine yerleşmeden önce eski sahibi ile birlikte çekilmiş bir son foto.

Evet, 3D parça, lens, sensor, PCB hepsi yerleşiyor ve vidalanıyor. Gayet güzel oldu.

Son olarak alt taraftan bir foto. Bu 3D basılan parçayı başka bir renk basmak daha güzel olabilir. Tam tutmaz ama bej yada açık gri bir filament var mı bakacağım.

Şimdi artık firmware yazımına başlayabiliriz.
Neyse bu gecelik bir nokta koymak gerekiyor sanırım, tüm projeyi de yarım günde bitirmek olmaz...

Uygun bir zamanda devam edeceğim.