//-->



Yusuf Berki

.

Ders 3


Ders 3



Eğer Bir Robota Motor Koymazsanız Robotunuz Çalışmaz Yada Üstteki Gibi Motorunuz Bozulursa Bütün Mekaniğiniz Sensörleriniz Proğramlamanız Hiç bir işe yaramaz
keman çalan robota gelirsek bu proğaramlamadır siz robotunuzu nasıl proğramlarsanız robotunuz onu yapar

Motorlar
Motor : Elektrik akımı ile oluşturulan manyetik alan kuvvetini kullanarak, elektrik enerjisini mekanik enerjiye dönüştüren makinelere motor denir. Robotlarda kullanılan motorlar genel olarak 3 tipe ayrılabilir.

1-) DC Motorlar
2-) Servo Motorlar
3-) Step Motorlar

DC Motorlar

Robotikte en çok kullanılan motor tipidir. motora verilen akımın yönünde döner ters polarize edildiğinde diğer yöne döner. Piyasalarda dişli kutulu ve dişli kutusuz halde fırçalı, fırçasız bir çok motor bulunabilir. Hız kontrolleri pwm (darbe modüleli sinyal) ile yapılabilir.Sumo robotlarda, gezer rbotlarda ya da savaş robotlarında kullanılabilrler. Bariyeradlı sumo robotumun sayfasında kullandığım dişli kutulu motor hakkında ek bilgiler bulabilirsiniz.

Servo Motorlar

Robotikte kullanılan motor çeşitlerinden biri de servo motorlardır. Bu motorları kontrol etmek çok kolaydır. herhangi bir kontrol elektroniği gerektirmez. Devresi kendi içinde gelir. size sadece MCU'ya bağlayıp kontrol programı yazmak kalır. Servo motorlar genellikle 60-120-180 derece dönebilme yeteneklerine sahiptirler. Tam tur dönüş için modifiye (hacking) gerektirir. Servo motorlardan 3 kablo çıkar bunlar artı,toprak ve sinyal kablolarıdır.Küçük boy gezer robotlarda yaygın bir şekilde kullanılırlar.En düstirde kullanım alanları çok geniştir. Fİyatları 10$--3500$ arasındadır

Step Motorlar

Step Motorlar tamamiyle farklı Motorlardır. Dijital elektroniği harekete çeviriler.
Step motorlar, ortada mıknatıs veya metalden oluşan rotor ile rotoru çevreleyen ve üzerinde elektromanyetik alan etkisi yaratarak gerilim indüklemesi meydana getiren bobinlerden oluşur. Bobin uçlarına belli bir sıraya göre gerilim uygulanarak motorun adım hareketi sağlanır. DC Motorun aksine mıknatısların yerini bobinler almıştır. Fırçasız Motor olarak da rotoru mıknatıslardan oluşmuştur. Eğer elinizdeki motor 4-5-6-8 telliyse büyük ihtimalle step motordur. Endüstride daha da çok bobine sahip Step(adım) motorları da kullanılmaktadır. Çok Bobin=Çok Tel=Kompleks Kontroller Daha çok endüstri robotlarında kullanılırlar. Motorlar Böyle Çalışırlar




Videomuzdan Jet Motorlarının nasıl çalıştığını öğrenelim işinize yarayacaktır





Proğramlama

Robot Programlama Dilleri


Robotların kullanım alanlarının genişlemesi ve yazılım teknolojisiningelişmesi; belli bir amaç için yapılan robotların, o amaç doğrultusunda programlanması ihtiyacını beraberinde getirdi. Bu nedenle, değişikfirmalar, ürettikleri robotlar için farklı yazılımlar geliştirdiler vekullandılar. Günümüzde robotlar için yapılan yazılımlar artık ayrıbirer ürün değil; robotların birer parçası haline geldiler.

Robot yazılımı üreten şirketler öncelikle simülasyonlar üzerinde çalışırlar.Buna off-line programlama denir. Robot üretilmeden önce, yazılım aşamasında,hareketleri, hangi şartlarda ne tür tepkiler vereceği, öğrenme kabiliyetigibi özellikleri önceden bilgisayar ortamında off-line programlama tekniğiile test edilir.

Robot yazılımlarında programın çalışma süresi genellikle öncelikliöneme sahip değildir. Robot programcıları daha çok, ürettikleri programınrobota minimum sayıda yükleme gerektirmesini amaçlarlar. Bu sebeple, off-lineprogramlama aşamasında üretilen programın tam olarak isteneni yapabilmesihususu ele alınır.

Off-line robot programlama ve simülasyon robot modellerinin simülasyonununmümkün olduğu durumlarda robot programlarının yapımına yardımcıolmaktadır. Robot programları, gerçek robota yüklenip çalıştırılmadanönce simülatörler aracılığıyla test edilirler. Bunun esaslı amaçlarındanbiri de programdaki olası hatalar yüzünden robota ya da çevredekilere zarargelmesini engellemektir. Ayrıca off-line programlama robot teknolojisi kullananbirçok fabrikada önemli ölçüde maddi kazanç sağlamaktadir; çünkü çalışmasırasında meydana gelebilecek hatalar da, büyük robotlar yerlerinden çıkarılmadan,simülasyon yardımıyla görülebilmekte ve düzeltilebilmektedir.

Robotlar genellikle birbirleriyle ilişkili bir şekilde hareket eden birçokkısımdan ve aralardaki bağlantılardan oluşur. Bu bağlantıların sayısıçoğu zaman robot hareket derecesine (degree of freedom) eşittir. Robotprogramlaması ve simülasyonunda karşılaşılan en büyük problemlerden birirobotun hareket eden kısımlarının çevreye ve robotun bağlantılarına görenasıl yönlendirileceğidir. Ve bu değerler genellikle matematiksel olarak gösterilirve hesaplanır.

Forward ve Ters (Inverse) Kinematik, robotun bağlantı açıları verildiğindeparçalarının yerini; veya robotun hareket edebilmesi için gereken enerjiyibulmak için kullanılır. İyi bir robot simülasyon programı, gerçek robotunyapabileceği herşeyi simüle edebilmelidir.

Simdi önemli birkaç robot programlama dilini tanıyalım:

2. Robotscript

Robotscript Evrensel Robot Denetimcisi (Universal Robot Controller) tarafındankontrol edilen bütün robot modellerini sanal olarak programlamak için kullanılır.On-line olarak Windows NT istasyonlarında ya da off-line olarak Windows yüklüherhangi bir PC'de kullanılabilir. Robotscript grafiksel kullanıcı arabirimi(GUI) ile kullanıcıya kolaylık sağlar ve hata olasılığını azaltır. AyrıcaYazılım Geliştirme Paketi yardımıyla her türlü kullanıcı için farklıarayüzler tasarlanabilir.

Robotscript makro benzeri bir robot programlama dilidir ve ActiveX programıylaberaber çalışır. Microsoft Visual Basic programı kullanılarak geliştirildiğiiçin, Microsoft C++ ya da Microsoft Office programlarıyla beraber kullanılabilir.Windows ortamına uyumlu olması, programcıya kendi yazılımlarını geliştirirken,robota bilgi yüklerken veya alırken önemli kolaylıklar sağlar.

Robotscript program paketi 4 parça yazılımdan oluşmaktadır: RobotscriptActiveX Kontrolü, ERD kontrol ekranı, dosya yaratıcısı ve yazılımdenetimcisi. ActiveX parçası Robotscript yazı dosyasını robot hareketlerineçevirir. İkili bilgi (Binary data file) dosyası kullanılmadığı için yazılanprogramları çalıştırmak için derlemeye gerek yoktur. Kontrol ekranıkullanıcının programları çalıştırmasını sağlar. Yazılım GeliştirmePaketi sayesinde son kullanıcı kendi amaçlarına uygun arayüzler geliştirebilir.Dosya yaratıcısı programcının Robotscript programına hareketlerin noktasalpozisyonlarını girmesini sağlar. Burada mevcut olan 'Sihirbazlar', sağladıklarıgrafiksel yardımla kullanıcının kompleks hareketleri kolay bir şekilde çözümlemesinisağlar. Yazılım denetimcisi ise yazılan programı test etmek için kullanılır.

3. ARAC

ARAC (Aritmetik Robot Uygulama Denetimi) yazılımı birçok esnek üretimsisteminin çekirdeğini oluşturur. Sistem, basit off-line programlamaistasyonu olarak kullanılabilir; ve genelde 'ilk seferde doğru' çalışan veekstra ayar gerektirmeyen programlar üretilir.

Programlamanın yanında, işlem parametrelerini değiştirerek işlemlerion-line olarak birleştirmekte ya da kesmekte de kullanılabilir.

Uygun bir dizi işlemci yardımıyla, ARAC sistemi tamamen otomatik çalışır.Kullanıcı girişi gerektirmeksizin yeni robot programları üretip bunları bağlıolan robot sistemleri üzerinde çalıştırabilir. Ayrıca eklenebilenekipmanları sayesinde yardımcı robot elemanlarını da kontrol edebilir.

4. AML

Hareketi tanımlayabilen bir program ya pozisyonu ya da zamanı referans alır.Bundan 30 sene önce yazılan programlardan "G Code" pozisyonu;"Ladder Diagram" zamanı referans alan programlara örnektirler. Ancakgerçek bir çözüme ulaşabilmek için bu iki değeri kaynaştırmak gerekir.AML programlama dili bu sorunu "Event Processing Method" yardımıylaçözdü. Ayrıca "Drive Train" methodu ile denetim senkronizasyonu veçoklu eksen yönetimi kolaylıkla yapılabilmektedir.

AML, PASCAL benzeri yüksek seviye bir programlama dilidir. Temel sentaksıdiğer yüksek seviye programlama dillerine benzer. Program, PASCAL'daki gibi"Begin" ve "End" komutları arasına yazılır.Ancak AMLnesneye yönelik (object oriented) bir programlama dilidir. Nesne, bilgi üyelerive metodlardan oluşan program bloklarıdır. AML, prensip olarak son kullanıcılarayeni bir nesne tanımlama izni vermez. Bunun temel amacı tecübesiz son kullanıcılarında kolaylıkla ve güvenle denetim programları yazabilmeleridir.

5. RoboML

Bazı robot programlama dilleri internet aracılığıyla insan-robot etkileşiminisağlamayı amaçlamaktadır. Ancak burada eşzamanlı iletişim için gerekliolan yüksek kaliteli bağlantı, alıcıdaki (client) programın uyumluluğugibi bazı sorunlar çıkmaktadır. Bunun için XML bazlı bir dil olan RoboMLkullanılmaktadır

Ancak RoboML, insan robot etkileşimi, vasıta (agent) haberleşmesi, bilgitemsili gibi konularda diğer XML bazlı dillerin sorunlarını aşamamıştır.

6. NQC (Not Quite C)

NQC, Lego RCX programlaması için kullanılan basit bir programlama dilidir.NQC dilinin önişlemci ve kontrol yapıları C diline oldukça benzer. NQC,genel kullanım amaçlı olmaktan oldukça uzaktır; nitekim gerçek hayattakikoşullardan kaynaklanan sınırlamalar ve RCX ortamının kendisi hakkındadetaylı bilgi eksikliği bulunmaktadır.

Tipik bir NQC programı görevlerden (tasks) ve subrutinlerden oluşur, İlkgörev, program başladığında otomatik olarak çalışır; diğer görevlerprogram tarafından başlatılır. Subrutinler, görevler arasında paylaşılır.NQC derleyicisi, RCX hakkında çok az bilgiye sahiptir. Ses çıkarma, veriyiokuma gibi birçok RCX fonksiyonu "rcx.nqh" dosyası eklenerek kullanılabilir;ve bu dosya derleyici tarafından otomatik olarak eklenir.

7. Onika

Onika, ikonik olarak programlanmış bir insan-makine ara yüzüdür. Gerçekzamanlı bir işletim sistemi ile beraber, yeniden kullanılabilir kodyaratabilmesini sağlar. Onika, hem mühendisler, hem de son kullanıcılar içinuygun çalışma ortamı sağlar. Mühendisler için, gerçek zamanlı yazılımmodüllerini simgeleyen ikonlar, birleştirilip, gerçek zamanlı işler oluşturulabilir.Bu modüller arasındaki bağlantılar otomatik olarak oluşturulur.

Değişik pencerelerde, kullanılan işletim sisteminin o anki durumu, sistemdeğişkenlerinin değerleri gibi bilgiler kullanıcıya gösterilir. Onika'nınoluşturulan işlerin setaks olarak doğruluğunu ve eksiksiz olduğunu göstermesindensonra, yüksek seviye son kullanıcılar için, yaratılan bu işler ikon halinegetirilebilir.Onika, hiperlinkler vasıtasıyla, başka sitelerdeki yazılımmodüllerini getirebilir ve kullanabilir; ve bunlar daha önce lokal olarak hazırlananmodüllerle birleştirebilir.

8. REXX

REXX, Michael Cowlishaw tarafından dizayn edilmiş bir programlama dilidir.Michael'in kendi kelimeleri ile; " REXX, programların ve algoritmaların açıkve yapısal bir şekilde yazılabilmesini sağlayan yordamsal (procedural) birprogramlama dilidir." REXX diğer programlama dillerinden çok farklı değildir.İşte basit bir örnek:

/* Sayı Sayma Programı */
say "Sayıyor..."
do i = l to 10
say "Sayı" i
end

REXX'i diğer birçok dilden ayıran özellik ise sıradan uygulamaprogramları tarafından makro dili gibi kullanılabilecek şekilde tasarlanmışolmasıdır. Buradaki düşünce, uygulama geliştirenlerin kendi makrodillerini ve yorumlayıcılarını (interpreter) dizayn etmek zorunda kalmamalarıdır.Bir REXX makrosu çözemediği bir ifade ya da fonksiyonla karşılaştığında,kontrolü uygulamanın kendisine verir. Uygulamanın, sadece kendisine özgü özellikleridesteklemesi yeterlidir; bu durum, uygulama geliştiricisini oldukça sıkıcıve zaman alıcı bir iş olan dil yorumlatıcısı yazma zorunluluğundan kurtarır..
  Temel Robotük Bölümünden Zor Motor Yapalım Kısmından Motor Yapabilirsiniz
9. Behavior Language (Davranış Dili)

Davranış Dili, kurala dayalı, gerçek zamanlı, paralel bir robotprogramlama dilidir. Gerçek zamanlı kurallar, davranış dilinin anahtarınıoluşturur, ifadeler, alışılmış Common Lisp sent akşındadır. Davranışlar,değişik planlar tarafından çalıştırılabilir kural gruplarıdır. Veriyapıları davranışlar arasında paylaşılmaz; bütün mesaj geçişleri açıkolarak yapılır. Bütün kuralların paralel ve eş zamansız olarak çalıştığıvarsayılır.

Davranış Dili oluşturulması, AFSM(Geliştirilmiş Sonlu DurumMakinesi)'leri daha kullanışlı gruplara ayırarak, aynı anda bir grubu aktifya da inaktif hale getirme ihtiyacından kaynaklandı. Aslında AFSM'ler açıkçakullanılmaz, gerçek zamanlı kuralların oluşturduğu kural kümeleri,bire-bir AFSM'lerde derlenir. Davranış derleyicisi ortamdan bağımsız olarakçalışıp, AFSM normlarına uygun ara bir dosya oluşturur. Daha ara derleyicideğişik hedefler için kullanılır. Burada ara derleyicinin DavranışDili'ni desteleyebilmesi için çeşitli geliştirmeler yapılmıştır. DavranışDili, genel olarak Lisp dilinin alt kümesi olarak yazılmış ve birbirineparalel olarak çalışan gerçek zamanlı bir kurallar kümesidir. Kullanılanbütün derleyiciler Common Lisp dilinde yazılmıştır


Videomuz Var Arkadaşlar Yazıyı Zaten Okudunuz Videoyuda İzleyin Proğramlamayı Anlarsınız başarılar
*Size Eğer Sadece Düz Yazı Verseydik Muhtemelen Anlamayacaktınız Çünkü Çok Karmaşık Bir Konudur Ben Bile Yazıyla Anlayamam
*Bu Konu Robotikte Zor Konudur Ve Çoğu Sitede Anlamazsanız Ve Yorumları İncelersiniz Anlamadıklarını Söylerler
*Bu Video ile kesinlikle anlayacaksınızdır *Bu Arada Arkadaşlarımız Çok İyi Bir Video Hazırlamışlar Tebrikler




Kısaca Siz Bir Savaş Robotusunuz Diyelim... Sensörlerle Engelleri Tespit Eder Onlara Çarpmazsınız Sensörlerle Düşmanı Bulursunuz Fakat Ateş Edemezsiniz Çünkü Size Çok Uzaktır Motrunuzla Hareket Edersiniz Ve Düşmanınıza yaklaşırsınız düşmanınız önünüzde fakat ona ne yapacağınızı bilemezsiniz çünkü sizin aklınız yok(en azından şimdilik) proğramlamadan yararlanırsınız eğer sizin sahibiniz düşmanı tespit ettikten sonra öldür diyorsa ateş edersiniz git onunla konuş diyorsa konusursunuz ...... tabi konuşma becerinizin olması lazım bunu karmaşık robotta öğreneceğiz ve bu parçaların hepsini paranızla alabilirsiniz yada direk hazır kit alabilirsiniz karmaşık robotta para konuşmaz akıl konuşur siz zor robotta sadece olanı alırsınız ama karmaşık robota geçtiğinizde robot icat edersiniz...

Robot Yapalım

Temel Robotik