• 28 Mart 2024 16:43

Sait ORHAN

Öğretmek için Öğrenin- Öğrenmek için Öğretin

Donanım Kısmının Geliştirilmesi ve Programlanması

BySait ORHAN

Şub 8, 2014

1.1 Donanım Kısmının Geliştirilmesi

Şekil 15. Devreye ait ISIS ekran görüntüsü

Devrenin geliştirilmesi için öncelikle ISIS programı yardımı ile simülasyon devresi çizildi.

Devrenin çizilmesi aşamasında karşılaşılan problem, butonların birleştirilip kesme oluşturacak olan BO pinine bağlanması aşamasında bir butona tıklandığında diğer butonların da aktif oluyor olmasıydı. Bu sorunu aşmak için akımın yönünü sınırlayan diyotlardan faydalanıldı.

1.2 Donanım Kısmının Programlanması

Devrenin programlanması aşamasında her işlem için iki adet fonksiyon oluşturuldu. Bunlardan ilki o an işlenen özelliğe ait değerin arttırılması ve ya azaltılması diğeri ise değiştirilen son değerin kaydedilmesi için kullanıldı. Kaydedilen değerlerinde cihazın kapanmasından sonra da tutulabilmesi için denetleyicinin sürekli hafızası olan eeprom kullanıldı. Değerler ve tutuldukları eeprom hücreleri aşağıdaki tablodaki gibidir.

Şekil 16. Cihaz ilk açıldığında ekrana gelen uyarı

Tablo 2. Eeprom hücrelerinde tutulan ayarlar

Değer Adı Tutulduğu Eeprom Hücresi

daha_once_acildimi (bit)

1023

olcum_aralik (BYTE)

1022

isik_suresi (BYTE)

1021

yazi_buyuklugu (bit)

1020

sifre (BYTE)

1019

pin (BYTE)

1018

ID (BYTE)

1017

kayit_sayisi (BYTE)

1016

Ayrıca her kayıt içinde 9 adet hafıza hücresi kullanıldı. Her kayıtta değerlerin sıralı olarak kaydedilmesi; değerlerin okunması sırasında değerlere ulaşmak için matematiksel formellerin kullanılmasını sağlar.[1] Bu değerler ve sıralamaları aşağıdaki tabloda verilmiş.

Tablo 3. Tutulan değerler ve sıralamaları

Sıra No Değer Adı

1

Gönderilme Bilgisi

2

Yıl

3

Ay

4

Gün

5

Dakika

6

Saat

7

Küçük Tansiyon

8

Büyük Tansiyon

9

Nabız

1.2.1 Otomatik Ölçme Aralığı Ayarının Yapılması

Şekil 17. Otomatik ölçme aralığı ekranları

Cihazın ne kadar süre ile otomatik ölçüm yapacağını tutar. Otomatik ölçme işlemi için timer1 kesmesi kullanıldı. Kesmenin ayarlanması esnasında kullanılan değerler şöyledir;

Timer birimi sinyal kaynağı olarak dahili kaynağı kullanır, bölme değeri olarak 8 ve timer başlama değeri olarak da 3036 değerini kullanır. Bu değerler ile 150 kesme oluşmasından sonra 5 dk zaman geçmiş olur. Her 5 dk geçişten sonra geçen zaman değerine 5 eklenir ve otomatik ölçüm değeri ile karşılaştırma yapılır, eşit olması durumun da ölçme fonksiyonunu çalıştırır.

1.2.2 Işık Suresinin Ayarlanması

Şekil 18. Ekranın ışık süresinin ayarlanması

Ekranın aydınlanma suresini saniye cinsisinden kontrol edilmesini sağlar. Bu işlem de mantıksal olarak otomatik ölçme işlemi ile aynı mantığa dayanır.

1.2.3 Ekran Yazı Büyüklüğünün Ayarlanması

Şekil 19. Yazı büyüklüğünün ayarlanması

Ekran yazı büyüklüğü, ekranın boyutu ve 1 birimlik yazı büyüklüğünün tek karakter için 5X5 piksellik alan olmasından dolayı iki boyutta ayarlanabiliyor. Bunun için bit düzeyinde bir değişken kullanıldı. Ekranın yazı büyüklüğü ayarlanırken de bu değere 1 eklenip yazı büyüklüğü olarak kaydedilir.

1.2.4 Tarih / Saat Bilgilerinin Gösterilmesi

Şekil 20. Tarih / Saat bilgileri

Tarih saat bilgileri için DS1302 RTC elemanından yararlanıldı. Saat bilgisi alınırken fonksiyon 3 parametre alır ve bunlar saat, dakika, saniye bilgilerini tutar. Tarih bilgisi için ise fonksiyon 4 parametre alır ve bunlar yıl, ay, gün ve haftanın günü bilgilerini tutar. Burada dikkat edilmesi gereken noktalar; yıl bilgisi iki basamak olarak tutuluyor, bu bilgiyi ekrana yazarken ilk iki basamağı elle yazmak gerekiyor, haftanın günü bilgisi de sayısal değer olarak tutuluyor ve numaralandırma pazartesi için 0’dan başlıyor.

1.2.5 Şifre / Pin / Kullanıcı ID Değiştirme

Şekil 21. Şifre, Pin, Kullanıcı ID değiştirme ekranları

Bilgilerin değiştirilmesi aynı mantığı kullanasından dolayı aynı başlık altında anlatıldı. Şifre ve pin bilgileri verilerin veri tabanına atılması esnasında kullanılır. Şifre bilgisi veri tabanına bağlantıda kullanılıyorken, pin bilgisi de verilerin aktarılması sırasında GPRS üzerinde doğrulama amacı ile kullanılmaktadır. Bu iki bilgi devrenin lokal bilgisayarda ve RS232 seri portu kullanmasından dolayı sadece yazılım aşamasında kaldı. Ancak projenin hayata geçirilmiş uygulamasında bu bilgiler kullanılmaktadır.

1.2.6 Ölçüm Gönderme Durumları

Şekil 22. Ölçümlerin veri tabanına gönderilme durumları

Bu işlem için öncelikle her ölçümün gönderilme durumunu tutan ilk bileşene bakılıyor. Bunun için formülüne göre hafıza hücrelerini sorgular ve değerin 0 olması durumunda gönderilmemişler 1 olması durumunda ise gönderilmişler sayısını 1 arttırır. Değerin bunlardan farklı olması durumunda ise o ölçüm bloğunun boş olduğunu hesaplar.

1.2.7 Toplam Kapasite Bilgisi

Şekil 23. Toplam kapasite bilgisi

Bu bilginin elde edilmesi için hafızanın toplam hücre sayısından, ayarlar için kullanılan 8 hücre çıkarılıp dokuza bölünür. Sonucun tam kısmı toplam kapasiteyi verir. Sonuç her defasında sabit olduğundan bu bilgi manuel olarak ekrana yazılıyor. Arka planda her hangi bir işlem yapılmamaktadır bunun için.

1.2.8 Dolu / Boş Alan Bilgileri

Şekil 24. Dolu / Boş alan bilgileri

Dolu ve ya boş alanı bulmak için öncelikle formülüne göre hafızanın bütün hücreleri sorgulanır. Sonucun 0 ve ya 1 olması durumunda dolu alan değeri, bunlardan farklı olması durumunda ise boş alan değeri bir attırılır. Burada dikkat edilmesi gereken nokta verilerin gönderilip gönderilmediği ile ilgilenilmediği noktasıdır. İlgilenilen nokta cihazda kayıtlı bulunan verilerin miktarıdır.

1.2.9 Yeni Ölçüm Alma

Şekil 25. Yeni ölçüm ekranları

Yeni ölçüm alınacağı zaman ölçüm alınmadan önce hafıza da boş alanın varlığı sorgulanır. Eğer boş alan var ise yeni ölçüm alınır. Proje de cihazın simülasyonunu üzerinde çalışılmasından dolayı değerler uygun aralık çerçevesinde rastgele oluşturuluyor. Boş alan sorgusunda eğer değer 0 olarak dönerse aşağıda ki gibi bir uyarı ekranı veriliyor.

Şekil 26. Yeni ölçümde hafıza dolu uyarısı

1.2.10 Ölçümlerin Veri tabanına Gönderilmesi

Şekil 27. Ölçümlerin veri tabanına gönderilmesi

Gönderme işlemi için öncelikle gönderilmemiş kayıt sayısı sorgulanır. Eğer gönderilmemiş kayır yok ise gönderilmemiş ölçümün olmadığını belirten mesaj ekrana gelip durur ancak eğer gönderilmemiş ölçüm var ise seri port üzerinden sisteme gönderme işlemi başlar. Sisteme gönderilen ölçüm bloğu boş olarak işaretli anlamında ilk bileşeni -1 olarak ayarlanır.

1.3 Devrenin Kullanımı

Şekil 28. Devreye ait butonlar

Devrenin menüsünde dolaşmak ve istenen işlemleri yaptırmak için devrede dört adet buton bulunmaktadır. Bu butonlardan solda dikey durumda bulunan buton, menüden çıkıp ana ekrana dönülmesi için kullanılır. Yatay konumda üst üste bulunan butonlar ise ortadaki onaylama butonu aşağıda ve yukarıda bulunan diğer iki buton da ileri geri hareketleri için kullanılır.

Cihaz ilk açıldığında gerekli ayarların yapılıp yapılmadığına bakar. Bunun için hafızasında yer alan ilgili hücre ( 1023 ) değerine bakar. Değer 1 ise ilk ayarlar ilgili hafıza hücrelerinden okunarak atamaları yapılır ve ana ekran bilgisi olarak ortamın sıcaklığını sensordan okuyup ekrana yazar. Eğer değer 0 ise yani cihaz ilk defa açılıyor ve ayarları yüklenmemiş ise cihazın ilk defa açıldığını ve ilk ayarların yapılması için cihazın bilgisayara bağlanmasını isteyen bir uyarı mesajı ekrana gelir ve bütün kesme olaylarını pasif hale getirerek cihazın kullanılmasını önler.

Şekil 29. Cihazın ana ekranında gözüken sıcaklık bilgisi

Şekil 30. Cihazın ilk ayarlarının yapılmasını isteyen uyarı mesajı ekranı


[1] Belli bir değeri okumak için örnek formül: Sadece küçük tansiyon değerlerinin okunduğu formül;

0 <= i <= [Toplam Kayıt Sayısı]

Küçük Tansiyon = i*9 + 7

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.