Robot-yeniProje Yürütücüleri:
Fatih Köse (KOÜ Mekatronik Müh.)
Orhan Karakoçoğlu (KOÜ Mekatronik Müh.)
İsmail Köse (DPÜ Elektrik-Elektronik Müh.)
Proje Danışmanı: Doç.Dr. H. Metin Ertunç
Üniversite:
Kocaeli Üniversitesi
Bölüm:
Mekatronik Mühendisliği

Amacımız: Tırtılın yürüyüşünü taklit ederek ipe tırmanabilen bir robot yapmak ve ayrıca geliştirilebilir bir tasarım yaparak faydalı alanlarda kullanılabilirliğini sağlamak.

Özet:

Şekil 1:Mühendis Tırtıl

 

İpe Tırmanan Robot, Mühendis Tırtıl olarak bilinen bir tırtıl türünün ağaca tırmanışından esinlenilmiştir. Robotumuz ön ve arka kısımlarda iki adet ve belde bir adet olmak üzere toplam üç adet servo motor(hobi servo) ile tırmanma hareketini gerçekleştirecektir. Ön ve arka kısımlardaki servo motorlar ipi tutmaya, orta kısımdaki servo motor ise beli bükerek robotu ilerletmeyi sağlayacaktır. Robot enerjisini bünyesinde bulunan 4.8V ‘luk kaynaktan sağlayacaktır. İp, tutuculardan geçirilip “START” butonuna basılınca robot ipi tutacak ve birkaç saniye bekledikten sonra ipe tırmanmaya başlayacak. Robotun ön ve arka kısımlarında bulunan sensörler (limit switch) sayesinde robot, tırmanma kulesinin üst kısmına ulaştığını algılayarak aşağı hareket edecek, tabana ulaştığında ise yukarı hareket edecek.

GÖREV DAĞILIMI
Mekanik ve Elektronik Tasarım – FATİH KÖSE
Tırmanma Kulesinin Gerçeklenmesi – ORHAN KARAKOÇOĞLU
Gömülü Sistem Yazılımı – İSMAİL KÖSE

PROJE SÜRECİ

1. AMAÇ VE HEDEFLER
2.
BİYOMİMETİK ÇALIŞMASI
3.
ÖN TASARIM
3.1 Blok Diyagram
3.2
Ardışıl Robot Hareketlerinin Oluşturulması
4.
MEKANİK TASARIM
4.1 Robotun 3D Modellenmesi
4.2 Tırmanma Kulesinin 3D Modellenmesi
5.
ELEKTRONİK TASARIM
5.1 Robot Kontrol Devresinin Tasarımı
5.2 Konnektör Kartının Tasarımı
6. ROBOT PROTOTİPİNİN YAPILMASI
6.1 Elektronik Kartların Hazırlanması
6.2 Mekanik Prototipinin Hazırlanması
6.3 Montaj
6.4 Tırmanma Kulesi Prototipinin Oluşturulması
7. GÖMÜLÜ YAZILIMI GELİŞTİRME
7.1 Yazılım Akış Diyagramının Hazırlanması
7.2 Gömülü Yazılım
8. ROBOTUN TESTLERİ VE HATA DÜZELTME/AYIKLAMA
9. SONUÇ VE DEĞERLENDİRME
10. DÖKÜMANTASYON

_______________________________________________________________________________________________

1. AMAÇ VE HEDEFLER

Tırtılın yürüyüşünü taklit ederek ipe tırmanabilen bir robot yapmak ve ayrıca geliştirilebilir bir tasarım yaparak faydalı alanlarda kullanılabilirliğini sağlamak.

2. BİYOMİMETİK ÇALIŞMASI

Biyomimetik, ilk defa Montanalı bir yazar ve doğa gözlemcisi olan Janine M. Benyus tarafından ortaya atılmış bir kavramdır.

Biyomimetiğin ana teması doğadan model, ölçü ve akıl olarak öğrenilebilecek çok şey olduğudur. Bu dalın araştırmacılarının ortak noktası, insanların karşılaştıkları problemlerin çözümünde doğadaki canlılardan ilham almalarıdır.

Doğadaki tasarımlar en az malzeme ve enerji ile en fazla verim almaları, kendi kendilerini onarma özellikleri, geri-dönüşümlü ve doğa dostu olmaları, dayanıklı ve uzun ömürlü olmaları bakımından teknolojik çalışmalara örnek teşkil ederler.

Biz de bu “yeni disiplin”e uyup biyomimetik bir çalışma yaparak geleceğin bilim dalına ve Türkiye’de bu yönde çalışma yapılmasına katkıda bulunmak için bir robot yapmaya karar verdik.

İpe tırmanan bir robot yapmaya karar verdiğimizde , doğadaki hangi canlıdan ilham alabiliriz diye düşündük ve mühendis tırtılın yürüyüş şeklinden etkilendik ve bu yöndeki çalışmalarımıza başladık.

Mühendis tırtıl, Insectaların (Böcekler) Lepidoptera takımının Geometridae familyasına mensup üyelerinin larva şeklidir. Thoraksta(göğüs) 3 çift ve abdomen(karın ) sonunda 2 çift bacak olmak üzere toplam 5 çift bacağa sahip olan mühendis tırtıllar, yürüme şekilleriyle dikkat çekerler. Bacaklarının bulunduğu konumlardan dolayı yürürken thoraks ve abdomenin yan yana geldiği görülür.

Mühendis Tırtılın yürüyüşünü merak edenler için kısa bir video klip düzenledik.Böylelikle robotumuzun taklit edeceği canlıyı biraz daha tanımış olacaksınız.

tirtil1

3. ÖN TASARIM

Robotumuz ön ve arka kısımlarda iki adet ve belde bir adet olmak üzere toplam üç adet servo motor(hobi servo) ile tırmanma hareketini gerçekleştirecektir. Ön ve arka kısımlardaki servo motorlar ipi tutmaya, orta kısımdaki servo motor ise beli bükerek robotu ilerletmeyi sağlayacaktır. Robot enerjisini bünyesinde bulunan 4.8V ‘luk kaynaktan sağlayacaktır. İp, tutuculardan geçirilip “START” butonuna basılınca robot ipi tutacak ve birkaç saniye bekledikten sonra ipe tırmanmaya başlayacak. Robotun ön ve arka kısımlarında bulunan sensörler (limit switch) sayesinde robot, tırmanma kulesinin üst kısmına ulaştığını algılayarak aşağı hareket edecek, tabana ulaştığında ise yukarı hareket edecek.

3.1 Blok Diyagram

Şekil 2: Robot Blok Diyagram

3.2 Ardışıl Robot Hareketlerinin Oluşturulması

3.2.1 Robotun Başlanıç Hareketleri

Robotumuza ilk enerji verildiği anda veya resetlendiğinde ”Ön ve Arka Tutucular” açık konuma gelecek ve Bel kısmıda kendisini açık konumda tutacak yani Robot ipe yerleştirilmeye hazır vaziyete gelmiş olacak. İpe yerleştirilip ”START’ butonuna basılınca ” Ön ve Arka Tutucular ” aynı anda ipi tutacaklar.Robot yaklaşık iki saniye bu şekilde hareketsiz durduktan sonra yukarı yönde hareketine başlayacak. Burada iki saniye beklemesindeki amaç, robotu ipe yerleştirip START butonuna basan kişiye elini çekmesi için zaman tanımaktır.

Şekil 3: Robotun Başlangıç Hareketleri

3.2.2 Robotun Yukarı Yönde Hareketi

Robotumuz, START butonuna basıldıktan sonra bekleme süresinin bitimiyle yukarı yönde harekete başlar.İlk olarak Arka Tutucu açılıp ipi bırakacak. Bel kısmı bükülecek ve Arka Tutucu kapanıp tekrar ipi tutacak. Daha sonra Ön Tutucu açılıp ipi bırakacak.Bel kısmı açılarak robot tekrar düz konuma gelecek ve Ön Tutucu tekrar ipi tutacak.Bu hareketin bitimiyle robot hareketleri bir döngüye girecek ve aynı şekilde hareketleri yaparak yukarı yönde tırmanma gerçekleştirecek.Bu döngü robotumuz önünde bir engelle karşılaşmadığı sürece devam edecek.Eğer robotumuz yukarı yönde hareket ederken bir engele çarparsa(örneğin tırmanma kulesinin üst kısmı ), Bel kısmını açıp Ön ve Arka Tutucuyu kapalı konuma getirerek Aşağı yönde bir harekete hazır konuma gelecek.

Şekil 4: Robotun Yukarı Hareket Döngüsü

3.2.3 Robotun Aşağı Yönde Hareketi

Robotumuzun Aşağı yönde hareketi için tek koşul, yukarı tırmanırken bir engele çarpmasıdır.Engele çarpan robot Bel kısmını açacak, Ön ve Arka Tutucuları kapayarak ipi tutacak ve aşağı yönde hareket etmeye başlayacak.İlk olarak Ön tutucuyu açacak. Bel kısmı bükülecek ve Ön Tutucu kapanıp ipi tutacak. Daha sonra Arka Tutucu açılacak ve ipi bırakacak.Bel kısmı açılarak robot tekrar düz konuma gelcek ve Arka Tutucu kapanarak tekrar ipi tutacak. Bu son hareketten sonra robotun hareketleri aynı döngü içerisinde devam edecek ve bu şekilde aşağı yönde bir hareket sağlanmış olacak.Aşağı yönde hareket eden robot bir engele çarptığında (Tırmanma kulesinin alt kısmı), Bel kısmı açılacak Ön ve Arka Tutucular ipi tutacak ve sonrasında robot yukarı yönde bir harekete başlayacak.

Şekil 5: Robotun Aşağı Hareket Döngüsü

3.2.4 Robot Hareketlerinin Animasyonu

Yukarıda blog diyagram ve metin üzerinden anlattığımız robotun aşağı ve yukarı yöndeki hareketi, SolidWorks Programı kullanılarak hazırlanan basit bir protatip üzerinden animasyona dönüştürülmüştür.Böylelikle robot hareketleri daha iyi anlaşılacaktır.

4. MEKANİK TASARIM

4.1 Robotun 3D Modellenmesi

Robotumuzu 3D modellemeden önce robotumuzda olması gereken kriterleri belirledik.Robotumuz sağlam,ekonomik,estetik, montaj ve demontajının kolay olmasının yanısıra kullanılan malzemenin teminide kolay olmalı.Bu kriterler robotumuzda kullanacağımız malzemelerin seçimindede belirleyici unsurlar oldu.Malzeme seçimini ve teminini yaptıktan sonra kullanacağımız malzemeleri, SolidWorks programında aynı ölçülerde 3D modelledik.Modelleme esnasındaki bazı resimleri aşağıda görebilirsiniz.

Şekil 7: Servo Motorun Mil Rulman Yatağının Oluşturulması

Şekil 6: Servo Motorun Şase Bağlantı Yerlerinin Oluşturulması

Şekil 9: Limit Swich’in Metal Kısmının Oluşturulması

Şekil 8: Servo Motor Milinin Oluşturulması

4.1.1 Malzeme Listesi ve 3D Modelleri

Malzeme kriterlerimizin sağlamlık , temini kolay ve ekonomik olması gerektiğini ve bu kriterlere göre malzeme seçimini yaptığımızı belirtmiştik.Aşağıda bu malzemeleri kısaca tanıtıp 3D modellerini sizlere sunacağız.

1-)Servo Motor:

Robotun hareketleri hobi servo motorlar ile sağlanacaktır. Robotumuzun Bel mekanizması , Ön ve Arka Tutma Mekanizmaları için toplam üç adet TowerPro SG5010 Standart Servo motoru kullanacağız.

Şekil 10: Servo Motorun 3D modeli

Teknik Özellikler

Ağırlık:38g

Hız:0.2sec/60degree(4.8v); 0.16sec/60degree(6v)

Tork:5.5kg/cm(4.8V); 6.5kg/cm(6V);

Uzunluk:40.2mm

Genişlik:20.2mm

Yükseklik:43.2mm

2-)Limit Swich:

Robotumuz, tırmanma kulesinin üst veya alt tarafına çarptığında yönünü değiştirmesi için sensör olarak iki adet Limit Swich kullanacağız. Montajı ve demontajı kolay olması tercih sebeplerimizdir.

Şekil 11: Limit Swichin 3D modeli

3-)Bakır Plaket:

Robotumuzun gövdesini oluştururken bakır plaket (elektronik kart yapımında kullanılan) kullanacağız.İşlemesi (kesme ,delme vb) çok kolay ve herkesin rahatlıkla istediği boyutlarda bulup temin edebileceği sert, dayanıklı,ince, hafif ve ucuz bir malzemedir.Bu malzemeyi aşağıda 3D resimlerini gördüğünüz şekilde işleyerek robotun gövde parçalarını oluşturmuş olacağız.

Not: Şekil 13’deki parçadan Robotumuzda iki adet bulanacaktır.

Şekil 12: Bel ve Arka Tutucu Mekanizmaları İçin Yan Parçalar

Şekil 13: Ön Tutucu Mekanizmasını Bel Kısmına Bağlayacak Yan parça

Şekil 14: Ön Tutucu Mekanizması İçin Yan Parça

4-)Saplama (tij) :

Yukarıda oluşturduğumuz gövde yan parçalarını birleştirmek için aralayıcı olarak M5 Saplama(tij) kullanacağız. M5 bu tarz projeler için kesit olarak biraz kalın ancak malzemelerin bulunabilirliği bizim için çok önemli olduğu için diğerlerine göre (M3 ,M4) en kolay bulunabilecek tijin M5 olduğu kararına vardık.Ayrıca piyasada parça birleştirmede aralayıcı olarak altı köşeli vida ve somun bağlantılı aralayıcılar bulunmaktadır. Ancak bunların ölçüleri belirli boyutlardadır ve biz kendi istediğimiz ölçülerde bu aralayıcaları kullanamayız. Yani buda demek oluyor ki aralayıcının ölçüsü ne ise bizim robotumuzda o ölçüde bir genişliğe sahip olacak. Bu bizim için uygun olmayacağından M5 saplama kullanmak bize daha avantajlı geldi. Çünkü basit bir demir testeresi yada küçük bir taş motoru vasıtası ile istediğimiz ölçülerde saplamayı işleyebilir ve somunlar vasıtasıyla robotumuzda rahatlıkla kullanabiliriz.

Şekil 15: Saplamaların 3D modeli (dişler çizilmemiştir)

5-)Civata Ve Somunlar:

Robotumuzda M5 saplama kullandığımız için gövdeyi oluşturmada M5 somun kullanacağız. Servo motorların, limit swichlerin, pilliğin ve devrenin gövdeye bağlanması için ise M2 civata-somun kullanacağız.

Şekil 16: Civata ve Somunların 3D modeli

6-)Pillik (dörtlü):

Projemizin özet kısmında Robotumuzu 4.8V ile çalıştıracağımızı belirtmiştik.Toplam dört adet 1.2V’luk AA pil için bir tarafı düz olan dörtlü pil kutusu kullanacağız. Düz olan taraftan rahatlıkla gövdeye bağlantı yapılabilir.

Şekil 17 : Pilliğin ve Pilin 3D Modeli

7-)Servo Motorun Mil Aparatları:

Servo Motor paketinin içinden bir çok mil aparatı çıkar ve projenize hangisi uygunsa o aparatı kullanabilme seçeneği sunar. Bizde en uygun olan aparatları seçtik ve modelledik. Büyük daire biçiminde olan mil aparatını bel kısmını hareket ettiren servoda kullanacağız. Küçük olan mil aparatını ise (karmaşık olmaması için diğer kanatlar çizilmemiştir) Ön ve Arka Tutucularda kullanacağız.

servo_parca

 

 

8-)İpi Tutma Teli:

Robotumuzun ipi tutma mekanizması ve şekli robot 3D modellendikten sonra açıklanacaktır ancak bu parçanın ne olduğunu açıklamak için şunları söylemekte yarar var. İpi Tutma Teli , Ön ve Arka Servolarda bulunan mil aparatlarına takılacaktır(şekil 18 küçük parça). Bu tel, mukavemeti yüksek telden tercih edilecektir ve 3D modelindende anlaşıldığı gibi dikdörtgen şeklinde bükülecektir.İp, bu telin arasından geçirilecektir ve ipi bu tel sıkıştıracağı için mukavemeti iyi olmalıdır.

Şekil 19: İpi Tutma Teli 3D modeli

9-)Sabitleme Parçası:

Bu parçadan Ön ve Arka Tutma mekanizmasında ikişer adet olmak üzere toplam dört adet kullanılacaktır. Parçanın amacı İpi Tutma Telinin hareket halındeyken ( ipi tutup-bırakma ) sağa-sola hareket etmesini engellemek ve aynı zamanda ön ve arka tutuculardan geçirilen ipin aynı eksende durmasını sağlamaktır. Parça bakır plaketten yapılacaktır.

Şekil 20: Sabitleme Parçası 3D modeli

10-) Antenler ve Led Diyotlar:

Antenleri robotumuza biraz estetiklik katması ve Tırmanma Kulesinin üst veya alt sınırına ulaştığını algılamasında kolaylık sağlaması için kullanacağız.Antenler 1.5mm kesitinde bakır Antigron koblodan yapılacaktır.Ayrıca robotumuzun ön tarafında bulunacak antende iki adet cam renginde (kırmızı ışık veren) Led diyot bulunacak. Bu ledlerin robotumuz çalışırken güzel bir görünüm katacağını düşünüyoruz.Antenler ön ve arkada bulunacak Limit Swichlerin metal kısımlarına monte edilecektir.

Şekil 22: Arka Taraftaki Antenin 3D Modeli

Şekil 21:Ön Taraftaki Antenin ve Ledlerin 3D modeli

11-)Elektronik Devre:

Elektronik devre kartı robotumuzu kontrol edeceği için çok önemlidir.Sembolik olarak LaunchPad görünümünde 3D bir kart modelledik.

Şekil 23: Robotun Elektronik Devre Kartı 3D modeli

4.1.2 Robotun Oluşturuması

Robotumuzun her parçasını 3D modelledikten sonraki aşama bu parçaları uygun bir şekilde birleştirerek robotumuzun 3D modelini oluşturmak olacak. Robotun 3D model resmini direk koymaktansa, parçaları birleştirme esnasında görüntüler alıp metin üzerinden desteklenerek sizlerle paylaşmayı daha uygun bulduk.

1-)Bel ve Arka Tutma Mekanizmasının Oluşturulması

İlk olarak Bel ve Arka Tutma mekanizmalarından başlayarak robotumuzu oluşturacağız.Şekil 24’te bu bölüm için gerekli parçaların bir kısmı gösterilmiştir. Buradaki yan levhalar Şekil 12’de göstermiş olduğumuz parçalardır ve yerleştirilişleri bu şekilde olacaktır. Ayrıca gövdeyi bir arada tutacak saplamalarla birlikte iki adet servo motor ve kullanacağımız servo motor mil aparatlarıda gösterilmiştir . Bu bölümde kullanacağımız bütün parçaları karmaşıklık olmaması için Şekil 24’e koymadık birleştirme sırasına göre hepsi ilerleyen resimlerde gösterilecek.

Şekil25’te servo motorların plaketlere nasıl yerleştirileceği gösterilmiş ve mil aparatları takılmıştır . Görüldüğü gibi daire şeklinde olan aparat Bel kısmına , kanatlı olan ise Arka Tutma servo motoruna takılmıştır.Şekil25’te arka tarafta bulunan levha öndeki servoya tamamen yaslandırılmış durumdadır.

Şekil26’da yedi adet saplamanın plaketlere geçme şekli verilmiştir.Plaket yanlarından taşan saplama kısımları iki taraftada eşit ölçüdedir.Bu saplamara yan levhaları sabitleyecek biçimde somunların takılması ve servo motorların civata bağlantıları Şekil 27’de gösterilmiştir.Bu son durumda bel ve arka tutma mekanizmasını içinde bulunduracak alt gövdeyi oluşturmuş olduk.

Şekil 24: Bel ve Arka Tutma Mekanizmasına Ait Parçalar

Şekil 25: Servo Motorların Plakete Yerleştirilme Şekli

Şekil 27:Saplamalara Somunların Takılması ve Servo Motorların Civata Bağlantıları

Şekil 26: Kısa Saplamaların Gövdeye Bağlantısı

 

 

2-)Ön Tutma Mekanizmasının Oluşturulması

Ön Tutma Mekanizmasını oluşturacak ana parçalar Şekil28’de gösterilmiştir.Şekil 13 ve Şekil 14 teki yan parçalar bu kısımda kullanılacaktır. Görüldüğü gibi Şekil 13’teki parçadan iki adet bulunmaktadır.Bunun sebebini açıklayacak olursak eğer Ön Tutma mekanizması,Bel kısmına sadece tek yönden bağlanacaktır. Buda boşta kalan tarafa sarkma ihtimalini bereberinde getirecektir. Bu sarkmayı minumuma indirgemek için o kısımda bulunan yan parçadan iki adet birbirine yaslayarak kullancağız. Bu kısıma özel daha kalın ve sert bir malzeme kullanabilirdik ancak robotun tümünde kullanılan malzemenin kısım kısım farklılıklar göstermesini istemedik.

Şekil 29’da Ön tutma mekanizmasının parçaları birleştirilmiş ve Bel kısmına bağlanış şekli gösterilmiştir.Ön Tutma Servosunun yerleştirildiği yan parça ile arka tutma mekanizmasının yerleştirildiği yan parça aynı düzlem üzerinde bulunmaktadır.Bu düzlem referans alınarak saplamalar ve somunlar yerleştirilimiştir.Ayrıca servo motorun civata bağlantılarıda gösterilmiştir. Böylelikle robotumuzun gövdesi kabaca oluşturulmuş oldu.

Şekil 29: Ön Tutma Mekanizmasının Birleştirilmesi ve Bel Mekanizmasına Bağlantısı

Şekil 28: Ön Tutma Mekanizmasına Ait Parçalar

3-)İpi Tutma Mekanizmasının Oluşturulması ve Sensörlerin Montajı

Şekil 30’da ipi tutma mekanizmasına ait parçalar ve robotun sensörleri gösterilmiştir.Burada dört adet şekil 20’deki sabitleme parçası kullanılacaktır.Daha öncede dediğimiz gibi bu parçalar İpi Tutma Telinin sağa sola hareketini engelleyecek ve sadece tek eksende (yukarı-aşağı) hareketini mümkün kılacaktır.İpi tutma teli Ön Tutma ve Arka Tutma Servolarının mil aparatlarına geçirilip şekil 31’de görüldüğü gibi iki saplama arasından aşağı sarkacaktır.İpi tutma teli iki taraftanda sabitleme parçaları ile desteklenmektedir. Sabitleme parçaları somunlar vasıtasıyla tije oturtulmuştur.Ön ve Arka tarafta bulunan sabitleme parçaları aynı düzlem üzerindedir dolayısıyla ön ve arka taraftaki tellerden geçirilecek ipin ekseninde bir kayma olmayacak.Şekil 31’den rahatlıkla anlaşılacağı gibi tellerden geçirilen ip servoların herhangi birin kapanması ve teli yukarı doğru çekmesiyle iki saplama arasına sıkılşacak ve ipi tutmuş olacak.Basit bir tutma mekanizması olmasına rağmen güçlü bir tutuş sağlayacağını düşünüyoruz.Ayrıca Limit Swichlerin robota bağlanış şekilleride Şekil 31’de gösterilmiştir.Swichlerin sadece metal kısımları gövde dışında kalacak şekilde montajları yapılacaktır.

Şekil 31: İpi Tutma Mekanizmasının Oluşturulmuş Hali ve Sensörlerin Montajı

 

4-)Pilliğin ve Elektronik Devre Kartının Gövdeye Montajı

Şekil 32’de pillik , dört adet pil ve robotumuzun devresi gösterilmektedir.Devre ve piliği, robotumuzun bel ve alt tutma mekanizmasını içinde bulunduran Alt gövdeye bağlayacağız.Montajlarında M2 civata kullanılacaktır.

Şekil 33’de pillik ve devrenin robot gövdesine montajlanmış halleri gösterilmektedir.Pillik resimde gösterildiği gibi dört adet somundan destek alacak biçimde yaslandırılmıştır ve iki taraftan civata ile plakete sabitlenmiştir.Böylelikle robotumuzda pillerle birlikte en ağır parça kabul edebileceğimiz pillik bükülme hareketi yapan Bel Servo Motoruna en az Moment uygulayacak bir bölgeye yerleştirilmiştir.Görsellik katması açısından pilleride 3D modelde kullandık.Devre kartımız da alt sensörün üzerini kapatacak ve dört adet somundan destek alacak biçimde yerleştirilmiştir.

Şekil 33: Pilliğin ve Elektronik Devre Kartının Robota Montajlanması

 

 

5-)Antenlerin Robota Montajı:

Robotumuzun son parçaları olan antenlerin konumları Şekil 34’de gösterilmiştir. Çift taraflı anten ön tarafa , tek taraflı anten ise arka tarafa yerleştirilecektir.Antenler limit swichlerin metal kısımlarına monte edilecektir. Antenler bakır iletkenden yapılacağı için rahatça bu metal kısımlara lehimlenebilir.Daha öncede dediğimiz gibi antenler robota estetiklik katmasının yanında engelleri algılamada da kolaylık sağlayacaklardır.

Antenlerin montajlanmış halleri Şekil 35’te gösterilmiştir. Ayrıca bu son şekil Robotumuzun tamamen montajlanmış halidir. Montajı bitmiş halinin diğer açılardan çekilmiş resimlerinide sizlerle paylaşacağız.

Şekil 35:Antenlerin Montajlanmış Hali

 

 

Şekil 34:Ön ve Arkada Bulunacak Antenlerin Montajlanmaya Hazır Durumları

4.1.3 Robotun 3D Resimleri

Robotumuzun 3D modellenmiş haldeki resimlerini aşağıda sizlerle paylaşmaktayız.

Şekil 37:Robot Yan Görünüş (2)

Şekil 36: Robot Yan Görünüş (1)

Şekil 38: Robotun Bel Kısmının Bükülmesi

Robotta kullandığımız malzemelerin, bilgisayar ortamında mümkün olduğunca gerçeğe yakın görünümleri elde etmek için SolidWorks programından yararlandık. Böylece robotumuzun gerçekçi görünümde resimlerini elde ettik ve sizlerle paylaşıyoruz.

Şekil 39: Tırtıl 3D Görünüm(1)

Şekil 40: Tırtıl 3D görünüm (2)

Şekil 42: Tırtıl 3D Görünüm (4)

Şekil 41: Tırtıl 3D Görünüm (3)

4.2 Tırmanma Kulesinin 3D Modellenmesi

Robotumuzun bilgisayar ortamında modellemesini yaptıktan sonra tırmanacağı kuleyide bilgisayar ortamında modelleyeceğiz.Tasarlayacağımız kulenin dayanıklı , montajının ve demontajının kolay olması gerekir.

4.2.1 Tırmanma Kulesi Malzeme Listesi

Kulede kullanılacak malzemelerin öncelikle 3D modellerini bilgisayar ortamında tasarlayacağız.Malzeme listesinide 3D modeller üzerinden sizlerle paylaşacağız.

1-)Foreks:

Foreks malzemesi yeterince sert,dayanıklı ve hafif olduğu için tırmanma kulesinin taban ve tavanını bu malzemeden yapmaya karar verdik. Bizim tırmanma kulesinde kullanacağımız foreks malzemesinin kalınlığı 5mm olacaktır.Foreks malzemesinden Şekil 43 ve Şekil 44’te görüldüğü gibi iki parça işlenecektir.Malzeme reklamcılarda rahatlıkla bulunabilir.

Şekil 44: Tırmanma Kulesinin Tavanını Oluşturacak Parça

Şekil 43: Tırmanma Kulesinin Tabanını Oluşturacak Parça

2-)Ayaklar:

Tırmanma kulesinde kullandığımız taban parçasının yerle teması, beş adet ayak adını verdiğimiz parçalar üzerinden sağlanacaktır.Bu parçalar Şekil 45’teki gibi silindirik olup merkezlerinden M6 civataya uygun diş açılacaktır.

Şekil 45: Tırmanma Kulesinin Ayaklarını Oluşturacak Parça

3-)Metal Çubuklar:

Metal Çubuk dediğimiz parçalar altıgen şeklindedir ve iki tarafınada M6 diş açılmıştır.Bu iki çubuk tırmanma kulesinin tabanı ile tavanını birbirine bağlayacaktır.İki adet yerine tek bir uzun metal çubukta kullanabilirdik ancak demontajı yapılıp taşıma durumunda sıkıntı yaratabileceği için iki eşit uzunlukta kısa çubuk kullanmak daha avantajlı geldi.Kulenin demontajı yapılınca istenilen yere rahatça taşınıp tekrardan montajı yapılabilir.Şekil 46’da bahsettiğimiz bu metal çubukların 3D modelini görebilirsiniz.

Şekil 46: Metal Çubuklar

4-)Birleştiriçi Somun:

Bu parça yukarıda anlattığımız iki metal çubuğu birbirine bağlamak için kullanılacaktır.Metal çubukların diş açılmış kısa tarafları bu somun vasıtasıyla birleştirilecek ve tek bir çubuk elde edilmiş olacak.Şekil 47’de parçanın 3D modelini görebilirsiniz.

Şekil 47: Birleştirici Somun

5-)Civata ve Somunlar:

Tırmanma kulesinde ayak parçalarının Şekil 43’te gösterilen taban parçasına montajında M6 Alyan başlı civata kullanacaktır.Ayrıca metal çubukların taban ve tavan parçalarına montajı sırasında M6 somun ve pul kullanılacaktır.

Şekil 48:Tırmanma Kulesi İçin Civata ve Somunlar

4.2.2 Tırmanma Kulesinin Oluşturulması

Tırmanma Kulesinin tüm parçalarını modelledikten sonraki aşama bunları uygun bir şekilde montajlamak olacaktır. Robot modellemesinde olduğu gibi buradada montajlama işlemini metin ve resimler üzerinden anlatmaya çalışacağız.

1-)Tabana Ayakların ve Metal Çubuğun Montajı:

Şekil 49’da civata ve somunlar hariç Tırmanma Kulesi için tüm parçalar gösterilmiştir.Buradaki parçalar sırasıyla montajlanarak Tırmanma Kulesi oluşturulacaktır.İlk olarak dört adet ayak, taban parçasının dört köşesinde bulunan deliklere M6 alyan başlı civata ile bağlanacaktır. Daha sonra metal çubuklardan bir tanesi Şekil 50’de gösterildiği gibi tabana yerleştirilecek ve tabanın alt tarafından diğer ayak parçası ile sabitlenecektir.

Şekil 50: Ayakların ve Metal Çubuğun Montajı

Şekil 49:Tırmanma Kulesinin Malzemeleri

2-)Birleştirici Somun ve Diğer Metal Çubuğun Montajı:

Şekil 51’de birleştirici somun ve tabana bağlanmış metal çubuk görünmektedir. Birleştirici somun metal çubuğa takılır ve daha sonra diğer metal çubukta Şekil 52’de gösterilen konumda birleştirici somunun diğer tarafına takılır. Böylece metal çubuklar birleştirilmiş olur ve montajlama işlemi Şekil 53’deki duruma gelir.

Şekil 52: Metal Çubuğun Tamamlanması

Şekil 51: Birleştirici Somunun Montajı

Şekil 53:Ayakların ve Metal Çubukların Montajlanmış Hali

3-)Tırmanma Kulesinin Tavanının Oluşturulması:

Şekil 53’teki durumda metal çubuğun üst kısmına Tavan parçası somunlanarak takılır ve şekil 54’teki durum elde edilir.Burada Tavanda ve Tabanda gözüken delikler aynı eksendedir ve buradan ip geçirilecektir.İp geçirilmiş ve Tırmanma Kulesinin tüm parçalarının montajlanmış hali Şekil 55’te gösterilmiştir.

Şekil 55: Tırmanma Kulesinin Montajlanmış Hali (ip takılmıştır)

Şekil 54: Tırmanma Kulesinin Tavanının Montajı

4.2.3 Tırmanma Kulesinin 3D resimleri

Robotun modellemesinde olduğu gibi Tırmanma Kulesininde gerçeğe en yakın görüntülerini SolidWorks programını kullanarak elde ettik ve aşağıda sizlerle paylaşmaktayız.Böylelikle tasarımlarımızın daha anlaşılır olacağını düşünüyoruz.

Şekil 57: Tırmanma Kulesi 3D Görünüm(2)

Şekil 56: Tırmanma Kulesi 3D Görünüm(1)

Şekil 59: Tırmanma Kulesi 3D Görünüm(4)

Şekil 58: Tırmanma Kulesi 3D Görünüm(3)

5. ELEKTRONİK TASARIM

5.1 Robot Kontrol Devresinin Tasarımı(Ana Devre)

 

 

Robotumuzda kontrol kartı olarak MSP430 LaunchPad kullanılacaktır.Kart üzerinde kullanacağımız pinler ve butonlar Şekil 60’da Proteus Programında tasarlanmış devre şeması üzerinden gösterilmektedir.

Şekil 60:Robotun Elektronik Devre Şeması(Ana Devre)

Not:Şekil 60’daki devre 8.Adımda revize edilmiştir.

5.2 Konnektör Kartı Tasarımı

Aslında MSP430 Launchpad’i ek devre olmadan robotumuzda kullanabilirdik.Ancak LaunchPad üzerinde herhangi bir kablo karmaşıklığını istemediğimiz ve tasarımın daha anlaşılır bir biçim almasını istediğimiz için konnektörlerden oluşan bir ek devre tasarladık. Bu ek devre Launchpad’in arka kısmına konnektörler vasıtasıyla bağlanacaktır.Şekil 61’de yapacağımız konnektör devrenin Proteus Programında çizilmiş devre şemasını görebilirsiniz. Konnektör devresi basit ve az sayıda elemandan oluştuğu için bu devreyi Delikli Plaket (Protoboard) üzerine yapmayı düşünüyoruz. Ancak baskı devre çizimininde projede bulunmasını istediğimiz için Ares Programında tasarladığımız şemayıda Şekil 62’de görebilirsiniz.

Şekil 62: Konnektör Devresinin Baskı Devre Şeması

Şekil 61:Ana Devreye Bağlanacak Konnektör Devre Şeması

Not:Şekil 61 ve Şekil 62’deki devreler 8.Adımda revize edilmiştir.

6. PROTOTİPİNİN YAPILMASI

6.1 Elektronik Kartların Hazırlanması

 

Robotumuzun kontrol devresinin, ana devre ve konnektör devresinden oluşacağını belirtmiştik.Ana devrede (MSP430 LaunchPad), kitin kutusundan çıkan dişi konnektörler kartın arka tarafına bakacak şekilde takılacaktır.Ayrıca LaunchPad üzerinde hazır bulunan besleme pinleri (üçlü) sökülüp yerine ikili dişi konnektör kartın arkasına bakacak şekilde takılacaktır.Bu şekilde tüm konnektörler kartın arkasında bulunacak ve ana devrenin altına yerleştireceğimiz konnektör devresi için hazır hale getirilmiş olacaktır.Böylelikle kart üzerinde kablo karmaşıklığı olmayacak ve hatta istenildiğinde LaunchPad kolaylıkla çıkarılıp başka uygulamalarda rahatlıkla kullanılabilecektir.Şekil 65’te konnektörlerin LaunchPad’e takılmış haldeki resmini görebilirsiniz.

Şekil 64: MSP430 Launchpad Resim (2)

Şekil 63: MSP430 LaunchPad Resim(1)

Şekil 65: MSP430 LaunchPad’e Konnektörlerin Takılmış Hali

Konnektör Devresi üzerinde LaunchPad’e taktığımız dişi konnektörlere karşılık gelecek şekilde erkek pinler bulunacaktır.Ayrıca Konnektör Devre Şemasında gösterilen servo motor pinleri, sensör pinleri ve antende bulunan ledler içinde pinler yine bu kart üzerinde bulunacaktır.LaunchPad’in beslemeside yine Konnektör Devresinden pinler vasıtasıyla yapılacaktır.Kart üzerinde iki adet civata bulunmaktadır . Bu civatalar ile kartın robot gövdesine bağlantısı sağlanacaktır.Devrenin protoboard üzerinde tasarlanmış halini aşağıdaki resimlerde görebilirsiniz.

Not:Konnektör Devresinin besleme kabloları bağlanmamıştır.

Şekil 67: Konnektör Devresi Resim(2)

Şekil 66: Konnektör Devresi Resim(1)

Aşağıda LaunchPad ve Konnektör Devresinin sizler için çekilmiş diğer fotoğraflarınıda görebilirsiniz.

Şekil 69:MSP430 LaunchPad ve Konnektör Devresi Resim (2)

Şekil 68:MSP430 LaunchPad ve Konnektör Devresi Resim (1)

MSP430 LaunchPad , Konnektör Devresine Şekil 70’de gösterildiği gibi yerleştirilir ve hafifçe iki taraftan bastırılarak devreler birbirine bağlanır.Devrelerin birbirine bağlanmış haldeki resimlerini aşağıda görebilirsiniz.

Şekil 71:Devrelerin Bağlanmış Hali Resim (1)

Şekil 70:MSP430 LaunchPad’in Konnektör Devresine Yerleştirilmesi

Şekil 73:Devrelerin Bağlanmış Hali Resim (3)

Şekil 72:Devrelerin Bağlanmış Hali Resim (2)

Şekil 74 üzerinden pinleri açıklayacak olursak eğer, üstte bulunan pin antendeki ledler, hemen altındaki ikili pinler sırasıyla Ön ve Arka Limit Swichleri , diğer üçlü pinler ise sırasıyla Öndeki,Beldeki ve Arkadaki Servo Motor pinleridir.

Şekil 74:Devrelerin Bağlanmış Hali Resim (4)

6.2 Mekanik Prototipinin Hazırlanması:

Robotumuzun mekanik prototipi, Robotun 3D Modellenmesi başlığı altında anlatıldığı gibi oluşturulacaktır.Robotta kullanılacak malzemelerin birbirlerine montajlanıp robotun oluşturulması 4.Adım’da detaylıca anlatıldığı için burada detaya girilmeyecek ve Robotumuzun mekanik kısmının çekilmiş fotoğrafları üzerinden bazı notlar verilecektir.

Resimlerde görüldüğü gibi anten ledlerinden ve sensörlerden, elektronik kartın bağlanacağı tarafa kablolar çekilmiştir. Daha önceden antenlerin bakır iletkenden olacağını belirtmiştik.Antenler bakır olduğundan Ledlerin (-) polariteye sahip olan bacaklarını anten uçlarına lehimledik.Ledlerin boşta kalan (+) polariteli bacaklarından ayrı ayrı iki kablo ile çıkarak bir konnektörde topladık.Ayrıca anten üzerinden ledlerin (-) bağlantısınıda tek kabloyla aynı konnektöre taşıdık.Burada konnektör kullanmak istedik çünkü swichin demontajında anten ve ledler swiche lehimli olduğundan zorluk çıkarmasını istemedik.

Pillik kablolarına adaptör jackı bağladık.Buna uygun dişi jackıda elektronik kartın beslemesine takacağız.Böylelikle robotumuz istenildiği takdirde adaptörle de beslenebilecektir. Sensör kablolarına elektronik karttaki pinlere uyacak şekilde dişi konnektörler bağlacaktır.

Aşağıda robotumuzun farklı açılardan çekilmiş fotoğraflarını görebilirsiniz.

Fotograf0180

Şekil 76:Robot Resim (2)

Şekil 75:Robot Resim (1)

Not:Elektronik Devre bu aşamada robota montajlanmamıştır.

Şekil 78: Robot Resim(4)

Fotograf0162

Şekil 77: Robot Resim(3)

6.3 Montaj  

Robota kontrol kartının montajı yapıldıktan sonra antenden ve swichlerden gelen kablolar makaronlanıp uçlarına konnektörler takılmıştır.Daha sonra kablolar düzeltilip toplanmış ve robota son hali verilmiştir.Robotun son halinin resimlerini aşağıda görebilirsiniz.

Fotograf0184

Şekil 80: İpe Tırmanan Robot Resim(2)

Şekil 82: İpe Tırmanan Robot Resim(4)

Şekil 81: İpe Tırmanan Robot Resim(3)

6.4 Tırmanma Kulesi Prototipinin Oluşturulması

Tırmanma Kulesinin prototipi, Tırmanma Kulesinin 3D Modellenmesi başlığı altında anlatıldığı gibi oluşturulacaktır.Şekil 83’te tırmanma kulesinin tüm parçaları görülmektedir.Foreks malzemesi Şekil 43 ve Şekil 44’te gösterilen 3D modellerindeki gibi işlenmiştir.Ayrıca iki adet metal çubuk(iki tarafına diş açılmış), beş adet ayak , M6 alyan başlı civata ve M6 somun-pul’da resimde görülmektedir. Ayaklar alüminyum malzemeden yapılmıştır.

Şeki 83:Tırmanma Kulesi Malzemeler

Şekil 83’te gösterilen parçalar 3D modellenmesinde anlatılan montaj sırasına göre montajlanmış ve Tırmanma Kulesinin prototipi oluşturulmuştur.Son olarak tırmanma kulesine yaklaşık 5mm çapında ip takılmıştır. Tırmanma Kulesinin bitmiş hali Şekil 85’te gösterilmektedir.

Şekil 85: Tırmanma Kulesi

Şekil 84:Tırmanma Kulesi Taban Kısmı

7. GÖMÜLÜ YAZILIMIN GELİŞTİRİLMESİ

Gömülü yazılımın geliştirilmesi aşamasında yazılımı IAR EMBEDDED WORKBENCH IDE üzerinde geliştirdik. Kodu doğrulama amaçlı PROTEUS 7.7 kütüphanesinde bulunan MSP430F2022 kodlu aygıtı kullanarak simülasyon devresini tasarladık . Devreyi gerçek zamanlı simüle ederek kodun çalışmasını test ettik. Daha sonra IAR üzerinden LaunchPAD de bulunan aygıtlardan MSP430G2231 aygıtı için tekrar derledik.

Gömülü Yazılım Öncesi Teknik Bilgi:

Robotumuzda kumanda edilmesi gereken üç adet hobby servo motor, iki adet led, algılama ve kumanda amaçlı iki adet limit switch ve bir adet start butonu bulunmaktadır. Limit switch, buton ve led gurubunun kumanda ve denetleme işlemleri kolay olduğundan kumanda işlemi biraz karışık olan hobby servo motor hakkında ön bilgi vereceğiz.

SG5010 Servo Motor Teknik Özellikler:

  • Ağırlık:38g
  • Hız:0.2sec/60degree(4.8v);0.16sec/60degree(6v)
  • Tork:5.5kg/cm(4.8V); 6.5kg/cm(6V);
  • Uzunluk:40.2mm
  • Genişlik:20.2mm
  • Yükseklik:43.2mm

Özelliklerini sıraladığımız hobby servo motorumuz, konum bilgisini gönderdiğimiz sinyalin darbe genişliğinden almaktadır. Sinyal farklı zamanlamalardan oluşmaktadır. Bunlardan ilki periyot süresidir. Periyot süresi servo motorumuzun sinyalini oluşturan süredir. Uzunluğu 2ms dir ve 500Hz frekans değeri vardır. İkinci zamanımız kumanda verisini taşıyan servo pozisyonlama (konumlama) zamanıdır. Maksimum süre uzunluğu 1ms’dir ve 180°’ye denk düşer. Pozisyonlama süremizi değiştirerek servomuzun konumunu değiştirebiliriz. Örnek verecek olursak 0.5ms = 45° (±90° limitli servoda -45°)ye, 0.8ms ise 0.8ms x ( 180/2ms) den 72° ye(±90° limitli servoda -18°) denk düşer. Şekil 86’dan zamanlama grafiğini görebilirsiniz.

Şekil 86: Hobby Servo Kumanda Puls Zaman Grafiği

Genel Olarak Gömülü Yazılımın Yapısı:

Robotumuzun programı iki ana kısımdan oluşmaktadır. Birinci kısımda hareketlerin oluşturan çevresel birimleri kontrol eden hareket ve kontrol programı ikincisi ise gecikme sayacını ve servo darbe genişliklerinin oluşmasını sağlayan kesme altprogramıdır. Kesme alt programından bahsedecek olursak; kesme programı timer interrupt’una bağlı bir kesme rutinidir. Her 10us de bir aktif olur. Gecikme süresinin minimum değeridir. Servo kumandasında 0.9° lik minimum dönüş adımını oluşturur. Program içersinde darbenin high level ve low level seviyelerini oluşturan ve gecikme sayacının sıfırlandığını denetleyen şartlar bulunmaktadır. Kesme programı çevrimi kısa sürmektedir. 10us (160 komut saykılı kadar) zamanın bir kısmını burada kalanı hareket ve kontrol programında harcanır.

Önemli olduğu için öncelikle kesme kısmından bahsettik. Şimdi başlangıçta bahsettiğimiz hareket ve kontrol programına gelirsek; robotun hareketlerini ve algılayıcılarını denetleyen ve kontrol eden kısımdır. MCU hardware setup , register ve çevresel birimlerin başlangıç değer atamaları, başlangıç hareketi, yukarı yönde tırmanış hareketleri, aşağı yönde iniş hareketleri ve bunların hazırlık hareketlerini barındırır.

Not : Hassas bir konumlama yapmak için oluşturduğumuz 10us veya 160 komut saykılı süresini kontrollü bir şekilde kullanarak program içersine birkaç servo kumandası daha ekleyebiliriz. MSP430 CPU çekirdeği hızı sayesinde bu imkanı bize sunmaktadır.

7.1 Yazılım Akış Diyagramının Hazırlanması

Robotumuzun yazılımı için tasarladığımız akış diyagramını aşağıda görebilirsiniz.Kapsamlı bir diyagram olduğu için resmi küçültüp eklemek zorunda kaldık bu yüzden yazıları daha net görmek için ”Resmi Büyültünüz” lütfen.

Şekil 87:Program Akış Diyagramı

Gömülü yazılım adımları:

Şekil 87’deki Program Akış Diyagramında, yazılım adımları detaylıca gösterilmiştir. Şekil 87’nin daha iyi anlaşılması için birde bu adımları maddeler halinde sizlerle paylaşacağız.

  • Öncelikle mcu ayarları ve register başlangıç değerleri atanır.
  • Robota enerji verildiğinde robotun mevcut konumlandırması değiştirilerek başlangıç konumuna alınır.
  • Başlangıç konumunu alan robot star butonuna basılmasını bekler
  • Start verildiğinde 1.8s run ledini yakıp söndürür.
  • Yukarı doğru tırmanma hareket döngüsüne girer.
  • Döngü aralarında yön registeri kontrol edilerek yönün değişip değişmediğine bakılır.
  • Yön değişmiş ise aşağı hareket hazırlık konumlaması yapılır.
  • Hazırlık konumlamasından sonra aşağı hareket döngüsüne girilir.
  • Döngü aralarında yön registeri kontrol edilerek yönün değişip değişmediğine bakılır.
  • Yön değişmiş ise yukarı hareket hazırlık konumlaması yapılır.
  • Yukarı doğru tırmanma hareket döngüsüne girer.

Bu adımlar gerçekleştirilirken kesme programında, servo motor sinyal üretimi, limit switch denetlemeleri ve gecikme sayacı işlemleri gerçekleştirilir.

7. 2 Gömülü Yazılım

/*
 * Project name:
     İpe Tırmanan Robot
 * Copyright:
     Developed by İsmail KÖSE
 * Author
     İsmail KÖSE      Electrical and Electronics Engineer
 * Description:
     Tırtıl robotun gömülü yazılımı.
 * Test configuration:
     MCU:             MSP430G2231
     Dev.Board:       Texas Instruments LaunchPAD
     Oscillator:      Internal_DCLOCK, 16.0000 MHz
     Ext. Modules:    -
     SW:              IAR C/C++ Compiler for MSP430
 * NOTES:
     *Yeni başlayanlara ve sona ulaşanlara armağanım olsun.
*/
/*
 
                          ..;7;;.
              7rSrSSSri.    ..7irSS7.
           SWWWWWWWMS0..           ...
         ZWWWWWWWMMSS0i;;.......... . .
        WWWWWWWWMX07;;;;.;.....    .....
       .70WWWWWMS;....7ii0SSSrr00;.   . .
     .0SiiSMWMr; ..770raXWMMWWMaXXr;..
    7S0iXZ70a7...;7;;;7irSSrXSMXrSa7.....
   .S0rXXr;07;;77i7;;;.....;.;irrS07  ;irS;
   7S77iai7iiii777ii7;;.......;;7;;.  ;WMSi
    .riiZS0r0S00ii7i77;;......;77;...  7XM.
     7Srrrr00iii0ii7i77;;....;SSiiaZ0;. ..
     ;;i;7iiiii000i0ii77;;.;.7rXXMWMSr..
     ;iiii0rr0rir0r00ii7iSXSri7i7;;;7.
    .irZSaaaSXSr0Srrrr77iBWMBXrri;.  . .
   .0SSSBBMMWMMXXSSrrii77;irr7;;SWX.;;.
. .rSSSXBMMWWWWWMMXXZS00i7;i0S0i.7rr7.
WXX0rSSXMMMMWWWWWMWMMXari...iWWr7 .7.
WWWXrSSaXMMMMMMWMWWWWWMMZri;.;;..;.
WMWWBSSSZBMMMMMMWMWWWWWWWWWXSri;;.
MMWWWMSSSBXMMMMMMWMWWWWWWWWWWM0;
WMWMWWMSSSaZXXMXMMWMWW0
MMWWMWWMSSSZaaaaSXaZi
MMWWWMWWWZSZaSSr077
MMMWWWWWWWXXSaSr;0S
WWWWWWWWWWWWMZriZWZ
BSZaaaaXZXaXaS7iZZ    
 
*/
 
#include <io430g2231.h>        // #include <io430x20x1.h> //simülasyon için bu header kullanılacak
#include <intrinsics.h>
 
// PIN TANIMLAMALARI
#define  ON_TUTUCU		P1OUT_bit.P1OUT_1
#define  BEL			P1OUT_bit.P1OUT_2
#define  START			P1IN_bit.P1IN_3
#define  ARKA_TUTUCU		P1OUT_bit.P1OUT_5
#define  STOP_LED		P1OUT_bit.P1OUT_0
#define  RUN_LED		P1OUT_bit.P1OUT_6
#define  ASAGI_SW		P1IN_bit.P1IN_4
#define  YUKARI_SW		P1IN_bit.P1IN_7
 
// SERVOLARIN AÇI MAKROLARI
#define AC		123		// 110.7 derece
#define KAPA		175		// 157.5 derece
#define UZAN		80           	// 72 derece
#define TOPLAN		170     	// 153 derece
#define TOPLAN2		165		// 148.5 derece 
 
// GECIKME MAKROLARI
#define GECIKME05	50000		//500ms
#define GECIKME1	100000		//1sn
#define GECIKME06	60000		//0.6sn
#define GECIKME3	300000		//3sn
#define GECIKME4	400000		//4sn
#define GECIKME_BUTTON	20000		// 200 ms
#define BEKLE		while(gecikme);
 
// DEĞİŞKENLER
unsigned int on_tutucu_acisi,arka_tutucu_acisi,bel_acisi,derece;
long gecikme;
unsigned int yon=1;
 
/* TimerA1 interrupt*/
#pragma vector = TIMERA1_VECTOR
__interrupt void kesme(void)
{
// GECİKME SAYACI İŞLEMLERİ
	if(gecikme)
	gecikme--;
 
// YÖN SORGUSU
	if(!ASAGI_SW)
	yon=1;
	else if(!YUKARI_SW)
	yon=0;
// PWM PULS İN FALL TIME SORGULARI
	if(derece>=on_tutucu_acisi)
	ON_TUTUCU=0;
 
	if(derece>=arka_tutucu_acisi)
	ARKA_TUTUCU=0;
 
	if(derece>=bel_acisi)
	BEL=0;
 
// PWM PERIYOT SONU SORGUSU
	if(derece == 200) // 2ms peryod sınır sorgusu
	{
	ON_TUTUCU=1;
	BEL=1;
	ARKA_TUTUCU=1;
	derece=0;
	}
	derece++;	   
 
	TACTL_bit.TAIFG = 0; // bir sonraki interrupt için flag in temizlenmesi
}
 
void main(void)
{
  //MCU SETUP
  WDTCTL = WDTPW + WDTHOLD;	// Stop WDT
  BCSCTL1= CALBC1_16MHZ; 	//DCOCLK 16MHZ Seçiliyor...
  DCOCTL = CALDCO_16MHZ;
  BCSCTL2|=SELM_1;     		//MCLK=DCOCLK  Seçiliyor...
  BCSCTL2|=DIVM_0;     		//MCLK Bölücü = 1 => 16MHZ
 
  // TimerA1 ayarları
   TACTL_bit.TASSEL = 2; 	// SMCK clock seçildi
   TACTL_bit.TAID = 0;   	// Bölücü 1/1 e ayarlandı
   TACTL_bit.TAIE = 1;   	// interrupt aktif edildi
   TACTL_bit.TAMC = 1;	 	// yukarı sayma modu aktif edildi
   TACTL_bit.TAIFG = 0;  	// interrupt flag temizlendi
   TACCR0 = 160;	 	// timer değeri 10us ye ayarlandı.
   __bis_SR_register(GIE); 	// global interruptlar aktif edildi.
   P1DIR = 0x67;  	   	// P1 giriş çıkış yapılandırması
 
  // ÇIKIŞLARA BAŞLANGIÇ DEĞERLERİNİN ATANMASI
	ON_TUTUCU=0;
	BEL=0;
	ARKA_TUTUCU=0;
	STOP_LED=1;
	RUN_LED=0;
 
 // ROBOTA BAŞLANGIÇ HAREKETİNİN VERİLMESİ
	on_tutucu_acisi=KAPA;
	arka_tutucu_acisi=AC;
	bel_acisi=UZAN;
	gecikme= GECIKME05;
	BEKLE			// Servonun istenilen pozisyona geçmesi için bekle
	while(START);		// Startı bekle
	gecikme= GECIKME_BUTTON;// Kontak parazitleri için bekle
	RUN_LED=1;		// Run ledini yak
	STOP_LED=0;		// Stop ledini söndür
 
// ROBOTUN TUTUCULARI KAPATIP İPİ SIKMASI VE RUN LEDINI YAKIP SÖNDÜREREK 2SN SONRA ÇALIŞACAĞINA DAİR UYARI VERMESİ
	on_tutucu_acisi=AC; 	// servo sımetrık oldugu ıcın AC diğerine göre KAPA oluyor (sadece bu tutucu ıcın)
	arka_tutucu_acisi=KAPA;
	bel_acisi=UZAN;
	gecikme=GECIKME05;
	BEKLE
	RUN_LED=1;
	gecikme=GECIKME06;
	BEKLE
	RUN_LED=0;
	gecikme=GECIKME06;
	BEKLE
	RUN_LED=1;
 
	while(1)
	{
// ROBUN YUKARI HAREKET DÖNGÜSÜ BAŞLANGICI
a1:
 
	// arka ac
	arka_tutucu_acisi=AC;
	gecikme=0;//GECIKME05;		// 0
	BEKLE
 
	if(!yon)			// hareket tamamlandıktan sonra yönü sorgula
	goto asagi;			// eğer ön switch aktif edilmişse aşağı harekete dallan
 
	// toplan
	bel_acisi=TOPLAN;
	gecikme=GECIKME05;
	BEKLE
 
	if(!yon)
	goto asagi;
 
	// arka kapa
	arka_tutucu_acisi=KAPA;
	gecikme=GECIKME05;
	BEKLE
 
	if(!yon)
	goto asagi;
 
	// on ac
	on_tutucu_acisi=KAPA;
	gecikme=0;//GECIKME05;		// 0
	BEKLE
 
	if(!yon)
	goto asagi;
 
	// bel açıl
	bel_acisi=UZAN;
	gecikme=GECIKME05;
	BEKLE
 
	if(!yon)
	goto asagi;
 
	// on tutucu kapa
	on_tutucu_acisi=AC;
	gecikme=GECIKME05;
	BEKLE
	if(!yon)
	goto asagi;
	}
asagi:
 
	// AŞAĞI İÇİN HAZIRLIK HAREKETİ
 
	// ön kapa
	on_tutucu_acisi=AC;
	gecikme=GECIKME05;
	BEKLE
 
	// arka ac
	arka_tutucu_acisi=AC;
	gecikme=GECIKME05;
	BEKLE
 
	// bel açıl
	bel_acisi=UZAN;
	gecikme=GECIKME05;
	BEKLE
 
	// arka tutucu kapa
	arka_tutucu_acisi=KAPA;
	gecikme=GECIKME05;
	BEKLE
 
	while(1)
	{
 
// ROBOTUN AŞAĞI HAREKET BAŞLANGICI
	// on tutucu ac
	on_tutucu_acisi=KAPA;
	gecikme=0;//GECIKME05;
	BEKLE
	if(yon)
	goto yukari;	
 
	// toplan
	bel_acisi=TOPLAN2;
	gecikme=GECIKME05;
	BEKLE
 
	if(yon)
	goto yukari;
 
	// on kapa
	on_tutucu_acisi=AC;
	gecikme=GECIKME05;
	BEKLE
 
	if(yon)
	goto yukari;
 
	// arka ac
	arka_tutucu_acisi=AC;
	gecikme=0;//GECIKME05;
	BEKLE
 
	if(yon)
	goto yukari;
 
	// bel açıl
	bel_acisi=UZAN;
	gecikme=GECIKME05;
	BEKLE
 
	if(yon)
	goto yukari;
 
	// arka kapa
	arka_tutucu_acisi=KAPA;
	gecikme=GECIKME05;
	BEKLE
 
	if(yon)
	goto yukari;
 
	}
 
yukari:
	// YUKARI İÇİN HAZIRLIK HAREKETLERİ
	// arka kapa
	arka_tutucu_acisi=KAPA;
	gecikme=GECIKME05;
	BEKLE
 
	// ön ac
	on_tutucu_acisi=KAPA;
	gecikme=GECIKME05;
	BEKLE
 
	// bel açıl
	bel_acisi=UZAN;
	gecikme=GECIKME05;
	BEKLE
 
	// on tutucu kapa
	on_tutucu_acisi=AC;
	gecikme=GECIKME05;
	BEKLE
	goto a1; // yukarı hareket döngüsüne dallan
}

8. ROBOTUN TESTLERİ VE HATA DÜZELTME/AYIKLAMA

Projemizin bu adımında robotumuzu test edeceğiz.İlk olarak testlerimize oluşturduğumuz elektronik devrelerden ve devre üzerinde deniyeceğimiz gömülü yazılımdan başlayacağız.Devreleri ve gömülü yazılımı daha önceden bilgisayar ortamında denemiş ve raporumuza o şekilde eklemiştik.Ancak bilgisayar ortamında sorunsuz çalışan devremizden aynı verimi, oluşturduğumuz gerçek devrelerden tam olarak alamadık. Gerçek devrelerde Servo motorların açısal konumlarında bazı hatalar meydana geldı(programdaki referans açıya tam olarak konumlanmaması).
Ortaya çıkan bu hata üzerine devrelerde revizyonlar gerçekleştirdik.

Robot-yeni

Şekil 88:Ana Devre Revizyon

connector-yeni

Şekil 89:Konnektör Devresi Revizyon

Şekil 88’deki Ana Devremiz(Launchpad) daha önceden Şekil 60′ ta verdiğimiz devrenin revizyonlanmış halidir. Launchpad üzerindeki TP1 ve TP3 girişlerine dörtlü dişi konnektör( J11) takılarak kartın beslemesinin bu pinler üzerinden yapılması sağlanmıştır.J11 dişi konnektörüne karşılık gelecek şekilde dörtlü erkek pinlerde(j10) Şekil 89’daki Konnektör Devre Revizyonuna eklenmiştir.Konnektör Devresindende anlaşılacağı gibi J10’a direkt olarak 4.8 V bağlanmış ve Launchpad için gerekli olan düşük gerilim yine Launchpad üzerinden sağlanmıştır.

Konnektör devresinde 74LS07 entegresi kullanarak servoların sinyal uçlarındaki düşük gerilimi, servoların besleme gerilim değerine çektik.Böylelikle besleme ve sinyal uçları arasındaki gerilim farklılıkları ortadan kaldırılmış oldu.Son olarak bu revizyonları daha önce eklediğimiz baskı devre çizimi(Şekil 62) üzerindede gerçekleştirdik.Baskı devresinin revizyonlanmış halini aşağıda görebilirsiniz.

Şekil 90:Konnektör Devresi Revizyon

Gerekli değişiklikler gerçek devler üzerindede yapılmış ve devrelerin sorunsuz çalıştığı görülmüştür.Yapılan revizyonlar sonrasında devrelerin son hallerini aşağıda görebilirsiniz.

Şekil 92: Ana Devre (MSP430 LaunchPad)

Şekil 91: Konnektör Devresi

Robot Tırtılın Test Görüntüleri

Çalışma Video 1

Çalışma Video 2

9. SONUÇ VE DEĞERLENDİRME

 

Tırtılın yürüyüşü ile başlayan AR-GE çalışması robotun testleri ile sonuca ulaşmıştır. Ekip disiplinli çalışılarak başlangıçta oluşturulan hedef ve amaçları gerçekleştirmenin sevincini yaşamaktadır. Ekibimiz projeyi başlatmadan önce yapılacak tasarım çalışmalarının AR-GE disiplin ve süreçlerine uygun olmasını ilke edinerek, özellikle tasarıma gönül veren, bu alanda kendini geliştirmek isteyenlere örnek olmasını, ana hedeflerine eklemiştir.

Ön tasarım aşamasında tırmanma hareketlerinin belirlenmesi için yapılan biyomimetik çalışması projeye çeşitlik katmıştır. Herbir resim, çizim, devre şeması, video vb. dökümanlar özenle oluşturulup, tasarlanıp işlenmiştir. 92 Adet resim, 6 adet video ile projeye görsel zenginlik kazandırılmıştır.

SolidWorks, Proteus, IAR Embedded Workbench, 3D Studio Max, 3D PhotoWiev, Photoshop vb. tasarım araçları ile ofis yazılım araçları yoğun olarak kullanılmıştır. Ekip proje yürütücülerinin evvela sahip olduğu zamana sonrasında yeteneklerine göre görevlendirme yaparak, profesyonel bir ekip çalışmasını hedeflemiştir.Ekip bir ticari fikir ile başlayıp üretim aşamasına kadar olan tüm süreçleri kapsayan inovasyon kavramınada vurgu yapmıştır. Bir eser bırakmanın gurunu yaşamaktayız.

Çalışmalarımızı takip eden herkese ve biyomimetik çalışması ile ekibimize katkıda bulunan Sakarya Üniversitesi Biyoloji Bölümü öğrencisi Merve KÖSE’ye teşekkür ediyoruz.

10. DÖKÜMANTASYON

Tırtıl Devre ve Program dosyalarını buradan indirebilirsiniz.