ARM TABANLI GUVENLIK ROBOTU UYGULAMASI – (AUTONOMOUS VEHICLE )

AUTONOMOUS VEHICLE APPLICATION  BY ARM BASED MICROCONTROLLER

ARM based processors have become more and more famous especially last 15 years. These processor technologies are used almost everywhere in our life. Touch screen mobile phones, personal computers, video recorders are good examples for ARM based processors. If we want to compare ARM based processors with other ones, they are much better. They have quite fast systems and those processors have almost 3 Megahertz speed. ARM means advanced risc machine. Eventually ARM company has license and they sell their architecture to other manufacturing companies such as Apple, Samsung, HTC, Motorola and the other famous companies.

With this technology, we desired to develop an autonomously moving and instant information transmitting vehicle which looks for human in a particular area for the security purposes. In our project we added pallets, PIR sensor, distance sensors, camera  and microcontrollers to galvanized chassis. As a result, a major achievement for us as students was  the autonomous vehicle  taking photos of people when it detects human in the particular area.

As a result, although  we have  not been done with the project as we had  planned, it was invaluable experience for us. Our vehicle searches human and when it finds it takes photos of the person, and saves them into the memory card.

Bortecine2023

ARM TABANLI GUVENLIK ROBOTU UYGULAMASI

ARM  gelişen teknolojide yerini son 15 yılda iyice sağlamlaştıran bir işlemci mimarisidir. Bu teknoloji hayatımızın her anında bizimle beraberdir ve günden güne hayatımıza daha da girmektedir. Gelişen  dokunmatik cep  telefonlarına, küçülen kişisel bilgisayarlara, yol bulma cihazlarına, medya oynatıcılarına ve görüntü kayıt cihazlarına güç veren bu mimariye sahip işlemciler, bir çok köklü kurumun pozisyonunu sarsmıştır. Bu teknoloji sayesinde pratik ama üç haneli megahertz hızlarına ulaşamayan mikroçiplerin, yapamadığı, görüntü işleme gibi üstün güç gerektiren, işlerde idealdirler. Arm, işlemcilerin değil, işlemci mimarisinin adıdır. Arm “Acorn risc machine” anlamına gelir. Firma sadece mimariyi tasarlayıp lisans satar. Alıcıları arasında Apple, Samsung, Qualcomm, HTC, Motorola ve  Sony bulunur.

Bu teknoloji ile otonom hareket eden ve anlık bilgi ileten bir paletli araç geliştirmek istedik. Projemizde, galvanizden oluşturduğumuz şasiye, tank paletleri, pır dedektörler, mesafe algılayıcılar, kamera ve mikrodenetleyiciler ekledik. Sonuç olarak bir ekip olarak başladığımız  projemiz, bizim için öğrenci olarak büyük bir başarıdır. Robot otonom olarak hareket ederek, insan gördüğünde fotoğraf çeker.

Sonuç olarak bir ekip olarak girdiğimiz projemiz, bizim için öğrenci olarak büyük bir başarıdır. Robot otonom olarak hareket ederek insan arama tarama faaliyetini fotoğrafla belgelendirerek yerine getirmektedir.

 

 

  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]

Stm32f407vg

Ş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

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

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

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

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

5-       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ı)

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

7-       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.

Ş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.

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ı.

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.

Adsız3

Şekil 1.3GP2Y0D810Z0F’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ı
  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.Adsız4Şekil 1.4 Mesafe ölçme sensörünün blok diyagramı[6]
  8. 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.Adsız5

    Ş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.

    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).

    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.Adsız6

    Ş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 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.Adsız7

    Ş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üAdsız8

    Ş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 640×480 çö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.

    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.Adsız9

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

    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.Adsız10

    Ş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.

    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.       Adsız11

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

    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.Adsız12

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

    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. Adsız13

    Ş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 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.Adsız14

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

    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ülmektedirAdsız15

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

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

    Ş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 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.

    Adsız18

    Şekil 2.9 Motor sürücü devresiAdsız111

    Ş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 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.aa

    Ş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 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.aaa

    Şekil 2.12 STM32F4’e program yüklenilmesi

     

     

    #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;

     sema

    Ş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 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.sema2

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

     

     

     

    RCC->CR |= 0x00010000;       

    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

    saklayıcıya göndereceğimiz bilgi 000000000000000000000110000000000 olmalıdır. Yada  hekzadesimal olarak 0x00000D00 olmalıdır.sema3

    Ş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.

     

    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.

                {

                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:                                       

                                                   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;

                                                                                                  }

                                                                           }                    

                                                               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,
    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.

    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.

    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.

    KAYNAKÇA

    1. STM32  ailesinin teknik detayları http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/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_LITERATURE/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)
    9. Baris Samanci LPC 2000 Programlama Klavuzu

Proje Ekibi

Proje yapım aşamasında bizden desteklerini esirgemeyen sürekli heyecanımızı ve hırsımızı ayakta tutmaya çalışan danışman hocalarımız; Sayın Doç. Dr.  Ömer Galip SARAÇOĞLU,

Sayın Y. Doç. Dr. Aytekin BAĞIŞ’a, Güç Laboratuarı dersi hocamız; Sayın Arş. Gör. Sezai Alper Tekin hocalarımıza, TYEKK Kulübü yöneticilerine,

Öncelikle saygılarımızı sunar, teşekkürü bir borç biliriz.

Bunun yanında arkadaşlarımız; Celal HANÇER, Erdem HAYAT ve  Hacı Ali TIRAŞ’a

bizim projemize bizim gibi sahip çıkıp, desteklerini, ellerindeki imkanları bizden esirgemedikleri için ve zor gün dostu olduklarını gösterdikleri için teşekkürü bir borç biliriz.

Bahadır YILMAZ

İsa HATİPOĞLU

Ahmet KÖSE

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s