havada yazı yazma yardım

Başlatan Mucit23, 24 Mayıs 2010, 12:53:46

Mucit23

Merhaba arkadaşlar benim bi havada yazı projem var
birkaç örnek resim ;D



Havada yazı çok güzel oldu yazı çok güzel gözüküyor devre üzerindeki reed röel sayesinde yazı sabit duruyor... ;)
Yanlız ben projemi biraz geliştirmek istiyorum bu yüzden siz değerli arkadaşlardan biraz fikir alayım dedim :)
Yapmak istediğim şey bu ben şimdilik devreyi çalıştırdığım zaman sadece tek bir yazı gözüküyor.Ama ben tek bi yazı değilde birden fazla yazının  belli aralıklarla gözükmesini istiyorum. Bunu yapmak için ben şöyle düşündüm program içerisinde kesme ile bağımsız bir saat oluşturayım devamlı 1 dk lık zaman dilimini saysın yani 1dk lık normak bir sayacımız olsun.Bu 1 dk nın belli bölümlerinde farklı yazılar göstereyim diyorum. Örnek vermek gerekirse 1 dk nın ilk 30 sn yesinde herhangi bir yazı diğer bi 30 saniyesinde ise başka bi yazı belirecek.Tabi devrede reed röle bağlı olduğu için yazı sabit duruyor bu dediğim yazıların ekranda belire bilmesi için ayrıca reed rölenin tetiklenmesi gerekiyor.Yani ben böyle düşündüm siz bu konuda ne dersiniz fikirlerinizi almak istiyorum.
Ayrıca arkadaşlar ben bu havada yazıda  harfleri oluşturmak için binary kodlar kullanıyorum böylece programda harfin şeklini az çok görebiliyorum.Ama bu yöntem çok eziyetli oluyor ve uğraştırıyor.Bilim ve teknikteki havada yazı projesini c kodlarını inceledimde orada harfler bir dizi içerisinde verilmiş bunu ben basicde nasıl yapabilirim yada bu harf oluşturma işinin daha kolay  bir yolu varmı acaba? ::)

mucit yazıcı için yazdığım kodlar
@ DEVICE pic16F628                      'işlemci 16F628
@ DEVICE pic16F628, WDT_ON              'Watch Dog timer açık
@ DEVICE pic16F628, PWRT_ON             'Power on timer açık
@ DEVICE pic16F628, PROTECT_OFF         'Kod Protek kapalı
@ DEVICE pic16F628, MCLR_OFF             'MCLR pini kullanılıyor.
@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT  'Dahili osilatör kullanılacak

TRISA=%00000001
TRISB=%00000000
PORTA=0
PORTB=0

CMCON=7

BASLA:
IF PORTA.0=0 THEN
GOSUB LED_YAK
ENDIF
GOTO BASLA

LED_YAK:
PORTB=%11111111        'M
PAUSEUS 150
PORTB=%00000010
PAUSEUS 150
PORTB=%00000100
PAUSEUS 150
PORTB=%00001000
PAUSEUS 150
PORTB=%00000100
PAUSEUS 150
PORTB=%00000010
PAUSEUS 150
PORTB=%11111111
PAUSEUS 150
PORTB=0
PAUSEUS 500
PORTB=%01111111        'Ü
PAUSEUS 150
PORTB=%10000000
PAUSEUS 150
PORTB=%10000000
PAUSEUS 150
PORTB=%10000000
PAUSEUS 150
PORTB=%01111111
PAUSEUS 150
PORTB=0
PAUSEUS 500
PORTB=%00111100       'C
PAUSEUS 150
PORTB=%01000010
PAUSEUS 150
PORTB=%10000001
PAUSEUS 150
PORTB=%10000001
PAUSEUS 150
PORTB=%10000001
PAUSEUS 150
PORTB=%01000010
PAUSEUS 150
PORTB=0
PAUSEUS 500
PORTB=%10000100       'İ
PAUSEUS 150
PORTB=%11111101
PAUSEUS 150
PORTB=%10000100
PAUSEUS 150
PORTB=0
PAUSEUS 500
PORTB=%00000001       'T
PAUSEUS 150
PORTB=%00000001
PAUSEUS 150
PORTB=%11111111
PAUSEUS 150
PORTB=%00000001
PAUSEUS 150
PORTB=%00000001
PAUSEUS 150
PORTB=0
RETURN
END


Bide son olarak arkadaşlar ben yine bi havada saat yapmıştım 16 f84 ile saat bilgisini ss:dd olarak gösteriyordu diyorumki bende bu şekilde bir saat yapsam saat bilgisini nasıl 8 adet led ile dönerken havada yazıcak şekilde gösterebilirim Bu konu çok aklıma takılıyor. :D Yaptığım hac-vada saatin kaynak kodları asm ile yazılmış o yüzden programda pek bişey anlayamıyorum bu konuda bei bilgilendirirseniz çok sevinirim Malum daha bu işlerde acemiyim kendi çapımda uğraşıyorum ama işte bu tür konularda sizlerinde bilgilerine ihtiyaç duyuyorum:)

Mucit23

arkadaşlar bu konuda bi fikri olan yokmu sizce ne yapmalıyım

Mucit23

arkadaşlar istediğimi TMR0 kesmesi ile yaptım çok güzel oldu TMR0 ile arka planda bi saat oluşturup bu saate göre saatin belli aralıklarında yazıları görüntüledim çokda iyi sonuç aldım güzel oldu yani yanlız şöyle bir sorun var harleri oluşturmak için çok fazla kod kullandığımda programda çok az yer kaldı.Bu sorunu nasıl çözebilirim yani harfleri başka nasıl oluşturabilirim.Bu dizi değişkenleri var acaba dizi değişkenleri ile yapabilirimiyim arkadaşlar

ercinatay

Şöyle yapsan yazacak yer kalmadı dediğin için, önce mucit yazısı yazılacak mesala, sonra zamanlama yapılacak 30sn mucit göründü diyelim. sonra saat programına geçiş yapılacak 30sn'de o gösterim yapacak, döngü böyle devam edecek.

Mucit23

olabilir ama bu saat bilgisini nasıl görsel hale getirecem onu bilmiyorum

ibrsel

Alıntı Yaparkadaşlar istediğimi TMR0 kesmesi ile yaptım çok güzel oldu TMR0 ile arka planda bi saat oluşturup bu saate göre saatin belli aralıklarında yazıları görüntüledim çokda iyi sonuç aldım güzel oldu yani yanlız şöyle bir sorun var harleri oluşturmak için çok fazla kod kullandığımda programda çok az yer kaldı.Bu sorunu nasıl çözebilirim yani harfleri başka nasıl oluşturabilirim.Bu dizi değişkenleri var acaba dizi değişkenleri ile yapabilirimiyim arkadaşlar

Kod için entegrende yer kalmamış ise en basitinden bir üst işlemciye geçebilirsin..16F88..Pin yapısı 16f628 ile aynı..program ve ram hafızası ile 628 e göre çok daha fazla..bildiğim kadarı ile 8kb..ayrıca 8Mhz dahili osilatörü var..

Mucit23

haklsını 16f88 olabili devre içinde çok uygun ben bu devrede saat vs de göstermek istiyorum bu konuda bana yardımcı olabilirmisiniz

Mucit23

ARkadaşlar sizlere bişey daha danışmak istiyorum bu tübitaktaki havada yazı projesinde harfler hexadesimal şeklinde sıraylar bir dizi oluşturacak şekilde vermiş
aşağıda görüldüğü gibi
0xFC,0x12,0x11,0x12,0xFC,0x00, // A
0xFF,0x89,0x89,0x89,0x76,0x00, // B
0x7E,0x81,0x81,0x81,0x42,0x00, // C
0x3E,0x41,0xC1,0x41,0x22,0x00, // Ç
0xFF,0x81,0x81,0x81,0x7E,0x00, // D
0xFF,0x89,0x89,0x89,0x81,0x00, // E
0xFF,0x09,0x09,0x09,0x01,0x00, // F
0x7E,0x81,0x81,0x91,0x72,0x00, // G
0x7C,0x83,0x83,0x93,0x74,0x00, // Ğ
0xFF,0x10,0x10,0x10,0xFF,0x00, // H
0x00,0x81,0xFF,0x81,0x00,0x00, // I
0x00,0x84,0xFD,0x84,0x00,0x00, // İ
0x60,0x80,0x81,0x7F,0x01,0x00, // J
0xFF,0x18,0x24,0x42,0x81,0x00, // K
0xFF,0x80,0x80,0x80,0x80,0x00, // L
0xFF,0x02,0x0C,0x02,0xFF,0x00, // M
0xFF,0x04,0x08,0x10,0xFF,0x00, // N
0x7E,0x81,0x81,0x81,0x7E,0x00, // O
0x78,0x85,0x84,0x85,0x78,0x00, // Ö
0xFF,0x11,0x11,0x11,0x0E,0x00, // P
0xFF,0x11,0x31,0x51,0x8E,0x00, // R
0x46,0x89,0x89,0x89,0x72,0x00, // S
0x26,0x49,0xC9,0x49,0x32,0x00, // Ş
0x01,0x01,0xFF,0x01,0x01,0x00, // T
0x7F,0x80,0x80,0x80,0x7F,0x00, // U
0x7C,0x81,0x80,0x81,0x7C,0x00, // Ü
0x0F,0x30,0xC0,0x30,0x0F,0x00, // V
0x07,0x08,0xF0,0x08,0x07,0x00, // Y
0xE1,0x91,0x89,0x85,0x83,0x00, // Z

ben bu kodları picbasicde nasıl yazabilirim bu şekilde derlenirmi yada bunun daha bi yolu varmı yardımcı olursanız sevinirim

nemesis83

sanırım ben durumu çözdüm
istediğn harfi picbasic de yukardaki kodlara göre yazabilirsin
örneğin senin kodlarındaki T harfine bak
T nin üst kısmını oluşturan ledler için yukardan aşağıya sadece tepedeki led 1 oluyo
PORTB=%00000001   önceki ledler sıfır sadece tepe 1
T nin orta kısmı içinse tüm ledler 1 oluyo
PORTB=%11111111 bütün ledler 1 yani yanıyo
bunu her harfin her kısmı için kodlamak lazım
yukardaki kodlara bakarsan hexadecimal yani 16lık sistemde yazılmış
yukarıdan aşağıya verilen şekilde ledleri işaretlersen hepsini çevirebilirsin
kolay gelsin

Mucit23

peki şöyle diyeyim t harfinin kodu aşağıdaki gibi
0x01,0x01,0xFF,0x01,0x01,0x00, // T
bu şekilde yazarsak kodlar arasında gecikme sağlanıyormu
örnek vermek gerekirsek
0x01 ile 0x01 kodu arasında bi gecikme oluşurmu

nemesis83

olmaması lazım
aynı satırda bulunan ledler aynı anda yanmalı
bir sorun olursa beraber çözeriz
iyi çalışmalar

DİRİLİŞ_MAK

Merhaba Mucit23, bende havada yazı devresi yapıyorum, yazıyı sabitlemek için reed röle kullandım demişsin. Reed röleyi PIC'e nasıl bağladın şemasını gönderebilirmisin. Redd röleyi yakınlardaki bir mıknatıs ilemi tetikledin?

talha

Merhaba arkadaşlar acaba şu devrenin dokümanlarını paylaşırmısin 16f628a ile yapılanı bi türlü bulamadimda teşekkürler

a4tech33

reed röleyi neden kullandınız hocam anlıyamadım nasıl sabit tutuyor yazıyı biraz açarmısınız?

JOKERAS

Selam,

Mucit23 işin en zor tarafını yapmışsınız zaten.
Mesajları değiştirmek pek zor olmasa gerek.
Yazı fontlarını Rom'da tutuyorsunuzdur herhalde.

Kayan yazıdan hiç bir farkı yok!
Satır veya sutun taramayı motorun dönmesiyle gözü aldatmış oluyorsunuz.
Siz burada raster taramayı sağlamışsınız zaten,
şimdi kodda(video Ram'de) bir sinek uçursanız bunu ekranda görürsünüz.

Rom'da sakladığınız mesajları,belli bir sıra ve zamana göre bir fonksiyon ile video Ram'e aktarın
olay bu.

Font creatör diye pgm'lar var bu tip pgm'lar ile istediğiniz şekilleri çizip hex,bin çıktısını alabiliyorsunuz.

Ben olsam şöyle bir yol izlerdim...
Tüm font işleme olaylarını byte bazında bitsel olarak yapar ve pgm'ı bölerek Multitask yapardım.
Bu zamandan yer,alandan kazanç sağlar.Biraz karışık bir iş.

Yahu Mucit23 siz daha hala Basic'lemi uğraşıyorsunuz,bunu size hiç yakıştıramadım:)
C'ye geçiş yapın derim.

Şimdi birileri yine kızacak ama kızan buzdolabına girsin:)