Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz...

21
TÜBİTAK 2242 Lisans Öğrencileri Yazılım Projeleri Yarışması Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi Tematik Alan Elektrik-Elektronik- Yazılım Eğitim Kurumu Karadeniz Teknik Üniversitesi Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği Bölümü Öğrenciler Mustafa EROL Oğuzhan YILDIRIM Hasan Hüseyin SOLAK Sanayi Kuruluşu Bulak Bilgisayar Ticaret Limited Şirketi Akademik Danışman Prof. Dr. İ. Hakkı ÇAVDAR Sanayi Danışmanı Can BULAK

Transcript of Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz...

Page 1: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

1

TÜBİTAK

2242 Lisans Öğrencileri Yazılım Projeleri Yarışması

Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının

Geliştirilmesi

Tematik Alan Elektrik-Elektronik- Yazılım

Eğitim Kurumu Karadeniz Teknik Üniversitesi

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

Öğrenciler Mustafa EROL

Oğuzhan YILDIRIM

Hasan Hüseyin SOLAK

Sanayi Kuruluşu

Bulak Bilgisayar Ticaret Limited Şirketi

Akademik Danışman Prof. Dr. İ. Hakkı ÇAVDAR

Sanayi Danışmanı Can BULAK

Page 2: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

2

İÇİNDEKİLER

Özet .............................................................................................................................................. 3 1. Giriş ................................................................................................................................... 4

1.1. Motivasyon ......................................................................................................... 4

1.2. Projede Kullanılan Yöntem ve Metotlar ............................................................. 4

1.3. Projenin İçerdiği Yenilik Unsuru........................................................................ 5

1.3.1. Yenilikçilik ......................................................................................................... 5

1.3.2. Etki .................................................................................................................................5 1.3.3. Uygulanabilirlilik ..........................................................................................................5 1.3.4. Kullanışlılık ....................................................................................................................6

1.4. Literatür Taraması ve Piyasa Analizi .......................................................................6 2. TASARIM ......................................................................................................................................7

2.1. Proje Akış Şeması ........................................................................................................7 2.2. Ana Gövde ....................................................................................................................7 2.3. Döner Klavuzlu Bant ....................................................................................................8 2.4. Kamera ..........................................................................................................................9 2.5. DC Motor ve Sürülmesi ...................................................................................................... 10

2.5.1. Motor sürücü BTS7060B Arduino Sürücü Kartı ............................................................ 11 2.6. Robotun Kenarlara Çarpmaması İçin Ultrasonik sensor İle Robotun Yönlendirilmesi ........... 11 2.7. Robotun Önündeki Kılavuz Bandın Hareketinin Kontrolü ........................................... 11 2.8. Robotun Hızının Ayarlanması ........................................................................................... 12 2.9. Robotun Sahip Olduğu Program ....................................................................................... 12

2.9.1. Ultrasonik Sensörün Kütüphanesi .......................................................................... 12 2.9.2. Visual Studio Ve Arduino Arayüz Programının Haberleştirilmesi .................... 13 2.9.3. İzleme Çubuğunun Ayarlanması ............................................................................ 13

2.10. Simülasyon Çalışmaları ........................................................................................... 14 2.10.1. Arduino Mega 2560 İle Çift Yönlü DC Motor Kontrol Devresi ........................ 14 2.10.2. DC Motorların Potansiyometresiz Sürülmesi ........................................................ 15 2.10.3. Potansiyometrenin Değeri Azaltılarak DC Motorun Yönünün Değiştirilmesi . 16

2.11. Deneysel Çalışmalar ................................................................................................. 17 3. Proje Takvimi ........................................................................................................................... 18 4. Sonuç ........................................................................................................................................... 19 5. Ekler ............................................................................................................................................ 19 6. Referanslar .................................................................................................................................. 21

Page 3: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

3

Özet

Bu projede; deniz kenarları, göller, havuzlar, göletler, barajlar üzerinde var olan katı atıkları görüntü işleme(openCV görüntü işleme kütüphanesi[3], CAMshift Teori, Gauss Filtresi[4]) kullanılarak toplamak hedeflenmektedir. Bir kamera yardımı ile dışarıdan hiçbir müdahale olmadan deniz üzerindeki hareketli katı maddenin yeri tespit edilerek, tespit edilen katı maddenin görüntüsü alınıp, ilgili algoritma (hedef takip sistemi) ile robotun katı maddeye yönlenmesi sağlanacaktır. Daha sonra robotun önünde yer alan paletli döner kılavuz bant aracılığı ile ilgili katı cisim; robotun katı madde toplama haznesinde alınacaktır. Görüntüden gelen bilgi doğrultusunda kamera, o bölgeye servo motorlar(x ve y ekseni) yardımı ile çevrilerek; bölgedeki katı maddenin görüntüsünü ilgili algoritmaya gönderecek ve katı maddenin algoritma da belirlenen boyutların üzerinde olması halinde(40cm ye kadar genişliği olan cisimlere yönlenmesi sağlanacaktır), robotun o bölgeye yönlenmesinin önüne geçilecektir. Robotun istenilen bölgeye yönlenebilmesi için güçlü bir servo yardımı ile arka kısımda bir kanatçık hareket ettirilerek robota yön verilecektir(arka kanatçık servo gücü cm^2 ye 40kg uygulayabiliyor). Kameradan alınan görüntü; cisim ile robotun arasındaki mesafenin uzaklık fonksiyonu ile ölçekli olarak büyütülmesi sonucunda, ilgili katı cismin gerçek görüntüsü ve hacmini belirlememizi sağlayarak robotun belirli boyutların(40cm ye kadar genişliği olan cisimler) dışındaki katı cisimlere yönlenmemesi sağlanacaktır. Yazılan algoritmaya göre robot; alınan görüntüden gelen bilgi doğrultusunda, katı maddenin robotun haznesine alınabilir kararını verdikten sonra, kameranın ilgili katı maddeyi izlemesi program aracılığı(openCV görüntü işleme kütüphanesi, CAMshift Teori, Gauss Filtresi) ile sağlanacak ve arka kısımdaki kanatçığı hareket ettiren servo motor vasıtası ile de katı maddeye robotun yönlenmesi sağlanacaktır.

Bu projede amaç; sadece denizde üzerindeki katı cisimleri toplamak değil, insanların denizi kirlettiklerinin farkına varmalarını sağlamaktır. Aynı zamanda optimum maliyetle deniz üzerindeki çöplerin toplanması ve deniz üzerindeki çöplerin çevreye verdiği zararın en aza indirilmesini sağlamak bu projenin asıl amacıdır. Bu çalışmanın yenilikçi yönü ise benzerlerinden farklı olarak denizdeki katı cisimleri toplaması, görüntü ve çevre kirliliğinin önüne geçmeyi hedeflemesidir.

Page 4: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

4

1. Giriş Günümüzde önemli bir sorun haline gelen su kirliliği; giderek artmakta ve kullanılabilir su kaynakları sürekli azalmaktadır. Tatlı suların kirletilmesinin önüne geçebilecek çözümler sürekli geliştirilmekte olup henüz yeterince çözüm bulunamamıştır. Tatlı su içerisine bırakılan plastik ve benzeri atıklar zamanla çözünerek canlı yaşamlarını tehdit edebilecek kimyasal atıklara dönüşmektedir[1]. Ülkemizin üç tarafı denizler ile çevrili olması turizm açısından önemli olmasına rağmen sahillerimizin kirliliği ise bu görüntüyü bozacak nitelik taşımaktadır. Deniz üzerindeki katı atıkların toplanarak su içerisinde çözünmesine engel olabilecek çözümler aranmakta olup; en yaygın çözüm olarak insan eliyle deniz üzerindeki katı atıkları toplamak görülmektedir. Bu kapsamda hazırlamış olduğumuz projemizde deniz kenarları, havuzlar, göller, barajlar üzerindeki katı atıkların toplanarak canlı yaşamını tehdit eden zararlı atıkları ortadan kaldırılması amaçlanmaktadır [2].

1.1. Motivasyon

Deniz kirliliği; Canlı kaynaklara zarar ve deniz yaşamına zarar verme, insan sağlığı için tehlike oluşturma, denizcilik faaliyetlerini engelleme, deniz suyunun niteliğini değiştirme gibi zararlı olacak maddelerin insan tarafından doğrudan veya dolaylı olarak deniz çevresine dahil edilmesi olarak anlaşılır[1]. Buradan da anlaşılacağı gibi insan deniz kirlenmesinde en büyük rolü oynayan canlıdır. Ülkemizin üç tarafı deniz ile çevrili olmasını dikkate alarak deniz trafiğinin fazla olması, deniz üzerindeki doğrudan evsel atıklar ya da dolaylı yoldan kaynaklanan atıklar ülkemizdeki en önemli çevre problemlerinden biri haline gelmiştir. Deniz üzerindeki çöplerin %60 ila % 80’nini plastik çöpler oluşturmaktadır[2].

Ülkemizin üç tarafının denizlerle çevrili olması sebebiyle deniz kirliliği büyük şehirlerin saygınlığını düşüren etkenler arasında yer almaktadır. İtalya da yapılmış olan, sokak aralarında dolaşarak çöp toplayan robot; halk tarafından büyük ilgi görmüş ve karada çevre kirliliğinin önüne geçmek için insanların dikkatlerini çevreye duyarlı olmaları konusunda etkin kullanmaları sağlanmayı amaçlamıştır. Daha önce kara üzerinde hızı bilinmeyen tek bir kamera ile hareketli nesne takibi yapılmış olup projemize ışık tutmaktadır[3].

1.2. Projede Kullanılan Yöntem ve Metotlar

Bu çalışmada gemi şeklinde bir ana gövde kullanılacaktır. Ana gövdenin üzerinde görüntü almak için bir adet kamera, katı maddeyi deniz üzerinden almak için bir adet paletli döner kılavuz bant, robotu deniz üzerinde ilerletmek için iki adet 12v, 200watt’lık dc motor ve kontroller için servo motorlar kullanılacaktır. Bu kontrolleri sağlamak için arduino mega 2560 kartı ve güç kaynağı olarak 2 adet dc 12v 24Ah’lik akü kullanılacaktır. Bu çalışmada robotun görüntüyü alıp işlemesi için openCV görüntü işleme yöntemi kullanılacaktır[3]. İlgili algoritmada gerekli tanımlamalar yapılarak robotun katı cisim dışında hiçbir maddeye yönlenmemesi için gerekli önlemler alınacak[5].

Page 5: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

5

Bu çalışma robotların sadece kara üzerinde değil deniz üzerinde de etkin şekilde kullanılmalarını hedeflediği için akıllı robot uygulamalarına yeni bir alan ve hizmet sunmaktadır. Projeyi sanayi danışmanımız ile birlikte geliştirerek ulusal ve uluslararası endüstri ürünü haline getirmeyi planlıyoruz. Gerekli simülasyon çalışmalarımız başlamış olup bilgisayar ortamında çalışmalarımız devam etmektedir.

1.3. Projenin İçerdiği Yenilik Unsuru

Bu proje ile deniz üzerinde var olan katı maddelerin çevre ve görüntü kirliliğine yol açmasını önlemek için yeni bir tasarım olan deniz üzerindeki katı maddeleri toplayan akıllı robotu geliştirdik. Benzerlerinden farklı olarak robotumuz deniz üzerinde hareket edecek ve deniz üzerinde var olan katı maddeleri haznesine toplayarak insanlar ve çevre üzerinde olumlu bir etki bırakacaktır. Ayrıca denize kenarı olan büyük şehirlerimizde var olan deniz kirliliğinin önüne geçerek; ilgili şehirlerimizin saygınlık kazanmasına büyük destek verecek örnek bir uygulama niteliği taşımaktadır.

1.3.1. Yenilikçilik

Dünya çapında daha öncesinde bu proje temasında herhangi bir çalışma bulunmamaktadır. Bu kapsamda projenin kendine has olması ve insanların yaşamını kolaylaştırması projenin özgünlüğünü ortaya çıkartmaktadır.

1.3.2. Etki

Günümüzün önemli sorunlarından biri olan çevre kirliliği denizde ve karada gün geçtikçe artmaktadır. Barajlar, göller, havuzlar, insanların dinlenmek için zaman geçirdikleri sahil kenarları ve akış hızı yüksek olmayan nehirlerin üzerinde biriken katı atık maddeleri toplayarak çevre kirliliğinin ortadan kaldırılması ve azaltılması kapsamında büyük rol oynayacaktır. HES projeleri üreten bir firmanın rögar kapaklarının etrafınaki katı atıkalrı temizlemek için her gün kayık ile katı atıkları toplamak maliyeti yüksek bir problem haline gelmiştir. Bu problemin çözümü için bizden talep edilen su üzerindeki katı atıkları toplama robotu ve yazılımının geliştirilmesi bu projenin etki alanının arttığını göstermekte olup projenin uygulamaya geçmesi halinde sanayi sektöründe büyük ilgi göreceği anlamına gelmektedir.

1.3.3. Uygulanabilirlik

Günümüzde kameralar sadece statik görüntü almak değil dinamik işlemlerde yani görüntü işleme gibi alanlarda da kullanılmaktadır. Bu kapsamda sanayi sektöründe plaka okuma, yüz tanıma, göz tanıma, hareketli nesne takibi gibi çeşitli projelerde kullanılmaktadır. Yapmış olduğumuz araştırmalarda ülkemizin görüntü işleme alanında geri planda kaldığı tespit edilmiş olup ülkemizi bu alanda ileri taşımayı hedeflemekteyiz. Görüntü işlemenin kullanım alanlarına bir yenisini daha ekleyerek deniz üzerindeki katı atıkları toplama işlemini görüntü işleme metoduyla gerçekleştirmeyi hedefliyoruz.

Page 6: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

6

1.3.4. Kullanışlılık

Robotun kesici, delici, patlayıcı herhangi bir parçası olmaması sebebiyle toplumsal yaşamı olumsuz etkileyecek herhangi bir tehlikesi bulunmamaktadır. Bu bağlamda topluma hizmette büyük rol alaçağına inanıyoruz. Barajlar, göller, havuzlar, insanların dinlenmek için zaman geçirdikleri sahil kenarları ve akış hızı yüksek olmayan nehirlerde kolaylıkla kullanılabilecek şekilde tasarlanmıştır. Robot üzerine bir LCD ekran eklenerek çevremizi temiz tutmak için ilgi çekici notlar yazılarak insanların çevresini koruması için daha duyarlı hale gelmesini sağlayacak entegreyi sistemimize ekleyebiliriz.

1.4. Literatür Taraması ve Piyasa Analizi

Piyasa da var olan robotların büyük bir bölümü otomotiv sektöründe ve kara üzerinde çalışacak şekilde tasarlanmıştır. Özellikle otomotiv sektöründe robotlar etkin şekilde kullanılırken her geçen gün sektöre yeni robotlar eklenmektedir[6]. Günümüzde karadaki hareketli robotlarının en yaygın kullanıldığı alan askeri alandır. Bu proje ile endüstriyel amaç ve askeri amaç dışı olarak; toplumsal bir sorun haline gelen deniz kirliliğine dikkatleri çekmek ve insanların çevreye karşı daha bilinçli olmalarını robotlar aracılığı ile sağlamak için böyle bir projenin piyasa da olmadığına yaptığımız araştırmalar sonucunda ulaştık.

Aşağıdaki Tablo-1 de deniz üzerindeki katı cisimlerin normal koşullarda toplanması durumunda ortaya çıkacak maliyet hesapları gösterilmiştir. Bu hesaplamalar güncel verilerden oluşturularak tablo haline getirilmiştir[7].

Tablo 1: Maliyet Analizi

Çöp toplama yöntemi

Tüketim (LT/Saat)

Birim fiyat (TL/KM)

Toplam maliyeti(TL/Saat)

Motorin fiyatı (TL/LT)

Beygir gücü (HP)

Tekne ile 3,6 0,2848 TL 14,94TL 4,15 10

Kayık ile 2,5 0,2848 TL 10,375 4,15 5

Deniz Motoru ile

3,4 0,2848 TL 14,11 4,15 9

Akıllı Robot ile - 0,2848 TL 0,5696 - 2

Page 7: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

7

2. TASARIM 2.1. Proje Akış Şeması

Şekil-12’de verildiği gibi akış diyagramında robotun deniz üzerindeki katı maddeyi ayırt etmesi ve bu maddeyi haznesine alması adım adım belirtilmiş olup ayrıntılı olarak gösterilmiştir. Robotun kamerasından gelen görüntü doğrultusunda algoritma işlenerek, arduino-mega vasıtasıyla kamerayı hareket ettiren servo motor görüntünün geldiği yöne doğru yönelmesi sağlanmıştır.

Şekil 1. Robot Kontrol Akış Diyagramı

2.2. Ana Gövde

Robotun su üzerinde durabilmesi ve kolayca yol alabilmesi için tasarlamış olduğumuz ana gövde şekil-2 de gösterilmiştir. Ana gövdenin sahip olduğu bu yapı; robotun su üzerinde yapacağı manevralar dikkate alınarak tasarlanmış olup su üzerinde bulunan katı çöpleri kolayca almasına yardımcı olacak niteliktedir. Robotun su üzerinde yol alabilmesi için ana gövdenin arka kısmının sağ ve sol taraflarında 2 adet dc motor bulunmakta ve bu motorlar farklı zamanlarda çalışabilmektedirler. Robotun katı atığın bulunduğu yöne doğru gidebilmesi için kamerayı hareket ettiren servo motordan gelen açı bilgisi doğrultusunda yönlenmektedir. Ana gövdenin kamerayı taşıyacak olan kısmının maksimum yüksekliği 50cm, ana gövdenin

Page 8: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

8

denizden yüksekliği ise 35cm olacak şekilde tasarladık. Ayrıca ana gövde aerodinamik bir yapıya sahip olacak şekilde yapıldı ve deniz üzerinde kolayca manevra yapabilecek esnek yapıya sahiptir. Ana gövde içerisine bütün elektrik ve elektronik sistemler gömüldü ve üzerleri su almayacak şekilde kapatıldı.

Şekil 2. Robotun Sahip Olduğu Ana Gövde Yapısının 3DS Çizim Programı İle Şekillendirilmiş Hali

2.3. Döner Kılavuz Bant

Deniz üzerindeki katı atıkların robotun haznesine alınabilmesi için döner bir kılavuz bant gerekmektedir. Sistemde kullanmış olduğumuz döner kılavuz bant paletli yapıya sahiptir ve denizin üzerindeki katı atıkları robotun toplama haznesine yönlendirmektedir. Bandın üzerinde delikler açarak bandın çöp toplama haznesine su taşımasının da önüne geçilmiştir. Bandın sahip olduğu kalınlık 1 cm. Bandın deniz içerisinde kalan kısmında sadece bandın dönmesini sağlayan yuvarlak silindirik şekilde bir yapı bulunmakta ve bu silindirik yapının dönerek bandın ilerlemesini sağlamamıza yardımcı olmaktadır.

Page 9: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

9

Şekil 3. Döner Kılavuz Bant gösterimi

Şekil 3 de görüldüğü gibi robotun katı atıkları haznesine alabilmesi için kılavuz bant robotun ön kısmına eklenmiştir. Kılavuz bandın uzunluğu 60cm, eni 40cm olacak şekilde ayarlanmıştır. Robotun ana gövdesinin denizden yüksekliği 35cm olduğunu düşünecek olursak; bandın deniz ile arasındaki eğimi hesaplayabiliriz. Döner kılavuz bandın hızı maksimum dakikada 10 devir atacak şekilde ayarlanmıştır. Deniz üzerinden bant yardımı ile alınan nesneyi bandın üzerinde hızlıca hareket ettirdiğimizde robotun dengesinin bozulduğunu ve sarsılmaya başladığı gözlemlenmiştir. Burada robotun sarsılmaması için nesneye uygulanan tork az olmalıdır. Çünkü bant eğimli bir yapıya sahiptir ve bandın üzerinden yukarı doğru nesne hareket ederse bu nesnenin torku robotun dengesini ciddi şekilde bozabilir.

Döner kılavuz bandın su tutma özelliği olmaması gerekir. Bu yüzden malzeme seçimi yaparken özellikle su tutma özelliği olmamasına dikkat edilmiştir. Böylece deniz suyunun bandın içerisine sızarak bandın ağırlığını ve özelliğini değiştirmesinin önüne geçilmiştir.

2.4. Kamera

Karelerin boyutu 320x240 piksel ve saniyede on kare alabilecek kapasiteye sahip USB kamera ile görüntü almayı hedefliyoruz. USB kamera kullanmamızın amacı ortalama kaydırma algoritması bu kamera ile kolay bir şekilde kullanılmaktadır. Kameradan gelen görüntünün işlenip gerekli kütüphanelerin kullanılması ise virsual studios programına eklenmiş olan opencv kütüphaneleri aracılığı ile sağlandı. Burada openCV görüntü işleme metodunu kullanmamızdaki amaç openCV’nin açık kaynak kodlu bir görüntü işleme programı olması ve bu program üzerinde daha önce yapılmış projelere kolaylıkla ulaşılabilir olmasıdır.

Page 10: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

10

Şekil 4. Robotun kamerasının ana gövde üzerinde bulunacağı konumun gösterimi

Şekil 4’te robotun sahip olduğu kameranın konumu gösterilmiştir. Ayrıca kameranın bakış açısının odak noktası da şekil -4’te gösterilmiştir. Burada eğer kamera robotun üzerindeki yüksekliğinden dolayı çok sarsılırsa programın kendi kendisini kapatması sağlanmıştır. Çünkü programın yanlış işlemesi robotu yanlış yönlendirerek istenmeyen sonuçlara neden olabilir. Ancak kullanacağımız algoritmaya göre hızı saatte ortalama 25km olan kara üzerinde ani hızı bilinmeyen bir robot üzerinde bu algoritma kullanılmış ve istenilen sonuçlara ulaşılmıştır. Bu çalışma deniz üzerindeki küçük sarsıntılardan daha fazlasını içermesine rağmen doğru sonuçları verdiği için projemizde bu algoritmanın kullanılması bizi başarıya götürmektedir.

2.5. DC Motorlar ve Sürülmesi

Donanım olarak gerçekleştirdiğimiz devrede 3 adet dc motora ihtiyacı vardı. İleri, geri, sağ ve sol fonksiyonlarını gerçekleştirebilmek için her biri motorun ayrı kodlaması gerçekleştirildi. Robot ileri doğru hareket ederken bu motorların gücünden yararlanıldı. Ayrıca robotun kenarlara çapmaması için de bu dc motorların ileri geri yönlendirilmesi ile robotun kenarlara çapma riski de azaltıldı. Diğer motorlara nazaran bunun seçilmesinin nedeni ise; daha ucuz ve kolaylıkla temin edilebilir olmasıdır.

Page 11: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

11

2.5.1. Motor Sürücü Bts 7060b- Arduino Sürücü Kartı

Araçlarımızı istediğimiz gibi hızlandırıp yavaşlatabilmek için DC motorlara farklı zaman

aralıklarında farklı değerler vermemiz gerekir. Bu entegre sayesinde DC motorların hız

kontrolü PWM tekniği ile rahatlıkla sağlayabildik. Burada entegreyi tek başına kullanmak

yerine sürücü kartı sipariş verildi. Arduino uyumlu 20A akım sürebilen sürücü kartı ile

robotumuzu 0-5km/s hızla sürme fırsatı yakalandı.

BTS 7060B de 1 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 transistör ile anahtarlama yöntemi kullanılarak yapılır.

Yapısı gereği H harfine benzediğinden dolayı böyle adlandırılır.

Sürücü kartının toplam 8 adet bacağı bulunmaktadır. Bunlardan IN1, IN2, EN1, EN2 IS1,

IS2, Vcc, GND’dir. Burada IS1 ve IS2 akım test pinleri olduğu için kısa devre edilir ve 5v

gerilime bağlanır.

2.6. Robotun Kenarlara Çarpmaması İçin Ultrasonik Sensor İle Robotun Yönlendirilmesi

3 adet ultrasonik sensör aracılığı ile robotun kenarlara çarpmasının önüne geçmek

hedeflendi. 3 sensorden gelen bilgi doğrultusunda robot; robotu yönlendiren motorlar

tarafından ileri geri hareket ettirilerek kenarlara çarpmasının önüne geçildi. Bu sensorlerden

biri robotun önünde diğer ikisi ise robotun sağ ve sol yanında yer almaktadır. Bu sensörlerden

gelen bilgi doğrultusunda robot kenarları algılatarak ve kenarlara çarpmasının önüne

geçilmiştir.

2.7. Robotun Önündeki Kılavuz Bandın Hareketinin Kontrolü

Robot denizde hareket ederken sürekli olarak önündeki bandın hareketini engellemek için

bir adet ultrasonik sensor aracılığı ile robotun gereksiz enerji kullanımının önüne geçilmiştir.

Böylece robot önüne çöp geldiği zaman önündeki klavuz bant dönmeye başlamaktadır. Bandı

kontrol eden motor 12V redüktörlü 100 RPM değerine sahip DC bir motordur. Bu motoru da

gerekli hızlarda sürerek duruma göre bandın hızlı veya yavaş dönmesini kontrol

edilebilmektedir.

Page 12: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

12

2.8. Robotun Hızının Ayarlanması

Robotun denizin dalgalı olduğu durumlarda da kullanılabilmesi için hızının artırılabilir

olması gerekir. Robot toplam 1500W’lık 2 adet DC motor ile sürülmektedir. Bu çıkış gücünü

ayarlayarak robotun denizdeki hızını da artırıp azaltabilecek bir program yazıldı. Bu program

Arduino mega aracılığı ile kontrol edilmektedir. Robotun hızını ise Arduino’nun analog

girişlerinden birine bağladığı potansiyometre aracılığı ile ayarlanabilir şekilde tasarlandı.

Böylece robotun hızı değiştirilebilir.

2.9. Robotun Sahip Olduğu Program

A Programı: Dalgalı durumda kullanılacak programdır. Bu program aracılığı ile robot

dalgalı durumlarda deniz üzerindeki katı atıkları ayırt ederek ve hızlı bir şekilde haznesine

alabilmektedir.

B Programı: Bu program aracılığı ile robot sakin havalarda yani dalgasız durumda deniz

üzerindeki nesneleri haznesine alabilecektir. Daha hassas işlem yapmak için bu program

aracılığı ile sadece tek renk çöpler algılanabilir. Bu yüzden bu programda sadece belirlenen

renkteki çöpler toplayabilmektedir.

2.9.1. Ultrasonik Sensörün Kütüphanesi

Arduino ara yüz programında ultrasonik sensorün kütüphanesinin tanımlı olması kolaylık

sağlar. Aşağıdaki şekilde görüldüğü gibi kütüphane çağrıldı ve ultra sonik sensorden bilgi

almaya başlandı. Bu bilgiyi motorlara göndererek robotun kenarlara çarpmasını önlendi.

Şekil 18. Ultrasonik sensör kütüphanesi

Page 13: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

13

2.9.2. Visual Studio Ve Arduino Arayüz Programının Haberleştirilmesi

Bu iki programı haberleştirmek için gerekli COM ayarlamalarının yapılması gerekir. Eğer

COM ayarları yapılmazsa bu iki program haberleşemez. Visual Studio programında ise

openCV kütüphaneleri çağırılması gerekir.

#include <iostream>

#include<opencv/cvaux.h>

#include<opencv/highgui.h>

#include<opencv/cxcore.h>

#include <sstream>

#include <string>

#include <opencv\cv.h>

#include<stdio.h>

#include<stdlib.h>

Yukarıda belirtilen kütüphaneler kameradan görüntü almak ve görüntüyü işlemek için

kullanılan kütüphanelerdir. Bu kütüphaneler vasıtasıyla görüntüyü alıp, HSV uzayına

çevrilebilir veya hareketli nesne takip edilebilir.

2.9.3. İzleme Çubuğunun Ayarlanması

int H_MIN = 0;

int H_MAX = 256;

int S_MIN = 0;

int S_MAX = 256;

int V_MIN = 0;

int V_MAX = 256;

using namespace cv;

Bu değer aralıkları ise hareketli nesne takibi yerine renk ayrımı yapmamızı sağlayan

program için kullandığımız değerelerdir. Burada önemli olan bu değer aralıklarını ayarlayarak

sadece belirli renklere robotun yönlenmesini sağlamaktır. Bu işlem de yapıldıktan sonra

robotum ilgili algoritma aracılığı ile katı atığı haznesine alacak şekilde yönleniyor.

Page 14: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

14

2.10. Simülasyon Çalışmaları

Arduino Mega 2560 Şekil-5 te görüldüğü gibi proteus programına ekledik ve PWM çıkışı

almayı başardık. Analog pin0 ucuna bir adet potansiyometre bağladık ve bu potansiyometreyi

ayarlayarak motorun hızını ve yönünü kontrol etmeyi başardık. Bizim motorlarımız yüksek

akım çektiği için bu işlemi simülasyon aracılığı ile yapmamız bize büyük avantaj sağladı.

Çünkü deneyler esnasında yanlış bağlantı yapmamıza sebebiyet verecek durumları

simülasyon aracılığı ile ortadan kaldırdık.

Şekil 5. Arduino PWM çıktısı

3.10.1. Arduino Mega 2560 İle Çift Yönlü DC Motor Kontrol Devresi

Şekil 6 de Arduino Mega ile çift yönlü dc motor kontrol devresi gösterilmiştir. Burada dc

motorların yönü ve hızı potansiyometre ile ayarlanabilmektedir. Ayrıca Ultrasonik sensorden

gelen bilgi doğrultusunda motorlar çift yönlü hareket edebilmektedir. Dc motorların hızı aynı

olsun diye tek bir anaolg girişten yani analog pin0 dan veri alarak her iki motorun hızı da aynı

anda değişmesi sağlanmıştır. Dc motorlar farklı hızda dönerse robot bir yöne doğru sapma

yaşayacaktır. Bu yüzden hız ayarlamalarının aynı yapılması gerekir.

Page 15: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

15

Şekil 6. Çift motor sürülmesi

3.10.2. DC Motorların Potansiyometresiz Sürülmesi

Şekil-7 de görüldüğü gibi 5 numaralı PWM çıkışı enerjilenmiş ve motor bir yönde c

dönmeye başlamıştır.

Şekil 7. DC Motorların Potansiyometresiz Sürülmesi

Page 16: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

16

3.10.3. Potansiyometrenin Değeri Azaltılarak DC Motorun Yönünün Değiştirilmesi

Şekil-8 potansiyometrenin değerinin %26 değerine çekilmesi motorların diğer yöne doğru dönmesini sağlamıştır. Bu motoralar potansiyometrenin değerlerine göre hızı azalıp artabilmektedir.

Şekil 8. PWM 2

Şekil-9’te potansiyometrenin değerinin arttırılması ile birlikte çıkış PWM uçları da

değiştiği görülmektedir. Böylece 5k ohm’luk potansiyometrenin değerini %50 değerinde

tuttuğumuzda motorlar durur, %50 değerini aştığı zaman ileri, %50 altına düştüğü zaman

geri dönmeye başlar.

Şekil 9. DC Motorun Ters Döndürülmesi (PWM)

Page 17: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

17

2.11. Deneysel Çalışmalar

Robotun ana gövdesinin ağırlığının beklenenin üzerinde olması sebebi ile tüm

hesaplamalar yeniden gözden geçirilmek zorunda kalındı.

Robotun Boyutları:

Uzunluk=110cm

Genişlik=50cm

Yükseklik max=50cm

Ağırlık=17 kg

Bu hesaplamalar dikkate alınarak robotun çekebileceği güç minimum çekmesi gereken

gücün üzerine çıktı. Robotun tasarımında 150W 2 adet DC motor kullanmayı planlıyorduk.

Ancak şu an 750W 12V 18500RPM DC motorlar kullanmak zorunda kaldık. Bu motorların

kullanımı ile robotun denizdeki hızını saatte 10 deniz miline kadar çıkarmayı başardık.

Böylece robotun parametrelerini geliştirmiş olduk. Sistemde toplam 3 adet servo, 3 adet DC

motor kullandık. Robotun denizde yönlenebilmesi için kuyruk kısmına 1 adet servomotor

(7,4V 40kg/cm) ekleyerek; servomotorun ise kontrolünü sağlayarak robota deniz üzerinde

katı atık neredeyse oraya yönlenmesini sağladık. DC motor ise robotun kenarlara çarpmasını

önlemek ve robotun ilerlemesini sağlamak için kullandık.

3. Proje Takvimi

İş Paketleri Mart

2014

Nisan

2014

Mayıs

2014

Haziran

2014

Temmuz

2014

Ağustos

2014

Eylül

2014

İş Paketi 1

İş Paketi 2

İş Paketi 3

İş Paketi 4

İş Paketi 5

İş Paketi 6

Page 18: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

18

İş Paketi 7

İş Paketi 8

İş Paketi 9

İş Paketi 10

İş Paketleri Yapılacak Projenin Açıklanması

İş Paketi 1 Proje konusuyla ilgili daha önceden yapılmış olan çalışmaların araştırılıp incelenmesi.

İş Paketi 2 Çalışacak olan prototipin ölçekli olarak çizilmesi ve robotun hareket edebilmesi ve çalışması için gerekli hesaplamaların yapılması.

İş Paketi 3 Simülasyon modelinin geliştirilmesi simülasyonların yapılması

İş Paketi 4 Bu aşamaya kadar yapılan çalışmaların ve simülasyon sonuçlarının değerlendirildiği bir ara rapor hazırlanarak değerlendirilmek üzere danışmanlara sunulması, danışman değerlendirmelerinin yapılması.

İş Paketi 5 Prototip için gerekli malzeme, teçhizat gibi araç-gereçlerin tespiti, özelliklerinin belirlenmesi ve proje bütçesine uygun bir satın alma listesinin hazırlanması ve siparişlerin verilmesi.

İş Paketi 6 Prototip üretiminin yapılıp testlere başlanması

İş Paketi 7 Test sonuçları ve simülasyon verilerinin karşılaştırılıp çalışmadaki aksamaların belirlenmesi.

İş Paketi 8 Prototip ürünün doğru çalışması için gerekli yazılımsal sorunların belirlenmesi

İş Paketi 9 Test sonuçlarının incelenerek aksaklıkların giderilmesi ve sonuç raporu olarak Bitirme Tezinin yazılması, sunum posterinin hazırlanması.

İş Paketi 10 Prototipin Bitirme Projesi Sergisinde sergilenmesi.

Page 19: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

19

4. Sonuç

Deniz üzerindeki katı atıkları toplayan akıllı robotumuzun tüm yazılım ve donanımlarını

tamamlayarak ve bir prototip akıllı robot yaparak projemizi tamamladık.

İlk olarak görüntü işleme için gerekli olan, robotun bir kamera yardımı ile görüntüyü alıp

işlemesi için openCV görüntü işleme yönteminin alt programları geliştirilerek kameranın

haraketli bir cismi görmesi ve arduino-mega vasıtasıyla kamerayı hareket ettiren servo motor

görüntünün geldiği yöne doğru yönelmesini sağladık.

Robotun su üzerinde durabilmesi için gemi şeklinde bir ana gövdenin tasarımını

gerçekleştirdik. Robotun su üzerinde yol alabilmesi için ana gövdenin arka kısmının sağ ve

sol taraflarına 2 adet dc motor ekledik ve bu motorlar farklı zamanlarda çalıştırdık. Robotun

katı atıkları haznesine alabilmesi için robotun ön kısmına kılavuz bant ekledik.

Son olarak ana gövde içerisine bütün elektrik ve elektronik sistemler gömülerek, üzerleri su

almayacak şekilde kapatıldı.

5. Ekler

Şekil 10 : Döner kılavuz bant çöpü haznesine alırken çekilmiş bir görüntü

Page 20: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

20

Şekil 11 Kamera çöp hareketlerine göre nesneyi takip ediyor.

Şekil 12: çöpün hazneye alınması

Page 21: Proje Raporu proje-sonuc-raporu - TÜBİTAK Bilim Genç · 2015-12-15 · Proje Başlığı Deniz Üzerindeki Katı Atıkları Toplayan Akıllı Robot Yazılımının Geliştirilmesi

21

Şekil 13 Robota yön veren kanatçığın servo bağlantısı ve Robotu hareket ettiren DC motora bağlı pervaneler

6. Referanslar

[1] Environmental Chemistry (Fifth Edition),Stanley E. Manahan , Lewis Publishers, (1991 ) [2] Birleşmiş Milletler Deniz Hukuku Sözleşmesi,BM Enformasyon merkezi UNIC,Ankara [3] Türk Deniz Araştırmaları Vakfı, 2014 yayınları , http://www.tudav.org [3] An Efficient Moving Target Tracking Strategy Based on OpenCV and CAMShift Theory, Springer [4] A Practical Introduction to Computer Vision with OpenCV (Wiley-IS&T Series in Imaging Science and Technology), K. Davson [5] Multiple Target Tracking in World Coordinatewith Single, Minimally Calibrated Camera, Springer [6] Endüstri otomasyon dergisi 2012

http://www.endustriotomasyon.com/UserFiles/AttachmentFiles/Dosya/ID_3318_tr_TR/1_dosyaRobot_ve_G%C3%B6rme_teknolojileri_1.pdf http://www.biltek.tubitak.gov.tr/bilgipaket/robotik/sosyaletki.pdf [7] Opel online akaryakıt fiyatları 29.05.2015 http://www.opet.com.tr/tr/PompaFiyatlariGuncel.aspx?cat=4&id=33&city=8&sehir=ANKARA

[8] Görüntü İşleme, Teknolojiler Ve Uygulamaları, M. Karakoç, Şubat 2012

[9] Ridder C, Munkelt O, Kirchner H. “Adaptive background estimation and foreground detection using Kalman-filter”. In: Proc. of the Int’l Conf. on Recent Advances in Mechatronics, ICRAM’95. UNESCO Chair on Mechatronics, pg: 193−199, 1995. [10] shape Analysis and Classification theory & practical, pages Luciano da Fontoura and R.Marcondes, pages 302-322, Digital Image Processing Second Edition, Rafael C. Gonzalez University of Tennessee, pg: 30-140