isahatipoglu.files.wordpress.com · web viewuygulamada ana eleman olarak şekil-1.1 de görülen...
TRANSCRIPT
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]
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
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.
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.
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ı.
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ı
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.
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.
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).
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
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ü,
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.
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]
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.
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
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]
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
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.
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ü
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.
21
Şekil 2.6 Dişli konfigürasyonları[7]
Şekil 2.7 Dişli kutusu parçaları ve motorlar[9]
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
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
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
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.
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
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
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
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;
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
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.
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.
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:
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;
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,
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.
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.
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.
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)