DEVRE SUNUMU Giriş Nabız kanın sol karıncıktan büyük atardamarlara pompalanması esnasında, uç noktalardaki atardamarlarda oluşturduğu dalgalanmadır ve kardiyovasküler sistem sağlığının bir göstergesidir. Kalbin 1 dakika içinde kaç kere kasıldığını yani kalbin hızını yansıtır. Kalp her kasılmasıyla bir miktar kanı atardamarlara (aort ve daha sonra bundan ayrılan dallara) fırlatır ve damarların esneyebilme özelliğinden dolayı atardamarlarda buna bağlı bir genişleme olur. Damar duvarı bu genişlemenin ardından elastik olduğundan dolayı eski durumuna döner, ardından bir sonraki atım ile yeni bir basınç dalgası ile tekrar genişler ve bu böyle devam eder gider. İşte bu genişleme, damarların yüzeysel seyrettiği yerlerde (el bileği, dirsek içi, kasık, şakak, ayak bileği gibi) nabız dalgası olarak hissedilir Bu projede kalbin kan pompaladığı anda parmak atar damarlarındaki kan yoğunluğu değişiminin ölçülmesi ve nabız olarak hesaplanması amaçlanmıştır. Bu amaçla; nabzı ölçülecek bireyin parmak uçlarına gönderilen ve kan hücreleri tarafından geri yansıtılan kızıl ötesi bir ışının oluşturulması için IR diyot kullanılmıştır. Yansıyan ışınlar foto diyot sensör yardımıyla tespit edilmiştir. Her bir kalp atışı ile değişen kan yoğunluğu foto diyot’un çıkışında, mikroişlemci tarafından tespit edilemeyecek kadar küçük bir sıra darbeye neden olmaktadır. Bu sebeple devremizde; voltajın mikroişlemci tarafından tespit edilecek bir seviyeye yükseltmek ve filtrelemek amacıyla çok yüksek kazanıma sahip iki aşamalı işlemsel yükselteç (opamp) kullanılmıştır. Sinyallerin hesaplanması için 16F877A mikroişlemci, hesaplanan kalp atış oranının gösterilmesi için de 2x16 lcd ekran kullanılmıştır. Teori Nabız, kalbimizin belli bir periyottaki atış sayısı olarak nitelendirilebilir ve genelde bir dakikadaki atış baz alınır. İngilizce olarak Beats per minute (bpm) olarak ifade edilir. Normal bir yetişkinde dinlenme esnasında 60 ile 100 arası değişir. Bu oran kişinin sağlık durumuna göre değişiklik gösterir. Kişinin nabzını direkt olarak vücudundan, parmak uçlarınızla atışları hissedebildiğiniz bir noktadan ölçülebilir. Genelde boyun ve bilekler tercih edilir. Belli bir zaman aralığında atışları sayabilir(örneğin 15 saniye) ve bir dakikadaki atış sayısını bulabilirsiniz. Bu projede, her bir kalp atışı ile parmak uçlarında değişen kan hacmini optik sensörler yardımıyla tespit eden, mikroişlemci temelli nabız ölçer sistemini tasarlamak hedeflenmiştir. Bahsedilen sensörler, yan yana yerleştirilmiş kızılötesi ışık yayan diyot (IR LED) ve bu ışığı toplayan foto diyottur. Kızıl ötesinden yayılan ışınların bir kısmı nabzı ölçülecek kişinin parmak uçlarından yansır ve bu yansıyan ışınlar foto diyot tarafından tespit edilir. Yansıyan ışınların yoğunluğu parmak uçlarındaki kan yoğunluğuna bağlıdır. Böylelikle her bir kalp atışında parmak uçlarındaki kanın yoğunluğu foto diyot tarafından tespit edilebilecek bir miktarda artışa sebep olur. Uygun sinyal işleme yöntemleri ile yansıyan ışındaki bu ufak genlik farkı elektriksel darbelere çevrilebilir, daha sonra da darbeler mikroişlemci ile sayılarak nabız tespit edilebilir. Devre tasarımı Sinyal işleme devresi, iki özdeş 2.5 hz frekansında alçak geçiren filtrede ve opamp’tan oluşmaktadır. 2,5 Hz alçak geçiren filtre sebebiyle, dakika işlenebilecek nabız sayısı maksimum 150’dir. Bu filtre sinyallere karışabilecek parazitlerin filtrelenmesi amacıyla önemlidir. Devrede LM358 işlemsel yükselteç kullanılmıştır. Bu entegre iki adet opamp içermektedir. Her bir opamp’taki kazanç ayrı ayrı 101, toplam kazanç 10201’dir. Her girişte dc öğeleri engellemek için 1 uF kapsitörler kullanılmıştır. Devredeki kazanç ve alçak geçiren filtre kesim frekansı hesapları şu şekilde yapılmıştır. Kazanç 1 ve 2 = 1+ = 1+ 𝑅1 𝑅2 680 6,8 = 101 Toplam Kazanç = Kazanç1 x Kazanç2 = 101 x 101 = 10201 Kesim frekansı = = 1 2π Rf Cf 1 2π∗680∗100∗10−9 = 2.34 Hz İki aşamalı yükselteç/filtre, sensörden gelen zayıf sinyali yükseltmek ve onu elektriksel darbelere çevirmek için yeterli kazancı sağlamaktadır. Opamp çıkışa bağlı led her bir nabız atışında yanıp sönmektedir. Sinyal işleme devresinin çıkışı 16F877A mikroişlemcisine bağlanmıştır. Devrenin, kontrol ve gösterge kısmında ise pic 16 serisi 16F877A mikro işlemci ve 2x16 lcd ekran kullanılmıştır. Nabzı ölçmek için parmak ledlerin üzerine koyulur ve başlama düğmesine basılır. Düğmeye basıldıktan sonra mikro işlemci RA3 pinine bağlı transistör yardımıyla IR led’i 15 saniye boyunca aktive eder. Bu süre boyunca işlemcinin T0CKI pinine gelen sinyaller sayılır. Gerçek nabız bu darbe sayısının 4 katıdır. Bu sebeple nabız sayısı çözünürlüğü 4’tür. Mikroişlemci 4 MHz harici kristal ile çalışmaktadır. Besleme kısmında L7805 regülatör entegresi kullanılmıştır. Buraya 9-12 volt dc giriş yapılmakta ve çıkıştan dc 5 volt alınmaktadır. Devredeki bütün beslemelerde bu 5 volt kullanılmıştır. Mikroişlemci ve yazılım Hazırlanan devrede microchip firmasına ait 16F ailesinden 18F877A mikro denetleyicisi kullanılmıştır. 16F877A; 8K flash, 256 Byte Eeprom, 8 kanal 10 bit çözünürlükte ADC, Capture and compare, Pwm, Usart, 40 pin I/O gibi yüksek özelliklere sahip bir mikro işlemcidir. İşlemcinin çalışma frekansı 13 ve 14 nolu pinine bağlı 4 MHz’lik harici kristal ile sağlanmaktadır. Datasheet’inde önerildiği gibi kristal 22 pF’lık seri kapasitörlere bağlanmıştır. Entegrenin besleme bacakları 11-12-31 ve 32. bacaklardan sağlanmıştır. Devre besleme girişindeki 100uF ve 10uF kapasitörler ile parazitler filtrelenmiştir. İşlemci yazılımı için micro C for pic derleyicisi kullanılmıştır. MikroC for pic derleyicisi kullanılan kütüphaneleri otomatik olarak eklediği için program içinde herhangi bir kütüphane eklenmesine gerek kalmamıştır. Öncelikle işlemci config ayarları düzenlenmiştir. Programın özelliklerine bağlı olarak: HS Oscillator, Oscillator Frequency= 4 MHz, Fail-Safe Clock Monitör=disabled, Brown Out Reset=disabled, Watchdog Timer=disabled, gibi sigorta ayarları düzenlenmiştir. Program akışında öncelikle lcd pin giriş çıkışları ve kullanılacak değişkenler tanımlanmıştır. sbit LCD_RS at RC7_bit; sbit LCD_EN at RC6_bit; sbit LCD_D4 at RC5_bit; sbit LCD_D5 at RC4_bit; sbit LCD_D6 at RC3_bit; sbit LCD_D7 at RC2_bit; sbit LCD_RS_Direction at TRISC7_bit; sbit LCD_EN_Direction at TRISC6_bit; sbit LCD_D4_Direction at TRISC5_bit; sbit LCD_D5_Direction at TRISC4_bit; sbit LCD_D6_Direction at TRISC3_bit; sbit LCD_D7_Direction at TRISC2_bit; sbit IR_Tx at RA3_bit; sbit start at RA0_bit; unsigned short pulse, pulsecount; char *bpm ="000"; Kullanılan 2x16 Lcd 4 veri yolu üzerinden pic ile haberleşmektedir. Bu pinler D4,D5,D6 veD7 olarak tanımlanmışlardır. Ayrıca gerekli olan “En” ve “Rs” pin tanımlaması da yapılmıştır. Ardından “Countpulse” adında bir alt program tanımlanmıştır. void countpulse() { IR_Tx = 1; Delay_ms(300); TMR0 = 0x0; Delay_ms(15000); IR_Tx = 0; pulsecount = TMR0; pulse = pulsecount*4; bpm[0] = (pulse/100)%10+ 48; bpm[1] = (pulse/10)%10 + 48; bpm[2] = pulse%10 + 48; Lcd_Cmd(_LCD_CLEAR); Lcd_Out(1, 1, "NABIZ="); Lcd_Out(1, 7, bpm); } Bu alt programda öncelikle IR_Tx = 1; komutuyla RA3 pinine bağlı transistör üzerinden IR led aktive edilmiştir. Ardından timer0 sayacı sıfırlanmıştır. Bu sayaç, işlemci çalışmaya başladığı anda saymaya başlayan ve taşma yaşadıktan sonra tekrar sıfıra dönen bir sayaçtır. Timer o değişkeni dışarıdan bir clock puls’i ile veya içeriden çalışma frenkansına bağlı olarak iki şekilde de arttırılabilir. Biz devremizi bir sayaç olarak kullanacağımız için Timer0 sayacını T0CKI pini yardımıyla arttıracağız. Bu pin, yapılan ayara göre, düşen kenar veya yükselen kenar yakaladığında timer0’ı bir sayı arttırır. Biz ayarlarımızda yükselen kenarı seçtik. Yani pine gelen voltaj 0’dan 5’e her çıktığında timer0 bir artacaktır. 16f877A mikro denetleyicisinde timer değeri TMRO adı altında 8 bitlik register’a kaydedilmektedir.. Ardından Delay_ms(15000); komutu ile program 15 saniyelik bir bekleme durumuna sokulmuştur. Bu esnada T0CKI pini gelen darbeler saymakta ve TMR0 sayacına yazmaktadır. ardından IR_Tx = 0; komutu ile IR Led kapatılmıştır. Buradaki amaç bu led’in sadece ölçüm yapıldığı anda çalışmasını sağlayarak enerji tasarrufu sağlamaktır. pulsecount = TMR0; ile TMR0 sayacındaki değer pulsecount değişkenine yazılmış ve pulse = pulsecount*4; komutu ile de bulunan değer 4 ile çarpılarak dakikadaki kalp atış değeri bulunarak bu değer pulse değişkenine yazılmıştır. Bir sonraki adımda da pulse değişkenini ekrana yazdırabilmek için birler, onlar ve yüzler basamağı bulunmuş ve char formatında olan bpm değişkeni sayesinde ekrana yazdırılmıştır. bpm[0] = (pulse/100)%10+ 48; bpm[1] = (pulse/10)%10 + 48; bpm[2] = pulse%10 + 48; Lcd_Cmd(_LCD_CLEAR); Lcd_Out(1, 1, "NABIZ="); Lcd_Out(1, 7, bpm); Programın main kısmı ise aşağıdaki gibidir: void main() { ADCON1= 0x0F; TRISA = 0b00010001; PORTA = 0; OPTION_REG.T0CS=1; OPTION_REG.T0SE=1; // Set Clock source to external TOCKI OPTION_REG.PSA=1; // No Pre-scalar INTCON.GIE=1; // Enable Interrupts INTCON.PEIE=1; INTCON.T0IE=1; // Enable Interrupt INTCON.T0IF=0; // Clear T0 Interrupt flag pulse=0; Lcd_Init(); Lcd_Cmd(_LCD_CLEAR); Lcd_Cmd(_LCD_CURSOR_OFF); Lcd_Out(1,1,"Cihaz Hazir"); Delay_ms(300); do { if(start) {Delay_ms(100); Lcd_Cmd(_LCD_CLEAR); Lcd_Out(1, 1, "Lutfen bekleyin"); countpulse();} } while(1); } Main kısmında port giriş çıkışları tanımlanmış, timer0 kesmesi ayarları yapılmış ve lcd aktif edilerek ekrana “Cihaz Hazır” yazdırılmıştır. Ardından program sonsuz döngüye girmiş ve RA0 pinene bağlı butondan komut beklemektedir. Bu pine High sinyali geldiğinde program ekrana “Lüften Bekleyiniz” yazıp countpulse alt programına dallanmaktadır. Özetlemek gerekirse program düğmeye basıldıktan sonra IR Led’i aktif edip 15 saniye boyunca beklemekte ve bu süreçte T0CKI pinine gelen darbeleri saymaktadır. Daha sonra bu darbeleri 4 ile çarparak dakikadaki atış sayısını bularak bu değeri ekrana yazmaktadır. Devrenin gerçekleştirilmesi Devrenin prensip şeması İsis programı kullanılarak hazırlanmış ve bilgisayar ortamında simüle edilerek kontrol edilmiştir Ardından devrenin baskı şeması Ares programı ile hazırlanmıştır. Eleman yerleşimi ve baskı yolları aşağıdaki gibidir. Devrede kullanılan malzeme listesi şu şekildedir: Direnç Adet 1 1 1 2 2 2 1 1 Kodu R1 R2 R3 R4,R7 R5,R8 R6,R9 R10 R11 Değeri 1k 68R 33k 68k 680k 6k8 470R 10k Kapasitör 2 2 2 1 1 C1,C3 C2,C4 C5,C6 C7 C8 1u 100n 22p 100u 10u Adet Kodu Değeri Entegre 1 1 1 U1 U2 U3 LM358 PIC16f877A 78L05 Transitör 1 Q1 BC546 1 1 1 1 D1 D2 D3 D4 INFRARED TX INFRARED RX (SP 215) LED 1N4148 1 1 2 1 1 BUTTON LCD RV1,RV2 VIN X1 Buton 2x16 LCD 5k Trimpot 0 No Klemens 4 MHz Kristal Diyot Çeşitli Baskı devre hazırlandıktan sonra devrenin gerçekleştirilmesi için transfer yöntemi uygulanmıştır. Devre yolları lazer printer ile kuşe kağıda yazılmış ve kağıt üzerindeki toner, ütü ile bakır plakete transfer edilmiştir. Ardından Hidrojen peroksit ve Hidroklorik Asit çözeltisinde 1 dakika kadar eritilmiş, böylelikle toner kaplı olmayan bakır erimiş ve geriye sadece baskı yollar kalmıştır. Devre su ile yıkandıktan sonra devre yolları üzerinde kalan toner, aseton ile silinmiş, daha sonra da el matkabı ile delikler açılarak elemanlar yerleştirilip lehimlenmiştir.