proje raporu proje-sonuc-raporu - tÜbİtak bilim genç · 2015-12-15 · proje başlığı deniz...
Post on 25-Dec-2019
8 Views
Preview:
TRANSCRIPT
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
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
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.
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].
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.
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
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
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.
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.
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.
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.
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
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.
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.
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
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)
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
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.
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ü
20
Şekil 11 Kamera çöp hareketlerine göre nesneyi takip ediyor.
Şekil 12: çöpün hazneye alınması
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
top related