
2.Yapılış Süreci
Bu çalışmada, android işletim sistemine sahip cihazların(mobil, tablet vb.) bluetooth 2.0 haberleşme teknolojisi özelliği ile dc motorların devir ve yön kontrolü gerçekleştirilmiştir. Bu kontrol kablosuz haberleşme olarak yapılmaktadır. Kablosuz haberleşme RF(Radyo Frekansı) haberleşme yardımıyla da gerçekleştirilebilirdi ancak android cihazların günümüzde çok yaygın olarak kullanılması bu çalışmamıza yön vermiştir. Bluetooth haberleşmenin dezavantajı ise RF haberleşme kadar uzak mesafeleri desteklememesidir. RF haberleşmenin dezavantajı da güvenlik yönünden sıkıntılı olmasıdır. Bunu şöyle açıklayabiliriz; android cihaz ile sistem arasında bluetooth bağlantısı kurmak için eşleştirme şifresi adını verdiğimiz şifrenin kullanıcı tarafından bilinmesi gereklidir. Kullanıcı eğer bu şifreyi bilmez ise sistemi kontrol edemez. RF haberleşmede bu durum sıkıntı oluşturabilir ve sistemi kullanıcıdan başka kişilerde kontrol edebilir. Çalışmalarımız sonucunda android cihazların bluetooth bağlantısı özelliği ile dc motorun devir ve yön kontrolü başarılı bir şekilde gerçekleştirilmiştir.
Sistemimiz, kontrol görevini üstlenen PIC16F877A mikrodenetleyicisi, haberleşme görevini üstlenen HC-06 bluetooth modül kartı ve motorumuzun yön ve devir kontrolünü gerçekleştiren iki sürücü devresinden oluşmaktadır.Sistemimizin blok diyagramı gösterilmektedir. (Şekil 1)
Mikrodenetleyici ile android cihaz bluetooth modül kartı aracılığıyla haberleşmektedir. Android cihaza yazılan arayüz uygulaması sayesinde motor kontrolü için gerekli olan bilgi android cihazdan bluetooth modül kartına gönderilmektedir. Bluetooth modül kartı ise bu veriyi mikrodenetleyiciyle uygun devre bağlantıları yapılmak suretiyle gönderir. Mikrodenetleyici, gelen bilgiyi yazılımsal olarak değerlendirerek sürücü devrelerine lojik veriler gönderir.
Mikrodenetleyici yazılım dili olarak Assembly dili kullanılmıştır. Kullanılan assembly dili sayesinde mikrodenetleyici donanımı üzerinde tam hâkimiyet sağlanmakta ve kodlar daha verimli bir şekilde çalışmaktadır.Sistemimizin kontrol görevini üstlenen PIC16F877A mikrodenetleyicisi çeşitli donanım birimlerinden oluşmaktadır. Biz bu donanım birimlerinden CCP(Capture/ Compare / PWM (Pulse Width Modulation) - Yakalama/ Karşılaştırma/ Darbe Genişliği Modülasyon Tekniği) donanım birimi ve USART(Universal Synchronous/ Asynchronous Receiver/ Transmitter – Evrensel Senkron/ Asenkron Alıcı/ Verici ) donanım birimini kullanarak yazılımı tamamlamış olduk. Dc motorlarda mikrodenetleyiciden yollanan PWM sinyalinin Duty Cycle(İş Süresi) değerine bağlı olarak motorun devri ayarlanabilir. Şekil 2’de çeşitli Duty Cycle değerlerine sahip PWM sinyallerinin grafiği gösterilmiştir.Duty Cycle değerinin ayarlanması yazılımsal olarak sağlanmaktadır. Bu ayarlama için PIC16F877A mikrodenetleyicisinin CCP donanım birimi PWM modunda kullanılmalıdır. Bu birim bize 10-bit çözünürlükte PWM sinyali üretir [1-3]. 10-bit çözünürlük bir periyodu 210=1024 eşit parçaya bölerek darbe süresini yazılımsal olarak daha hassas bir şekilde ayarlamamıza imkân sağlar. Bu üretilen PWM sinyali devir kontrolünü gerçekleştiren sürücü devresine gönderilir.
Bluetooth modülü ve PIC USART donanım birimi haberleşme protokolü olarak RS-232 seri haberleşme protokolünü kullanmaktadır. Bu sayede modül ve PIC arasında uyumlu bir iletişim gerçekleşmektedir. Bunun dışında seri iletişim asenkron modda yapılmaktadır. İletimin eş zamansız (asynchronous) olması nedeniyle gönderici ve alıcının koordine olması gerekmez. Gönderen birim belirli bir formatta hazırlanan veriyi hatta aktarır. Alıcı ise devamlı olarak hattı dinlemektedir, verinin gelişini bildiren işareti aldıktan sonra gelen veriyi toplar ve karakterleri oluşturur [1-2].
Bluetooth modülü olarak HC-06 bluetooth-serial modül kartı kullanılmıştır.Bluetooth 2.0’ı destekleyen bu kart, 2.4 GHz frekansında haberleşme yapılmasına imkan sağlayıp açık alanda yaklaşık 10 metrelik bir haberleşme mesafesine sahiptir. Bluetooth modülünün eşleştirme şifresi, görünür durumdaki ismi vb. ayarlar AT komutları adı verilen komutlar sayesinde değiştirilebilir. Önemli bir ayrıntı olarak besleme gerilimi 3.3V olmalıdır. Bu değerin üstü modüle zarar verebilir [4].
Şekil 3’de bluetooth modülü için gerekli olan ISIS şematik çizimi verilmiştir.
İki şematik çizimde de dikkat edilirse MAX-232 entegresi kullanılmıştır. TTL seviyede çalışan bir cihazın RS-232 portuna bağlanmasında ilk adım 0-5 Volt gerilim değerlerinin RS-232 seviyesine dönüştürülmesi olacaktır. Çok yaygın olarak kullanılan RS-232 seviye dönüştürücüsü olan MAX-232 entegresi çok kanallı sürücü entegresi olup, tek bir 5 Volt kaynak ile +10/ -10 Volt gerilim değerlerini üretebilmektedir. MAX-232 entegresi tiplerine göre harici olarak bağlanması gereken elektrolitik kondansatöre gereksinim duyar [1]. Şekil 5’de PIC tarafından gönderilen ya da alınan işaretlerin lojik seviyeleri görülmektedir [5].
Şekil 6’da ise PIC mikrodenetleyiciden gelen lojik seviyelerin MAX-232 entegresi ile RS-232 standardına dönüştürüldüğü görülmektedir [5].
PIC mikrodenetleyicisi ve HC-06 bluetooth modülü arasında iletişim kurabilmek için her iki devrede de MAX-232 entegresi kullanılmalıdır. Şekil 7’de seri portlar (male-erkek, female-dişi), HC-06 bluetooth modül kartı, MAX-232 entegreleri ve ona bağlı olan elektrolitik kondansatörler gösterilmektedir.
Android ile iletişim sağlayarak cihazların kontrol edilmesi günlük hayatta bize kolaylık sağlar. Android cihazlar ile yapılacak kablosuz haberleşme sayesinde örneğin evlerde, kamu binalarında, fabrikalarda vb. yerlerdeki cihazların kontrolü sağlanabilir.

2.1 Projede Kullanılan Mikrodenetleyici ve Bluetooth Haberleşme Devresi

1.Projeye Giriş
Android Cihazlar ile Dc Motorun Devir ve Yön Kontrolü Projesi**
Kaan KARAMANCI , Turan ÇAKIL , İbrahim EREN
Sayın Hocamız Yalçın ALBAYRAK' ın katkılarıyla...
Elektrik-Elektronik Mühendisliği Bölümü
Akdeniz Üniversitesi
Özet
Özet

Şekil 1

Şekil 2

Şekil 3
Şekil 4’de PIC mikrodenetleyicisi ve seri haberleşme için gerekli olan ISIS şematik çizimi verilmiştir.

Şekil 4

Şekil 5

Şekil 6

Şekil 7
Şekil 4’de üç tane led bulunmaktadır. Bu led’ler motorun açık/kapalı durumda olduğunu ve ileri(saat yönünde) veya geri(saat yönünün tersi) yönünde döndüğü hakkında kullanıcıya bilgi verir. PIC mikrodenetleyicisi aynı zamanda motorun hangi yönde döndüğü bilgisini HC-06 bluetooth modül kartı aracılığıyla android cihaza gönderir. Android cihazda gele bu veriyi yazılan arayüz uygulaması sayesinde ekranda gösterir. Sonuç olarak çift yönlü iletişim yapılmaktadır; android cihazdan PIC’e ve PIC’den android cihaza bilgi gönderilmektedir.
2.2 Motor Devir Kontrol Devresi
Şekil 8’de sistemimizde kullanılan motor devir kontrol devresinin ISIS şematik çizimi verilmiştir.

Şekil 8
Yükümüz olan 12 Volt dc motoru sürmek için bir anahtarlama elemanı olan IRF540N mosfeti kullanıldı. Bu mosfet drain-source arası 100 Volt bir gerilime ve 33 Amper drain akımına dayanabilmektedir. Mosfet anahtarlama için minimum 10 Volt gate gerilimine ihtiyaç duyar. Bu gerilimde Rds(on) direnci en küçüktür. Mikrodenetleyiciden alınan PWM çıkışının değeri 0 Volt ile 5 Volt arasında değerler aldığından bu gerilimle mosfeti anahtarlama elemanı olarak kullanmak mümkün değildir. Bu gerilimin yükseltilip mosfet’in gate bacağına uygulanması gerekir. Bunu ise bir mosfeti sürücü entegresi olan TLP250 optocoupler-optokuplör aracılığıyla yaparız [6-7]. Motor beslemesi olan 12 Volt’u aynı zamanda TLP250 beslemesi olarak kullanıldı. Şekil 9’da TLP250’nin doğruluk tablosu ve iç yapısı gösterilmektedir.TLP250’nin iç yapısında bulunan led’in akımı If olarak isimlendirilir ve değeri en fazla 20 mA olmalıdır. Daha yüksek akım değerleri led’in yanmasına ve entegrenin çalışmamasına neden olacaktır [7].

Şekil 9
2.3 Motor Yön Kontrol Devresi
Şekil 10'da sistemimizde kullanılan motor yön kontrol devresinin ISIS şematik çizimi verilmiştir.

Yön kontrolünü sağlayan sürücü devresinin yükü olan 12 Volt dc çift kontak röleyi sürmek için BC337 BJT transistör kullanılmıştır. BC337‘nin satürasyona girebilmesi gerekli base akımı, BC337’yi süren 4N35 optokuplör tarafından sağlanmaktadır [8]. Şematik çizimde 4N35’in girişi YON olarak adlandırdık ve bu girişe PIC mikrodenetleyicisi tarafından lojik 1 veya lojik 0 gönderilmektedir. Gelen lojik değere göre rölenin kontakları çekmektedir. Bu sayede motorun yönü değiştirilmektedir. Burada dikkat edilmesi gereken bir husus eğer motorun dönme yönü değiştirilecekse YON girişine lojik bilgiyi göndermeden önce motorun hızı sıfıra çekilir ve tam sıfır olduğunda YON ucuna lojik bilgi gönderilir, gelen lojik bilgi sonucunda röle kontaklarını çekerek motor tekrar eski devrine kavuşturulur. Bu işlem yazılımsal olarak PIC mikrodenetleyicisi tarafından gerçekleştirilmektedir. Şekil 10’da 4N35 optokuplörü ve pin bağlantıları gösterilmektedir [9].YON girişinden lojik 1 uygulandığında led diyot aktif olur ve 4N35 içindeki BJT transistör satürasyona girer, bu durum BC337 NPN transistöründe satürasyona girmesine neden olur. BC337’nin satürasyona girmesi ile röle uçlarına 12V dc etki ederek rölenin kontaklarını çekmesine sebep olur. Tam tersi durumda ise BC337 kesime girer yani kapanır. Bu durumda röle ters yönde kontaklarını çeker. 4N35’in iç yapısında bulunan led’in akımı aynı TLP250 sürücü entegresinde olduğu gibi değeri en fazla 20 mA olmalıdır.

Şekil 11
Şekil 10
2.4 Besleme Şemaları
Sistemin mikrodenetleyicili kısmı ile yük kısmı birbirinden optik izolatörler(optokuplör) vasıtasıyla yalıtılmıştır. Bu sayede yük kısmında oluşabilecek herhangi bir arızadan mikrodenetleyicimiz ve çevre donanımlarımız hiçbir zarar görmez. Yük kısmı ile mikrodenetleyici kısmı arasında elektriksel bağlantı olmadığı için mikrodenetleyici beslemesi ile motor(yük) beslemesi ayrı olarak verilmektedir [7]. Şekil 12’de sistemin besleme şeması verilmektedir.

Şekil 12
Bunun dışında Bluetooth haberleşme devresinin de besleme gerilimi ayrı verilmelidir. Bu devre tek bir kaynaktan beslenerek bir 3.3 Volt gerilim regülatörü ile HC-06 bluetooth modül kartı beslemesi verilebilir.
2.5 Android Bluetooth Haberleşme Uygulaması
Android uygulaması MIT üniversitesi ve Google şirketi işbirliği ile geliştirilen MIT App Inventor programı aracılığıyla yapılmıştır. Bu program da kod yazımı yapılmamaktadır. İlk olarak ekran görsel olarak ayarlanmaktadır yani buton, etiket vb. nesnelerin ekrandaki yerleşimi, isimleri, renkleri vb. özellikleri ayarlanmakta ardından bu nesnelerin yapacakları görevler bloklar halinde tanımlanmaktadır. Örneğin bir butona basınca üstündeki yazının değişmesini istiyorsak Şekil 13’de görülen blok oluşturulmalıdır [10-11].
En son olarak program bize uygulamayı vermektedir. Kendi uygulamamız toplam on altı bloktan oluşmaktadır. Bu on altı blok içinde önemli olanlar; bluetooth aktifliğini kontrol etme bloğu, bluetooth bağlantısı kurma bloğu, bağlantının devamlılığını kontrol eden blok, bluetooth bağlantısını sonlandırma bloğu, arayüze eklenen motor kontrol butonlarına tıklandığında gerçekleşecek olay blokları(bu bloklarda bluetooth bağlantısı aracılığı ile bluetooth modülüne oradan da PIC mikrodenetleyicisine veri gönderilmektedir.), android cihaza gelebilecek verilerin okunduğu blok ve ses ile komut verme özelliğini sağlayan bloktur. Ses ile komut verme özelliği kullanılmak istenirse arayüze eklenen “Sesli Komut Ver” isimli butona tıklanarak android cihazın konuşma tanıma işlemi başlar. Eğer alınan konuşma “sıfır” ise motor çalışır, “bir” ise motor durur. Uygulamadan birkaç örnek blok:

Şekil 13
Şekil 14
Şekil 14’de motor kontrolüne ait butonlar gösterilmektedir. Bu butonlardan herhangi birine basıldığında gönderilecek karakterler belirtilmektedir. MotorON isimli butona basıldığında bluetooth modülüne “A” karakteri gitmektedir. Bu karakter bluetooth modülünden seri portlar aracılığıyla PIC mikrodenetleyicisine gitmektedir. PIC kendisine gelen bu karakterin “A” olduğunu yazılımsal olarak anlayarak gerekli işlemi yerine getirir yani motoru çalıştırır.
Şekil 15’de android cep telefonuna yazdığımız bluetooth haberleşme uygulamasının giriş ekranı gösterilmektedir. Giriş ekranında bluetooth modülü ile bağlantı kurma ve sonlandırma butonları, bağlantı durumu hakkında bilgi veren etiket ve dc motor kontrol fonksiyonlarının bulunduğu
ikincil ekrana geçiş için gerekli buton bulunmaktadır.

Şekil 15
Şekil 16’da uygulamanın ikincil ekranıdır. Bu ekranda dc motorun kontrolü için gerekli butonlar, motorun dönüş yönü hakkında bilgi veren etiket ve sesli komut verme özelliğini sağlayan butondan oluşmaktadır. Motorun dönüş yönü hakkında bilgi veren etiket yazısı PIC mikrodenetleyiciden gelen bilgiye göre değişmektedir.


turancakil™®
Şekil 16
3. Sonuç
Şekil 17’de sistemimizin tamamlanmış hali gösterilmektedir.

Şekil 17
[1] Akar, F., Yağımlı, M., (2007), “PIC16F877A Proje Tasarımı”, Beta Yayıncılık, İstanbul, pp. 425-430, 468-503.
[2] Şahin, H., Dayanık, A., Altınbaş, C., (2006), “PIC Programlama Teknikleri ve PIC16F877A”, Altaş Yayıncılık, İstanbul, pp. 195-199, 248-267.
[3] http://320volt.com/pwm-teknigi-ve-microc-uygulama-ornegi
[4] http://mcuoneclipse.com/2013/06/19/using-the-hc-06-bluetooth-module/
[5] http://www.lookrs232.com/rs232/waveforms.htm
[6] Hart, D.W., (2011), “Power Electronics”, The McGraw-Hill Companies, New York, pp. 431-436.
[7] http://tahmidmc.blogspot.com.tr/2013/05/using-tlp250-for-isolated-mosfet-gate.html
[8] http://www.gmpa.it/it9xxs/?p=325
[9] http://www.vishay.com/docs/81181/4n35.pdf
[10]http://cansubilgin.wordpress.com/2013/04/21/mit-app-inventor-nedir/
[11]http://www.technopat.net/2013/05/20/app-inventor-programlamaya-giris/
[12]http://appinventor.mit.edu/explore/
**Bu proje EMO bilimsel dergisine sunulmuştur.