Menü

Hedef Tespit Radar Sistemi (HeTRaS)

10 Aralık 2018 - Genel
5 (100%) 1 vote

ARDUİNO TABANLI, HEDEF TESPİT RADAR SİSTEMİ

 

Daha önceki raporumuzdan da hatırlayacağımız gibi yapacağımız proje Arduino tabanlı, radar sistemimizi anlatacağız. Yapacağımız projenin fonksiyonlarında, standart hareketler bulunduğu gibi, ayrıyeten maketimizin önüne yerleştireceğimiz ultrasonik mesafe sensörünün yardımıyla da çevredeki hava tehditlerine karşı komuta üssümüzün korunmasını sağlayacağız.

Projemizin Aşamaları

Öncelikle nasıl bir proje seçmemiz gerektiğini düşündük ve hedef tespit radar sistemi projesini yapmaya karar verdik. Daha sonra bir araya gelip kafamızda bir taslak oluşturduk. Neler yapabileceğimiz hakkında bilgi alışverişi yaptık. Sonra karalama bir çizimle maketimizi oluşturduk. Sonra bu maketi fusion 360 programı ile çizime döktük. Çizim kısmı bittikten sonra malzemelerimizi temin ettik ve maketimizin yapımına başladık. Önce maket kağıdı ile zemini oluşturduk, etrafına duvarları da yapıştırdıktan sonra gözetleme kulelerimizi tasarladık. Nereye neyi koyacağımızı zemin üzerinde belirledik. Komuta kademesini maket kağıdı ile oluşturduk. Gerekli gördüğümüz yerlere göz estetiği için kamuflaj kağıtlar yapıştırdık. Hangar, yatakhane, helikopter pisti ve cephaneliklerimizi de oluşturduktan sonra maketin elektronik kısmına geçtik. Gözetleme kulelerine beyaz ledlerimizi, komuta kademesine sarı ledlerimizi monte ettik. Bunlar karanlıkta aydınlatma ihtiyacı içindir ve otomatik çalışır. Ledlerin otomatik çalışma prensibine göre devrelerimizi kurduk ve lehimle birleştirdik. Bunlar bittikten sonra maketin montajını yaptık. Arduino uno3 için yazılım kodlarını hazır olarak sipariş vermiştik ama bu kodları yeterli görmediğimiz için kodları kullanmadan kendimiz baştan bir yazılım oluşturduk. Led ve buzzer için ayrı kodlar, processing programı için ayrı kodlar oluşturup hepsini tek bir yazılım haline getirdikten sonra işlemcimize kodlarımızı attık. Bu kod aynı zamanda ultrasonik sensör vasıtasıyla mesafeyi ölçüp hedefin hangi mesafede tespit edildiğini bize bildirmektedir. Ultrasonik radarımız hedef tespit ettiği durumda ikaz lambası olarak kırmızı led yakmaktadır. Arduino yazılımları tamamlandıktan sonra onları da kamuflaj kağıdımız ile kapladık ve maketin ortasına yerleştirdik. Proje tamamen bittikten sonra test aşamalarına geçtik ve projemizin düzgün çalışıp çalışmadığını kontrol ettik. Projemizin sorunsuz bir şekilde çalıştığını gördükten sonra video çekim aşamalarına geçtik. Şimdi projede kullandığımız herşeyi detaylı bir şekilde inceleyelim.

 

 

 KULLANDIĞIMIZ PARÇALAR(MODÜLLER)

ARDUİNO UNO R3

Arduino Uno ATmega328 mikrodenetleyici içeren bir Arduino kartıdır. Arduino ‘nun en yaygın kullanılan kartı olduğu söylenebilir. Arduino Uno ‘nun ilk modelinden sonra Arduino Uno R2, Arduino Uno SMD ve son olarak Arduino Uno R3 çıkmıştır. Arduino ‘nun kardeş markası olan Genuino markasını taşıyan Genuino Uno kartı ile tamamen aynı özelliklere sahiptir. Arduino Uno ‘nun 14 tane dijital giriş / çıkış pini vardır. Bunlardan 6 tanesi PWM çıkışı olarak kullanılabilir. Ayrıca 6 adet analog girişi, bir adet 16 MHz kristal osilatörü, USB bağlantısı, power jakı (2.1mm), ICSP başlığı ve reset butonu bulunmaktadır. Arduino Uno bir mikrodenetleyiciyi desteklemek için gerekli bileşenlerin hepsini içerir. Arduino Uno ‘yu bir bilgisayara bağlayarak, bir adaptör ile ya da pil ile çalıştırabilirsiniz.

Aşağıdaki resimde Arduino Uno R3 ‘ün kısımları gösterilmektedir.

1 : USB jakı

2 : Power jakı (7-12 V DC)

3 : Mikrodenetleyici ATmega328

4 : Haberleşme çipi

5 : 16 MHz kristal

6 : Reset butonu

7 : Power ledi

8 : TX / NX ledleri

9 : Led

10 : Power pinleri

11 : Analog girişler

12 : TX / RX pinleri

13 : Dijital giriş / çıkış pinleri (yanında ~ işareti olan pinler PWM çıkışı olarak kullanılabilir.)

14 : Ground ve AREF pinleri

15 : ATmega328 için ICSP

16 : USB arayüzü için ICSP

 

ARDİNUO FOTOĞRAFI

GÜÇ

Arduino Uno bir USB kablosu ile bilgisayar bağlanarak çalıştırılabilir ya da harici bir güç kaynağından beslenebilir. Harici güç kaynağı bir AC-DC adaptör ya da bir pil / batarya olabilir. Adaptörün 2.1 mm jaklı ucunun merkezi pozitif olmalıdır ve Arduino Uno ‘nun power girişine takılmalıdır. Pil veya bataryanın uçları ise power konnektörünün GND ve Vin pinlerine bağlanmalıdır.

 VIN : Arduino Uno kartına harici bir güç kaynağı bağlandığında kullanılan voltaj girişidir.
 5V : Bu pin Arduino kartındaki regülatörden 5 V çıkış sağlar. Kart DC power jakından (2 numaralı kısım) 7-12 V adaptör ile, USB jakından (1 numaralı kısım) 5 V ile ya da VIN pininden 7-12 V ile beslenebilir. 5V ve 3.3V pininden voltaj beslemesi regülatörü bertaraf eder ve karta zarar verir.
 3.3V : Arduino kart üzerindeki regülatörden sağlanan 3,3V çıkışıdır. Maksimum 50 mA dir.
 GND: Toprak pinidir.

IOREF : Arduino kartlar üzerindeki bu pin, mikrodenetleyicinin çalıştığı voltaj referansını sağlar. Uygun yapılandırılmış bir shield IOREF pin voltajını okuyabilir ve uygun güç kaynaklarını seçebilir ya da 3.3 V ve 5 V ile çalışmak için çıkışlarında gerilim dönüştürücülerini etkinleştirebilir.

 

 

GİRİŞ VE ÇIKIŞLAR

 

Arduino Uno ‘da bulunan 14 tane dijital giriş / çıkış pininin tamamı, pinMode(), digitalWrite() ve digitalRead() fonksiyonları ile giriş ya da çıkış olarak kullanılabilir. Bu pinler 5 V ile çalışır. Her pin maksimum 40 mA çekebilir ya da sağlayabilir ve 20-50 KOhm dahili pull – up dirençleri vardır. Ayrıca bazı pinlerin özel fonksiyonları vardır:

Serial 0 (RX) ve 1 (TX) : Bu pinler TTL seri data almak (receive – RX) ve yaymak (transmit – TX) içindir.

Harici kesmeler (2 ve 3) :  Bu pinler bir kesmeyi tetiklemek için kullanılabilir.
PWM: 3, 5, 6, 9, 10, ve 11 :  Bu pinler analogWrite () fonksiyonu ile 8-bit PWM sinyali sağlar.
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) :  Bu pinler SPI kütüphanesi ile SPI haberleşmeyi sağlar.

LED 13 : Dijital pin 13 e bağlı bir leddir. Pinin değeri High olduğunda yanar, Low olduğunda söner.Arduino Uno ‘nun A0 dan A5 e kadar etiketlenmiş 6 adet analog girişi bulnur, her biri 10 bitlik çözünürlük destekler. Varsayılan ayarlarda topraktan 5 V a kadar ölçerler. Ancak, AREF pini ve analogReference() fonksiyonu kullanılarak üst limit ayarlanabilir.

TWI : A4 ya da SDA pini ve A5 ya da SCL pini Wire kütüphanesini kullanarak TWI haberleşmesini destekler.

AREF : Analog girişler için referans voltajıdır. analogReference() fonksiyonu ile kullanılır.
RESET : Mikrodenetleyiciyi resetlemek içindir. Genellikle shield üzerine reset butonu eklemek için kullanılır.

 

FOTOĞRAF

.HANGİ PİN NE İŞE YARAR ?

 

GND: Topraklama.

VCC: 3.3V.

CE: RX/TX’i etkinleştirir. Eğer (HİGH) çalışıyorsa modül veri alıyordur yada veri yolluyordur.
CSN: Eğer çip LOW olarak çalışıyorsa SPI komutlarına tepki verir. Bu aslında ‘gerçek’ haberleşecek çipi seçme sinyalidir ve alıcı-verici radyo haberleşmesini etkinleştirip / devre dışı bırakır. Genelde CE ile karıştırılır.

SCK: SPI haberleşmesinde senkronu sağlayan saat sinyalinin bulunduğu hattır. Saat sinyali master cihaz tarafından üretilir.

MOSI: Master cihazdan yollanan verilerin çevresel cihazlara aktrıldığı hattır.

MISO: Çevresel cihazlardan (slave) yollanan verilerin master cihaza aktarıldığı hattır.
IRQ: İstenilen pinin işlevini sonlandırır. Siynaller RX/TX durumunda olduğu gibi alınır yada yollanır.

 

Özellikleri

 

 

Uygulama Alanları

 

 

HC-SR04 ULTASONİK MESAFE SENSÖRÜ

Ultrasonik ses dalgaları üreterek ,herhangi bir engelin algılanmasını ve buna göre işlem yapılmasını sağlayan bir modüldür. Ultrasonik ses dalgaları 20 kHz ile 500 kHz arasında frekanslara sahip ses dalgalarıdır. Bizim duyabildiğimiz 300 Hz-14000 Hz bandının üzerindedirler. Ultrasonik sensörler, ultrasonik ses dalgaları yayan ve bunların engellere çarpıp geri dönmesine kadar geçen süreyi hesaplayarak aradaki uzaklığı belirleyebilen sensörlerdir. Bu sensörlerde bu kadar yüksek frekanslarda ses dalgalarının yayılmasının nedeni ; bu frekanslardaki dalgaların düzgün doğrusal şekilde ilerlemeleri , enerjilerinin yüksek olması ve sert yüzeylerden kolayca yansımasıdır

JUMPER KABLOLAR

Bu bağlantı kabloları 2,54 mm’lik standart pinlere göre dizayn edilmiştir. Toplam 10 renk ve her renkten 4 adet olmak üzere toplam 40 adetlik paket halindedir. Bu 26 AWG’lik (American Wire Gauge / Amerikan Tel Ölçüsü) bağlantı kablolarının boyu 20 cm’dir. AWG’den bahsedecek olursak. AWG tel ölçü sistemine göre bir telin kalınlığı 0-40 numara arasında değişir; biz genelde en fazla 24-38 numara arası kalınlıktaki telleri kullanırız ki bu da mm cinsinden 0.5-0.1 arasına denk gelir. AWG ölçüsü arttıkça tel incelir, AWG ölçüsü azaldıkça tel kalınlaşır.

Arduino projelerinde sıklıkla kullanılan bu kablonun 3 farklı şekli vardır. Bunlar ;

 

ARDUİNO KODLARI

Bu kısımda, radarı kontrol etmemizi sağlayan arduino kodlarını inceleyeceğiz. Önce kodların genel bir yapısına bakacağız, daha sonra ise her bir modüle yazılmış  kodları açıklayacağız. Öncelikle  kodlarımızın genel bir yapısına bakalım.

 

Kısaca açıklamak gerekirse, kütüphaneler arduino üzerinde belirli görevleri yerine getirecek bileşen bilgilerini içerirler ve bu yapıları sayesinde yapacağımız işleme daha kısa yoldan ve komut karmaşasını ortadan kaldırarak erişmemizi sağlarlar. Ancak kütüphaneler ayrıca bir öneme daha sahiptirler. Bildiğimiz üzere arduino projeleri sadece programlama ile gerçekleştirilmiyor. Programlamanın yanında elektronik bileşenler, çeşitli sensörler, modüller, butonlar vesaire bir sürü ek elemana da ihtiyaç duyuluyor.  Bu elemanlardan bir çoğu ise kendi içerisinde başlı başına bir yapıya, çalışma örgüsüne sahip oluyor.

KOD FOTOĞRAFI

 

 

KOD FOTOĞRAFI

 

 

Dikkat ettiğiniz üzere pinleri tanımlarken başına “const” değerini veriyoruz. Bu const değerini açıklamak gerekirse, değişken üzerinde hiçbir işlemi yok diyebiliriz, sadece ama sadece değişkendeki değerin korunmasını sağlıyor. Yani biz orada sadece sol1 isimli değişkene 6 değerini atıyoruz, const ile de bu değerin hiçbir şekilde değiştirilememesini sağlıyoruz.

 

Gördüğümüz bir diğer terimde long olarak tanımlanmış değişkenlerin başındaki unsigned terimi. Bu terimin tam olarak yaptığı iş ise, bir değişkenin minimum değerini 0 olarak sınırlandırması diyebiliriz. Yani ilerde kullanacağımız ama hiçbir şekilde negatif değerlere düşmesini istemediğimiz eskizaman ve yenizaman değişkenlerimizi unsigned olarak tanımlıyoruz. Setup kısmına gelmeden hemen önce de 2 adet double dizi tanımlıyoruz. Bu diziler ilerde pil ölçme ve veri alışverişi kısmında işimize yarayacak.

 

Devamında da pil ölçer için gerekli değişkenleri ve dirençleri tanımlıyoruz. Daha sonra ise projemizin metotlarına bakalım. Öncelikle motorlarımız için yazdığımız hareket metotlarına bakalım

 

 

KOD FOTOĞRAFI

 

 

MESAFE SENSÖR FOTOSU

 

Bu ise mesafe sensörümüzün metodu. Kodları açıklayacak olursak, projemizin başında tanımladığımız Trig pini çıkış yüzeyinden dalganın salınmasını sağlayan pindir. Echo pini ise giriş yüzeyine yansıyan dalganın ulaştığını Arduino’ya haber veren pindir. Buradan da anlaşıldığı gibi Arduino’da trig pini çıkış, echo pini ise giriş olarak ayarlanmalıdır.Burada çıkış üzerinden ortama ultrasonik sabit bir frekansta ses yolluyor, giriş üzerinden de ortama yollanan sesi yakalıyoruz. Daha sonra dalgayı gönderdiğimiz süre ile yakaladığımız arasında geçen süreyi hesaplayarak cismin uzaklığını hesaplıyoruz.

 

Daha sonra ise hedef cisime 40 cm’e kadar yaklaştıktan sonra arabanın Fren metotunu çağırarak arabayı durduruyoruz ve sensdrm değişkenini false yapıyoruz. En sonda 40 ms delay ekleyerek sensörün bunu her 40 ms de bir yapmasını sağlıyoruz. Mesafe sensörümüzde delay 29 ms ve altı bir değer yazılırsa veya delay hiç kullanılmazsa ölçümün yanlış olacağından delay değerinin 29 ms’nin üstünde bir değer olmasına dikkat edilmelidir. Daha sonra sağ kısımda ise loop kısmı içerisinde sensdrm değişkenimizi sorguluyoruz. Eğer değişken false ise , mesaj dizisini boşaltıyoruz, eskizaman ve yenizaman değişkenleri arasındaki fark 5500 den büyük ise de, sendrm değişkenimizi true değerine eşitliyoruz.

 

Etiketler:

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Araç çubuğuna atla