Ana Sayfa | Proje Hakkında | Güncellemeler | Mar Elektroniği | Mar Mekaniği| MAR Yazılımı | Galeri


Sayfa Başlığı:
MAR Elektroniği
Son güncelleme Tarihi: 09 Şubat 2005

MAR temel olarak şu şekilde çalışmaktadır. İçerisindeki Tiger Ser0 adlı seri portu üzerinden sürekli sinyal dinleme halindedir. Tiger içindeki yazılım bu seri porta gelen her karekteri peşi sıra dizer ne zamanki, ENTER gelir. O zaman bakar dizilen bu karekterler bir şey ifade ediyormu diye. Buna göre, J2 portu üzerinden gerekli lojik sinyaller ile aygıtları kontrol edebilir. Örneğin, "MLF001" şeklinde gelen bir komut MAR için Motor Kontrolü (M), Sol Palet için (L), İleriye doğru (F), 001 adım şeklinde yorumlanır. Komut işlendikten sonra MAR aynı porttan yani radyo modem üzerinden PC 'ye "OK" karekterlerini gönderir. Böylece PC üzerindeki yazılım. Komutun işlendiğini anlayabilir. Bu konu ile ilgili detaylı bilgi yazılım bölümünde verilmiştir.

MAR Elektroniği bir kaç ayrı devrenin birleştirilmesinden meydana gelmiştir. Bu devreler şunlardır;

BASIC –Tiger Mikro İşlemci Devresi

İş istasyonundan gönderilen komutları radyo modem aracılığı ile algılayıp yorumlayabilmek için, bir mikroişlemciye ihtiyacımız var. MAR projesi için bu mikroişlemci ilk olarak PIC kullanmak düşünülmüştür. Fakat PIC programlama assembly aracılığı ile yapıldığından proje süresini arttırmaya sebep olacaktır. Bu nedenle BASIC tabanlı işlemcileri kullanmak tercih edilmiştir. BASIC Tiger bu tip yongalardan biridir. Türkiye’de temsilciliği Lima Endüstriyel Bilgisayar Şirketi tarafından yapılmaktadır. Lima firması MAR Projesi için bir tane Tiger Kit hediye etmiştir. Destekleri için kendilerine teşekkür ediyorum. Bu mikroişlemciden Elektronik Hobi Kitabında Kısım 2, Bölüm 9’da bahsetmiştim.

Yukarıda saydığımız bütün bu elektronik devrelerin yerleştirileceği bir ana kart olmalıdır. Anakart olarak, BASIC-Tiger seti ile birlikte gelen board kullanılmaktadır. Bu set mikro işlemcinin çalışabileceği ortamı yaratan bir kart ile birlikte gelmektedir. Bu kart üzerinde, ek devrelerin yerleştirilebileceği boş bir board alanı bulunmaktadır. Boş alan üzerine gerekli devreler lehimlenerek, tüm devrelerin üzerinde çalıştığı bir anakart haline getirilmiştir.

Tiny board üzerinde iki tane seri port bulunmaktadır. Bunlardan bir tanesine radyo modem bağlı durumdadır. Diğerine ise hem kamera hem de program yükleme portu bağlıdır. Yani yazdığım Tiger uygulamalarını işlemci üzerine yükleyebilmek için, bilgisayara seri bağlantı yapmam gerekmektedir. Bunun için kamera ile bilgisayara bağlı seri portu switch edebilen bir anahtar eklenmiştir. Programı zaten bilgisayara bağlı radyo modem üzerinden yüklemekte mümkündür. Fakat, benim elimdeki radyo modem 19200 desteklemekte. Tiger ise 38400 programlanıyor. Bunu aşmanın yolu tabiki mümkün ama. Şimdilik uzaktan programlamaya ihtiyacım olacağını düşünmüyorum. Belki daha sonra ekleyebilirim.

MAR üzerindeki bütün cihazlar Tiger üzerindeki J2 girişine bağlı durumdadır. Bu giriş hakkında detaylı bilgiyi aşağıdaki PDF dosyalarında bulabilirsiniz. Sadece Kamera ve Radyo modem seri portlara takılıdır.

Basic-Tiger, oldukça kolay ve kullanışlı bir derleyiciye sahip. Yazılım bölümünde MAR için geliştirdiğim Basic-Tiger programı hakkında detaylı bilgi bulabilirsiniz.

Basic Tiger Tiny Prototyping Board V1.1 Devre Şeması (PDF) 47K
Basic Tiger Starter-Kit Kullanım Klavuzu (PDF) 681K

Ürün hakkında detaylı bilgi ve döküman için http://www.wilke-technology.com/html/downloads.html

UKS Radyo Modem Devresi

Eğer robot, iş istasyonuna seri bir kablo ile bağlı olabilseydi, iletişim ile ilgili hiç bir problemimiz kalmayacaktı. Bu nedenle uygulama ilk olarak sanki robot kablo ile bağlıymış gibi gerçekleştirilmiştir. Daha sonra, hem MAR’ ın hemde iş istasyonunun seri portlarına birer radyo modem takılarak bu iletişim kablosuz hale getirilmiştir. Radyo modem olarak, UKS firmasının ürettiği WAVELINK-24 serisi radyo modemler kullanılmıştır. Bu modemler ile ilgili detaylı bilgiyi http://www.kabloyok.com adresinden elde edebilirsiniz.




Wawelink-24 kullanımı oldukça kolay olan bir modemdir. Herhangi bir komut, yada ayar gerektirmemektedir. Uygulamanız sanki kabloluymuş gibi, her iki ucada aynı modemden takmanız durumunda çalışacaktır. Seri uygulamalar için oldukça kolay bir çözümdür. MAR projesinde Modemlerden bir tanesi Tiger üzerindeki Ser0 portuna takılmıştır. Diğer modem ise, iş istasyonu olarak kullanılacak olan PC 'ye takılmalıdır. MAR ile modem 19200,8 Bit,N (19200 hızında, 8 bitlik paketler halinde, paritesiz) görüşmektedir. Her iki taraftaki portu sürecek yazılımlar aynı şekilde ayarlanmıştır. MAR üzerindeki modem kutusundan çıkarılıp, sığabileceği bir yere monte edilmiştir. Bağlantı ledleri ise uzatılarak MAR kasası üzerinde bir yere bağlanmıştır. Modemin Tiger ile kullanımı ile ilgili örnek olarak Elektronik Hobi Kitabında Kısım 3, Bölüm 28, Sayfa 219' a bakabilirsiniz.

Modemler malesef çok ucuz değiller. Eğer oturup bir RF arabirimi yapmak istiyorsanız başka tabi ama, amaç robotik bir uygulama ise malesef yanında maliyet getirecektir. Bu modemlerin tanesi 350$ civarında idi sanırım. Bu durumda iki tanesi 700$ lık bir maliyet oluşturuyor. UKS firması bu konuda bana oldukça ilgi gösterdi. Hatta firmanın sahibi Murat Nergiz, Ankaradan kalkıp gelerek bizzat modemi Tiger üzerinde denedi. Ayrıca ücret olarak sadece bir modemin parasını aldı. Diğerini hediye etti. Kendisine buradan tekrar teşekkür ediyorum.

Modemin Komut setini ve detaylı bilgisini içeren dökümanı aşağıdaki linkten indirebilirsiniz.

Wavelink-24 (PDF) 1013K

L293B Motor Kontrol Devresi

Buradaki devre Elektronik Hobi 'nda Kısım 2, Bölüm 6, Sayfa 54 'te gerçekleştirdiğimizin aynısıdır. L293B entegresi IN1 ve IN2 girişine uygulanan lojik sinyaller ile, DC motora yön kontrolü yapabilmektedir. Gereken bu lojik sinyaller BASIC-Tiger ‘ın 8. portundan alınmaktadır. BASIC-Tiger içerisindeki program, iş istasyonundan gelen komutun parametresini değerlendirerek gerekli lojik sinyali port üzerine yerleştirmektedir.

L293B yongası BASIC-Tiger ‘ın 8 numaralı portunun 0,1,2,3 numaralı pinlerine bağlıdır. Bağlantı şekli ise yukarıdaki şekilin sol tarafındaki gibidir. Bir L293B ile 2 adet DC motor kontrol edilebilmektedir. MAR üzerinde 2 adet DC motor bulunduğu için 1 adet L293 B devresi uygulama için yeterlidir.



L293B ile iki ayrı motor kontrol edebilirsiniz. Çalışma prensipleri çok basittir. Motoru besleyeceğimiz gerilim entegrenin 8 numaralı pinine sağlanır. Üzerindeki OUTPUT çıkışları, INPUT girişlerine herhangi bir sinyal verilmedikçe 0 Volt durumundadır. Eğer INPUT1 girişine lojik “1” uygularsanız, 8 numaralı pinden gelen besleme OUTPUT1 çıkışına akacaktır. Aynı şekilde INPUT2 girişi, beslemeyi OUTPUT2 ye aktaracaktır. Motor, OUTPUT1 ve OUTPUT2 pinlerine takılır. Bu durumda gerilim hangi çıkışa yönlendirilirse motor o yönde dönecektir.

LM293B, motor beslemesini MAR üzerindeki aküden almaktadır. Bu durumda motorlar 12 volt ile çalışmaktadır. Ayrıca LM293’ü çalışır durumda tutabilmek için “1” numaralı ENABLE pinini sürekli +5 Volt ile beslemelisiniz. “4” ve “5” numaralı pinleri Paralel portun topraklarından birine bağlayabilirsiniz. Bunların dışında şekilde görüldüğü gibi, OUTPUT çıkışlarına, portu motordan geri dönebilecek ters EMK ya karşı korumak amacı ile dört tane DIYOT kullanabilirsiniz. Bunun için DIYOT olarak 1N4007 kullanabilirsiniz. Motor kontrol devresi, Tiger üzerindeki J2 portu üzerindeki 8 numaralı portun 0-3 arası bitlerine bağlanmıştır. Tiger üzerindeki yazılım, seri port üzerinden gönderilen komut, eğer motor kontrolü komudu ise, porta gereken lojik sinyali belirtilen süre kadar göndermektedir. Detaylı bilgi için yazılım bölümüne bakabilirsiniz.

L293B Data Sheet (PDF) 563K

Cisim algılama devresi

MAR kendini önüne çıkan engellere karşı korumak zorundadır. En basitinden önündeki bir kayayı görmemesi, MAR ‘ın devrilmesine yada hasar görmesine sebep olabilir. Bu da hiç şüphesiz projenin durması herşeyin sona ermesi anlamına gelmektedir. MAR üzerinde cisim algılama şu şekilde çalışmaktadır. MAR ilk açıldığında sensor kapalı durumdadır. Yani motorlar hareket ettiği sırada sensörlere bakılmamaktadır. Eğer IR1 şeklindeki komut ile kızıl ötesi portu aktif hale getirilirse, motor çalıştığı sırada sensörler sürekli kontrol edilecektir. Bu durumda motor koto herhangibir cisim algılandığında "OK" yerine farklı bir parametre gönderecektir. Örneğin solda cisim var ise "L1" sağda cisim var ise "R1" parametreleri MAR dan geri dönecektir. Bu konu ile ilgili MPG video görüntüsünü aşağıdan indirebilirsiniz. Video içinde de sistemin nasıl çalıştığını anlamanız mümkün olacaktır.

Motor ile IR sensörlerinin birlikte çalışması IR sensörleri nasıl çalışıyor

MAR önündeki cisimleri görmek için kızıl ötesi ışık kullanmaktadır. Lynx Motion tarafından üretilen bu sensör, tam güneşte bile çalışabilmektedir. Sensörün iki tarafındai mor ve kızıl ötesi birer led vardır. Bu ledden gönderilen ışınlar, eğer bir cisime çarparsa yansıyacak ve aynı devre üzerindeki özel bir foto transistör ile algınarak cisimin yerini belirleyecektir.


Sensör, yansıyan ışığın değerine göre cisimin nerede olduğunu yine lojik sinyaller aracılığı ile, mikroişlemciye BASIC-Tiger ‘ın J2 üzerindeki 7.portu ile bildirmektedir. Bu iletişim için portun sadece 3 pini kullanılmaktadır. Örneğin MAR’ın sağında bir cisim var ise bu 3 kablodan birincisi yüksek yani lojik “1” olmaktadır. Mikroişlemcinin 7. portu giriş için ayarlı olduğundan bu veriyi algılamakta ve gerekli işlemi yapmaktadır. Konu ile igli detay Yazilim bölümünde verilmiştir.

Bu sensör http://www.robotstore.com adresinden satın alınmıştır. Aynı site içerisinde robotlar için bir çok malzeme bulmak mümkündür.

IRPD Data Sheet (PDF) 163K


Akü şarj ve Güneş Paneli Devresi

MAR ilk tasarlandığında enerji kaynağı olarak, şarj edilebilir NiCD Piller düşünülmüştür. Daha sonra şarj devresi 12 2.5 A lik bir kuru akü ile değiştirilmiştir. Bunun sebebi, NiCD pillerin motorlar ile birlikte yeterli akımı karşılayamaması. Hatta bunun için motorların ayrı bir NiCD pil ile beslenmesi düşünülmüştür. Fakat şarj ünitesinde karmaşıklık yaratmaması açısından, tek bir enerji kaynağının daha uygun bir çözüm olacağına karar verilmiştir.

MAR Akü ve Güneş Paneli

MAR ın şar devresi henüz bitmemiştir. Şu anda MAR, güneş panelleri ile şarj olmamaktadır. Bunun için bir şarj devresine ihtiyaç vardır. Bu öyle bir devre olmalıdırki, MAR üzerine akü şarj durumunu bildirebilmeli, güneş panelinden sürekli şarj olmalı, şarjın devreye zarar verecek derecede azalması durumunda enerjiyi kesebilmeli. Bunun için Phocos firmasının CML-05 adlı solar şarj regülatörünü kullanmayı düşünmekteyim. Ürün Türkiye de bulunmamakta. Bunun için distrübütör olan Alternatif Enerji (http://www.alternatifenerji.com) firması ile görüşmekteyim. Kendileri konu ile oldukça ilgilendiler. Ürünü getirtmek için çalışmalara başlayacağım.

Ürünü MAR üzerine şu şekilde bağlamayı düşünüyorum. Zaten akü ve panel girişleri belli. Beni esas zorlayacak olan, akü şarj durumunu bildiren ledlerden gelen veriyi MAR üzerindeki bir porttan giriş yapmak. Böylece MAR komut yorumlayıcısı üzerinde tanımlayacağım bir komutla, şarj durumunu seri port aracılığı ile PC üzerine gönderebilirim diye düşünüyorum.

Phocos CML Serisi (PDF) 401K
Siemens SM10 Güneş Paneli (PDF) 921K

Kamera Yönü İçin SERVO Motor Kontrolü

Servo motor, MAR ‘ın görüntü göndermek için kullandığı “CmuCam” kamrasını döndürmek amacıyla kullanılmaktadır. Projedeki servo motor kontrolü Elektronik Hobi kitabındaki Kısım 2, Bölüm 24 deki ile aynıdır. Servo motorlar dahili dişli sistemine sahiptirler ve yüksek momentlere ulaşırlar. Çıkış şaftı DC ve step motorlarda olduğu gibi serbestçe dönmez belli açılarda döner. Servo motorlar bunu elektronik şaft yeri algılayıcısı ve bir kontrol devresiyle yaparlar. Servo motorların 3 çıkışı vardır: güç, toprak ve kontrol. Çoğunlukla 5 voltta çalışırlar. Kontrol sinyalleri bir dizi vurgu dan oluşur ve şaftın istenilen konumunu belirlerler. Her vurgu bir konum komutunu simgeler. Şaftların çoğu 180 derece dönebilirler.

Döndürme işlemi için 1 ile 2 milisaniye arasında dalga genişliği değişen bir sinyali her 20 milisaniyede bir servoya gönderilir. 1 milisaniye tam sol, 2 milisaniyede tam sağ pozisyonu ifade eder. Servo içindeki elektronik devre ilk önce gelen darbelerin darbe genişliğini ölçer daha sonra potansiyometre konumuna bakar ve kendi darbe osilatörünün darbe genişliği gelen darbelerle eşitlenene kadar motoru hareket ettirir.

Servo motorun üzerinde CmuCam bulunmaktadır. CMUCam, kendi üzerinde servo kontrol portu ile birlikte gelmektedir. Bu port sayesinde algıladığı renklere göre motora hareket verebilmektedir. Bu olay daha çok sabit renkli bir cisimi takip edebilmek için kullanılır. MAR üzerinde bu durum sadece kamerayı döndürmek amacı ile kullanılmıştır.

CMUCam üzerine, "S1 0-128" şeklinde seri porttan komut göndermek mümkündür. MAR ilk başta kullanıcıdan komut bekler. MAR komut yorumlayıcısına örneğin SERL020 gönderilirse, yorumlayıcı bunu alır ve kameranın bağlı olduğu porta, CMUCam in anlayabileceği dilde, "S1 10" gibi bir komut yerleştirir. Daha sonra kameraya "TW" gibi bir komut gönderilir ve takip modu aktive edilir. Bu durumda kamera Tiger dan ENTER gelene kadar dönmeye başlar. Buradaki komutların detayları ve nasıl yorumlandığı Yazılım bölümünde incelenmiştir.


CMUCam Kamera Devresi


CmuCam, ucuz ve fazla voltaj gerektirmeyen bir elektronik gözdur. Hareket halinde olan robotlarin uzerine takmak icin uygun bir devredir. CmuCam verisini seri port üzerinden verdiği için, dış mikroişlemciler ile baglantisini kurmak cok rahattır. Saniyede 17 resim çıkartabilen CmuCam 'in ozellikleri şöyle sıralanabilir;

  • Renkli bir cismi takip edebilmek Objektif önündeki istenen bölgenin RGB (renk) seviyesini ölçebilmek Otomatik olarak ilk gördüğü cisme kitlenip, onu izleyebilmek Motor kontrolunu direk olarak, kendi devresi üzerinden yapabilmek Görüntüyü 'tamamen ' sayisal resim olarak, seri port uzerinden gönderebilm
  • İzlenen cismin görüntüsünü tamamen sayısal resim olarak gönderebilmek.

CmuCam ile bağlantı kurup, komut vermek, veri transferi yapmak, daima seri port üzerinden olmaktadır. Seri port protokolu, byte 'ları sıraya dizdiği için bu sırayı iyi gözetlemek ve RGB değerlerini çözüp resmi PC ortamına aktarabilmek gerekmektedir.

Mesela, seri port üzerinden 'DF ' harflerini gönderirsek, CmuCam bu komutu 'objektif önünde ne varsa resmini çek, geri yolla ' olarak algılayacaktır, ve sonucları gene seri port üzerinden geriye gönderir.CmuCam PC nin seri portu yerine, MAR üzerinde bulunan seri porta bağlıdır. MAR, kameraya bir komut gönderdiği zaman aynı port üzerinden kameranın cevabını algılamakta ve bunu diğer seri port üzerinden radyo modeme ve oradan da iş istasyonuna aktarmaktadır. CMUCam,Elektronik Hobi kitabında Kısım 1, Bölüm 16’da detaylı olarak incelenmiştir

MAR üzerinde CMUCam bulunmasının tek amacı, fotoğraf çekmektir. Burada zor olan, çekilen fotoğrafın nasıl bilgisayar üzerindeki bir yazılımın içindeki resim kutusuna aktarılacağıdır. Sistem şu şekilde çalışmaktadır. Kamera Tiger 'ın Ser1 portuna takılıdır. Radyo modem üzerinden, MAR ' a terminal programı ile "CAM" olarak tanımladığım komut gönderilir. Tiger içindeki yorumlayıcı bunu tanır ve Ser1 portuna "DF" komutu gönderir. Bu komudu kamera algılar ve yine Ser1 portundan geriye, çekilen fotoğrafın bilgilerini piksel piksel renk kodları ile aktarmaya başlar. Tiger içindeki program, gelen bu veriyi aldığı gibi Ser0 portuna yazar. Ser0 portunada radyo modem takılıdır böylece bu veriler doğrudan PC üzerindeki yazılıma ulaşacaktır.

Eğer PC tarafında bir terminal programı varsa, bir sürü anlamsız karekter geri dönecektir. Bu nedenle gelen verileri bir resim kutusuna dolduran program, Visual Basic ile geliştirilmiştir. Program hakkında detaylı bilgi Yazılım bölümünde verilecektir.

CmuCAM Kullanım Klavuzu (PDF) 1008K