• Sonuç bulunamadı

2 BOYUTTA YÜZEYE YAKIN METAL VE METAL OLMAYAN CİSİMLERİN YER TESPİTİ

N/A
N/A
Protected

Academic year: 2022

Share "2 BOYUTTA YÜZEYE YAKIN METAL VE METAL OLMAYAN CİSİMLERİN YER TESPİTİ"

Copied!
80
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

2 BOYUTTA YÜZEYE YAKIN METAL VE METAL OLMAYAN CİSİMLERİN YER TESPİTİ

2017

LİSANS TEZİ

ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ

Adem ALCAN

Selim GÖL

(2)

ii

2 Boyutta Yüzeye Yakın Metal ve Metal Olmayan Cisimlerin Yer Tespiti

Adem ALCAN Selim GÖL

Karabük Üniversitesi

Mühendislik Fakültesi

Elektrik-Elektronik Mühendisliği Bölümünde Lisans Tezi

Olarak Hazırlanmıştır

KARABÜK Mayıs 2017

(3)

iii

Adem ALCAN, Selim GÖL tarafından hazırlanan “2 Boyutta Yüzeye Yakın Metal ve Metal Olmayan Cisimlerin Yer Tespiti” başlıklı bu tezin Lisans Tezi olarak uygun olduğunu onaylarım.

.../.../201....

Prof.Dr. Bahattin TÜRETKEN ..…….………...

Tez Danışmanı,

Karabük Üniversitesi Elektrik-Elektronik Mühendisliği Bölümü

Doç.Dr. Mustafa AKTAŞ ..…….………...

Karabük Üniversitesi Elektrik-Elektronik Mühendisliği Bölümü

Yrd.Doç. Hüseyin DEMİREL ..…….………...

Karabük Üniversitesi Elektrik-Elektronik Mühendisliği Bölümü

(4)

iv

“Bu tezdeki tüm bilgilerin akademik kurallara ve etik ilkelere uygun olarak elde edildiğini ve sunulduğunu; ayrıca bu kuralların ve ilkelerin gerektirdiği şekilde, bu çalışmadan kaynaklanmayan bütün atıfları yaptığımı beyan ederim.”

Adem ALCAN - Selim GÖL

(5)

v 1 Lisans Tezi

2 Boyutta Yüzeye Yakın Metal ve Metal Olmayan Cisimlerin Yer Tespiti

Adem ALCAN Selim GÖL

Karabük Üniversitesi Mühendislik Fakültesi

Elektrik-Elektronik Mühendisliği Bölümü

Tez Danışmanı:

Prof. Dr. Bahattin TÜRETKKEN Mayıs 2017, 79 sayfa

Anahtar Kelimeler : 2D tarama, Metal, Elektromanyetik, Elektromanyetik Dalga

(6)

vi 2 TEŞEKKÜR

Bu tez çalışmamızda yardımlarından dolayı, her zaman anlayışlı olan ve tez konumuzun danışmanlığını yapan Prof.Dr.Bahattin TÜRETKEN hocamıza , bilgi alışverişi yaptığımız diğer hocalarımıza, bize her türlü maddi ve manevi desteği veren arkadaşlarımıza ve ailelerimize teşekkürlerimizi sunarız.

(7)

3

İÇİNDEKİLER

Sayfa

TEŞEKKÜR ... 2

1. GİRİŞ ... 1

1.1 Ellektromanyetik Dalga ... 3

1.2 Elektromanyetik Dalgaların Üretilmesi ... 7

1.3 Elektromanyetik Dalga Çeşitleri ... 8

1.3.1 Gama Işınları ... 8

1.3.2 X Işınları ... 9

1.3.3 Ultraviyole Işınlar ... 10

1.3.4 Kızılötesi Işınlar ... 11

1.3.5 Görünür Işık ... 11

1.3.6 Mor Ve Ötesi Işınları ... 12

1.3.7 MİKRODALGALAR ... 12

1.3.8 Radyo Dalgaları ... 13

1.4 Elektromanyetik Dalgaların Özellikleri ... 13

1.5 Alan Tarama Aygıtları Ve Çalışma Teorileri... 14

1.6 Çalışması Yapılacak Sistem İşlevi Ve Gereksinimleri ... 16

1.6.1 Endüktif Sensör ... 17

2 DONANIM VE YAZILIM ... 19

2.1 Mekanik Yapı ... 19

2.2 Yazılımsal Yapı ... 24

2.2.1 C# Kodları ... 24

2.2.2 Arduino Kodları ... 33

3 PROJENİN GELİŞTİRİLMESİ ... 45 vi

(8)

viii 4

4 YÖNETİM PANELİ EKRANI ... 51

4.1 Panel Kullanımı ... 51

5 TESTLER VE SONUÇ ... 53

5.1.1 Çalışma Aşamaları ... 67

6 ÖZGEÇMİŞ ... 72

(9)

1 1. GİRİŞ

Özet

Bu tezin amacı zemine hiçbir temasta bulunmadan zeminin altındaki metallerin konumsal tespitini yapmak. Uygulanan bu sistemde bizim için alan ölçülerinde esnekliği ön planda tutmak. Bu proje için çalışma planı Tablo 1.1 de gösterilmektedir.

2.

Projenin Detayları Tasarım çalışması Ürün siparişleri Yazılım çalışması Malzeme temini (diğer) Malzeme testleri Montaj Yazılım yükleme Test Aşaması Teslim ve Sunum

EKİM

1. Hafta

2. Hafta

3. Hafta

4. Hafta

KASIM

1. Hafta

2. Hafta

3. Hafta

4. Hafta

ARALIK 1. Hafta

2. Hafta

3. Hafta

4. Hafta

OCAK

1. Hafta

2. Hafta

3. Hafta

4. Hafta

ŞU BA T1. Hafta

(10)

2

2. Hafta

3. Hafta

4. Hafta

MART

1. Hafta

2. Hafta

3. Hafta

4. Hafta

NİSAN

1. Hafta

2. Hafta

3. Hafta

4. Hafta

MAYIS

1. Hafta

2. Hafta

3. Hafta

4. Hafta

(11)

3 Elektromanyetik nedir

Elektromanyetizmaya alakası bulunan ve bununla ilgili olup Fransızca kökenli bir terim olan Elektromanyetik bir fizik terimidir. Farklı alanların içerisinde de bulunan elektromanyetik Kimyada mıknatıslık ve elektrik olaylarını kapsar.

1865 yılında fizikçi James Maxvell ‘in ışık hızına yakın bir hızda hareket eden ses dalgalarının gitmesini sağlayan elektromanyetik dalgaların yani radyo dalgalarını keşfetmiştir. Alman bilim adamı olan Hertz ise Maxwell’in bu tezini geliştirerek ve deneyler yaparak ispatladı.

1.1 Ellektromanyetik Dalga Elektromanyetik Dalga

Elektromanyetik dalgalar bir birine dik düzlemdeki birlikte değişen elektrik ve manyetik alanlardan meydana gelir. Uzay ortamında değişen bu alanlar ise manyetik alanları meydana getirir. Herhangi bir ortam içerisindeki elektrik alanı değiştirmek için yüklü cisimleri ivmelendirerek hareket ettirmek gerekir. Hareket eden bu yükler elektromanyetik dalga yayarlar.

Elektromanyetik iki temel bileşene sahiptir. Bunlar Elektrik alan(E) ve Manyetik Alan(B) bileşenleridir. Bu iki bileşen birbirine diktir ve elektromanyetik dalganın yayılma yönü ise bu iki bileşene diktir.

(12)

4

Şekil 1.1

Birim yüke etki eden kuvvete elektrik alan denir. Bu kuvvet yönü, + yükten – yüke doğrudur. Elektrik alanların yönleri yönlü oklarla gösterilir. Diğer bir değişle elektrik alan çizgileri potansiyeli yüksek olan bölgeden düşük potansiye doğrudur.

Manyetik alan ise herhangi bir noktada ‘v’ hızıyla hareket eden ‘q’ yükünde ‘F’

kuvvetini meydana getiren bir alan vektörüdür.

Aşağıdaki şekildede gösterildiği gibi ‘x’ doğrultusunda hareket eden bir elektromanyetik dalganın 3 boyutlu şekli gösterilmektedir.

Şekil 1.2 Elektromanyetik dalganın 3 boyutlu hareketi.

(13)

5

Şekil 1.3 Elektromanyetik dalganın 1 boyutlu görünümü.

Elektromanyetik dalganın yayılma yönü sağ el kuralı ile bulunmaktadır.

Sinüzoidal dalganın bir noktasından başlamak üzere yine aynı noktaya varıncaya kadar geçen süreye “periyot (T)” denir. Birim zamandaki (1 sn.) periyot sayısına ise

“frekans (f)” denir. f= 1/T”dir. Frekans birimi Hertz (Hz)”dir.

1 KHz = 1.000 Hz 1 MHz = 1.000.000 Hz 1 GHz = 1.000.000.000 Hz „ dir.

Elektromanyetik dalgalar ışık hızı (c= 300.000 km/sn. = 161.800 NM/sn.) ile yayılır.

Bir elektromanyetik dalganın bir periyodunda kat edilen yol, dalga boyunu (λ) verir.

NOT: Lamda (λ) ışığın dalga boyu gösterim simgesi. Birimi metredir (m).

c = λ .f ve λ = c/f ” dir.

Düşük frekanslı olan elektromanyetik dalgalar, uzun dalga boyuna sahiptirler büyük frekanslı dalgalar ise daha kısa dalga boyuna sahiptirler. Elektromanyetik dalgalar taşıdıkları enerji, frekansları ve dalga boylarına göre sınıflandırılır. Frekans değerleri sınıflandırıldığında farklı olan ışınlar sıralandığında elektromanyetik spektrum elde edilir. Tüm bu ışın skalasında düşük enerjili radyo dalgalarından yüksek

(14)

6

enerjili dalgalara kadar olan bu skalaya elektromanyetik spektrum denir ve bu skalada bilindiği kadarıyla radyo dalgalarıyla başlayıp gama dalgalarında biter.

Şekil 1.4 Elektromanyetik dalga spektrumu

(15)

7 1.2 Elektromanyetik Dalgaların Üretilmesi Elektromanyetik Dalgaların Üretilmesi

Elektromanyetik dalgaların dalga boylarına bağlı olarak elektromanyetik dalga üretecinin yapısı da değişir. Şekil 1.5 ‘te görüldüğü gibi kısa dalga yayını yapan elektromanyetik sinyal üreteci “ω=1/√LC” frekansı ile titreşen bir LC devresini göstermektedir.

Şekil 1.5 Elektromanyetik Dalga Üreteci

Sistem dipol antenin çıkışı olan iki kolunun uçlarında elektrik yüklerinin salınımı işlemini yapar ve bu salının sonucunda belirli bir düzende yayılan elektromanyetik alan çizgilerinin yayılımı şekil 1.6 ‘ da görünmektedir.

Şekil 1.6 Elektromanyetik Alan Çizgilerinin Yayılımı

(16)

8 1.3 Elektromanyetik Dalga Çeşitleri Elektromanyetik Dalga Çeşitleri

Elektromanyetik dalgalar dalga boylarına (λ) göre gruplandırılır. Sinyalin iki tepe noktası arasındaki uzaklığa verilen isime dalga boyu(λ) denir.

Elektromanyetik dalga çeşitleri;

Şekil 1.7 Elektromanyetik Spektrum

1.3.1 Gama Işınları Gama Işınları

En güçlü enerjiye sahip dalgalar olarak bilinirler. Skalada en kısa dalga boyuna(λ) sahip dalgalar olmasına rağmen en büyük foton enerjisi ve en yükse frekanslara sahiplerdir. Doğal ve yapay radyoaktif maddelerin çekirlerlerinde oluşan reaksiyon sonucunda açığa çıkarlar. Herhangi bir madde içerisinden geçitiklerinde o maddenin atomları ve molekülleri dışında bulunan elektronların tamamına çarparlar ve bunun sonucunda iyonlaşma meydana gelir.

Gama ışınarının taşıdıkları enerji miktarı çok yüksel olduğundan dolayı canlılar üzerinde yüksek miktarda zararlı etki oluştururlar. Bu ışında doğru kullanılmadığında aksi taktirde faydadan çok zarara sebebiyet verirler.

(17)

9

Şekil 1.8 Gama Işınları

Çok daha küçük dalga boyunave çok yüksek enerji sahiptirler. Atomların bozulması sonucunda meydana gelirler. Dalga boyları 10 pikometreden küçüktür.

1.3.2 X Işınları X Işınları

Çok yüksek hızlarda elektronların herhangi bir metal hedefe gönderilerek durdurulması sonucunda ortaya çıkarlar. Katot üzerinden hızlandırılan elektronların anota çarparak durması sonucu meydana gelirler.

X ışınları yüksek enerjiye ve küçük dalga boyuna sahiptirler.10 nanometre ile 10 pikometre arasında dalga boyuna sahiptirler

Şekil 1.9 X-Işınları

(18)

10 1.3.3 Ultraviyole Işınlar

Ultraviyole ışınları

Ultraviyole ışınları gözle görülmezler. 10 ile 380 nanometre aralığında bir dalga boyuna sahiptirler. Bu ışınların ana kaynağı güneştir. Elektrik ve kaynak arkları sırasında da oluşurlar. Güneşten dünyaya gelen ışın miktarları aşağıdaki durumlara bağlıdır;

 Koruyucu ozon tabakasına

 Bulut durumuna

 Mevsime Günün saatine

 Enleme

 Deniz seviyesinden yüksekliği

Şekil 1.10 Ultraviyole Işınları

Ultraviyoler ışınları yansıyarakta etkili olabilir. Su, kar veya kumdan yansıyan bu ışınlar kolaylıkla engellenebilir.

(19)

11 1.3.4 Kızılötesi Işınlar

Kızıl Ötesi Işınlar

Dalga boyları 1-7 mm – 10-7m arasındadır. Isıya sahip cisimler tarafından yayılırlar.

Elektromanyetik dalgalar arasında görebildiğimiz tek ışınlardır. Farklı renklerde kendini gösterir. Bu renklerin tümü bir araya geldiğinda dalga boylarının toplamı bize görünür ışık oluşturur.

Şekil 1.11 Kızıl Ötesi Işınlar

1.3.5 Görünür Işık Görünür Işık

Dalga boyları 4x1014Hz ile 7x1014 Hz arasındadır. İnsan gözünün algıladığı ışıktır.

Bunlar çok sıcak cisimlerden yayılır. (Kırmızı, sarı, yesil, mavi, mor gibi)

Şekil 1.12 Görünür Işık

(20)

12 1.3.6 Mor Ve Ötesi Işınları

Mor Ötesi Işınlar

Bunların kaynağı genelde güneştir. Dalga boyları 4 10–7m–6 10–10m arasındadır.

Yeryüzüne az miktarda ulaşırlar. Güneş çarpmasının sebebi bu ışınlardır.

Şekil 1.13 Mor Ötesi Işınlar

1.3.7 MİKRODALGALAR

Mikrodalgalar

Dalga boyları 0,1-100cm ve frekansları 0,3-300 giga hertz (GHz) olan elektromanyetik dalgalardır. Bazı elektronik cihazlar tarafından üretilebilirler. Işık, yağmur ve toz içerisinden kolayca geçebildikleri için uzaydan dünyayı görüntüleme amacı ile kullanılırlar.

Şekil 1.14 Mikrodalgalar

(21)

13 1.3.8 Radyo Dalgaları

Radyo Dalgaları

Anten üzerindeki yüklerin hareketlendirilmesi (ivmelenmesi) ile meydana gelirler.

Dünyanın iyonosfer tabakası tarafından yansıtılan bu dalgalar bazı cisimlerin içerisinden rahatca geçebilirler. Titreşen devrelerin bulunduğu elektronik cihazlar tarafından üretilirler.

Dalga boyları 0,3m – 1 km arasında değişen bu dalgalar taşıyıcı sinyal olarak kullanılırlar.

1.4 Elektromanyetik Dalgaların Özellikleri Elektromanyetik Dalgaların Özellikleri

 Yüklü cisimlerin ivmeli hareketleri sonucu meydana gelirler.

 Kendini meydana getiren, elektrik ve manyetik alanları birbirine diktir.

 Işık hızıyla yayılırlar.

 Yüksüzdürler.

 Yüksüz oldukları için elektrik ve manyetik alandan etkilenmezler.

 Enerjileri E=h ν formülü ile hesaplanır.

 Hızları farklı ortamlara geçtiklerinde değişir.

 Soğurulabilirler; soğuran cisimler ısınır.

 Enine dalgalardır. Kendini meydana getiren elektrik ve manyetik alanları aynı fazdadır.

 E = B.c dir. (c; ışık hızıdır.) Yansıma, kırılma, kırınım ve girişim yapabilirler.

 Boşlukta yayılabilirler.

(22)

14

1.5 Alan Tarama Aygıtları Ve Çalışma Teorileri

Günümüzde bu alanda geliştirilen bir takım pratik ve kullanışlı cihazlar vardır ve bunlara genel olarak “ALAN TARAMA” cihazları denmektedir.

Bu cihazlar özellikle geniş arazilerde ve çok derinde veya yüzeye yakın olabilecek bazı metal veya boşlukların tespitinde kullanılan yardımcı cihazlardır.

Prensip olarak bı cihazlar, statik enerjiyi kullanıcısından alıp hareket kabiliyeti olan mekanik bir sistemle hedefin yaydığı frekansları algılayarak konum belirtir.

Herhangi bir zemin içinde bulunan cisim ve minerallerin çokluğu ya da yoğunluğu tarama cihazının kararsız davranmasına sebep olabilir. Bu kararsız davranışları, tespit edilen bir hedefin kesin olarak konumunun belirlenememesine yol açabilir. Kullanıcının aradığı kesin ve kararlı sinyallerdir.

Alan Taramada en doğru ve hızlı sonucu almak, temel teori ve buna bağlı prensibi değişikliğe uğratmadan, statik enerjiyi kullanarak mümkün olabilmektedir.

Yer altında bulunan metal kütlenin uzun süre bulunduğu yerde hiç açılmadan duruyor olması, metal kütlenin etrafında manyetik bir alan oluşturacaktır. Bu “Manyetik Alan”, cismin toprak altında kalma süresi uzadıkça daha da genişleyerek büyüyecektir.

Manyetik alanın, metal etkisi nedeniyle metal objeleri daha büyük veya daha derinden tespit edilmesine hem sebep hem de yardımcı olacaktır.

Aşağıda olası bir aramada, Alan Tarama ile yapılabilecek yer tespiti ve hedefin ebat ve yaklaşık derinliğinin hesaplanması görülmektedir

(23)

15

Şekil 1.15

Şekil 1.15 ‘te görülen hedef burada metal bir objedir ve 45 derecelik açılar ile tüm yönlere enerji frekansını yaymaktadır. Yüzeye ulaşan bu frekanslar dik bir açıya kavuşur ve yaklaşık 100-180 cm kadar daha yükselebilirler. Daha sonra bu frekanslar, kuzeye doğru yönelme eğilimindedir.

Şekil 1.16

Şekil 1.16 ‘da olası bir hedefin yeryüzüne ulaşan frekanslarının düzlem olarak etki alanını görmektesiniz. Alan Tarama cihazı ile bu etki alanının içinde bulunmak, cihazın hedef kaynağına doğru yönelmesine sebep olacaktır.

(24)

16

1.6 Çalışması Yapılacak Sistem İşlevi Ve Gereksinimleri

Herhangi bir cismin istenilen yerde olup olmadığını belirleyen elektronik bir algılayıcı tipidir. Bu tip algılayıcılar ürettikleri sinyal sayısaldır ve 1(evet), 0 (hayır) çıkışı verirler. Cisimlerin temassız biçimde algılanması, hareketli parçalara sahip olmaması ve arızalarının az olmasından dolayı risk içeren alanlarda kullanılması sebebiyle endüstride en çok karşılaşılan algılayıcılardır.

Endüstride en çok karşılaşılan temassız algılayıcı çeşitleri aşağıda listelenmiştir.;

Endüktif

Kapasitif

Manyetik

Optik (ışık bariyeri, yansıma algılayıcıları)

Ultrasonik

Elektromanyetik dalgalarla tarama sistemi temel alınarak kısıtlı bütçeyle oluşturulan bu projede kullanılacak malzeme tipi olarak yaklaşım sensörleri tercih edilmiştir. Bilgi gönderici olarak kullanılan Endüktif sensördür.

(25)

17 1.6.1 Endüktif Sensör

Resim 2.16 Endüktif sensör

Çalışma Prensibi

Endüktif sensörler bobin, LC osilatör, tetikleyici ve çıkış katından oluşmaktadır.

Sensöre uygulanan besleme gerilimi sonucunda osilatör salınıma başlar ve yüksek frekanslı bir elektromanyetik alan oluşturur.

Osilatör bobini tarafından üretilen ve her hangi bir yöne yönelmeden bobin eksenine simetrik biçimlenen manyetik alana ferrit çekirdek sayesinde istenen doğrultuda yön verilir. Bobin ve çekirdek ayrıca metal ekranla çevrildiği takdirde manyetik alan tamamen sensörün ön kısmına hapsedilir ve böylece sensöre gömülebilir montaj özelliği eklenmiş olur. Osilatör tarafından üretilen bu manyetik alan içine giren iletken malzemeler algılama yüzeyine yakınlıklarıyla orantılı olarak bobindeki akımı değiştirirler. Değişen bu akım tetikleyiciyi aktifler ve çıkış katını

anahtarlar. Şekil 1.15 Endüktif sensörün Çalışması

(26)

18

Sistemde kullanılacak endüktif sensörün bağlantı şeması

Resim 1.1

(27)

19 2 DONANIM VE YAZILIM

2.1 Mekanik Yapı Mekanik Yapı

Makine X ve Y eksenleri arasındaki belirlenmiş bir alanı tarayacağından dolayı bu hareketleri kontrol etmek için milleri üzerinde bilyeli lineer rulmanlar kullanılmakta.

X ekseni için 10mm Y ekseni için 2 adet 8mm mil kullanılmıştır. Hareket miller üzeride alanı tarayacak elektronik komponenti taşıması için tasarlanan birde parça bulunmakta. X ekseni üzerinde 40 cm Y ekseni üzerinde 40 cm alanı taraması için gelirilen bu hareketli parçaları kontrol etmek için 3 adet step motor kullanmıştır.

Kutu ve kutu üzerinde miller, hareket eden ve milleri sabitleyen parçaların çizimleri aşağıdadir

Resim 2.1 Kutu Tasarıımı

(28)

20

Aşağıdaki resimde de görüldüğü gibi 10 cm derinliğe sahip 40x40 genişliğe sahip bir kutu tasarladık.

Şekil 2.1 Kutu Uzunlukları

Aşağıda mekanik sistem için gerekli parçaların çizimlerinin ekrar görüntüleri bulunmaktadır

Resim 2.2 Yan Kenar Taşıyıcı

(29)

21

Resim 2.3 Yatay eksen 8mm Mil Tutucu

Resim 2.4 40x40x10 Taranacak Kutu Tasarımı

(30)

22

Resim 2.5 Dikey Eksen 10 mm Mil Tutucu

Resim 2.6 Lineer Rulman

Hareketli parçaların simülasyonunu çizim porgramı üzeriden gerçekleştirdik.

(31)

23

Resim 2.7 Kutu Animasyon

Resim 2.8 Kablo Taşıyıcı

(32)

24 2.2 Yazılımsal Yapı

2.2.1 C# Kodları

Aşağıdaki kodların yanı sıra programın tasarımının yapılıp tasarım ekranı üzerindeki bölgelere kodların bağlantısı yapılmıştır. Yapılan sistemin iletişim yolu olarak seri port kullanılarak büyük bir oranda veri kaybı önlenmiştir.

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.IO.Ports;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace TezDesktop {

public partial class Form1 : Form {

int _x = 0, _y = 0;

bool exist = false;

bool ready = false;

Bitmap bitmap;

private const int width = 600, height = 600;

private const int u_width = 12, u_height = 12;

private const int bosluk = 0;

private const int mavi = 1;

private const int kirmizi = 2;

List<Coordinates> kordinatlar = new List<Coordinates>();

Coordinates kordinat;

string port = "";

List<string> foundedText = new List<string>();

private Bitmap blue {

get {

Bitmap bitmap = new Bitmap(u_width, u_height);

Pen myPen = new Pen(Color.Black);

using (Graphics gfx = Graphics.FromImage(bitmap)) {

(33)

25

using (SolidBrush brush = new SolidBrush(Color.FromArgb(46, 118, 234)))

gfx.FillRectangle(brush, 0, 0, u_width, u_height);

gfx.DrawRectangle(myPen, 0, 0, u_width, u_height);

}

return bitmap;

} }

private Bitmap red {

get {

Bitmap bitmap = new Bitmap(u_width, u_height);

Pen myPen = new Pen(Color.Black);

using (Graphics gfx = Graphics.FromImage(bitmap)) {

using (SolidBrush brush = new SolidBrush(Color.FromArgb(216, 95, 90)))

gfx.FillRectangle(brush, 0, 0, u_width, u_height);

gfx.DrawRectangle(myPen, 0, 0, u_width, u_height);

}

return bitmap;

} }

private Bitmap clear {

get {

Bitmap bitmap = new Bitmap(u_width, u_height);

Pen myPen = new Pen(Color.Black);

using (Graphics gfx = Graphics.FromImage(bitmap)) {

using (SolidBrush brush = new SolidBrush(Color.FromArgb(255, 255, 255)))

gfx.FillRectangle(brush, 0, 0, u_width, u_height);

gfx.DrawRectangle(myPen, 0, 0, u_width, u_height);

}

(34)

26 return bitmap;

} }

public Form1() {

InitializeComponent();

timer1.Enabled = false;

timer1.Interval = 100;

timer1.Tick += Timer1_Tick;

timer2.Enabled = false;

timer2.Interval = 9000;

timer2.Tick += Timer2_Tick;

bitmap = new Bitmap(width, height);

ClearUI();

}

private void Timer2_Tick(object sender, EventArgs e) {

listBox1.Items.Clear();

foreach (var box in foundedText) listBox1.Items.Add(box);

}

private void Timer1_Tick(object sender, EventArgs e) {

label2.Text = "X : " + (_x == -1 ? 0 : _x + 1) + "

Y : " + (_y + 1);

if (_x != -1)

UpdateCoordinates();

}

private void button1_Click(object sender, EventArgs e) {

pictureBox4.Hide();

for (int i = 0; i < 20; i++) {

if (!serialPort1.IsOpen) {

try {

serialPort1.PortName = "COM" + i;

serialPort1.Open();

if (serialPort1.IsOpen) {

(35)

27

button6.Enabled = true;

timer1.Enabled = true;

timer2.Enabled = true;

port = serialPort1.PortName;

serialPort1.BaudRate = 9600;

serialPort1.DataReceived +=

SerialPort1_DataReceived;

labelPort.Text = " Connected with " + port + " Port";

labelPort2.Text = " Connected with " + port + " Port";

} }

catch { } }

} }

private void SerialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)

{

try {

var gelen = serialPort1.ReadExisting();

switch (gelen[0]) {

case 'x':

_x++;

if (gelen[1] == '-') exist = false;

else

exist = true;

break;

case '-':

if (gelen[1] == 'x') _x--;

else _y--;

if (gelen[2] == '-') exist = false;

else

exist = true;

break;

case 'y':

_y++;

if (_y == 50)

serialPort1.Write("p");

(36)

28

if (gelen[1] == '-') exist = false;

else

exist = true;

break;

case '1':

exist = true;

break;

case '0':

exist = false;

break;

case 'o':

if (gelen[1] == 'k')

port = ((SerialPort)sender).PortName;

break;

} } catch { } }

private void button1_Click_1(object sender, EventArgs e) {

labelPort.Text = " Disconnect ";

labelPort2.Text = " Disconnect";

if (serialPort1.IsOpen) serialPort1.Close();

}

private void button2_Click(object sender, EventArgs e) {

if (_x != 49) {

if (serialPort1.IsOpen) serialPort1.Write("a");

label4.Text = "One step forward in X direction";

label5.Text = " ";

} }

private void button3_Click(object sender, EventArgs e) {

if (_x != 0) {

if (serialPort1.IsOpen)

(37)

29

serialPort1.Write("b");

label4.Text = " One step back in X direction";

label5.Text = " ";

} }

private void button4_Click(object sender, EventArgs e) {

if (_y != 50) {

if (serialPort1.IsOpen) serialPort1.Write("c");

label5.Text = " One step forward in Y direction";

label4.Text = " ";

} }

private void button5_Click(object sender, EventArgs e) {

if (_y != 0) {

if (serialPort1.IsOpen) serialPort1.Write("d");

label5.Text = "One step back in Y direction";

label4.Text = " ";

} }

private void start_Click(object sender, EventArgs e) {

if (serialPort1.IsOpen) serialPort1.Write("s");

label4.Text = " ";

label5.Text = " ";

}

private void pause_Click(object sender, EventArgs e) {

pause.Text = "Resume";

if (serialPort1.IsOpen) serialPort1.Write("p");

}

private void button6_Click(object sender, EventArgs e) {

if (serialPort1.IsOpen) {

(38)

30 serialPort1.Write("r");

_x = -1;

_y = 0;

bitmap = new Bitmap(width, height);

kordinatlar = new List<Coordinates>();

ClearUI();

}

label4.Text = " ";

label5.Text = " ";

start.Enabled = true;

pause.Enabled = true;

cancel.Enabled = true;

button2.Enabled = true;

button3.Enabled = true;

button4.Enabled = true;

button5.Enabled = true;

}

private void Form1_Load(object sender, EventArgs e) {

button6.Enabled = false;

start.Enabled = false;

pause.Enabled = false;

button2.Enabled = false;

button3.Enabled = false;

button4.Enabled = false;

button5.Enabled = false;

}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

{

if (serialPort1.IsOpen) serialPort1.Close();

}

private void cancel_Click(object sender, EventArgs e) {

if (serialPort1.IsOpen) serialPort1.Write("o");

}

private void groupBox3_Enter(object sender, EventArgs e) {

}

(39)

31

private void groupBox1_Enter(object sender, EventArgs e) {

}

private void aboutToolStripMenuItem_Click(object sender, EventArgs e)

{

MessageBox.Show( "Bu program 2016-2017 öğretim yılı

"+"\n" + "Engineering Design dersi kapsamındaki çalışmalar sonucunda " + "\n" + "Adem ALCAN tarafından yapılmıştır.");

}

private void exitToolStripMenuItem_Click(object sender, EventArgs e)

{

Application.Exit();

}

private void disconnectToolStripMenuItem_Click(object sender, EventArgs e)

{

labelPort.Text = " Disconnect ";

labelPort2.Text = " Disconnect";

if (serialPort1.IsOpen) serialPort1.Close();

}

private void connectToolStripMenuItem_Click(object sender, EventArgs e)

{

for (int i = 0; i < 20; i++) {

if (!serialPort1.IsOpen) {

try {

serialPort1.PortName = "COM" + i;

serialPort1.Open();

if (serialPort1.IsOpen) {

button6.Enabled = true;

timer1.Enabled = true;

timer2.Enabled = true;

port = serialPort1.PortName;

(40)

32

serialPort1.BaudRate = 9600;

serialPort1.DataReceived +=

SerialPort1_DataReceived;

labelPort.Text = " Connected with " + port + " Port";

labelPort2.Text = " Connected with " + port + " Port";

} }

catch { } }

} }

private void rstToolStripMenuItem_Click(object sender, EventArgs e)

{

if (serialPort1.IsOpen) {

serialPort1.Write("r");

_x = -1;

_y = 0;

bitmap = new Bitmap(width, height);

kordinatlar = new List<Coordinates>();

ClearUI();

}

label4.Text = " ";

label5.Text = " ";

start.Enabled = true;

pause.Enabled = true;

cancel.Enabled = true;

button2.Enabled = true;

button3.Enabled = true;

button4.Enabled = true;

button5.Enabled = true;

}

private void UpdateCoordinates() {

kordinat = new Coordinates() { x = _x * u_width, y = _y

* u_height, exist = exist, current = true };

foreach (var coordinate in kordinatlar) if (coordinate.current)

coordinate.current = false;

(41)

33 kordinatlar.Add(kordinat);

foreach (var coordinate in kordinatlar)

using (Graphics g = Graphics.FromImage(bitmap)) {

if (coordinate.exist) {

g.DrawImage(red, coordinate.x, coordinate.y, u_width, u_height);

if (coordinate.current)

foundedText.Add("\n" + "x: " + ((coordinate.x / u_width) + 1 ) + " y: " + ((coordinate.y / u_height) + 1));

} else

g.DrawImage(blue, coordinate.x, coordinate.y, u_width, u_height);

if (coordinate.current)

g.DrawString("0", x.Font, new

SolidBrush(Color.FromArgb(255, 255, 255)), coordinate.x + 1, coordinate.y + 1);

}

pictureBox1.Image = bitmap;

}

private void ClearUI() {

using (Graphics g = Graphics.FromImage(bitmap)) for (int i = 0; i < 50; i++)

for (int j = 0; j < 50; j++)

g.DrawImage(clear, i * u_width, j * u_height, u_width, u_height);

} } }

2.2.2 Arduino Kodları

#define X_STEP_PIN 54

#define X_DIR_PIN 55

#define X_ENABLE_PIN 38

(42)

34

#define X_MIN_PIN 3

#define X_MAX_PIN 2

#define Y_STEP_PIN 60

#define Y_DIR_PIN 61

#define Y_ENABLE_PIN 56

#define Y_MIN_PIN 14

#define Y_MAX_PIN 15

#define Z_STEP_PIN 46

#define Z_DIR_PIN 48

#define Z_ENABLE_PIN 62

#define Z_MIN_PIN 18

#define Z_MAX_PIN 19

#define LED_PIN 13

#define FAN_PIN 9

char giris;

int stpx_min=0;

int stpy_min=0;

int stpx_max=0;

int stpy_max=0;

int x_r_button = 0;

int y_r_button = 0;

(43)

35 void sola_git(int n);

void saga_git(int n);

void ileri(int n);

void geri(int n);

void geri_git_reset(int n);

void sola_git_reset(int n);

bool calisiyormu = true;

bool y_calisiyormu = true;

bool x_calisiyormu = true;

int sol = 0;

int sag = 0;

int ileri_read = 0;

void setup() { Serial.begin(9600);

pinMode(X_MIN_PIN, INPUT);

pinMode(Y_MIN_PIN, INPUT);

pinMode(Y_MAX_PIN, INPUT);

pinMode(LED_PIN , OUTPUT);

pinMode(X_STEP_PIN , OUTPUT);

pinMode(X_DIR_PIN , OUTPUT);

pinMode(X_ENABLE_PIN , OUTPUT);

pinMode(Y_STEP_PIN , OUTPUT);

pinMode(Y_DIR_PIN , OUTPUT);

pinMode(Y_ENABLE_PIN , OUTPUT);

pinMode(Z_STEP_PIN , OUTPUT);

(44)

36 pinMode(Z_DIR_PIN , OUTPUT);

pinMode(Z_ENABLE_PIN , OUTPUT);

digitalWrite(X_ENABLE_PIN , LOW);

digitalWrite(Y_ENABLE_PIN , LOW);

digitalWrite(Z_ENABLE_PIN , LOW);

} void loop () { if(Serial.avalable())

giris= (char) Serial.read();

switch (giris){

case 'r':

calisiyormu = true;

x_calisiyormu = true;

y_calisiyormu = true;

if(calisyormu && x_calisyormu) sola_git_reset(10000);

giris = "";

digitalWrite(X_ENABLE_PIN , LOW);

if(calisyormu && y_calisyormu) geri_git_reset(10000);

giris = "";

digitalWrite(X_ENABLE_PIN , LOW);

Serial.write('r');

break;

case 's':

calisiyormu = true;

(45)

37 x_calisiyormu = true;

y_calisiyormu = true;

for ( int j=0;j<27;j++){

sag = 0;

sol = 0;

if(calisiyormu) sola_git(7000);

giris = "";

digitalWrite(X_ENABLE_PIN , LOW);

if(calisiyormu) ileri(140);

if(calisiyormu) saga_git(7000);

giris = "";

digitalWrite(X_ENABLE_PIN , LOW);

if(calisiyormu) ileri(140);

giris = "";

}

ileri_read = 0;

digitalWrite(X_ENABLE_PIN , HIGH);

digitalWrite(Y_ENABLE_PIN , HIGH);

digitalWrite(Z_ENABLE_PIN , HIGH);

case 'a':

sola_git(140);

giris = "";

(46)

38 digitalWrite(X_ENABLE_PIN , LOW);

break;

case 'b':

saga_git(140);

giris = "";

digitalWrite(X_ENABLE_PIN , LOW);

break;

case 'c':

ileri(140);

giris = "";

digitalWrite(Y_ENABLE_PIN , LOW);

break;

case 'd':

geri(140);

giris = "";

digitalWrite(Y_ENABLE_PIN , LOW);

break;

case 'g':

if(digitalRead(Y_MAX_PIN) == 0) Serial.write("1");

else

Serial.write("0");

break;

case 't':

Serial.write("ok");

(47)

39 break;

} }

void sola_git(int n){

for(int i=0 ; i< n ; i++ ){

if(Serial.available())

giris= (char) Serial.read();

if(giris == 'p'){

calisiyormu = false;

break;

}

digitalWrite(X_DIR_PIN , LOW);

digitalWrite(X_STEP_PIN , LOW);

delay(1);

digitalWrite(X_STEP_PIN , HIGH);

if(i%140 == 0) {

if(digitalRead(Y_MAX_PIN) == 0) Serial.println("x+");

else

Serial.println("x-");

}

} //Serial.println("x");

} void ileri(int n){

(48)

40 for(int i=0 ; i< n ; i++){

if(Serial.available())

giris= (char) Serial.read();

if(giris == 'p' || digitalRead(X_MAX_PIN) == 0){

calisiyormu = false;

break;

}

digitalWrite(Y_DIR_PIN , HIGH);

digitalWrite(Y_STEP_PIN , HIGH);

digitalWrite(Z_DIR_PIN , HIGH);

digitalWrite(Z_STEP_PIN , HIGH);

delay(1);

digitalWrite(Y_STEP_PIN , LOW);

digitalWrite(Z_STEP_PIN , LOW);

digitalWrite(Y_ENABLE_PIN , LOW);

digitalWrite(Z_ENABLE_PIN , LOW);

}

if(digitalRead(Y_MAX_PIN) == 0) Serial.println("y+");

else

Serial.println("y-");

}

void saga_git(int n){

for(int i=0 ; i<n ; i++ ){

if(Serial.available())

giris= (char) Serial.read();

(49)

41 if(giris == 'p'){

calisiyormu = false;

break;

}

digitalWrite(X_DIR_PIN , HIGH);

digitalWrite(X_STEP_PIN , HIGH);

delay(1);

digitalWrite(X_STEP_PIN , LOW);

if(i%140 == 0) {

//Serial.println("-x");

if(digitalRead(Y_MAX_PIN) == 0) Serial.println("-x+");

else

Serial.println("-x-");

}

} //Serial.println("-x");

} void geri(int n){

for(int i=0 ; i< n ; i++){

if(Serial.available()) giris= (char) Serial.read();

if(giris == 'p'){

calisiyormu = false;

break;

(50)

42 }

digitalWrite(Y_DIR_PIN , LOW);

digitalWrite(Y_STEP_PIN , HIGH);

digitalWrite( Z_DIR_PIN , LOW);

digitalWrite(Z_STEP_PIN , HIGH);

delay(1);

digitalWrite(Y_STEP_PIN , LOW);

digitalWrite(Z_STEP_PIN , LOW);

giris = "";

digitalWrite(Y_ENABLE_PIN , LOW);

digitalWrite(Z_ENABLE_PIN , LOW);

if(i%140 == 0) {

if(digitalRead(Y_MAX_PIN) == 0) Serial.println("-y+");

else

Serial.println("-y-");

}

} }

void geri_git_reset(int n){

for(int i=0 ; i< n ; i++){

if(Serial.available())

giris= (char) Serial.read();

if(giris == 'p'){

calisiyormu = false;

(51)

43 break;

}

x_r_button = digitalRead(14);

if(x_r_button == 0){

x_calisiyormu = false;

break;

}

digitalWrite(Y_DIR_PIN , LOW);

digitalWrite(Y_STEP_PIN , HIGH);

digitalWrite( Z_DIR_PIN , LOW);

digitalWrite(Z_STEP_PIN , HIGH);

delay(1);

digitalWrite(Y_STEP_PIN , LOW);

digitalWrite(Z_STEP_PIN , LOW);

giris = "";

digitalWrite(Y_ENABLE_PIN , LOW);

digitalWrite(Z_ENABLE_PIN , LOW);

} }

void sola_git_reset(int n){

for(int i=0 ; i< n ; i++ ){

if(Serial.available())

giris= (char) Serial.read();

if(giris == 'p'){

calisiyormu = false;

(52)

44 break;

}

x_r_button = digitalRead(3);

if(x_r_button == 0){

x_calisiyormu = false;

break;

}

digitalWrite(X_DIR_PIN , HIGH);

digitalWrite(X_STEP_PIN , HIGH);

delay(1);

digitalWrite(X_STEP_PIN , LOW);

} }

(53)

45 3 PROJENİN GELİŞTİRİLMESİ

Yapacağımız sistemin genel amacı kurulduğu bölgedeki zeminin altında bulunan metallerin konumlarının tespit edilmesi. Her metal için ayrı konumlar belirlenmesi ve bütün alan üzerindeki taramayı yazacağımız bir paket programla görselleştirerek kullanıcıya sunulması.

Programda metallerin konumlarını belirlememiz için zeminde konumsal bir çalışma yaparak koordinat sistemini oluşturmaya çalışacağız. Zemine özel oluşturacağımız bu koordinat sistemi üzerinde cihazımıza bağlı step motorlar eşliğinde iki boyutta tarama gerçekleştirmek. Motorların adım sayıları ve adım süreleri göz önüne alınarak uygulanacağı zemine özel koordinat sistemi geliştirilmektedir.

Tarama işleminin gerçekleştirileceği paket program görseli aşağıdaki gibidir.

Resim 2.8 İlk Oluşturulan Tarama Ekranı

(54)

46

Programın içeriğindeki ilk kutucukta bulunan Connect butonu sistemin seri haberleşme(USB) portunu kullanarak pc ile sürücü kartı arasındaki bağlantıyı sağlamaya yarar. Disconnect butonu ise bağlantıyı kesmek amacı ile kullanılacaktır.

Manual Control sekmesi devrede kullanılan motorların X ve Y koordinatları üzerinde istenilen bölgeler arası bağımsız kontrol yapmasını sağlar

Automatic Control sekmesinin amacı start butonuna basıldığında sistemi sıfır konumuna alarak tarama yapması , pause butonu herhangi bir olağan dışı durumda sistemin son konumunda durdurulması, stop butonuna basıldığında ise sistemi kapatmasını sağlamaktır.

Resim 2.9 Bağlantı

Resim 2.10 Manuel kontrol

Resim 2.11 Otomatik Tarama

(55)

47

Status sekmesi ise sistemdeki motorları konumunu anlık olarak göstermesi için yapılması planlanmaktadır.

Yukarıdaki açıklanan ilk sistemde tarama ekranının daha kolay yönetilmesi ve sistemin bazı bağlantı ve ayarları kendi kendine yapması için yeni çalışmalara ihtiyaç duyuldu.

Örneğin bağlan butonuna basıldığında bilgisayara donanımsal olarak sadece bir cihazın bağlı olması gerekmekteydi. Herhangi başka bir cihaz (yazıcı, tarayıcı, vs..) bağlı olduğunda program kendini kapatıyordu ve tarama verilerini kaybediyorduk

Status

Resim 2.12 Durum Ekranı

(56)

48

Resim 2.13 Mart 2017 Ekran Görseli

Yeniden yazılım geliştirmesine gittiğimiz izleme ekranındaki tarama bölgesinin küçük olduğunu farkettik. Tarama ekranı genişleterek yeni arayüz tasarımını gerçekleştirerek tarayacağımız cismin yakın bir görsel çıkartarak şeklinin belirlenmesini sağladık

(57)

49

Resim 2.14 Nisan 2017 Yazılım Geliştime Sonrası Ekran Görseli

Nisan ayında tamamlanan Resim 2.14’ deki yönetim ekranında tarama sırasında üzerinde bulunduğumuz yerin anlık ekrana yansıdığını sistemin bunu otomatik yaptını farkederek manıel kontrol bölgesindeki “Check” butonunun iptal ederek yeniden tasarladık.

(58)

50

Resim 2.15’ deki en son tasarlanan yönetim panelinin son hali görülmektedir. Program kontrol butonlarını aktif hale getirebilmek için bağlantı sağlandıktan sonra tarama başlığının bilinmeyen son durumu için tarama işlemi yapılmalıdır.

Resim 2.15 Yönetim Paneli

(59)

51 4 YÖNETİM PANELİ EKRANI

4.1 Panel Kullanımı

Proje yönetim panelinin genel olarak görünümü Resim 4.1’ deki gibidir.

Izgara şeklinde bölünmüş bölge tarama alanında gelen sinyalleri işlemek ve alan üzerindeki konumunu belirlemek için tasarlanmıştır.

Resim 4.1

(60)

52

Resim 4.2 Otomatik Tarama

Resim 4.3 Manuel Tarama

Resim 4.4 Veri Listeleme

Resim 4.5 Anlık Konum

Resim 4.2’ de görülen kısım cihaz ile bilgisayar arasındaki bağlantıyı yapmak ve okuyucu sensörü son kaldığı durumu resetlemek için kullanılır. Sisteme reset komutu gönderdiğimiz durumda otomatik kontrol butonları aktif hale gelmemektedir.

Start butonu otomatik taramayı başlatır.

Pause butonu hata veya herhangi bir problemde sistemi durdurur.

Resim 4.3’ de tarama bölgesinde manuel olarak konum değiştirebilir ve belirlediğimiz konumdaki taramayı gerçekleştirir.

Resim 4.4’ de görülen sonuç ekranında tarama sırasında her 10 sn de bir taranan verilerin konumsal noktalarını X ve Y cinsinden listeler.

Resim 4.5’ deki bölgede tarama sensörünün anlık olarak hangi konumda olduğunu gösterir.

(61)

53 5 TESTLER VE SONUÇ

Yaptığımız sistemdeki test sonuçları aşağıdaki gibi görünmektedir.

Geliştirmelerden sonra ilk yapılan testte cisimlerin koordinatlarını belirlerken sonuç kısmına alınacak verilerin zamanlamasa yapıldı. Her 10 saniyede kendini yenileyen sonuç kısmı sistemde veri kaybı yaratmakta ve çözüm olarak verilerin gönderilme süreleri test edilerek sisteme girildi.

Resim 5.1 Test 1

(62)

54

2 . Testte ayarlanan veri gönderim sürecleriyle ilgili zaman denemeleri yapılırken çıkan sonuçlardan birisi.

Resim 5.2 Test 2

(63)

55

Resim 5.3 Test 3

Resim 5.4Test 4

(64)

56

Resim 5.5Test 5

Resim 5.6Test 6

(65)

57

Resim 5.8 Test 8 Resim 5.7 Test 7

(66)

58

Resim 5.9 Test 9

Resim 5.10 Test 10

(67)

59

Resim 5.11 Test 11

Resim 5.12 Test 12

(68)

60

Resim 5.13 Test 13

Resim 5.14 Test 14

(69)

61

Resim 5.15 Test 15

Resim 5.15.1 Test 15

(70)

62

Resim 5.16 Test 16

Resim 5.16.1 Test 16

(71)

63

Resim 5.17.1 Test 17 Resim 5.17 Test 17

(72)

64

Resim 5.18 Test 18

Resim 5.18.1 Test 18

(73)

65

Resim 5.19 Test 19

Resim 5.19.1 Test 19

(74)

66

Resim 5.20.1 Test 20 Resim 5.20 Test 20

(75)

67 5.1.1 Çalışma Aşamaları

Resim 5.1.1 İlk Kurulum

Resim 5.1.2 Malzemeler için Tutucu Parça Çıktıları

(76)

68

Resim 5.1.3 İlk Kurulumdan Sonra Yazılım Denemeleri

Resim 5.1.4 Endüktif Sensör Denemeleri

(77)

69

Resim 5.1.5 Sensör Mesafesi Algılama Testi

Resim 5.1.6 Sensörün Çalıştırılması

(78)

70

Resim 5.17 Sensörün Çalıştırılması

Resim 5.1.8 Sensörün Çalıştırılması

(79)

71

Resim 5.1.9 Arduino ve Ramps

Resim 5.1.10 Güç Kaynağı

(80)

72 6 ÖZGEÇMİŞ

KAYNAKÇA

1. Kızıötesi İşleme ve Anali Merkezi, Caltech / JPL 2. Polar, Pixie, ABD Ulusal Havacılık ve Uzay Dairesi 3. NASA Science & Missionscience, NASA

4. Elektromanyetik teorinin temelleri / Aktaş, Şahin ; Şahin Aktaş 5. C# Programlama Kılavuzu / Wright, Charles

6. Programming C# / Liberty, Jesse 7. Solidworks Solidcam /Ali Naci Bıçakçı 8. Arduino Hızlı & Kolay Kitabı - Volkan Kanat 9. Projeler İle Arduıno / Erdal DELEBE

Referanslar

Benzer Belgeler

Periyodik hareketler; Periyodik hareketlerin üst üste gelmesi; Fiziksel sistemlerin serbest salınımları; Sönümlü harmonik hareketler; Zorlamalı salınımlar ve

Eğer mekanik dalgayı taşıyan parçacıkların titreşim doğrultusu dalganın yayılma doğrultusu ile aynı ise bu dalgalara boyuna dalgalar denir (ses dalgası

elektromanyetik spektrum denir... Bir öğrenci, yaptığı deneyde; dalga kaynağının saniyede üretti- ği dalga sayısını ve dalgaların yayılma hızının büyüklüğünü

1. Dalga leğenini kurarak leğeni 1,5-2 cm derinliğinde su ile doldurunuz ve dalga leğeninin altına beyaz kartonu yerleştiri- niz. Parabolik engeli dalga leğeninin bir

Çok serbestlik dereceli kapalı bir sistemde zorla salınımlar

2.1 Herhangi bir f(x-vt) ve g(x+vt) gibi sürekli fonksiyonların dalga denklemini sağladığını gösteriniz. Bu ifadedeki elektrik alanın dönüsü yerine 3.. a)

En çok renk çeşidi kırmızı, yeşil ve mavi ışık yardımıyla elde edilir.. Bunlar aynı zamanda

Bobin (L) ve sığadan (C) oluşan bir elektrik devresinde devrede dolanan yük (ve akım) devrede direnç gibi bir kayıp elemanı olmadığında osilasyon hareketi