T.C. KARADENİZ TEKNİK ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ TEK RENK GRAFİK LCD İLE OYUN UYGULAMASI BİTİRME ÇALIŞMASI Hazırlayanlar: Cüneyt BAŞAR 179947 Emre DEMİRKAPI 179953 Canan GÜLER 196151 BAHAR 2011 TRABZON
T.C. KARADENİZ TEKNİK ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ TEK RENK GRAFİK LCD İLE OYUN UYGULAMASI BİTİRME ÇALIŞMASI Hazırlayanlar: Cüneyt BAŞAR 179947 Emre DEMİRKAPI 179953 Canan GÜLER 196151 Tez Danışmanı: Öğr. Gör. Oğuzhan ÇAKIR BAHAR 2011 TRABZON
ÖNSÖZ Bu çalışmada PIC16F877A ve grafik LCD kullanılarak bir oyun uygulaması gerçekleştirilmiştir. Oyun konsollarında ve bilgisayarlarda kullanıcılar tarafından beğenilen bir oyun olan tuğla kırma oyunu mikrodenetleyici ile yapılmıştır. Kullanılan ekran WinStar firmasının tek renk 128x64 piksel bir sıvı kristal ekranıdır. Çalışmalarımız boyunca bize değerli zamanını ayıran ve verdiği fikirler ile bizi yönlendiren hocamız Sayın Öğr. Gör. Oğuzhan ÇAKIR a teşekkür ederiz. Ayrıca hayatımız boyunca her türlü maddi ve manevi desteklerini hiçbir zaman esirgemeyen ailelerimize şükranlarımızı sunarız. Cüneyt BAŞAR, Emre DEMİRKAPI, Canan GÜLER Trabzon, 2011 II
İÇİNDEKİLER Sayfa No ÖNSÖZ.. II İÇİNDEKİLER.. III ÖZET. IV ŞEKİLLER DİZİNİ... V TABLOLAR DİZİNİ. VI SEMBOLLER DİZİNİ.. VII 1. GENEL BİLGİLER.. 1 1.1. GİRİŞ...... 1 1.2. PIC16F877A MİKRODENETLEYİCİSİ. 1 1.3. MPLAB EDİTÖRÜ.. 2 1.4. Hİ-TECH PICC DERLEYİSİCİ... 2 1.5. EAGLE ÇİZİM PROGRAMI... 2 1.6. 7805 ENTEGRESİ... 2 1.7. GRAFİK LCD... 3 2. YAPILAN ÇALIŞMALAR, BULGULAR VE TARTIŞMA.. 4 2.1. İŞ PLANI.. 4 2.2. GİRİŞ.... 4 2.3. DONANIM... 5 2.4. YAZILIM. 7 3. SONUÇLAR.. 18 4. ÖNERİLER... 19 5. KAYNAKLAR.. 20 6. ÖZGEÇMİŞ... 21 III
ÖZET Günümüzde oyun sektörü çok büyük bir pazar haline gelmiştir. Başlangıçta oldukça basit bir yapıya sahip olan oyun konsolları büyük bir değişim göstererek, gelişmiş bilgisayarların önüne geçmiştir. Yeni nesil oyun konsolları, yüksek işlem güçleri ile en karmaşık oyunların bile rahatlıkla çalıştırabilen, müzik-film oynatabilen ve internet erişimi sağlayabilen sistemler haline gelmiştir. Bu çalışmada MicroChip firmasının 16 serisi PIC16F877A denetleyicisi ile basit bir oyun konsolu geliştirilmiştir. WinStar firmasının 128x64 piksel çözünürlüğündeki tek renk grafik LCD si konsol ekranı olarak kullanılmıştır. Gerek oyun programının yazılması, gerekse grafik LCD kontrolü karmaşık bir işlem olduğu için programlamada ASM dili yerine C dili kullanılmıştır. Derleyici olarak kolay kullanımı, yaygınlığı ve kapsamlı deneme sürümü nedeniyle HiTech firmasının PICC editörü tercih edilmiştir. Konsol için büyük beğeni toplayan tuğla kırma oyunu yedi seviyeli olarak geliştirilmiştir. Anahtar Kelimeler: Sanal Ekran, Mikrodenetleyiciler, Havada Kayan Yazı, Kontrast Sensoru IV
ŞEKİLLER DİZİNİ Sayfa No Şekil 1. Donanımın şematik diyagramı. 5 Şekil 2. Donanımın baskı devre çizimi. 6 Şekil 3. Oyun konsolu... 6 Şekil 4. Ekran görüntüsü... 7 V
TABLOLAR DİZİNİ Sayfa No Tablo 1. İş planı.. 4 Tablo 2. Alt programlar.. 7 VI
SEMBOLLER DİZİNİ EPROM EEPROM PIC POR PWT SLEEP Xtal V WDT : Elektrikle programlanabilir rastgele okunur bellek : Elektrikle silinebilir programlanabilir rastgele okunur bellek : Çevresel arayüz denetleyici : Enerji reseti : Enerji açık amanlayıcısı : Uyku modu : Kristal : Volt : Bekçi köpek zamanlayıcısı VII
1 1. GENEL BİLGİLER 1.1. GİRİŞ Elektronik sistemlerin sürekli gelişmesiyle, her geçen yıl yeni oyunlar piyasaya sürülmektedir. Böylece oyun sektörü büyük bir pazar haline gelmiştir. Bu çalışmada tuğla kırma oyunu yazılmıştır. Oyun yedi seviyeli olarak geliştirilmiştir. Gerek oyun programının yazılması, gerekse grafik LCD kontrolü karmaşık bir işlem olduğu için programlamada C dili kullanılmıştır. Mikrodenetleyici olarak ise MicroChip firmasının 16 serisi PIC16F877A denetleyicisi kullanılmıştır. WinStar firmasının 128x64 piksel çözünürlüğündeki tek renk grafik LCD si konsol ekranı olarak kullanılmıştır. 1.2. PIC16F877A MİKRODENETLEYİCİSİ PIC 16F877 yüksek performanslı, CMOS, full-statik, 8 bit bir mikrodenetleyicidir. Tüm PIC 16/17 mikrodenetleyicileri gibi PIC 16F877 de RISC yapısı kullanmaktadır [1, 2, 3]. PIC16F87X mikroları birçok esas 8Kx14 word'luk flash program belleği vardır; 368x8 byte'lık data belleği; 256x8 byte'lık EEPROM data belleği; PIC16C73B/74B/76/77 ile uyumlu pin yapısı; Doğrudan ve dolaylı adresleme; Power-on Reset (POR), Power-up Timer (PWRT), üzerinde bulanan RC osilatör ile çalışan Watchdog Timer (WDT); Programlanabilen kod koruma; Enerji tasarrufu için uyku (SLEEP) modu; Düşük güçlü yüksek hızlı CMOSFLASH/EEPROM teknolojisi; Bütünüyle statik dizayn; Devre üstünde seri programlama; 5 V'luk kaynak ile çalışması; 2 V ile 5.5 V arasında işlem yapabilmesi;
2 Düşük güç harcaması 1.3. MPLAB EDİTÖRÜ Microchip in ürettiği özel bir yazılım olan MPLAB da Mikroişlemci için yazdığımız assembler kodların doğru çalışıp çalışmadığını anlamanın iki yolu vardır. Bu yollar; 1. Kodları mikroişlemciye yükleyip gerçek ortamda denemek, 2. MPLAB gibi yazılımlar ile simüle etmek. 1.4. Hİ-TECH PICC DERLEYİCİSİ Hi-Tech Picc Microchip firmasının üretiği PIC serisi uc için Ansi-C standartlarına uygun bir C derleyicisidir. Hi-Tech farklı PIC serileri için değişik C derleyicisine sahiptir. PIC10, PIC12 ve PIC16 serisi için PICC derleyicisini içermektedir. PIC18 serisi için PICC-18 derleyicisi var. Ayrıca 16 bit ve 32 PIC ler için birer derleyicisi mevcuttur. Hi- Tech sadece Microchip firmasının sadece uc leri için C derleyisine sahip değil, aynı zamanda diğer uc üreticisin üretiği chip ler içinde C derleyicisine sahiptir. Windows, Mac ve Linux sürümleri içinde derleyicileri mevcuttur [4]. 1.5. EAGLE ÇİZİM PROGRAMI Eagle, grafik ara yüzlü, kullanımı kolay, güçlü bir baskı devre kartı tasarım aracıdır. Eagleadını Easy Applicable Graphical Layout Editor kelimelerinin baş harflerinden alır ve anlam olarak ise kolay uygulanabilir grafiksel çizim editörü olarak tanımlanabilir [5]. 1.6. 7805 ENTEGRESİ Regülâtörler, bir sistemde akımı, gerilimi, frekansı, hızı, basıncı, debiyi vb. belli bir düzeyde tutmaya yarayan düzenleyici aygıtlardır. Kullanıldıkları yere göre Voltaj Regülâtörleri, elektronik devreler aracılığıyla, duyarlı aletlere sabit bir gerilim sağlayan elektrikli araçlardır ve değişik yapıda olurlar [6].
3 78 kodlu entegrelerin özelliği çıkışını üzerinde yazan son 2 basamak rakam değerine sabit tutmasıdır. Örneğin 78xx yerine 7808 olursa 8 volt çıkışlı 7812 olursa 12 volt çıkışlı bir malzemeden bahsediyor oluruz. 7805 ise 5 voltta gerilimi sabit tutar. 78 serisi entegrelerin örneğin 7805 in giriş voltajı çıkış voltajından bir kaç volt fazla tutulmalıdır. Giriş voltajı çıkış voltajının %60 dan fazla olmamalıdır. 78 serisi entegrelerin çıkış amper kapasitesi 1 amperdir. 500 mili amper üzerinde soğutucu ile soğutulması gerekebilir. 1.7. GRAFİK LCD Bu çalışmada WinStar firmasının tek renk grafik sıvı kristal ekranı kullanılmıştır. Ekran çözünürlüğü 128x64 pikseldir. Ekran veri ve kontrol uçları ile denetlenmektedir [7].
4 2. YAPILAN ÇALIŞMALAR, BULGULAR VE TARTIŞMA 2.1. İŞ PLANI Hazırlamış olduğumuz bu bitirme çalışması Tablo 1 de verilen iş planı çerçevesinde gerçekleştirilmiştir. İş planının düzenlenmesinde çalışmanın tüm döneme yayılması ve her hafta tez danışmanının denetiminde çalışmanın sürdürülmesi amaçlanmıştır. Tablo 1. İş planı Tarih Çalışma 02.02.2011 Konunun belirlenmesi. 09.02.2011 İş planının hazırlanması. 16.02.2011 Sistemin blok diyagramının hazırlanması. 23.02.2011 Gerekli malzemelerin tespiti. 02.03.2011 Gerekli malzemelerin temini. 09.03.2011 Şematik diyagramın çizilmesi. 16.03.2011 Baskı devre şemasının çizilmesi. 23.03.2011 Baskı devre üretimi. 06.04.2011 Malzemelerin montajı. 13.04.2011 Donanımın test edilmesi. 20.04.2011 Yazılımın hazırlanması. 27.04.2011 Sistemin test edilmesi. 04.05.2011 Bitirme kitapçığının hazırlanması. 11.05.2011 Bitirme kitapçığının kontrolü. 2.2. GİRİŞ Bu çalışmada, PIC16F877A denetleyicisi ve grafik LCD kullanılarak basit bir oyu konsolu geliştirilmiştir. Konsol donanım ve yazılım olmak üzere iki temel kısımdan oluşmaktadır.
5 2.3. DONANIM Denetleyici, grafik LCD, gerilim regülatörü, anahtarlar ve çevre elemanlardan oluşmaktadır. Donanımın şematik (Şekil 1) ve baskı devre çizimi (Şekil 2) Eagle v5.11 programı ile hazırlanmıştır. Sistemin genele görünümü Şekil 3 te verilmiştir. Şekil 1. Donanımın şematik diyagramı
6 Şekil 2. Donanımın baskı devre çizimi Şekil 3. Oyun konsolu
7 2.4. YAZILIM Konsol yazılımı PIC C dili kullanılarak geliştirilmiştir. Grafik LCD kontrolü ve oyun kontrolü işlevlerini yerine getirmektedir. Tablo 2 de yazılımda kullanılan alt programlar görülmektedir. Ekran görüntüsü Şekil 4 reki gibidir. Tablo 2. Alt programlar void Init(void) void LCDAc(void) void LCDKapat(void) void AdresXSol(unsigned char ucxsol) void AdresXSag(unsigned char ucxsag) void AdresYSol(unsigned char ucysol) void AdresYSag(unsigned char ucysag) void AdresZSol(unsigned char uczsol) void AdresZSag(unsigned char uczsol) void VeriYazSol(unsigned char ucveri) void VeriYazSag(unsigned char ucveri) void EkraniTemizle(unsigned char ucbolge) void ArkaPlan(void) void HucreSil(unsigned char ucx, unsigned char ucy) void TuglaCiz(unsigned char ucx, unsigned char ucy) void PadCiz(unsigned char ucx, unsigned char ucy) void TopCiz(unsigned char ucx, unsigned char ucy) void KarakterSol(unsigned char ucxsol, unsigned char ucysol, unsigned char ucsembol) void KarakterSag(unsigned char ucxsag, unsigned char ucysag, unsigned char ucsembol) Şekil 4. Ekran görüntüsü
8 // ANA PROGRAM /////////////////////////////////////////////////////////// void main(void) // 1 saniye bekle DelayMs(250); Init(); // Oyun başladı ucoyun = 2; // Programın ana döngüsü ============================================= while(1) // Yeni turu başlat ----------------------------------------------- if ( ucoyun == 2 ) // Saati sıfırla uiclk = 0; // Tuğla sayısını sıfırla ucts = 0; // Oyun seviyesini belirle ucseviye -= 15; tx = 6; ty = 7; tx0 = tx; ty0 = ty; tax = -1; tay = -1; // Top px = 7; py = 6; // Pad // Tuğlaları diziye yükle ---------------------------------------- // Diziyi temizle for ( i = 0; i < 4; i++ ) for ( j = 0; j < 16; j++ ) ucth[i][j] = 0;
9 // Tuğlaları diz for ( i = 1; i < 4; i++ ) for ( j = 1; j < 15; j++ ) ucth[i][j] = 1; // Ekranı temizle EkraniTemizle(0X03); // Arkaplanı çiz ArkaPlan(); // Oyunu başlat ucoyun = 1; // Bekle DelayMs(250); DelayMs(250); // Oyun döngüsü ---------------------------------------------------- while ( ucoyun == 1 ) // Saati arttır uiclk++; // Anahtarları test et ------------------------------------------- // Sol anahtarı -------------------------------------------------- if ( SOL == 0 && py > 0 && uiclk%10 == 0) // y kordinatını güncelle py--; // Topu taşı if ( ty >= py && ty <= py+3 && tx == 6 ) ty0 = ty; ty--; TopCiz(6, ty); HucreSil(6, ty0);
10 // Padi çiz PadCiz(px, py); HucreSil(px, py + 4); // Sağ anahtarı -------------------------------------------------- if ( SAG == 0 && py < 12 && uiclk%10 == 0) // y kordinatını güncelle py++; // Topu taşı if ( ty >= py && ty <= py+3 && tx == 6) ty0 = ty; ty++; TopCiz(6, ty); HucreSil(6, ty0); // Padi çiz PadCiz(px, py + 3); HucreSil(px, py - 1); // Topu hareketlendir -------------------------------------------- if (uiclk%ucseviye == 0) // Topun kordinatlarnı güncelle ------------------------------- tx0 = tx; ty0 = ty; tx += tax; ty += tay; // Topun hareketini belirle ----------------------------------- // Kenarlardan yansıt------------------------------------------ if ( tx < 2 ) tax = 1; if ( ty < 1 ) tay = 1; if ( ty > 14 ) tay = -1;
11 // Padden yansıt ---------------------------------------------- // Aşağı if ( tax == 1 && tx == 6) if ( tay == 1 ) // Sağ if ( ty >= py-1 && ty <= py + 3 ) // Padden yansıt if ( ty == py - 1 ) tax = -1; tay = -1; else tax = -1; tay = 1; else ucoyun = 0; else // Sol if ( ty >= py && ty <= py + 4 ) // Padden yansıt if ( ty == py + 4) tax = -1; tay = 1; else tax = -1; tay = -1; else ucoyun = 0; // Topu çiz ---------------------------------------------------
12 TopCiz(tx, ty); HucreSil(tx0, ty0); // Tuğla dizisini ve puanı güncelle --------------------------- if ( tx < 4 ) if ( ucth[tx][ty] == 1 ) ucth[tx][ty] = 0; // Puanı güncelle ------------------------------------- uipuan += (105 - ucseviye) / 15; KarakterSag(0,46,uiPuan / 100); KarakterSag(0,52,(uiPuan / 10) % 10); KarakterSag(0,58,uiPuan % 10); // Tuğla sayısını arttır ucts++; // Tur bitti mi? if ( ucts == 42 ) ucoyun = 2; DelayMs(2); // Oyun Bitti ------------------------------------------------------ if (ucoyun == 0) tx0 = tx; ty0 = ty; tx += tax; ty += tay; TopCiz(tx, ty); HucreSil(tx0, ty0); KarakterSol(5,34,S_O); KarakterSol(5,40,S_Y); KarakterSol(5,46,S_U);
13 KarakterSol(5,52,S_N); KarakterSag(5, 0,S_B); KarakterSag(5, 6,S_II); KarakterSag(5,12,S_T); KarakterSag(5,18,S_T); KarakterSag(5,24,S_II); KarakterSag(5,30,S_NOKTA); // Bekle while(1) // BAŞLANGIÇ DEĞERLERİ ///////////////////////////////////////////////// void Init(void) // Portların verilerini belirle PORTA = 0x00; // A portunun içeriğini temizle PORTB = 0x00; // B portunun içeriğini temizle PORTC = 0x00; // C portunun içeriğini temizle PORTD = 0x00; // D portunun içeriğini temizle PORTE = 0x00; // E portunun içeriğini temizle // Portların yönlerini ayarla ADCON1 = 0x06; // A ve E portu sayısal I/O yapıldı TRISA = 0b00000000; // A portu çıkış TRISB = 0b00000000; // B portu çıkış TRISC = 0b00001111; // C0..3 giriş C4..7 çıkış TRISD = 0b00000000; // D portu çıkış TRISE = 0b00000000; // E portu çıkış // LCD'yi ayarla LCD_E = 1; LCD_RW = 0; LCD_CS1 = 1; LCD_CS2 = 1; // LCD aktif // LCD yazma modunda // Sol taraf kapalı // Sağ taraf kapalı // Ekranı temizle
14 EkraniTemizle(0X03); // LCDyi aç LCDAc(); // Arka aydınlatmayı aç LCD_BL = 1; // Başlangıç değerleri tx = 6; // Top ty = 7; tx0 = tx; ty0 = ty; tax = -1; tay = -1; px = 7; py = 6; // Pad ucseviye = 105; uipuan = 0; // ARKA PLAN //////////////////////////////////////////////////////////// void ArkaPlan(void) // uc unsigned char i; // Sayaç unsigned char j; // Sayaç // Yazıları Yaz ------------------------------------------------------ KarakterSol(0, 0,S_S); KarakterSol(0, 6,S_E); KarakterSol(0,12,S_V); KarakterSol(0,18,S_II); KarakterSol(0,24,S_Y); KarakterSol(0,30,S_E); KarakterSol(0,36,S_IKIN); KarakterSol(0,48,(105 - ucseviye) / 15);
15 KarakterSag(0,10,S_P); KarakterSag(0,16,S_U); KarakterSag(0,22,S_A); KarakterSag(0,28,S_N); KarakterSag(0,34,S_IKIN); KarakterSag(0,46,uiPuan / 100); KarakterSag(0,52,(uiPuan / 10) % 10); KarakterSag(0,58,uiPuan % 10); // Tuğlaları Çiz ----------------------------------------------------- for ( i = 1; i < 4; i++ ) for ( j = 1; j < 15; j++ ) TuglaCiz(i, j); // Pedi çiz ---------------------------------------------------------- for ( j = 6; j < 10; j++ ) PadCiz(7, j); // Topu çiz ---------------------------------------------------------- TopCiz(6, 7); // HÜCRE SİL //////////////////////////////////////////////////////////// void HucreSil(unsigned char ucx, unsigned char ucy) // uc unsigned char i; // Sayaç if ( ucy < 8 ) AdresXSol(ucX); AdresYSol(ucY*8); for ( i = 0; i < 8; i++ ) VeriYazSol(0X00); else AdresXSag(ucX); AdresYSag(ucY*8); for ( i = 0; i < 8; i++ ) VeriYazSag(0X00);
16 // TUĞLA ÇİZ //////////////////////////////////////////////////////////// void TuglaCiz(unsigned char ucx, unsigned char ucy) // uc unsigned char i; // Sayaç if ( ucy < 8 ) AdresXSol(ucX); AdresYSol(ucY*8); for ( i = 0; i < 8; i++ ) VeriYazSol(TUGLA[i]); else AdresXSag(ucX); AdresYSag(ucY*8); for ( i = 0; i < 8; i++ ) VeriYazSag(TUGLA[i]); // PAD ÇİZ ////////////////////////////////////////////////////////////// void PadCiz(unsigned char ucx, unsigned char ucy) // uc unsigned char i; // Sayaç if ( ucy < 8 ) AdresXSol(ucX); AdresYSol(ucY*8); for ( i = 0; i < 8; i++ ) VeriYazSol(PAD[i]); else AdresXSag(ucX);
17 AdresYSag(ucY*8); for ( i = 0; i < 8; i++ ) VeriYazSag(PAD[i]); // TOP ÇİZ ////////////////////////////////////////////////////////////// void TopCiz(unsigned char ucx, unsigned char ucy) // uc unsigned char i; // Sayaç if ( ucy < 8 ) AdresXSol(ucX); AdresYSol(ucY*8); for ( i = 0; i < 8; i++ ) VeriYazSol(TOP[i]); else AdresXSag(ucX); AdresYSag(ucY*8); for ( i = 0; i < 8; i++ ) VeriYazSag(TOP[i]);
3. SONUÇLAR Bu çalışmada, mikrodenetleyici kontrollü bir oyun konsolu gerçekleştrilmiştir. 1. Sistem için gerekli olan malzemeler tespit ve temin edilmiştir. 2. Oyun programı Hi-Tech firmasının C derleyicisi kullanılarak hazırlanmıştır. 3. Tuğla kırma oyunumuz 7 ( yedi ) seviye olarak tasarlanmıştır ve her seviyede oyun hızı artmaktadır. 4. Oyun esnasında ve sonunda oyun puanını görebilmekteyiz, ayrıca oyun seviyesi arttıkça tuğla başına puanda artmaktadır.
4. ÖNERİLER 1. Ekran çözünürlüğü arttırılabilir. 2. Oyun konsoluna ses eklenebilir. 3. Renkli grafik LCD kullanılabilir. 4. Oyun seviyeleri farklı tasarlanabilir.
5. KAYNAKLAR [1] Altınbaşak, Orhan, Mikrodenetleyiciler PIC Programlama, İstanbul, 2008. [2] İbrahim, Doğan, PIC C ile ses projeleri, İstanbul, 1999. [3] Microchip Technology Incorporated., PIC16F87X Data Sheet 28/40-Pin 8-Bit CMOS FLASH Microcontrollers, USA, 2001. [4] Microchip Technology Inc., Getting Started with the HI-TECH C Compiler for IC10/12/16 MCUs, Microchip PICDEMTM 2 PLUS Board and MPLABR ICD 2, Australia, 2010. [5] CadSoft Computer, EAGLE EASILY APPLICABLE GRAPHICAL LAYOUT EDITOR Tutorial Version 5, 7th Edition, USA, 2010. [6] Fairchild Semiconductor Corporation, LM78XX/LM78XXA 3-Terminal 1A Positive Voltage Regulator, USA, 2010. [7] Winstar Display Co. Ltd., WG12864D 128x64dots, Taiwan, 2011.
6. ÖZGEÇMİŞ Cüneyt BAŞAR 1987 de Trabzon da doğdu. İlköğrenimini Fatih İlkokulu ve orta öğrenimini Cumhuriyet Ortaokulu nda, lise öğrenimini Trabzon Lisesi nde yaptı. 2006 yılında Karadeniz Teknik Üniversitesi, Mühendislik Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü nde Lisans Programı na başladı. Yabancı dil olarak İngilizce bilmektedir. Emre DEMİRKAPI 1988 de Konya da doğdu. İlk öğrenimini Öğretmen Abdurrahim İlköğretim Okulun nda, ve lise öğrenimini Atatürk Lisesi nde yaptı. 2006 yılında Karadeniz Teknik Üniversitesi, Mühendislik Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü nde Lisans Programı na başladı. Yabancı dil olarak İngilizce bilmektedir. Canan GÜLER 1989 de Erzurum da doğdu. İlk öğrenimini Ankara Batıkent İlköğretim Okulun nda, ve lise öğrenimini Süleyman Demirel Anadolu Lisesi nde yaptı. 2007 yılında Karadeniz Teknik Üniversitesi, Mühendislik Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü nde Lisans Programı na başladı. Yabancı dil olarak İngilizce bilmektedir.