isahatipoglu.files.wordpress.com  · web viewuygulamada ana eleman olarak şekil-1.1 de görülen...

51
1 1. GİRİŞ VE GENEL BİLGİLER 1.1 Giriş Bu projenin amacı otonom olarak insan arama tarama faaliyeti yürüten bir araç yapmaktır. Bu amaçla ARM tabanlı mikrodenetleyiciler, dijital uzaklık sensörleri ve PIR detektörleri kullanılmıştır. Böyle bir aletin yapılabileceği, daha sonra istenirse geliştirilebileceği, kullanılan cihazların akım ve voltaja karşı kullanılan hassasiyetlerine dikkat edilmesi sonuçları elde edilmiştir. Bunun için öncelikler devre elemanları, kısaca tanıtılması ve devre uygulaması bir sonraki bölümde sunulmuştur. Son konuda sonuçlar verilmiştir. 1.2 Arm Temelli Mikrodenetleyiciler ARM (acorn risc machine) temeli işlemci kullanarak yapılan bitirme ödevi uygulamasında başta mikro denetleyiciler olmak üzere, motor sürücü devre, engel algılayıcı ve insan algılayıcı sensörler, baskı devrede kullanılmış olan pasif elemanlar, entegreye uygun olarak seçilmiş kamera, voltaj regülatörleri, genel olarak kullanılan elemanlardır. Bu elemanların seçimi yapılırken öncelikle uygulamaya ne kadar

Upload: others

Post on 23-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

1

1. GİRİŞ VE GENEL BİLGİLER

1.1 Giriş

Bu projenin amacı otonom olarak insan arama tarama faaliyeti yürüten bir araç

yapmaktır. Bu amaçla ARM tabanlı mikrodenetleyiciler, dijital uzaklık sensörleri ve

PIR detektörleri kullanılmıştır. Böyle bir aletin yapılabileceği, daha sonra istenirse

geliştirilebileceği, kullanılan cihazların akım ve voltaja karşı kullanılan hassasiyetlerine

dikkat edilmesi sonuçları elde edilmiştir. Bunun için öncelikler devre elemanları, kısaca

tanıtılması ve devre uygulaması bir sonraki bölümde sunulmuştur. Son konuda sonuçlar

verilmiştir.

1.2 Arm Temelli Mikrodenetleyiciler

ARM (acorn risc machine) temeli işlemci kullanarak yapılan bitirme ödevi

uygulamasında başta mikro denetleyiciler olmak üzere, motor sürücü devre, engel

algılayıcı ve insan algılayıcı sensörler, baskı devrede kullanılmış olan pasif elemanlar,

entegreye uygun olarak seçilmiş kamera, voltaj regülatörleri, genel olarak kullanılan

elemanlardır. Bu elemanların seçimi yapılırken öncelikle uygulamaya ne kadar yararlı

olduğu ve eleman yapısı olarak uygunluğu göz önünde bulundurulmuştur.[2]

Page 2: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

2

Şekil 1.1 STM32F407VG’nin görüntüsü [1]

Uygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı

geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler içinde geliştirme kiti olarak

bilinen bu işlemci, uygulamamız için maliyet ve kullanım açısından mükemmele yakın

bir mikro denetleyicidir. Piyasada Cortex-m4 adıyla bilinen bu işlemci ARM mimarisi

kullanılarak STMicroelectronics firması tarafından üretilmiştir.

STM32F407VG’nin teknik özellikleri[1];

1-  1 MB Flash, 192 KB RAM  32-bit ARM Cortex-M4F çekirdeğe sahiptir.

2- On ST-LINK/V2-board (SWD konektörü ile programlama ve hata ayıklama

için)  

3- USB veri yolu üzerinden ya da harici bir 5 V besleme gerilimi

Page 3: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

3

4- Harici uygulama güç kaynağı: 3 V ve 5 V

5- LIS302DL, ST MEMS hareket sensörü, 3-eksenli dijital çıkış ivmeölçer

6- MP45DT02, ST MEMS ses sensörü, çok yönlü dijital mikrofon

7- CS43L22 entegre D sınıfı hoparlör sürücüsü ile ses

8- DAC Sekiz adet LED:

USB iletişimi için LD1 (kırmızı / yeşil)

3.3 V güç LD2 (kırmızı)

ört kullanıcı LED’ler, LD3 (turuncu), LD4 (yeşil), LD5 (kırmızı), LD6 (mavi)

2 adet USB OTG LED’ler LD7 (yeşil) VBus ve LD8 aşırı akım (kırmızı)

9- İki buton ( kullanıcı ve reset )

10- Mikro-AB bağlantısı ile USB OTG FS

Yapılan araştırmalar neticesinde kullanılan bu geliştirme kiti, yüksek çalışma frekansı

sayesindeki tepki hızı, besleme kolaylığı gibi özellikleri nedeniyle tercih sebebi

olmuştur. Söz konusu işlemciyi üzerinde yapılan çalışmada en önemli konu yazılım

bölümü olmuştur. Yazılım yapılırken, yapmak istenilen uygulamaya yönelik araştırma

yapmak ve yazılımı yazmak projenin aşamaları içinde en zor ve en uzun süren bölüm

olmuştur. Yazılım konusuna biraz daha değinilirse, işlemciyi programlamak için Arm

firmasının Keil uVision4 yazılımını tercih edildi. Keil programı, C yazılım diliyle

yazılan ve yazılan bu yazılımları işlemci için derleyen bir programdır.

Kartın üzeride ST-Link Debugger ile beraber gelmektedir. Bunun avantajı ise USB

üzerinden karta yazılım atıp, hata ayıklama işlemlerini yapabilmenin mümkün

olmasıdır.

Page 4: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

4

Şekil 1.2 STM32 Ailesi blok tasarımı[7]

Yukarıdaki şekil 1.2 de kullanılan işlemcinin blok diyagramı verilmiştir, diyagramdaki

elemanların tamamını tam anlamıyla öğrenmek mümkün olmamıştır. Bunun sebebi ise

yapılan uygulama ve yapılmak istenen aşamalar için zamanın gerçekten çok kısıtlı

olmasıdır.

Bundan dolayı yapılan uygulamada öne çıkan işlemcinin bölümlerinden bahsedilmiştir.

1.2.1 CMSIS

Kullanılan ARM işlemcide programlama yapmadan önce CMSIS (Cortex

Microcontroller Interface Standard) nedir, bunu anlatmamız gerektiğini düşündük.

CMSIS, ARM mimarisi çatısı altında farklı firmalar tarafından üretilen bütün Cortex

serisi çekirdeğe sahip işlemciler için ortak bir yazılım kütüphanesinin adıdır.

Page 5: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

5

CMSIS donanım birimleri ile uygulama yazılımı arasındaki ara soyutlama katmanını

( hardware abstraction layer) oluşturmaktadır. Bu kütüphane, makine dili ile bilgisayar

dili arasında bir köprü anlamına gelmektedir. Böylelikle üreticilere ve

geliştirme araçlarına bağlı kalmadan genel olarak Cortex çekirdeğe sahip işlemciler için

yazılım bileşenleri oluşturmak mümkün oluyor ve yazılım taşınabilirliği, yeniden

kullanım sağlanıyor.

Projede işlemcide yazılıma başlamak için üzerinde bulunan LED ışıkları yakabilmek,

ilk adımdır. Kullanılan işlemcide de yazılıma ilk olarak ışık yakarak başlandı. Butonlar

ve LED çıkışları kullanılmadan önce ilgili kaydedicilerle I/O portları ayarlarının

yapılması gerekiyor. İşlemcide her bir çevre biriminin saat frekansı kontrol edilebiliyor.

Böylelikle kullanılmayan çevre birimleri kapatılarak güç tasarrufu sağlanıyor.

1.2.2 Reset ve Saat Kontrol Ünitesi (RCC)

Kullanılan işlemcide bulunan RCC hakkında araştırma yapıldığında çok fazla ayrıntı ve

bilgi olduğu görüldü[1]. Bundan dolayı öncelikle uygulamada gereken bilgi ve

ayrıntıları dikkate alarak çalışmalar yapıldı. En mühim konulardan biri I/O birimleri ve

bu birimlerin ayarlanmasıdır.

İşlemci üzerinde her bir çevre biriminin saat kaynağı ayrı kontrol edilebiliyor.

Böylelikle kullanılmayan çevrebirimleri kapalı tutarak güç tüketimini minimum

seviyede tutabiliyor.

Aynı zamanda her bir çevrebirimi ayrı başlangıç durumuna ( reset ) getirilebiliyor.

RCC_APB1RSTR, RCC_APB2RSTR kaydedicileri çevrebirimlerini resetlemek için

kullanılıyor.

RCC_AHBENR, RCC_APB2ENR, RCC_APB1ENR kaydedicileri çevrebirimlerinin

saat kaynaklarını kontrol etmek için kullanılıyor.

İşlemcinin I/O hatlarını kullanabilmek için öncelikle I/O modüllerinin saat girişlerini

aktif hale getirmemiz gerekmektedir. Onun ardından I/O yönlerini yani giriş ve çıkışları

ayarlandı.

Page 6: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

6

1.3 GP2Y0D810Z0F Dijital Mesafe Ölçme Sensörü

Uygulamada kullanılan, SHARP firmasının ürettiği dijital giriş ve çıkış veren,

0-100 mm aralığında duyarlı mesafe ölçme sensörüdür. [8] Maliyet açısından uygun

tipte bir sensör olduğundan dolayı ve kullanım açısından kolay ve verimli olması,

yapılan uygulama açısından çok yararlı olmuştur.

Kullanılan sensörün uygulamadaki genel amacı, robot hareket ederken önünü, sağını ve

solunu kontrol etmesi ve buna göre hareketine devam etmesidir. Bu sensörler sayesinde

robot etrafında herhangi bir engel olduğunda, bu engelin nerede olduğuna bağlı olarak

hareket yönünü değiştirecektir. Uygulamada bu sensörlerden üç tane bulunmaktadır.

Sensörlerin konumlanması ön, sağ ve sol şeklindedir. Yapılan uygulama hareket

ederken ilk olarak önünde engel olup olmadığını kontrol etmektedir. Engel olması

durumunda, sağını ve sonra solunu kontrol etmektedir. Yapılan algoritmaya göre, hangi

yönde engel varsa, alternatifleri araştırıp, gidebileceği yöne hareket etmektedir.

Şekil 1.3 GP2Y0D810Z0F’nin görüntüsü[6]

Şekil 1.3’de görülen mesafe ölçme sensörünün özellikleri;

1. Dijital çıkış tipi

2. Kısa mesafe tipi

3. Küçük ebat 13.6x7x7.95 mm

4. 2.7-6.2 arası besleme voltajı

Page 7: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

7

5. Güneş ışığına duyarsız

6. Sensör için sağlanan akım 5mA

7. IRED (kızıl ötesi diyot ) ve PD ( foto diyot ) içerir. Kullandığımız diyotun blok

diyagramı şekil 1.4 te verilmiştir.

Şekil 1.4 Mesafe ölçme sensörünün blok diyagramı[6]

1.4 L298 Motor Sürücü Devresi [6]

Uygulamada kullanılan ve şekil 1.5 te de L298 entegre, bulunması kolay bir elemandır

ve sınıfı içinde maliyet ve kullanış açısından oldukça iyi özelliklerdedir. Aynı sınıfta

olan motor sürücü entegrelere göre daha yüksek akıma karşı dayanıklıdır. Yaklaşık 2

ampere kadar dayanabilmektedir. Bu elemanın kullanılma amacı motorları kontrol

edebilmek ve işlemciden gelen sinyallere göre motorları kullanmaktır. Sensörlerden

gelen sinyaller, motorları kontrol edebilmek için oluşan komutlardır. Bu sinyaller

işlemci aracılığıyla işlenir ve sonrasında motor sürücü entegreye gönderilir. Entegrede 2

adet H köprüsü bulunur. H köprüsü DC motoru iki yönde de sürmeye yarayan faydalı

bir yöntemdir. 4 adet transistor ile anahtarlama yöntemi kullanılarak yapılır. Şekilde de

görülen entegre, yapısı gereği H harfine benzediğinden dolayı böyle adlandırılır. Bu

entegrede toplam 15 adet bacak bulunmaktadır. Bunlardan IN1, IN2, OUT1, OUT2,

ENA, SENSA A köprüsü için, IN3,IN4, OUT3, OUT4, ENB, SENSB B köprüsü

içindir. Uygulamada kullanımı için önem arz eden bacaklar, IN ve OUT bacaklarıdır.

Page 8: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

8

Şekil 1.5 L298’nin görüntüsü

1.4.1 INT1 VE INT2: Bu bacaklar A köprüsü için olan girişlerdir ve +5 volt ile çalışır.

Eğer

IN1’e 5V, IN2’ye 0V verince motor ileri dönerse, tam tersi verildiğinde geri

dönecektir. Her iki bacağa da aynı değer verilirse (0V-0V veya 5V-5V) motor

dönmez.

1.4.2 INT3 VE INT4 : Bu bacaklar B köprüsü için olan girişlerdir. A köprüsüyle aynı

şekilde çalışır.

1.4.3 OUT1,OUT2 : A köprüsü için çıkış bacaklarıdır. Bu çıkışları motorun iki ucuna

bağlanmıştır. Motorların herhangi bir zorlanma durumunda oluşacak olan ters akımın

entegreye zarar vermemesi için çıkışlar ile motor arasına “ opto kuplör”

bağlanmıştır.

1.4.4 OUT3,OUT4: B köprüsü için çıkış bacaklarıdır. A köprüsüyle aynı şekilde

çalışır.

1.4.5 ENA,ENB : A ve B köprülerini etkinleştirmek için bu bacaklara +5 volt

bağlanmıştır.

Page 9: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

9

1.5 STM32F103B

STM32F103B, projede kullanılan diğer bir işlemcidir. Bu işlemcinin öne çıkan

kullanım amacı ise uygulama amacına uygun olarak, insan algılama sensörünün verdiği

yanıta bağlı olarak kameranın aktifleşmesi, bunun sonucunda da kameranın görüntü

kaydedip, hafıza kartına aktarım yapılmasıdır. Bu işlemlerin gerçekleşmesi için

STM32F103B işlemcisinin kullanımı zorunlu hale gelmiştir. Daha önce bahsedilen

Stm32F407VG işlemci bu işlemci ile karşılaştırdığında, Stm32F407VG serisi işlemci

çok yeni bir mikro denetleyicidir. İki işlemcinin üretime başlama tarihleri arasında

birkaç senelik fark vardır. Bu fark teknolojinin gelişim hızıyla karşılaştırıldığı zaman,

ne kadar büyük bir farkın ortaya çıkabileceği daha belirginleşir. İki işlemcinin arasında

farkların başlıca olanları; öncelikle işlemci hızları arasında birkaç kat fark vardır ( 168

Mhz-72 Mhz ). Önbellek konusunda yine belirgin bir fark mevcuttur. Ayrıca işlevlerine

bakıldığında zaman Stm32F407VG’nin getirdiği yenilikler vardır. İvmeölçer özelliğinin

olması, dâhili dijital kamera arayüz donanımı( DCMI )’nin bulunması Stm32F407VG

‘nin öne çıkan farklarıdır. Stm32F407VG, diğer kullanılan işlemciye göre çok yenidir,

bunun dezavantajı ise yeteri kadar yayılamaması ve bunun sonucunda kısıtlı kaynak ve

uygulamadır. Söz konusu durumdan dolayı kameranın kullanımı ve hafıza kartına

aktarımı konularında STM32F103B işlemcisini kullanma ihtiyacı hissedildi.

Uygulamada kullanılan her iki işlemcide aynı işlemci ailesindendir. Sonuç olarak

Stm32F407VG işlemcisi hakkında bilgi verilmiştir. Şekil 1.6’da görülen STM32F103B

özellikleri ise şunlardır;

1- STM32F103B 32-bit mikroişlemcidir.

2- STM32F103B işlemci, ARMv7-M mimarisi tabanlı ilk ARM işlemcisidir.

Tasarım amacı, güçte yüksek performans ve düşük maliyetli gömülü sistemdir.

3- Harvard Mimarisi tabanlıdır. ( Bu sınıftaki işlemcilerde kullanılan yeni bir

mimaridir. ).

4- Düşük maliyetli, düşük güç tüketimli 32 bit RISC işlemcidir.

5- CPU çekirdeğinin yanında, birçok bileşene sahiptir. Bunlar; NVIC, MPU,

Debug Access Port (DAP).

Page 10: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

10

6- Sabit hafıza haritasına sahiptir.

Ayrıca STM32F103B sınıfı işlemciler özellikle,

1- Otomotiv sektöründe,

2- Endüstriyel otomasyon sistemlerinde,

3- Kablosuz ağlarda,

4- Düşük maliyetli mikrodenetleyicilerde kullanılmaktadır.

Şekil 1.6 STM32F103B’nin görüntüsü

1.6 PIR Sensörü ( pasif kızılötesi sensörü )[6]

Uygulamanın tasarım aşamasından itibaren önemli elemanların başında gelen PIR

sensörünün temel kullanım amacı, insan algılayabilmesi ve algı sonucunda farklı

seviyede sinyal üreterek işlemcinin uyarılmasını sağlamaktır. Günümüzde çok yaygın

olarak kullanılan PIR sensörü, evlerimizin içine kadar giren çeşitleri bile vardır. Fiyat

aralığına bağlı olarak PIR sensörü, hareket algılama sensörü olarak ta bilinmektedir.

Yaptığımız uygulama tasarım aşamasındayken, insanın sıcaklığına bağlı olarak algılama

yapan sensör yerine, hareket algılayan sensör kullandık. Bunun sebebi, PIR

sensörlerinin maliyetli olması ve maliyeti yüksek olanların çok yaygın olarak

kullanılmamasıdır. Maliyeti daha ucuz olan hareket sensörünü uygulamada

Page 11: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

11

kullanıldığında ise sürekli hareket halinde olan araç, sensörün sürekli aktif olmasına

sebep oldu. Bu sorun yazılımla halledildi.

Şekil 1.7 Pır sensörünün çalışma şekli

Tasarımda kullanılan şekil 1.7’de çalışma mantığı görülen ve şekil 1.8’de de dağıtıcı

başlığı takılmamış halde bulunan PIR detektörünün teknik özellikleri;

1- Çalışma gerilimi: 220-230 V AC

2- Çalışma frekansı: 50 Hz

3- Kontak çalışma gücü: max 100 W.

4- Algılama mesafesi: 1 m

5- Zaman ayarı: 0 s ile 1 dk arası

6- Mercek sistemi: 120° açı

7- PIR sensörü,

Page 12: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

12

Şekil 1.8 Pır sensörünün kılıfsız hali

1.7 Kamera (ov7670 )

Uygulamada kullanılan kamera, kullanılan ARM işlemcilerle uygun olan ve elektronik

eleman satışı yapan mağazalarda bulunması en kolay olan kameralardan biridir. Kamera

0,3 megapiksel çözünürlüğe sahiptir.

Kullanılan bu kamera CMOS bir eleman olup 640x480 çözünürlükte VGA tipindedir.

Çok düşük voltajla bile çalışabilmektedir Kontrol açısından SSCB ( serial camera

kontrol bus- seri kamera kontrol yolu ) arayüzünü kullanır. Kullanılan kamera saniyede

15 frame gönderebilmektedir. Proje tasarım aşamasındayken, amaç kameradan görüntü

alıp kablosuz haberleşme ile ekrana verebilmek olduğundan dolayı, kullanılan kamera

gerçekten uygulama için çok güzel bir seçenektir.[4] Kameranın teknik özellikleri;

1- Aydınlatma seviyesi düşük olan bir ortamda bile yüksek hassaslık özelliği

vardır.

2- Standart SSCB ara yüzünü kullanır. Bu da kamera kullanımında arayüzü

problemini ortadan kaldırır.

3- Çıkışta RGB (4:2:2) destekler.

4- Otomatik resim kontrol özelliği içerir.

5- AGC (Otomatik kazanç kontrol ), AWB ( Otomatik parlaklık ayarlayıcı ), ABF (

otomatik bant filtresi ) gibi özellikleri bünyesinde bulundurur.

6- Renk saturasyonu, gamma, keskinlik, lens düzeltmesi, beyaz piksel önleyici,

gürültü önleyici gibi resim kalite kontrol özellikleri vardır.

Page 13: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

13

7- Ölçeklendirmeyi destekler.[5]

Günümüzde kullanılan kameralı cep telefonlarında, oyuncaklarda, masaüstü ve dizüstü

bilgisayarlarda ve bazı fotoğraf makinelerinde uygulamada kullandığımız kamera

görülebilmektedir.

Şekil 1.9’da kullanılan kameranın işleyişini gösteren diyagram çizilmiştir.

Şekil 1.9 OV7670 çalışma diyagramı[5]

Page 14: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

14

1.8 Palet ve Dişli Seti

Yapılan çalışmada hedef güvenlik robotu yapmaktı. Sensörler sayesinde insan olup

olmadığı ve araç ilerlerken önünde ya da etrafında herhangi bir engel olup olmadığı

belirlenmektedir. Özellikle palet kullanılmasının sebebi ise manevra kabiliyetidir. Hedef

minimum hata ve maksimum verim olmasında dolayı, paletler sayesinde herhangi bir

engel karşısında, araç hareket yönünü değiştirmek istediğinde, bunu yaparken herhangi

bir alanı atlamamasıdır. Herhangi dört tekerlekli aracın dönebilmesi için belirli bir

mesafede çember çizmesi gerekmektedir. Paletli araçlar ise kendi etrafında dönebilme

kabiliyetine sahip olduğundan dolayı belirli bir bölgeyi atlayarak yoluna devam etmesi

söz konusu değildir.

Şekil 1.10 Palet parçaları ve birleştirilmiş hali[7]

Sanal ortamdan siparişi verilen palet ve teker setinin teslim edildiği hali şekil 1.10’da

görülebilmektedir. Birçok parçadan oluşan bu seti şekil 1.10’un sol tarafındaki haline

getirmesi çok fazla zaman almamasına rağmen, set üstünde görünen motor kutusunun

yapımı birkaç saat sürmüştür.

Motor kutusu ise palet ve teker seti gibi birçok parçadan oluşmuştur. Özellikle dişlilerin

arasındaki bağlantıyı yapmak zaman alıcıdır. Resimde görülen motor kutusunun

alınmasının en önemli sebebi ise, iki adet palet olduğundan dolayı, iki motor kullanmak

ve bu motorlar aracılığı ile paletlerin ilerlemesi veya geri gitmesini birbirinden bağımsız

olarak sağlamaktır.

Page 15: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

15

1.9 Akü ( 12 Volt 1.3 Amper )

Yapılan çalışmada ilk aşamadan itibaren en büyük sıkıntılardan biri de enerji konusu

olmuştur. Motor kurulum aşamasından itibaren, piyasada satılan 9 volt piller, kısa

vadede geçici çözüm olmuştur. Kullanılan iki adet işlemci, motor kutusu ve enerji

gereksinimi yüksek olan diğer devre elemanları, 9 volt piller ile denendiğinde

çalışmıştır, diğer yandan birkaç tane pili şartlara göre seri ya da paralel bağlayarak

kullandığımızda beş dakika bile geçmeden, pillerin ömürleri bitmiştir. Bundan dolayı

akünün alınması zorunlu hale gelmiştir. Diğer yandan, uygulamamıza uygun şekilde akü

bulmak neredeyse imkânsızdı. Bulunan aküler içinde uygulama bakımından en iyi

şartlara sahip olan, 12 volt tipinde ve yaklaşık 1,3 amperlik akım üreten modeldi.

Kullanılan elektronik elemanların teknik özelliklerine bakıldığında, bu kadar yüksek

voltaj ve akım değerinde çalışamayacakları tespit edildi. Bundan dolayı 7809 regülatör

entegresini kullanma gereksinimi ortaya çıktı. Voltaj ve akım düşürücü devre elemanları

ile aküden gelen voltaj ve akımların seviyesini düşürerek, elektronik elemanların

çalışma aralıklarına göre optimum bir enerji seviyesi elde edildi. Şekil 1.1’de kullanılan

tipte bir akü gösterilmiştir.

Şekil 1.11 Beslemede kullanılan akünün resmi

Page 16: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

16

1.10 Opto Kuplör

Uygulamada opto kuplör kullanılmasının en büyük sebebi güvenlik amaçlıdır.

Kullanılan opto kuplörler motor sürücü devresindedir. Bu devrede özellikle motorların

ve entegre elemanların zarar görmemesi için, çalışmada sigorta görevi görmesi için opto

kuplör kullanılmıştır.

Şekil 1.12’de görülen 4N25 tipi opto kuplör, elektrikli bir bağlantı olmadan düşük

gerilimlerle, yüksek gerilim ve akımları kontrol edebilen devre elemanıdır. Yapısında

ise bir LED diyot ve onun yaydığı ışıktan etkilenerek iletime geçen bir adet LDR

bulunur. Şekilde çalışmamızda kullandığımız opto kuplöre bir örnek verilmiştir. Şekilde

çalışmada kullanılan opto kuplöre bir örnek verilmiştir.

Şekil 1.12 Opto kuplörün resmi[10]

Page 17: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

17

2. ARM TABANLI İNSAN TANIMLAYAN ARAÇ UYGULAMASI

Bu bölümde ARM tabanlı insan tanımlayan bir aracın yapımına ilişkin tasarım

aşamaları, uygulama notları ve devreye ait program kodları sunulmuştur.

2.1 Gövde Tasarımı

Araç tasarımına hedefler belirlenildikten sonra, ilk olarak gövde tasarımı ile başlanıldı.

Yürüyen aksam seçimi daha önce de belirtildiği gibi palet seçilmişti. Yalnız firmanın

palet sisteminin montesi için önerdiği gövde ihtiyaçları karşılama açısından oldukça

küçüktü. Bu konuda makine mühendisliğinde okuyan öğrencilerle yapılan fikir

alışverişinden sonra kullanılabilecek malzemeler alüminyum , tahta, mika ve galvaniz

olarak belirlendi. Alüminyum ağırlık bakımından ve işleme imkânlarındaki

yetersizlikten elenmiştir.

Şekil 2.1 Galvaniz levhaları

Piyasa da hem fiyat açısından hem de istenilen incelikte bulunamamıştır. Tahta işlemesi

kolay olsa da istenilen incelik ve boşluk ihtiyaçlarına cevap verememiştir. Mika da ise

Page 18: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

18

3mm kalınlıktaki mika levhalarının eğilip bükülmesi için her sefer ısı uygulanması

zorluğu ile karşılaşılmıştır. Bu noktada galvaniz hem işleme açısından hem de

inceliğinden doğan hafifliğinden dolayı tercih edilmiştir. Şekil 2.1’de gövde yapımında

kullanılan tipte bir galvaniz levhası bulunmaktadır.

Gövdenin yapılması ve tasarlanması sırasında iki kat yüzeyli bir araç düşünülmüştür.

Gövdenin üretimi TYEKK laboratuarında yapılmıştır.

Paletler arası boşluk motorlar, güç aktarım organları ve akü için düşünülmüştür.

1.kat ise motor sürücü devrenin yerleştirilmesi ve sitemin lojik biriminin beslenmesi

için gereken piller için ayrılmıştır. 2. Kat ise mikrodenetleyiciler, güç kartı kamera ve

ekran için ayrılmıştır. Şekil 2.2’de cihazlar eklenmeden önceki hal görülmektedir.Şekil

2.3, 2.4 ve 2.5 te ise de aracın cihazlar eklendikten sonraki hali görülebilir.

Ayrıca kullanılan yapı malzemesi istenildiğinde değiştirilmeye olanak verecek şekilde

seçilmiştir.

Page 19: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

19

Şekil 2.2 Galvanizle yapılmış gövde

Şekil 2.3 Aracın üstten görüntüsü

Şekil 2.4 Aracın yandan görüntüsü

Page 20: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

20

Şekil 2.5 Aracın sağ üstten görüntüsü

2.2 Mekanik Aktarım Kısmı ve Birleştirilmesi

Hareket ettirilecek araç için 6-9 volt arası çalışan 2 motor seçilmiştir. Bu motorların

işlevlerini kolaylaştırmak ve güçten kazanmak için Tamiya marka dişli kutusu satın

alınmıştır. Ürün hobi araçlar için tasarlanmıştır. Bu ürün şahsın ihtiyaçlarına göre

biçimlendirebileceği biçimde gönderilmektedir. Farklı konfigürasyonlarında

seçilebilmesi tercih edilmesindeki birinci etkendir. Şekil 2.6’da birleştirme şekilleri

gösterilmiştir. Şekil 2.7’de ise parçalar, şekil 2.8’de de birleştirilmiş hali görülmektedir.

Page 21: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

21

Şekil 2.6 Dişli konfigürasyonları[7]

Şekil 2.7 Dişli kutusu parçaları ve motorlar[9]

Page 22: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

22

Şekil 2.8 Birleştirilmiş dişli kutusu[9]

Ürün birbirinden bağımsız iki motorun sağa ve sola dönmesi sayesinde, aracın ileri,

geri, sağa ve sola dönmesine olanak sağlar. Sahip olduğu dişliler sayesin motora binen

yükü azaltır. Bu dişli kutusunun montajı sırasında tekerleklerin bağlandığı miller

çıkartılarak şaseye yerleştirildi. Bu seferde dişli kutusunun içinde bulunan milleri

birleştirme aparatları ters olarak monte edilen dişli kutusunun açık kalan tarafından

görülemedi. Bunun üzerine şasi üzerine mil birleştirme başlıklarının görüleceği şekilde

iki tane delik açılarak sorun çözüldü. Belli bir süre sonra dişlide ses ve performans

sorunu yaşandı bu sorunda dişli pozisyon ayarlarının yeniden optimizasyonu ve gres

yağıyla çözüldü.

2.3 Motor Sürücü Devrenin Tasarlanması

Motorlara gidecek gücün direkt olarak mikrodenetleyiciden yapılması aşırı yüklenecek

mikrodenetleyicinin yanmasına sebep olur. Bundan dolayı motora gidecek gücün ve

motor dönüş yönünün belirlenmesi için bir sürücü devre tasarlanması gerekli görüldü.

Şekil 2.9 da da görülen devre tasarımın da iki motor birden sürebilen L298 kullanıldı.

Ayrıca baskı devre hali şekil 2.10 da da görülebilir. Yine de mikrodenetleyicinin

korunması için optokuplörler mikrodenetleyiciden L298’e gelen kontrol kabloları

üzerine yerleştirildi. Bundan sonra da motorlarda oluşabilecek ters bir akım karşısında

L298’e koruma için diyot köprüleri oluşturulmuştur. Ayrıca L298’e gelen kontrol

voltajının motor besleme voltajından düşük olması gerekmesi devrede önem verilen

önceliklerin başında geldi. Elemanlar baskı devre için düzenlenirken gruplar

Page 23: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

23

oluşturularak yerleştirilmiştir. Bunun amacı herhangi bir sorun karşısında tespit

edilmesinin kolay olmasıdır. Aşağıda görülen baskı devrede sistemin beslemesi sol üst

taraftandır. Sol altta ise mikrodenetleyiciden gelen kontrol kabloları ve opto kuplörle

yapılan koruma katı görülür orta da ise L298 konumlandırılmıştır. Sağ taraf

incelendiğinde ise motor kablo çıkışları ve diyotlarla yapılan oluşabilecek ters akım ve

voltaja karşı koruma katı yerleştirilmiştir.

Şekil 2.9 Motor sürücü devresi

Page 24: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

24

Şekil 2.10 Motor sürücü devresinin baskısı

2.4 Sensörlerin Seçilmesi

Aracın otonom hareket halinde iken engellere çarpıp hasar görmemesi için engel tespit

edici sensörlere gerek görüldü. Aracın dönüş hareketini gerçekleştirmesi için sağında ve

solunda 5-7 cm bir boşluk yeterlidir. İhtiyaca uygun olarak Sharp sensörleri seçildi.

Seçilmesindeki en önemli faktör öncelikle milisaniyeler mertebesinde olan tepki süresi

ve uygun fiyatıdır. Sensör gün ışığından etkilenmez, ama voltaj dalgalanmaları

karşısında anormal tepkiler gösterebilmektedir.

Aracın insan tespiti için ihtiyaç duyduğu sensörler kızıl ötesi dalga ile çalışan ” infrared

motion” yada kısa adıyla pır sensörleridir. Bu sensörler büyük boyutlarda bir hareket

değişikliğinde tepki vermektedir. Bunun için aracın sensörden gelen sinyalleri

işleyebilmesi için sensör bekleme süresi kadar bekleyip ondan sonra sensörden gelen

sistemleri işlemesi gerekir. Bu sorun dört farklı kullanılan sensörde de böyledir. Bu

sorun aracı yavaşlatan en büyük sorundur. Piyasa da bekleme süresi milisaniyeler

mertebesinde bir ürün bulunamamıştır. Bulunan en iyi sensör 10 saniye gecikme

süresine sahiptir. Eğer bekleme süresi olmasaydı araç üzerine birden çok sensör

yerleştirilir ve böyle olunca da araç daha pratik olurdu. Bunun yanında aracın tarama

yapması için olduğu yerde tur atmasına gerek kalmazdı. Teknolojinin ileride bu sorunu

Page 25: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

25

aşacağından şüphe yoktur. Kayseri’de, arkadaşlarımız vasıtasıyla İstanbul’da ve

teknolojik malzemenin Türkiye’de merkezi olarak bilinen Ankara Ulus mevkiinde

bulunan Konya sokakta bile fazla ürün çeşidine ulaşılamadı. Bulunan tüm sensörler ya

birbirinin aynıdır yada farklı fabrikalardan çıkan benzer özellikli ürünlerdir.

2.5 Güç Kaynaklarının Seçilmesi

Cihazın enerji ihtiyacı 9 voltluk piller tarafından karşılanması kararlaştırılmıştır. Ama

bu pillerin referans voltaj seviyelerini 3-4 dakikada kaybedip kısa sürede kullanılamaz

hale gelmesi daha kararlı ve uzun ömürlü güç kaynağı ihtiyacını doğurmuştur. Bu

noktada seçilecek güç kaynağının ağırlık yönünden de teamülleri aşmaması için

piyasadaki en ufak boyutlu olan 12 volt 1.3 amperlik akü seçilmiştir. Bu akü genel

olarak alarm sistemlerinin şebekeden besleme alamadıklarındaki enerji ihtiyaçlarının

karşılanması için kullanılır. Dayanım süreleri yüke bağlı 36 saate kadar uzar. Akü iki

palet arasındaki boşluğa yerleştirilmiştir.

2.6 Güç Kartının Tasarlanması

Alınan akünün amper ve voltaj değeri, motor çalışma aralığının üstündeydi. Bunun için

bir güç kartı tasarlanarak voltajın 7809 vasıtası ile 9 volta çekilmesi kararlaştırıldı.

Devre tasarımı Şekil 2.11’de görülebilir. Bunun yanı sıra devrenin pil ile beslenen geri

kalan bütün birimleri için gereken 5 voltluk enerjinin de buradan alınması için bir adet

te LM317T konuldu. Bu amaçla devrenin ihtiyacı olan tüm enerji aküden karşılanmaya

başladı. Ama planlanmayan bir durum ortaya çıktı. Motorun yarattığı voltaj

dalgalanması ve LM317’nin aşırı ısınması 5 voltluk beslemede sorunlar oluşmasına ve

voltaj dalgalanmasına sebep oldu. LM317 ne kadar voltaj düşürtülürse o kadar ısınma

gösteren bir entegredir. Bunun yanında üst sınıf LM117’lerde de bu durum yeterince

iyi değildir. Daha sonra LM317’ye eklenen soğutma profili de yeterince etki

yaratmamıştır. Pil ile tekrardan motor harici kısmın yada belli bir bölümün beslemesi

gerekmektedir. Çünkü küçük voltajlarla çalışan entegreler dalgalanmalara karşı

dayanımsızdır.

Page 26: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

26

Şekil 2.11 Güç Kartı

2.7 Robot Otonom Hareket Yazılımı

Aracın otonom hareket etmesi için sensörlerden gelen bilgiyi işlemesi için bir yazılıma

ihtiyaç duyulmuştur. Bu amaçla stm32f407vg portu cihaza eklenip programlanması için

Keil uVision4 programı seçilmiştir. Bu program c ve c++ ile program yapmaya olanak

tanıdığı gibi kendi üzerindeki eklentileri sayesinde belli mertebelere kadar simülasyon

yapılmasına olanak tanır. Öncelikle üç yöne çevrilmiş sensörlerden gelen sinyallere gere

araç ilk olarak hareketini kesmelidir. Bunun için sensörleri sürekli tarayacak bir yazılım

oluşturuldu. Bu noktada kullanılan mikrodenetleyicinin özel kesme kodları da

bulunmaktadır. Mesafe sensörlerinden gelen sinyaller aracın yoluna devam etmesi

içindir. Bunun için sağa, öne ve sola bakan sensörlerin gönderdikleri sinyallere karşı

senaryolar geliştirilmiş ve bütün kombinasyonlar için kodlar yazılmıştır. Bu amaç

doğrultusunda önünde bir engelle karşılaşan araç sağdan dolaşmayı deneyecek sağ

sinyal yolun açık olduğunu söylerse o yönde devam edecek, ya da sağ sensör kapalı

olduğunu söylerse bu sefer de sola dönmeyi deneyecek o da olmazsa geri giderek sağa

Page 27: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

27

ve sola gitmeyi deneyecek, dönme imkanı ortaya çıkana kadar geri gidecektir. Aynı

şekilde alan taraması yaparken tam tur dönüşünü gerçekleştiren araç bunu yapma

imkanı bulamazsa ileri, olmazsa geri giderek turu tamamlayacaktır. Hareket sensörü de

aynı şekilde araca “konum koru” emri gönderirken diğer kamera ve ekran arayüzlerine

sahip diğer mikrodenetleyiciye sinyal göndererek, sorun oluşturan durumun kamera

tarafından fotoğraf olarak kayda alınmasını sağlayacaktır.

2.7.1 STM32F4 Ayarlarının Yapılması

STM32F407VG serisi mikrodenetleyiciler üzerlerinde bulundurduğu ST-LINK birimi

sayesinde herhangi bir kişisel bilgisayardan ayarlanabilir, program yüklenebilir,

çalışması için gerekli enerji çekilebilir. Şekil 2.12 de bu işlem gösterilmiştir. Cihazdaki

dâhili PLL ayarları, giriş çıkış ayarlarının yapılması için önce belli kodlar yazılmalıdır.

Bu kodlar sayesinde cihazın saat hızı 168Mhz’den 4 Mhz’e kadar değiştirilebilir. Her

kod için açıklaması altına yazılmıştır.

Şekil 2.12 STM32F4’e program yüklenilmesi

Page 28: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

28

#include "STM32F4xx.h"

Bu kodun amacı cihaza her sefer yüklenmesi gereken ayar kodlarını çağırır. ASM ile

yazılan bu kısımda sadece ileri derece profesyonel insanlar uygulama yaparlar.

#include "delay.h"

Burada ise gecikme ayarları için yazılmış alt komut çağrılmıştır. Bu cihazda saat hızı

sabit olmadığı için her sefer belirlenen saate göre hesaplanıp, alt fonksiyondan gecikme

fonksiyonu çağrılması gerekir. [3]

void SystemInit()

{

unsigned int i;

for (i=0;i<0x00100000;i++);

RCC->CFGR |= 0x00009400;

Şekil 2.13 RCC_CFGR saklayıcısı

Şekil 2.13 te görülen saklayıcı RCC_CFGR saklayıcısıdır. Bu saklayıcıya gönderilen

hekzadesimal kod ile cihazın saat ayarları yapılır. 0x00009400 değeri 10. 12. ve 15.

birimleri aktif eder.

Bu şu anlama gelir;

15’ten 13’e kadar olan pinler APB2 yüksek hız hattının hızının çekirdem saat hızının

yarısı mı, çeyreği mi ya da daha küçük bir değer mi alacağını ifade eder. Şekil 2.14’de

sol alt tarafta bulunan oklar grubu APB2 hattını temsil eder.Yazılan kodun bir kısmı bu

hattın aktif edilip hızını belirler. 12’den 10’a kadar olan pinler ise APB1 düşük hız

Page 29: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

29

hattının hızının yine çekirdek hızına oranını verir. Şekil 2.14’de sağ alt taraftaki oklar

grubu APB1 hattını temsil eder.

Şekil 2.14 Saat hızını aynı hattan alan birimler[7]

RCC->CR |= 0x00010000;

Page 30: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

30

Harici sinyal kaynağına çalışması emrini verir.

while (!(RCC->CR & 0x00020000));

Harici sinyal kaynağının stabil olduğu sinyali gelene kadar beklemesini sağlar.

RCC->PLLCFGR = 0x07405408;

PLL’nin harici sinyal kaynağını kaç kata yükselteceği bu saklayıcı sayesinde belirlenir.

Bu komut verilip, harici sinyalden çekirdek beslenmeye başladığında hızı 168 Mhz

olacaktır.

RCC->CR |= 0x01000000;

PLL çalışmaya başlasın.

while(!(RCC->CR & 0x02000000));

PLL hazır oluncaya kadar bekle

FLASH->ACR = 0x00000605;

Çekirdeğin 6 turda sonra yeni saat hızına geçmesini belirliyor.

RCC->CFGR |= 0x00000002;

Çekirdeğin harici sinyalden yani PLL’den gelen sinyalden beslenmesini söylüyor.

while ((RCC->CFGR & 0x0000000F) != 0x0000000A);

Besleninceye kadar bekle.

RCC->AHB1ENR |= 0x0000000F;

Cihazın portlarına güç verilmeye başlar.

GPIOD->MODER = 0x55000000;

GPIOD’nin (D portunun ) 15, 14, 13, 12 pinleri çıkış tanımlandı.

Bu kod cümlesi “GPIO” sözcüğünün sağına yazılan port grubu için işlenir. Yukarıdaki

koddan görüleceği üzere de D portu için işlem yapılmaktadır.Aşağıdaki şekil 2.15’den

de görüleceği üzere ; örneğin 5 nolu pinin çıkış tanımlanmasını istiyorsak

Page 31: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

31

saklayıcıya göndereceğimiz bilgi 000000000000000000000110000000000 olmalıdır.

Yada hekzadesimal olarak 0x00000D00 olmalıdır.

Şekil 2.15 Giriş-çıkış belirleme saklayıcısı

Bunun yanında her port isteğe bağlı olarak aktif edilemez. Bazı portlara özellikler

eklenmiştir. Eğer siz ST- Link ile ilgili portlar atama yaparsanız, mikrodenetleyici ile

iletişiminizi kaybedebilirsiniz. Bu durumda STMicroelectronics firmasının sitesinden

indireceğiniz STM32 ST-LINK Utility programı ile mikrodenetleyiciye bağlanıp

tümünü silme işlemi uygulamanız gerekir.

GPIOD->OSPEEDR= 0xFFFFFFFF;

GPIOD’ nin tüm çıkışlarını en yüksek hızda kullanmak istediğimizi belirtir. Bu da yine

şekil 2.12’de olduğu gibi portların konumları belirlenmiştir. Burada eğer her port için

”11” değerini gönderirsek 100 Mhz olmasını sağlar. Bu değer düştükçe kademeli olarak

hızda 2 Mhz’e kadar düşer.

2.7.2 Otonom Hareket Yapmayı Sağlayan Yazılım

Aşağıda otonom C yazılımı bulunmaktadır. Gerekli görülen açıklamalar kodlar arasına

yazılacaktır. Program yapısı daha önce C kod ailesi ile uğraşmış biri tarafından

kolaylıkla anlaşılabilir. Program aşağıda verilmiştir. Yine de program incelemesine

başlamadan önce bazı STM32 ailesine özel deyimlerin açıklanmasında fayda vardır.

Page 32: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

32

GPIOD->ODR=0x00000000;

Bu deyim D bloğundan çıkış verilmek istenen kapıların seçilmesinde kullanılır. Bunun

yerine bit banding kullanılarak portlara teker teker atama da yapılabilir. İsteninlirse

ASM kodları program içinde gerekli görüldüğünde kullanılabilir. Yukarıdaki deyimde

D portunun tüm çıkışları sıfırlanmıştır.

GPIOA->IDR & 0x00000001;

Yukarıda gördüğümüz komut, girişleri okumakta kullanılır. Yukarıdaki komut bir

değerle “and”(&) deyimi vasıtasıyla karşılaştırılarak porttan giriş olup olmadığı kontrol

edilmektedir.

delay_ms(200);

Alt fonksiyondan PLL ayarına göre ayarlanıp ana fonksiyona çağrılan bu komut cihazın

parantez içindeki sayı kadar milisaniye beklemesini sağlar.

/* Girişlerimiz PIR= GPIOA0, IR1=GPIOA1, IR2=GPIOA2, IR3=GPIOA3, motor

kontrol çıkışarımız ise GPIOD 15,14,13 ve 12 olarak belirlenmiştir.*/

int main()

{

int j;

while(1)

{

pir:

j=0;

GPIOD->ODR=0x00000000;

if ((GPIOA->IDR & 0x00000001)==0x00000000);

PIR yani GPIOA0 (A port grubundaki 0 numaralı port) “0” iken bu islemin sonucu 0, 1

iken bu islemin sonucu 1 cikar. yani PIR “0” iken if deyiminin altını uygular “1” ise

else kısmını yapar.

Page 33: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

33

{

if ((GPIOA->IDR & 0x00000002)==0x00000000) // IR1 0 mi?

don: {

GPIOD->ODR=0x00006000; // saga

don

delay_ms(200);

GPIOD->ODR=0x00000000;

if(j==5)

{

GPIOD->ODR=0x0000A000; // ileri git 5 sn

boyunca

delay_ms(1000);

goto pir;

}

else

{

if ((GPIOA->IDR & 0x00000001)==0x00000000) //piri

kontrol et

{

j++;

goto don;

}

else

{

j++;

goto pir;

}

}

}

else

{

ir2:

Page 34: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

34

if ((GPIOA->IDR & 0x00000004)==0x00000000)

// IR2 yi kontrol et

{

GPIOD->ODR=0x0000A000;

//saga don

if ((GPIOA->IDR &

0x00000001)==0x00000000) //IR1 i kontrol et

{

goto pir;

}

else

{

goto ir2;

}

}

else

{

ir3:

if ((GPIOA->IDR & 0x00000008)==0x00000000)

//IR3 u kontrol et

{

//burayi while ile yap

GPIOD->ODR=0x00009000;

// sola don

if ((GPIOD->IDR &

0x00000001)==0x00000000) //IR1 i kontrol et

{

goto pir;

}

else

{

goto ir3;

Page 35: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

35

}

}

else

{

GPIOD->ODR=0x00005000;

//geri git

delay_ms(1000);

GPIOD->ODR=0x00000000;

goto ir2;

}

}

}

}

else

{

GPIOD->ODR=0x00000000;

// konum koru

}

}

}

2.8 Mikrodenetleyiciler Arası Haberleşme

STM32 ailesi bir çok iletişim protokolüne olanak sağlar. 11 farklı iletişim protokolünü

karşılar. Bunlar aşağıda verilmiştir [1];

1. I2C arayüzü (SMBus/PMBus)

2. USART

3. UART (10.5 Mbit/s

4. ISO 7816 arayüzü

5. LIN,

6. IrDA,

Page 36: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

36

7. Modem kontrol

8. SPI (37.5 Mbits/s)

9. Çift yönlü I2S

10. CAN arayüzü (2.0B aktif)

11. SDIO arayüzüdür.

Cihazın üzerine yerleştirilen otonom kontrolü sağlayan STM32F407VG ile

STM32F103B mikrodenetleyicileri arasında iletişim için kameranın fotoğraf çekmesi

için atanan ve aynı zamanda butonla paralellenen portun girişine sinyal gönderilmek

kaydıyla iki cihazın iletişimleri sağlanmıştır.

2.9 Uygulamanın Avantajları ve Geliştirilmesi Gereken Özellikleri

Aracın sabit bir pozisyonda kalmaması ve sürekli gezmesi daha geniş bir alanı kontrol

etme imkanı sunar. Bunun yanında insan algılama sistemini geliştirilmesi gerekir. Daha

hızlı alan taramak için. Sistemin motorları ve sürüş sistemi yenilenebilir. Bunun yanında

kameraya güzergah konulabilir.

Page 37: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

37

3.SONUÇ

Bu projede, ARM tabanlı insan tanımlayan bir aracın fiziksel olarak gerçekleştirilmesi

amacıyla bir çalışma yapılmıştır. Bu amaca yönelik olarak öncelikle amaca uygun bir

tasarım yapılmış ve devre birimleri temin edilmiştir. Bu birimlerin birbirleri ve dış

dünya ile iletişimini sağlamak üzere gerekli program parçaları yazılarak bilgisayar

ortamında simülasyonları yapılmıştır. Olumlu sonuçlara ulaşıldığında gerekli birimler

bir araya getirilerek istenilen araç fiziksel olarak gerçekleştirilmiştir.

Ödev hazırlanırken tek bir güç merkezinin oluşması ve tek merkezden enerjinin

dağılması mühimdir. Sigorta kullanımı küçük devrelerde büyük kayıpları önleyebilir.

Eğer devrede sigorta kullanımı olsaydı, STM32F103B kartı yanmazdı. Bunun yanında

oluşacak enerji ihtiyacı ile enerji kaynağı arasında fazla fark olması, aradaki farkın

regülâtörler üzerinde düşürülmesini gerektirir. Bu noktada harici soğutma parçaları

yetersiz kalabilir. Isı bir çok eleman için hayati önem taşır. Regülâtörlerde oluşacak bir

hata devredeki elemanların aşırı yüklenmesine sebep olabilir. Bunun yanında baskı

devre yapılırken devre yollarının genişliği taşıyacağı güce göre ayarlanmalıdır. Bu

noktada patlayan yollara, kalkan yollara daha sonra kablo eki yapma ihtiyacı

duyulmuştur. Akım bölmesine gerekli öneminin verilmesi gerekir. Önemsiz gibi

görünen bu konu proje sırasında ekonomik kayıplar doğurmuştur. Bunun yanında gövde

tasarımı sırasında kullanılan malzemenin iletken olmaması daha iyi olacaktır. Tasarım

sırasında galvanizle tasarlanan gövdenin büyük kısmı elektrik yalıtım bandı ile

kaplanmak zorunda kalınmıştır. Gövdenin üzerinde durduğu tekerlek aksamı plastik

olduğu için taşıyacağı ağırlık hafif tutulmalıdır. Tasarım sırasında yüksek güçle devir

üreten sistem tekerleklerin aşınmasına, aktarım organı olarak kullanılan dişli kutusunun

yıpranmasına sebep olmuştur. Tasarım, devre tasarımı aşamasına geçilmeden önce

delikli kartlarda ve deney bordlarında denenmelidir. Sonrasında oluşacak hatalar burada

karşılaşılırsa telafisi baskı devre kartından daha kolay olacaktır. Belli bir noktadan sonra

simülasyon yetersiz kalabilmektedir.

Page 38: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

38

Sonuç olarak bu ödev devre tasarımı, işlemcilerin harici beslenmesi, sensör seçimi ve

sensörlere uygun besleme seçimi, gömülü sistemlerde yazılım, takım çalışması,

malzeme bilgisi, problemlere çözüm üretmede ve aksiyon üretmede büyük katkılar

sağlamıştır.

Page 39: isahatipoglu.files.wordpress.com  · Web viewUygulamada ana eleman olarak şekil-1.1 de görülen STM32f407VG ARM tabanlı geliştirme kiti kullanılmıştır. ARM tabanlı işlemciler

39

KAYNAKÇA

1. STM32 ailesinin teknik detayları

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERA

TURE/DATA_BRIEF/DM00037955.pdf (05.06.2012)

2. Cortex M serisi, http://www.arm.com/products/processors/cortex-m/index.php

(05.06.2012)

3. STM32F4, http://www.picproje.org/index.php?topic=35721.0 (05.06.2012)

4. ARM işlemci ile ilgili uygulama, http://www.mcu-turkey.com/?p=20659 (05.06.2012)

5. Ov 7670 ile ilgili teknik bilgi http://www.ovt.com/download_document.php?

type=sensor&sensorid=74 (05.06.2012)

6. Stm32f407vg datasheet http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERA

TURE/REFERENCE_MANUAL/DM00031020.pdf (05.06.2012)

7. Mesafe sensörü http://www.emucit.com/urun/sharp_gp2y0d805z0f_dijital_uzaklik_sensoru_5cm

(05.06.2012)

8. Dişli seti, http://www.emucit.com/urun/palet_ve_teker_seti(05.06.2012)