Cylon E Modular Robotic Control Station
Date: Thursday, June 21 @ 07:39:07 EDT
Topic: Tasarımcılarımız


Proje katkısından dolayı Technoshaman'a teşekkür ederiz.

Sistemin ismi 4 yaşımdayken TRT’de izleyip etkisinde kalarak kendimi elektroniğe, bilgisayarlara ve robotik olaylara vermeme sebep olan Savaş Yıldızı Galactica dizisindenki robotlardan geliyor. E harfi de benim ismimin baş harfi oluyor :) Sistem modüler bi yapıya sahip ve her kart ayrı ayrı da kullanılabilir. Temel bir 16F877A konfigürasyonundan oluşan (PIC, Kristal, Kapasitörler, ZIF Soket, Konnektörler) ana kartın dışında bir stepper motor kontrol kartı (2 motor için), bir DC motor kontrol kartı (yine 2 motor için), bir HD44780 tabanlı paralel LCD için kart, sisteme 12V ve regüle 5V DC sağlayan, sensör bağlantılarının yapılabileceği konnektörleri ve ayarlar için 4’lü DIP switch içeren bir başka kart, son olarak da bootloader ve diğer RS-232 haberleşmelerini sağlayan ufak bir haberleşme kartı da bulunuyor. Az sonra bu kartların her birini, PC’nizden sistemle (istenirse Internet üzerinden) haberleşmek için kullanabileceğiniz VB programıyla beraber, detaylı olarak açıklayacağım. Internet’ten aldığım ufak yardımlar dışında devreler ve programlar tarafımdan tasarlanmış ve yapılmıştır. PIC kodu MPLAB üstünden Hitech PIC C 8.05’de, Visual Basic kodu da VB 6.0’da yazılmıştır. Sistem modüler olduğu için robotikten, ev otomasyonuna kadar her amaçla kullanılabilir. Kullanılan programa göre otonom olarak ya da PC’den gelen bilgilere göre çalışabilir. Kartları uzun vidalar (Karaköy Hırdavatçılar Çarşısı) ve ince borular kullanarak bu şekilde monte ettim.





Not: aşağıdaki devre şemalarını detaylı görebilmek için sağ tuşla tıklayıp bilgisayarınıza kaydettikten sonra diskten çift tıklayıp büyüterek bakabilirsiniz.

Şimdi kartları açıklayalım:

Anakart:
Daha önce bahsettiğim gibi sistemin kalbi bu kart. Şemada da görüldüğü gibi kart bir 16F877A PIC, 22pF iki adet kondansatör, bir 20MHz kristal, bir 4.7K direnç, bir 2’li konnektör (5V DC için), 4 adet IDC-10 konnektör (portlar) ve 2 adet 4’lü konnektörden (portlar + RS-232) oluşuyor. Diğer tüm kartlar bu konnektörler vasıtasıyla bu anakarta bağlanıyor. Bu kartı yaptıktan sonra buna uygun başka kartları kendiniz de yapabilirsiniz.





Stepper Motor Kontrol Kartı:
Bu kart 2 adet UCN5804 Stepper Motor Kontrol Entegresi, 8 adet TIP120 darlington transistör, 2 adet 74HC14 Hex Inverting Schmitt Trigger Entegeresi, 8’er adet 1K ve 2.2K dirençler, 2 adet 6’lı konnektör (motorlar için), 1 adet IDC-10 konnektör (ana karta bağlantı için), bir adet de 2’li konnektörden (motorlara 12V DC için) oluşuyor. Stepper motorların yön ve açma kapama kontrolleri burdan yapılıyor. UCN5804 faz başına 1.25A’ya kadar kaldırabildiği için, motorları 5A’ya kadar kaldırabilen TIP120 transistörleri üzerinden sürüyoruz. Entegrenin çıkışları negatif olduğu için bunları transistörlere göndermeden önce 74HC14 ile invert etmemiz gerekiyor. UCN5804 hakkında daha fazla bilgi için datasheet’ine bakabilirsiniz.





DC Motor Kontrol Kartı:
Bu kart da L298 DC Motor Kontrol Entegresi, 8 adet Schottky diot, 74HC14 Hex Inverting Schmitt Trigger Entegeresi (motor başına 2 pin, bunların beraberce 1-0 veya 0-1 olabilmesi için), 1000uF kapasitör, 2 adet 150nF kapasitör, 2 adet 0.5K direnç, 4 adet 2’li konnektör (motor ve güç bağlantıları için) ve bir adet IDC-10 (ana karta bağlantı için) konnektörden oluşuyor. DC motorların hız, yön ve açma kapama kontrolleri burdan yapılıyor. Ana entegrenin IN 1,2,3,4 pinlerinin durumları motor yönünü, EN A,B pinleri de açma kapama işlemlerine bakıyor. Hangi kartın ana kartın hangi IDC-10 konnektörüne bağlanacağını şemalardan anlayabilirsiniz.





LCD Kontrol Kartı:
Bu kartın asıl amacı ana karta sensör kartı üzerinden kolay bir şekilde bağlanabilmektir. IDC-10 kullanılmıyor, onun yerine 2 adet 4’lü konnektörle sensör kartına, ordan da ana karta gidiliyor. 10K’lık trimmer ekran kontrastı için, düğme de LCD’nin backlight’ını açıp kapıyor. Sensör kartının 1,2 ve 6 konnektörleri anakarta bağlantı için kullanılıyor. O kartla ilgili daha detaylı bilgi aşağıda verilecektir.





Sensör Kartı + Güç Kartı:
Bu ikisi tek bir kart üzerinde yan yana duruyorlar. Önce Sensör kartını anlatalım. 5 adet 5’li konnektör, 2 adet IDC-10 konnektör (malum, portlar), 1 adet 4’lü DIP switch (genel amaçlı kullanım), 4 adet 10K direnç (DIP için pull-up) ve bir adet 2’li konnektörden (5V DC) oluşan bu kartı aslen Devantech firmasının SRF04 Ultrasonic Range Finder modülleriyle kullanmak için tasarlamıştım. Uygun konnektör bağlantılarıyla diğer amaçlar için de kolaylıkla kullanabilirsiniz (bkz. LCD kartı). Şemadan sensör konnektörlerinin hangi pinlerinin ne işe yaradığını görebilirsiniz. Bu konnektörlerde data pinleri dışında 5V DC ve toprak pinleri de mevcut. Güç kartımız da bir LM7805 5V regülatör entegresi, 330nf ve 1uF kapasitör, 1 adet 4.7K direnç ve 7 adet de 2’li konnektörden oluşuyor. İhtiyaca göre bu konnektörlerin sayısı arttırılabilir.









RS232 Kartı:
Bu kartın anlatılacak pek bi olayı yok. PIC ile PC arasındaki haberleşme için 12V / 5V dönüştürme işlemlerini yapıyor. Bağlantıları yine şemalardan görmek mümkün. Devre MAX232 veya HIN232 entegresi, 4 adet 1uF kapasitör, 4’lü konnektör, 2’li konnektör, ve DB-9 konnektörlerinden oluşuyor.





Kolaylık olsun diye portların hangi pinlere denk geldiğini bir tabloyla açıklayalım. Aynı PIC portlarına bağlı olan I /O 3,4 ve Ext 1,2’yi veya benzer şekilde diğer portları (LCD vs.) aynı anda kullanmak garip olaylara sebep olabilir.

Anakart Konnektörleri

PIC’de Port Karşılıkları

I / O 1

RA0 -> RA5

I / O 2

RB0 -> RB7

I / O 3

RC0 -> RC7 (RC6, RC7 ayrıca Ext1 için)

I / O 4

RD0 -> RD7 (RD6, RD7 ayrıca Ext2 için)

 

Sensör Konnektörü

PIC’de Port Karşılıkları

Sensör 1

RB0, RB1

Sensör 2

RB2, RB3

Sensör 3

RB4, RB5

Sensör 4

RB6, RB7

Sensör 5

RA0, RA1

Sensör 6

RA2, RA3

 

DIP Switch

PIC’de Port Karşılıkları

1

RA5

2

RE0

3

RE1

4

RE2

 

 

LCD Pinleri

PIC’de Port Karşılıkları

RS

RA2

E

RA3

D4

RB0

D5

RB1

D6

RB2

D7

RB3

 

Stepper 1

PIC’de Port Karşılıkları

Stepper 2

PIC’de Port Karşılıkları

Step Pulse

RD0

Step Pulse

RD3

Yön

RD1

Yön

RD4

Aç / Kapat

RD2

Aç / Kapat

RD5

 

DC 1

PIC’de Port Karşılıkları

DC 2

PIC’de Port Karşılıkları

Yön

RC0

Yön

RC1

Sense (yok)

RC2

Sense (yok)

RC3

Aç / Kapat

RC4

Aç / Kapat

RC5



VB Programı:
Programı evrensel olsun diye İngilizce yazdım kusura bakmayın. Program hem sunucu hem de istemci olarak çalışabiliyor. Sunucu olarak çalışan program istasyonumuza bağlanıyor ve istemci olarak çalışan ayrı bir bilgisayardan Internet ya da LAN üzerinden komut bekliyor. Sunucu olarak çalışan program tek başına da istasyonu kontrol edebiliyor (Local Control). Program aynı zamanda bir chat programı, Firewall gibi bi olayınız varsa port 100’ü (bunu da isterseniz değiştirebilirsiniz) açmayı unutmayın. Sunucunun IP’sini istemcinin “127.0.0.1” (tek bilgisayarda ikisini de çalıştırmak için localhost IP’si bu) yazan kısma girdikten sonra bağlanabilirsiniz. İstemci olarak çalışan programdan A,B,C,D,E,F,G,H,I,R harflerini göndererek sunucuya bağlı olan istasyondaki motorları ve istediğiniz diğer araçları kontrol edebilirsiniz. Kodu buna göre değiştirmek de size kalmış. Program küçültüldüğünde ikon olarak Sytem Tray’e saklanıyor, sağ tıklayarak ufak menüsüne ulaşmanız mümkün. İstasyon da duruma göre programa motorların vs. durumuyla ilgili bilgi gönderiyor.



PIC Programı:
Program bir çok temel konuyu içeriyor. PIC’le PC arasında RS-232 haberleşme, LCD kullanımı ve özel karakterler, stepper motorlar için TMR0 Interrupt fonksiyonu, vs. Programın görevi PC’ile RS-232 üzerinden haberleşip PC’den gelen komutlara göre kartlara bağlı motorları vs. kontrol etmek ve PC’ye bu cihazların durumunu bildirmek. PC’ye gönderilen her sayının karşılığı PC’nizdeki VB programında, aynı şekilde VB programından gelen her harfin karşılığı da PIC üzerindeki programda var. VB kodu açıklamasız, ama PIC C kodu açıklamalı bi şekilde burda. Lütfen bana program detaylarını sormayın, full proje veriyorum size, üşenmeyip PIC C ve VB öğrenin ;)

Devreler:
Devreleri zamanında Altium Protel DXP ile yapmıştım. Malesef Proteus’u daha sonra öğrendim. O yüzden sadece baskılı devre rsim dosyalarını veriyorum. Herhangi bir lazer yazıcı tekniği kullanıyosanız, %100 büyüklükte basabilirsiniz.

Hepinize kolay gelsin..

Printed Circuit Board Drawings PIC C Files Visual Basic Source Code Visual Basic VBX Additions



This article comes from Robotik & Elektronik
http://www.endtas.com/robot

The URL for this story is:
http://www.endtas.com/robot/modules.php?name=News&file=article&sid=181