Bunu yapan adama helal olsun gerçekten

Başlatan Firzen, 09 Eylül 2013, 03:59:33

diot

Bu işler usb ile yapılamıyacak bir şey değil.  Bunu açıklamamda fayda var sanırım :
Vga için çeşitli iletişim protokolleri var. Kiminde vga çip varken kiminde yazılımla desteklenen çeşitli mcu lar olabiliyor. Örnek olarak http://www.pclabs.com.tr/2010/02/16/dark-usb-ekran-karti-incelemesi/   
Bunlar zaten yapılmış ve piyasada kullanılan çihazlar.  İletişimi sadece bit bit yollamak olarak düşünürseniz çok geniş band genişlikleri çıkar. USB 3.0 bile bu hızlara yetişemez. Haberleşmede kullanılan çeşitli görüntü sıkıştırma protokolleri var örnek H.264 gibi. Bu tür kodlamalarla veri iletişimi çok düşmektedir. pc de video driveri görüntüyü sıkıştırık yollamakta alan sistem yeniden açıp ekrana yansıtmakta.  Sanırım iletişim için bir sıkıştırma yöntemi kullanmıştır. Fakat hangi yöntemi kullandı  ve açan codec i nasıl o çipe sığdırdı bu önemli.

Kullandığı codec'i merak ettim doğrusu bu kadar küçük bir alana nasıl sığdırdı onu merak ediyorum. Bu işler usb ile yapılamıyacak bir şey değil.

muuzoo

Bir diğer güzellikte tek renkli ekranda gray scale imge göstermiş. Bunuda pikselleri hızlıca aç-kapa yaparak sağlamışlar.
gunluk.muuzoo.gen.tr - Kişisel karalamalarım...

Burak B

Codec değil. Milisaniye başına 1023 byte 128x64 için gayet yeterli.
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

matador

PC programı için:

Adım 1: Ekranın ortasından 128*64'lük kısmı al tek renge çevir. ( matlab ile yapılabilir diye düşünüyorum. )

Adım 2: Grafik lcdler için kullandığımız hex dönüştürücüler var. Benzeri bir programa ekrandan alınan görüntüyü aktar.

Adım 3: Hazırlanan hex kodu ister usbden ister paralel porttan ister seri porttan gönder.

Bilgisayarın işi bitti.

Atmel kısmında:

Adım 1: Gelen veriyi direk ekrana ver.


Benim projede gördüğüm bu. Ben mi yanlış düşünüyorum yoksa bu iş çok mu abartıldı?

volkii

sorun işlemcinin ekran tarama hızı falan değil arkadaşlar, zaten işlemci içerisinde Memory control birimi var donanımsal. bununla ekranı sürüyorsun. sadece pixelin renk bilgisini veriyorsun donanım hallediyor bunu. asıl sorun USB HID'de. işlemci kesmeler hariç %0 iş gücü ile çalışıyor bütün işi donanım yaptığından. benim denemediğim yol kalmamıştı 320x240 ekranda, en hızlı modda çalıştırdım hid'yi olmadı, 64x64'te ancak işe yarar bişeyler çıkartabilmiştim. o yüzden handshake yapmadan çalışan hızlı bir transfer yöntemi lazım (isochron gibi) bununla olur. zaten usb web cameralar bunu kullanıyor. Arkadaşların dediği sıkıştırma yöntemi hakkında bişey diyemeyeceğim detayını bilmediğim için. HID hızı bellidir zaten 1ms'de kesmelerde 64Mbyte veri yollayabilirsin. o yazdığınız hızlar HID değildir.   

muhittin_kaplan

@matador
Birde Nasıl 3. ekran olarak tanıttı onuda yazarsak tam olur.

Burak B

#21
@matador o kadar da basit değil bence.
@muhittin_kaplan üstad ekran sürücüsü yazmak gerekir.

Ekran Sürücüsü nasıl yazılır? Bakınız

Ayrıca bu ekranların 1 bit olduğunu unutmayın. Orada özel bir grafik filitresi kullanarak grinin tonları ifade ediliyor. Grafik filitreleri her zaman yorucu fonksiyonlar olmuştur. Gelen verinin bu LCD için transpose edilmesi gerektiğinide göz önüne almalıyız. Yani @matadorun çok basitmiş gibi yazdığı
Alıntı YapAdım 2: Grafik lcdler için kullandığımız hex dönüştürücüler var. Benzeri bir programa ekrandan alınan görüntüyü aktar.
dönüşümü aslında bu tip KS0108 uyumlu LCD' ler söz konusu olunca yine yorucu bir fonksiyon ortaya çıkıyor.
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

Kabil ATICI

filmin sonundaki adresten
http://q61.org/en/chibimo/build/
ile olayın nasıl gerçekleştirildiği anlatılıyor.
ambar7

matador

Alıntı yapılan: muhittin_kaplan - 09 Eylül 2013, 17:25:53
@matador
Birde Nasıl 3. ekran olarak tanıttı onuda yazarsak tam olur.

Buna aklım ermedi. Sanırım gerçekten driver benzeri bir şey yazdı veya buldu.

metaltrrocker

Alıntı yapılan: volkii - 09 Eylül 2013, 11:38:35
buna benzer bişey STM32 ile yapmıştım (72Mhz), ben renkli ekrana basıyordum ve frame geçişi daha yavaştı HID ile ama  isochron transferle sorunsuz çalışır.
3. ekran tanımlamana gerek yok, C#ta hazırlayacağın bir programla, desktop (belli bir alanının) fotosunu çekip pixel pixel okuyup USB'den gönderiyorsun.
C#' da ekranın belirli bir kısmını fotosunu çekme olayı nasıl oluyor?Örnek anlatım yada kod varsa paylaşabilirmisin?