BÖLÜM 5. ELEKTRONİK DEVRE
Devre Şeması
• Bu devrede ULN 2003 entegrelerinden motorlara data çıkışları alınıyor. 74HCT244 entegresi ise control portlarından gelen veriye göre motorlardan birini seçiyor. Data ve control portları ise bilgisayarın paralel portunun bağlantılarıdır.
BÖLÜM 6. PROJE NOTLARI
Kontrol Türü Seçimi
• Yapılacak projede kullanılacak kontrol tabanı olarak PC seçilmiştir. Bu sebeple mikrodenetleyici kullanılmamıştır. PC üzerindeki paralel port, seri port, PCI slotları ve usb port iskelelerinden biri seçilmeliydi.
• Seri port uzun mesafelerde kullanılan bir kontrol türüdür. Dijital veri birkaç saat darbesi (clock pulse) sonunda iletilir. Yapılacak olan robot kolunda verinin paralel olarak step motorlara ulaştırılması gerekmektedir. Bu ulaşımda seri olarak gelmiş veri, içeride (devre kartı) paralel olarak motorun data girişlerine yansıtılmalıdır. Bu olay ek bir devre (seri-paralel dönüşüm) ihtiyacı oluşturduğundan seri port tercih edilmemiştir.
• USB portu seri haberleşme mantığıyla çalıştığı için tercih edilmemiştir.
• PCI slotlarının kullanımı için bilgisayarın PCI yuvalarına takılacak bir kart dizayn etmek gerektiğinden tercih edilmemiştir.
• Paralel portta ise, verilerin paralel olması (veriler tek saat darbesinde çıkışa yansıtılır.), bir defada birden fazla bit transfer edebilmesi, programlanmasının kolaylığı, kullanım yaygınlığı ve mesafenin kısa olması tercih sebebi olmuştur.
Programlama Dili
Programlama dili olarak Microsoft Visual Basic 6.0(VB) kullanılmıştır. Basic tabanlı olmasından dolayı çoğu basic komutlarını içerir. İleri programlama dili olduğu için üst düzey uygulamalar kolaylıkla gerçekleştirilir. Günümüz programlarının sahip olduğu ara yüzler rahatlıkla tasarlanabilir. Doküman olarak internette çok yer alan ve Türkçe portalları (vbasicmaster.com, vbturk.net …) olan birkaç programlama dilinden biridir. VB, C diline yakın olmadığı için yazılan programlar sadece Windows işletim sistemlerinde çalışır, Linux ve diğer işletim sistemlerinde çalışmaz.
Elektronik Devre
Step motor sürücü devresinin paketlenmiş olduğu ULN2003 entegresi seçilmiştir. Motorları seçme (Enable uçlu dörtlü buffer grubu) özelliğinden ve bilgisayarın paralel portunu bufferlarla (tampon) koruduğundan 74HCT244 entegresi tercih edilmiştir. RJ45 çekirdekleri motor data girişlerine çakılmış ve bu çekirdekler kart üzerindeki data prizlerine takılıp çıkarılabilir hale getirilmiştir.
Eklem Motorları
Robot kolun hareketinin adım şeklinde kontrol edilmesi, ucuz olması ve piyasada yaygın bulunması sebebiyle Sanyo firmasının ürettiği 1.8 (derece/adım)’lık step motorlar kullanılmıştır.
Projede Karşılaşılan Bazı Sorunlar Ve Çözümleri
Yazılım
a) ROBOKOL programında Otomatik Kontrol Modunu oluştururken matematiksel bir sorunla karşılaştık. Otamatik modda seçilen motorun numarası (index ), alt programa gönderiliyor. Bu veri (index) (X) paralel portun control portuna çıkış olarak gönderiliyor. Dört adet motor, dört adet control pini ile seçiliyor. Bu index programa geldiğinde çıkışa [F(X)] aşağıdaki veri gönderilmesi gerekiyordu.
Yani X değerlerine karşı F(X) değerleri üretmemiz gerekiyordu. Bunun için fonksiyon yazmalıydık.Bu fonksiyonu biraz çaba harcayarak bulduk.
F(X)=5+(X-1)-7/2*(X-1)*(X-2)+25/6*(X-1)*(X-2)*(X-3) -65/24*(X-1) *(X-2)*(X-3)*(X-4)
b) Paralel Port’a veri çıkışını sağlan komut INP ve OUT komutları. Bu komutları inpout32.dll kütüphanesinin içinden API çağrıları ile çağırıyoruz. Normalde çalışması gerekirken çıkış alamadık. Uzun uğraşlar sonunda sorunun nedenini bulduk.Bu inpout32.dll dosyası Win98’de gizli dosya olmaması gerekiyor.Bu yapmak için Bilgisayarım->Görünüm-> Klasör Seçenekleri-> Görünüm-> Gizli dosyalar sekmesinde Tüm Dosyaları Göster yapmanız gerekiyor.
Donanım
a) Step motorları eklemlerle birleştirdik.Robot kolu çalıştırdığımızda kolu yukarı aşağı hareketini sağlayan motor eklemin uçunda yer alan motorları kaldırmadı. Motorun gerilimi 5-6 Volt artırdık biraz iyileşme oldu ama yine kaldırmadı. Sonunda dengeleyici ağırlık koyduk. Bu kolun hareketini kolaylaştırdı ve hiç hareket etmeyen motor, yaklaşık 50 derecelik bir dönüş gerçekleştirdi.
b) Motorların data kabloları eğer yeterince uzun ve esnek olmazsa kolun hareketini kısıtlıyor. Bu kabloların sert kablolardan olmaması gerekiyor. Bizim kullandığımız CAT5 kablosuydu (İnternet kablosu). Yeterince esnek değildi ve motorların hareketlerini biraz sınırladı.
c) Kullandığımız motorlar step motor olduğu için fazla güçlü değiller. Bu motorların torku arttırılması gerekiyor. Yani dengeleyici ağırlıklarla beraber her motor bir dişli kümesiyle çalışmalı. Böylece tork 5-6 kat artabilir. Biz mekanik kısıtlamalar nedeniyle bunu gerçekleştiremedik.
Deney Sonuçları:
a) Robot Kolu ROBOKOL programıyla kontrol ederken (Örneğin Bar Modu kullanırken), motorlara dönmesi için komut verdiğinizde 100 msn lik bir gecikme ile robot kolu dönmeye başlıyor.Yazılım, komut alındıktan sonra 100 msn sistemi bekletiyor ve ondan sonra paralel porta çıkış veriyor. Böyle yapmamızın nedeni sistemin ürettiği darbeler arasına süre koyarak kararlılığı artırmak. Bu sistem geri beslemesiz olduğu için bu bir zorunluluktur.
b) Motorların açıları:
1.Motor: Bu motor zeminde yer alıyor .Görevi ise kolun kendi etrafında dönmesini sağlamak.Bu motordan bezim açı olarak beklentimiz +150 ve –150 derece olmak üzere toplam 300 derecelik dönme açı idi. Robot kolun tasarımında diğer 3 motorun data kablolarını bu motorun bulunduğu eklem üzerinden atlattırdık. Bu kablolar nedeniyle görülen dönme açısı +90 ve –90 olmak üzere toplam 180 derece olarak gerçekleşti.
2.Motor: Bu motor ikinci eklemi oluşturuyor.Görevi ise kolun diğer kısmını yukarı aşağı hareket ettirmek. Beklentimiz toplam 140 derecelik bir dönme açısıydı.Motorun tork yetersizliğinden dolayı koyduğumuz dengeleyici ağırlık sayesinde sınırlı bir dönme açısı elde edebildik.Bu açı +25 ve –25 olmak üzere toplam 50 derecelik bir dönüş.
3. Motor: Bu motor kendinden sonraki parmak olarak tasarlanan sistemi döndürüyor.Bu motor beklentilerimizin hepsini karşıladı. +170 ve –170 derece olmak üzere toplam 340 derecelik dönme sağladı.
4.Motor :Bu motor robot kolu parmağı olarak tasarlanan çubuğu döndürüyor.Motorun üzerine sabitlenmiş diğer çubukla beraber parmağı oluşturuyorlar. Dönme açısı ise 65 derece.
c) Paralel porttan çekilen akımın değerinin 12-17 mA arası olduğu saptanmıştır.
KAYNAKLAR
– www.elektronikhobi.com
– www.vbasicmaster.com
– www.vbturk.net
– www.lvr.com
-Visual Basic 6.0
İhsan KARAGÜLLE
Zeydin PALA
-Visual Basic Pro 5.0
İhsan KARAGÜLLE
-HerYönüyle Paralel Port
Jan AXELSON
Şifre-Pass: 320volt.com
Yayım tarihi: 2008/01/12 Etiketler: c++ paralel port, paralel port, robot arm, robot kol, robot projesi, step motor, Visual Basic, winsock object
hocam bu kadar güzel bir kaynağı paylaştığınız için gerçekten yürekten teşekkür ediyorum.
Yaptığın ve paylaştığın projeye göz attım. Hocam bir çok kaynaktan yararlanarak toparlamışsın emeğin için tşk ederiz. Benim gibi bu işe merak sarmış ve yeni başlayan arkadaşlar için büyük bir imkan. Çok Tşk ediyorum tekrar. Izmir/ Bornova
oldukça basit yerine kullanımı oldukça basit desek:)
Emeğe saygı hocam ilerleyen günlerde size ulaşma imkanı bulabilirim inşallah ben bitirme tezi olarak aldım bu konuyu ve suan için pek fazla bilgiye sahip değilim iyi günler
hocam emeginize saglık teşekkur ederim
gerçekten güzel ama benim merak ettigim kendi bilgisayarımızda kac tane acık port var ve bunları nasıl buluruz trojenlerdemi portları acıyor bunları merak ediyorum birde kendimizde portları acacak bir prg yazabilirmiyiz bu yazdıgımız portlar bir link yardımı ile acabilirmi veya virüslere takılırmı
elinize beyninize sağlık…
hocam gayet anlaşılır ve basit anlatmışsın.
Elinize sağlık.
gerçekten çok güzel bir çalışma emeğe saygı
hocam emeğinize sağlık Allah razı olsun uzun zamandır yazılarınızı takip ediyorum sayenizde 1 7D sinema (8kişilik) 1 cnc router (250×180) imal ettim şimdi sayenizde üretim bantı kurmayı hedefliyorum