Seiko LTP-1245 Termal Yazıcı Uygulaması
Aylar sonra tekrar merhaba herkese.
Nisan 2005 'de yayınlanan termal yazıcı uygulamam ne yazık ki yarım kalmıştı. Aylar sonra, nihayet tekrar yolları sıvayıp projeyi tamamladım ve tıkır tıkır işler hale getirdim. Sistem Nisan 2005'de anlatılanla aynı fakat ufak tefek değişiklikler yaparak yazıcının hızlanmasını sağladım.
Sistem kabaca şöyle çalışıyor:
1. Bilgisayarda yazdıracağımız resmi hazırlıyoruz.
2. Resmi seri belleğimiz olan ve resmin boyutlarına göre kapasitesi değişen 24LCxx ya da 24LCxxx'e yüklüyoruz.
3. Seri belleğimizi devrede yerine yerleştirip devrenin cereyanını veriyoruz.
4. PIC başlıyor resmi okuyup yazdırmaya. Bitince de bir LED yanıp işlemin bittiğini bildiriyor.
Devremizin blok diagramı aşağıda görülmektedir.
Birazda seri belleğe yükleceğimiz resmin özelliklerinden bahsedelim.
Resmimiz;
.bmp uzantılı, 1bit renk derinlikli, yani sadece siyah ve beyazdan oluşmuş, boyutları da 384 pixele, x uzunlukta olmalıdır. (Resmin boyu önemli değil. Önemli olan işlevi)
Kısaca .bmp dosyası nedir onu da anlatalım. Resmi oluşturan her bir noktayı bozmadan, sıkıştırmadan ve değiştirmeden yani olduğu gibi pixel pixel saklayan dosyalara bitmap dosyaları diyoruz. Bu dosyalarda data aşağıdaki resimde anlatıldığı gibi saklanır. Dosyanın başında "header" ve sonrasında da resmi oluşturan "data" bilgisi yer alır. Burada bilinmesi gereken ise şudur. Bitmap formatında saklanan resimlerin başaşağı kaydedildiğidir.
1. Herhangi bir resim dosyasını kullanmasını bildiğiniz bir photoshop programı ile açınız.
2. Resmin genişlik boyutunu 384 pixel'e ve resmin çözünürlüğünü 72 dots/inc'e ayarlayınız.
Resmin yüksekliği yeniden boyutlandırma sırasında otomatik olarak ayarlanacaktır.
3. Yeniden boyutlandırdığınız resmin renk derinliğini 1bit (siyah-beyaz) olarak ayarlayınız.
Burada dikkat edilecek nokta, resmi siyah-beyaz'a dönüştürürken daha kaliteli görünmesi için "Error Diffusion" kullanılması gerekmektedir. Bu sayede siyah ve beyaz olmasını istediğimiz resimde toplu halde siyah ve beyaz bölgeleri yok etmiş olup, resmi oluşturacak siyah ve beyaz noktaların dağılımını sağladığımız için de gri tonlamalar varmışçasına bir resim elde etmiş oluruz.
4. Resmin termal yazıcıdan bize göre ekranda göründüğü gibi çıkması için de resmi tepetaklak yani flip ederek son işlemi de gerçekleştirmiş oluyoruz.
5. Resmi devremizde bulunan 24LCxxx entegresine yükleme işlemine geçiyoruz. Bunun için Bu entegreyi programlayabilen bir programlayıcıya ve bilgisayar programına ihtiyacımız olarak. Ekran görüntüsünde de görüldüğü gibi IC-Prog programı kullanılmıştır.
6. Programda entegremizi programlayabilmek için gerekli değişiklikleri yaptıktan sonra resmimizi bu program ile açıyoruz.
7. 24LCxxx entegremizi programlayıcıya takıp yükleme işlemine geçiyoruz.
8. Programlama işlemi yaklaşık 1-2 dk sürebilir. İşlem bittikten sonra 24LCxxx entegremizi termal yazıcımızın bulunduğu devrede yerine takıyoruz ve devremize enerji veriyoruz. Yazma işlemi bittikten sonra devrede bulunan LED yanarak yazım işleminin sona erdiğini bildiriyor.
Termal yazıcıdan çıktısını aldığımız resmin orjinali.
Yazılmasını istediğimiz ve 24LCxxx entegresine yüklediğimiz resim.
Yazıcıdan çıkan resim. Devre minimum 2-3 Amper arası güç istemektedir. Resimde de görüldüğü üzere bazı bölgeler koyu bazıları aydınlık çıkmış. Bunun sebebi devreye yeterli miktarda enerji verilmemesidir.
Projenin çalışan videosunu izlemek isteyenler için DivX formatındaki video da burada termal_printer.avi (5.27 MB)
Projenin kaynak kodlarını yayınlamıyorum. Bunun yerine proje ile ilgilenen arkadaşlar lütfen benimle irtibata geçsinler. Herkese iyi çalışmalar dilerim.
Muhabbetle..
Azmi Nalbantoğlu
zidged@ttnet.net.tr