Visual Basic ve USB Data Kartı ile Sensör Uygulamaları
ÖZET
Bu çalışmada Visual Basic programı ve National Instruments (NI) firmasına ait bir USB 6008 data kartı ile sensör uygulaması yapılarak, bir hemzemin geçidin otomatik kontrolü uygulamalı olarak gerçekleştirilmiştir.
Çalışmanın ilk bölümünde usb ve usb data kartı hakkında ayrıntılı bilgiler verilmiş ve bu bilgiler doğrultusunda projenin temel mantığından bahsedilmiştir.
İkinci bölümde, projede uygulamalı olarak gösterilmek üzere kullanılan düzenek ve sistemin çalışma mantığından söz edilerek, tüm proje hakkında ayrıntılı olarak bilgi verilmiştir. Kullanılan tüm cihazların projedeki yeri ve sisteme olan katkılarından bahsedilmiştir.
Çalışmanın son bölümünde ise, elde edilen sonuçlar belirtilmiş, böyle bir projenin gerçekte nasıl uygulanabileceği hakkında bilgi verilerek sistemin faydalarından söz edilmiştir. Ve bu sayede kişisel olarak kendime olan katkılarından bahsedilmiştir.1.USB
1.1. USB NEDİR?
Universal Serial Bus (USB), bilgisayarımıza çeşitli aygıtları takmamıza olanak tanıyan bir çevre birimi veri yolu standardıdır. Çoğu Macintosh bilgisayar, çevre birimi aygıtları bağlamak için SCSI (Small Computer Standard Interface), ADB (Apple Desktop Bus) ve seri bağlayıcılar kullanır. USB, bu standartların yerini alacaktır.
USB standartını başlangıçta, Compaq, Digital Equipment, IBM, Intel, Microsoft, NEC ve Northern Telecom geliştirmiştir. Başlangıçtaki yedi şirketin 1995 yılında oluşturduğu USB Uygulayıcıları Forumu'nun (USBIF; www.usb.org) artık, ortak misyonu USB çevrebirimlerinin gelişimini sağlamak ve tüketici tarafından benimsenmesini artırmak olan 500'den fazla üyesi bulunmaktadır.
1997'nin başından beri çoğu bilgisayarların arkasında birçok kullanıcının ne işe yaradığını bile bilmediği bir ya da iki dikdörtgen şeklinde bağlantılar mevcuttur. Buna şaşmamak gerek, zira uzun süre özellikle Türkiye bilgisayar pazarında bu bağlantı noktalarına bağlayabileceğiniz hiçbir şey bulunmamaktaydı.
Bu bağlantı noktalarının ardında 1995 yılından beri bilgisayar dünyasının devleri tarafından geliştirilen yeni bir ara birim gizli: Universal Serial Bus, kısaca USB, Türkçe ifadesiyle "evrensel seri yol" dur. Bu arabirim yazıcı, fare, klavye, modem, scanner, joystick, dijital kamera gibi çoğu çevrebirim aygıtı için ortak bir arabirim sunmakta, paralel ve seri arabirimlerin neden olduğu kablo karışıklıklarının da önüne geçmektedir. USB arabiriminin saniyede 1 Mbyte'lık hızı çoğu çevrebirim aygıtı için yeterlidir.
USB'nin temel amacı, standart bağlayıcıları kullanarak ve eklenti kartlarından kurtularak, geliştiriciler ve tüketiciler için maliyetleri düşürmektir. Bunun nedeni, veriler gibi gücün de USB kabloları aracılığıyla dağıtılmasının yanı sıra, bazı düşük güçlü aygıtların ayrıca kullanılan adaptörlerden kurtulmasıdır. Şu anda 1.1 revizyonu bulunan USB özelikleri, saniyede 12 megabitlik (klavye gibi düşük hızlı aygıtlar için 1.5 Mbps) bir toplam veri hızına sahiptir. USB uyumlu göbekleri (hub'ları) kullanarak da, bir PC'ye 127 aygıtın takılmasını sağlanabiliyor. USB, masaüstünde, kablo bağlantısını 5 metreden az tutarak, orta dereceli bir veri aktarımını amaçlamaktadır.

Şekil 1.1 Usb'ye bağlanan cihazlar
1.2. USB'NİN GENEL AVANTAJLARI
Bilgisayarlarda standart olarak mevcut olan paralel ve seri portların kısıtlamaları USB ile ortadan kalkmaktadır. Teorik olarak USB portuna 127 aygıt aynı anda bağlanıp kullanılabilmektedir. Bu veri yoluna bağlanan aygıtların IRQ, DMA, I/O, Jumper veya Switch gibi ayarlarıyla da uğraşmamıza gerek kalmamaktadır. Tüm aygıtlar için ortaklaşa kullanılabilir transfer hızı USB'de teorik olarak saniyede maksimum 12 Mbyte'dır. Ancak işin içine yönetim zahmetleri de girince pratikte bunun yüzde 80'i, yani yaklaşık 10 Mbit/s'i kullanılabilmektedir. İki aygıt arasındaki maksimum kablo uzunluğu 5 metre'dir. Maksimum ağlanma düzeyi 7 olduğu için, teorik olarak bilgisayar ve USB ağına bağlı son aygıt arasındaki mesafe 30 metreye kadar çıkabilmektedir. Bağlantı için gerekli kablolar oldukça ucuzdur, zira seri yol için sadece dört damarlı kablolar kullanılmaktadır.
USB'nin Getirdiği Avantajları özetlersek,
Tek bir PC'ye 127 adede kadar cihaz bağlayabilme
Hiçbir sürücüye, IRQ ayarlarına, DMA kanallarına ve I/O adreslerine, genişleme yuvalarına gerek duymadan kolay kurulum
Çevresel cihazlar için PC'yi kapatıp açmadan Tak ve Çalıştır fonksiyonelliği
Bütün cihazlar için tek tip konnektör
PC'yi kapatmadan cihaz ekleme ve kaldırma özelliği
1.3. USB NASIL ÇALIŞIR?
Çoğu USB aygıtın "sabit" ya da bağlı USB kablosu vardır. Bilgisayara bir USB aygıt bağlamak için, aygıtın USB kablosu bilgisayardaki USB kapısına takılır. Ne kadar sıklıkta olursa olsun istediğimiz zaman bilgisayarı kapatmak, yeniden başlatmak ya da uyutmak zorunda kalmadan USB aygıtı bağlayabilir ya da bağlantısını kesebiliriz.

Şekil 1.2 Usb bağlantısı
1.4. USB'NİN GETİRDİKLERİ
Özellikle Windows 95'ten önceki günlerde, PC'ye bir aygıt eklemek istenildiği zaman, karşımıza çıkacak birkaç engel hemen hemen belliydi. Öncelikle bilgisayarımızda doğru kapı (port) türünün mevcut olup olmadığını saptamamız gerekiyordu. Eğer doğru kapı türü varsa ve bir eklenti kartı kurmamız gerekmese de, hafıza adreslerini, IRQ'ları (kesme istekleri) ve DMA (Doğrudan Bellek Erişimi) kanallarını kontrol etmek ve sık sık bunlarla oynamak zorunda kalınırdı. Sonuçta da insanın kafasını karıştıran kavramlarla ve çoğu zaman düş kırıklığıyla baş başa kalınabilirdi. Windows sürümleri ve USB Windows 95'le birlikte gelen Tak Çalıştır (Plug&Play) ve PCI (Çevresel Bileşen Ara Birimi) veri yolu desteği, aygıtların kuruluşunu epey kolaylaştırmış, rahatlatmış gibidir; ama zorluklar, uyumsuzluklar ve aygıt çakışmaları ortadan kaybolmamıştır. Windows 98 yüklü bir sisteme ISA kart tabanlı çevrebirimleri eklemek, hala kullanıcının sistem kaynak paylaşımını kontrol etmesini ve ya kaynak atamalarını ayarlamasını ya da yeni bir tane eklemek için mevcut bir çevrebirimini sistemden kaldırmasını gerektirmektedir.
Windows 95 OSR 2.1, USB çevrebirimleri için sınırlı destek getiriyor; ama Windows 98, bu anlamda çok daha başarılıdır. Windows 98'in avantajı, büyük ölçüde, hata düzeltmeye ve test sonuçlarına göre yapılan gelişmelere bağlıdır. Windows 95 OSR 2.1'de olduğundan daha uzun bir süre ve daha geniş bir aygıt yelpazesiyle test edilmiştir. Ayrıca Windows 98'de, Windows 95 OSR 2.1'de bulunmayan üç sürücü sınıfı vardır; dijital video ve dijital ses için WDM Streaming sınıfı sürücüleri, insan arabirim aygıtları için WDM HID sınıfı sürücüleri, ve bir düğmeyle ya da bir USB tarayıcısındaki denetimle tarama ve uygulama başlatmayı seçilir kılmak için kullanılan STI USB ara birim sürücüleri. Birden çok aygıt USB aygıtları, tek başlarına bağlandıklarında, beklendiği üzere (birkaç önemli sürpriz dışında) sorunsuz çalışırken, birden çok USB cihazını tek bir PC'ye bağlamak için eskiden yapılan girişimler, USB çevrebirimlerinin bir araya geldiğinde iyi "çalışmayacağı" düşüncesini ortaya çıkarmıştır. Yine de, yapılan testlerde, Windows 98 sistemleri çeşitli USB aygıtlarını eş zamanlı olarak çalıştırabilmektedir (ama yeni aygıtların ilk kuruluşu sırasında, daha önce kurulmuş cihazlar bazen geçici olarak kaybolabiliyordur). Ayrıca 1998'deki sonbahar Comdex fuarı sırasında, sponsorluğunu USB Gerçekleştirenler Forumu'nun yaptığı canlı bir gösteride, toplam 111 aygıt aynı anda bir PC'ye bağlanmış ve çalıştırılmıştır. Birçok çevrebirimi bağlama ihtiyacı duyan ya da hatta bağlamaya çalışan gerçek kullanıcıların bulunması olasılığı uzak olsa da, önemli olan bu işlemin mümkün olmasıdır. Ortalama bir kullanıcının bağlayacağı 6-8 USB aygıtı gayet iyi bir sonuç vermektedir.
1.5. USB KARTI
The National Instruments (NI) firmasına ait olan USB-6008 tipi usb kartı; 8 analog girdi, 2 analog çıktı ve 12 dijital girdi ile çıktı kanallarına sahip olan bir cihazdır. Ayrıca 12 bit diferansiyel ve 11 bit tek-sonlu analog girdi özelliklerine sahiptir. Tek ve çok kanallı olarak maksimum 10 kS/s analog girdi alabilmektedir. Tek-sonlu olarak +/- 10V, diferansiyel olarak +/- 20V, +/- 10V, +/- 5V, +/- 4V, +/- 2.5V, +/- 2V, +/- 1.25V, +/- 1V analog girdi şeklinde beslenebilmektedir. Çalışma voltajı +/- 10V dur. Giriş empedansı 144 Kohm'dur. +/- 35 V değerlerinde ise kendini korumaya alabilen bir cihazdır. Aşağıda cihazın bir resmi görülmektedir.

Şekil 1.3 NI 6008-USB kartı
Ayrıca cihazın parçaları aşağıda gösterildiği gibidir.

Şekil 1.4 NI 6008-USB kartı parçaları
Burada,
1. USB cihazı
2. Cihazın giriş-çıkış jagları
3. Sinyal numaralandırmaları
4. USB kablosu' dur.
Cihazın yapısını ise blok diyagramı ile gösterebiliriz. Bu diyagrama göre analog ve dijital kanallar açıkça görülebilmektedir.

Şekil 1.5 NI 6008-USB kartı blok diyagramı
Cihazın 1-16 arası kanallarının tamamı analog, 17-32 arası kanalları ise dijital kısmı ifade etmektedir. Bu şekilde cihaz, bir tarafı analog diğer bir tarafı ise dijital olarak ayrılmıştır. Tablo 1.1 ve tablo 1.2 ‘de bu analog ve dijital kanalların hem tek-sonlu (GND / Volt -şekil 1.6), hem de diferansiyel (GND / -Volt / + Volt -şekil 1.7) modlarındaki işlevleri gösterilmiştir. Bu tablolarda belirtilen "AI <0…7>" analog girdilerini, "AO 0 ve AO 1" 0. ve 1. kanalların analog çıktılarını, "P0.<0…7> ve P1.<0…3>" dijital girdi-çıktı kanallarını, +2.5V ve +5V harici güç kaynaklarını ve GND ise topraklamalarını ifade etmektedir.

Şekil 1.6 Tek –sonlu sinyalli besleme

Şekil 1.7 Diferansiyel sinyalli besleme

Tablo 1.1 Analog terminaller

Tablo 1.2 Dijital terminaller
Uygulamalı olarak gösterilecek olan bu proje kapsamında, sensörlerden alınan gerilim değerleri, usb data kartına analog girdi olarak tek-sonlu modda verilmiştir. Buna göre bir sensörden gelen -10V ve Gnd çıkışları cihazın tablo 1.1'de gösterildiği üzere sırasıyla AI0 (terminal 2) ve Gnd (terminal 1) kanallarına bağlanmıştır. Sensörler kendi aralarında paraleldirler ve aynı terminallere bağlıdırlar. Uygulamada bariyer olarak hareket edecek olan mekanizmanın 0 o ve 90 o lik konumlarda otomatik olarak durmasını sağlayacak olan anahtarlar da paraleldirler ve de -5V'luk gerilim değerleri için AI4'e (terminal 3) bağlıdırlar. Anahtarlar için Gnd ise doğrudan Gnd'ye (terminal 4) bağlıdır.
Visual Basic tarafından cihaza gönderilen sinyaller doğrultusunda, cihazdan gelecek olan gerilim çıktıları ise dijital olarak alınırlar. Bu çıktı değerleri ise tablo 1.2' de gösterildiği üzere PO.0 (terminal 17), PO.1 (terminal 18) ve PO.2'den (terminal 19) alınmaktadır. Bu her bir terminalden alınan +5V'luk gerilim değerleri DC motor sürücü devresini tetiklemek için kullanılacaktır. Bu sayede bariyer mekanizmasını hareket ettirecek olan DC motor, her iki yöne de bu kontrollü gerilim çıktıları ile döndürülebilecektir. Ayrıca, cihazın dijital kısmındaki Gnd de (terminal 32) DC motor sürücü devresinin Gnd kanalı ile birlikte aynı güç kaynağından birlikte topraklanacaktır.
BÖLÜM İKİ PROJE UYGULAMASI
2. VISUAL BASIC VE USB DATA KARTI İLE HEMZEMİN GEÇİDİN OTOMATİK KONTROLÜ
2.1. HAZIRLIKLAR VE GEREKLİ ARAÇ/GEREÇLER
Visual Basic programı ile programlaması yapılarak uygulamalı olarak gösterilecek olan bu proje kapsamında gerek projenin oluşturulması gerekse uygulamada gösterilmesi açısından çeşitli araç ve gereçlere ihtiyaç duyulmaktadır. Aşağıda yazılı olanlardan projeye uygun bir platform oluşturulması ve de DC motor ile çalışan bir bariyer mekanizmasının yapımı kişisel olarak ayrı bir çaba harcanarak oluşturulacaktır. Aşağıda yapılacak işler ve de kullanılacak tüm araç ve gereçler maddeler halinde sıralanmıştır.
Voltmetre
Çok miktarda krokodil kablo
Montaj kabloları (kolaylık açısından renkli)
İki adet anahtar
NI firmasına ait USB-6008 usb data cihazı
Bir adet DC motor sürücü devresi
İki adet ışık sensörü
Projeye uygun bir platformun oluşturulması
DC motor ile çalışan bir bariyer mekanizmasının yapımı
(+ -) 5 V ve (+ - ) 12 V çıkışları olan iki adet güç kaynağı
Gerilim düşümünü sağlaması açısından bir potansiyometre
Visual Basic programı yüklü bir PC
2.2. PROJENİN YAPIMI
Yukarıda verilmiş olan araç ve gereçlerin temin edilmesinden ve aşağıda ayrıntılı olarak anlatılacak olan platform ile bariyer mekanizmasının yapımı ile birlikte gerçekleştirilen tüm aşamalar alt başlıklar halinde verilmiştir.
2.2.1. PROJE KAPSAMINDA OLUŞTURULAN KONSTRÜKSİYONUN VE KULLANILAN CİHAZLARIN TANITIMI VE İŞLEVİ
Projenin ana işlevini sağlayacak olan usb data kartı ( NI USB-6008 ) hakkında gerekli olan tüm bilgiler giriş kısmında ayrıntılı olarak verildiği için, bu kısımda sadece DC motor sürücü devresi, ışık sensörleri, yapılan bariyer mekanizması ve de uygulama amaçlı oluşturulan platform hakkında bilgi verilecektir.
2.2.1.1. DC MOTOR SÜRÜCÜ DEVRESİ
Projede kullanılacak olan DC motor sürücü devresi, usb data cihazından alınacak olan dijital çıktılar ile, bariyere yön verecek olan DC motorun her iki tarafa da dönebilmesini sağlayacak olan gerilim çıktılarını verecek olan bir devredir. Bu devre dışarıdan ayrı bir güç kaynağı ile +5 ve +12V değerleriyle de beslenmektedir. Topraklanması ise usb data cihazının dijital kısmındaki ile bağlı olduğu güç kaynağındaki topraklamalar ile ortaktır.Usb data cihazından alacağı +5V'luk dijital çıktılar ise sürücü devresine üç porttan gelmektedir. Bunlardan biri "Enable" olup her bir harekette aktif olarak beslenmesi gereken porttur. Diğer iki port ise her bir harekette sadece birinin beslenmesinin gerekeceği "İnput1" ve "İnput2" portlarıdır. Bu mantığa göre motoru bir yöne doğru çalıştırmak istediğimizde aşağıdaki şekilde de gösterildiği üzere "Enable ve İnput1", diğer yöne çalıştırmak istediğimizde de "Enable ve İnput2" portlarının +5'er volt ile beslenmesi gerekir. Böylelikle bariyere hareket kazandıracak olan DC motor, bariyeri açıp kapatabilir.

Şekil 2.1 DC motor sürücü devresi
DC motor sürücü devresinin vereceği çıkış ise 10V'dur. Bu gerilim ile beslenen 12V'luk bir DC motorun hızı , küçük bir redüktör ve bariyerde bir kayış-kasnak tertibatı ile düşürülmesine rağmen yine de bariyer için biraz hızlıdır. Bu sebeple sürücü devresinin çıkışlarına bir potansiyometre bağlanarak motorun daha düşük bir hızda dönmesi sağlanarak daha uygun hızda bir açma-kapama sağlanabilir.
2.2.1.2. IŞIK SENSÖRLERİ
Projede iki adet ışık sensörü (devre halinde) kullanılmıştır. Bu sensörler, aşağıdaki şekilde de gösterildiği gibi bir verici ve bir alıcı sensör ledlerinden oluşmaktadır. Bu iki led karşılıklı olarak yerleştirilirler ve aralarından bir cisim geçtiği anda aralarındaki ışının kesilmesi ile devredeki bir rölenin kapanmasını sağlarlar. Kapanan bu röle, +5V ve -5V değerleri ile beslenen devrenin -10V'luk bir gerilim çıktısı vermesini sağlarlar. Bu -10V'luk çıktı bizim usb data cihazına analog girdi olarak gönderilecek olan gerilim değeridir. Bu sayede cihazı kontrol eden Visual Basic programı, bir cismin o sensörlerden geçiş yaptığını algılayacak ve ona göre işlem yapacaktır.
Bu iki ışık sensörü devresi, platformda gösterileceği gibi ray olarak kabul edilecek olan tahtanın üzerlerine yerleştirilecektir. Bunlardan biri hemzemin geçidinin girişine, diğeri de çıkışına uygun kabul edilecek mesafelere göre yerleştirilecektir. Böylelikle giriş ve çıkış tersinir olarak kontrol edilebilecektir.

Şekil 2.2 Işık sensörü devresi
2.2.1.3. BARİYER MEKANİZMASI
Projede kullanılan bariyer gövdesi ahşaptan, çalışan uzuvları ise alüminyumdan yapılmıştır. Gövdeye redüktörlü bir DC motor ve üzerine bariyerin mesnetlendiği bir kasnak mekanizması yataklanmıştır. Ayrıca, bariyerin tam açık ve tam kapalı konumlarına gelir gelmez bilgisayar kontrollü olarak otomatik bir şekilde durmasını sağlayacak olan iki adet anahtar da gövdeye monte edilmiştir.

Şekil 2.3 Bariyer mekanizması
Gövdeye monte edilmiş olan anahtarlar birbiri ile paralel bağlıdırlar. Çünkü bariyerin tam açık veya tam kapalı durumlarından herhangi birinin gerçekleşmesi halinde akım geçişini sağlamalıdırlar. Bir ucu -5V'luk bir gerilim kaynağına bağlı olan kablo, bu anahtarlarda paralelliği sağladıktan sonra usb data kartının analog tarafından daha önce de giriş kısmında da bahsedildiği gibi girdiyi yaparlar.
2.2.1.4. PLATFORM
Tamamı ahşaptan oluşturulan platform, bir hemzemin geçidin temsili gösterimi için basitçe hazırlanmıştır. Üzerinde tren olarak gösterilecek olan hareketli bir cisim için hazırlanmış temsili bir ray şekli olan ve 125 x 5 cm ebatlarında yine ahşap bir parça kullanılmıştır. Aşağıda tüm platformun genel bir görünüşü yer almaktadır.

Şekil 2.4 Platformun genel görünüşü
2.2.2. SİSTEMİN BAĞLANTILARI VE ÇALIŞMA PRENSİBİ
2.2.2.1. SENSÖR İLE USB DATA KARTI BAĞLANTISI VE ÇALIŞMA PRENSİBİ
Daha önceden de kısaca bahsedildiği gibi sensörler, temsili ray üzerinde hareket edecek olan trenin konumunu, göndereceği gerilim çıktısı ile usb data cihazına aktararak kendi üzerine düşen görevi yerine getirmiş olur.
Sensörler, şekillerle de gösterileceği üzere +5 ve -5V'luk değerlerle harici bir güç kaynağından beslenirler. Karşılıklı olarak yerleştirilen sensör ledleri aralarından bir cismin geçmesi ile kendi devrelerindeki rölenin kapanmasını tetikleyerek, devreden -10V'luk bir gerilim değerinin usb data kartına gönderilmesini sağlarlar. Bu gerilim girdisini analog kanalından alan cihaz, bunu Visual Basic programına usb yoluyla yönlendirir. Burada usb data kartına -10V'luk gerilim değeri 2.terminali olan AI0 kanalına gelir. Sensör devresinin topraklaması ise yine usb data kartının 1.terminali olan GND kanalına gelir. Her iki sensör devresi de birbirine paralel olup aynı güç kaynağından beslenip çıktılarını da aynı analog kanalına iletirler. Sensör devrelerinden her ikisi de ray tertibatı üzerine, biri hemzemin geçidin giriş, diğeri de çıkış tarafına yerleştirilmiştir.

Şekil 2.5 Sensör ile usb data kartı bağlantısı
2.2.2.2. ANAHTARLAR İLE USB DATA KARTI BAĞLANTISI VE ÇALIŞMA PRENSİBİ
Bariyer mekanizması kısmında da anlatıldığı üzere gövdeye sabitlenmiş olan iki adet anahtar (switch), bariyerin tam açık ve tam kapalı konumlarına ulaşması halinde tetiklenerek üzerinden akım geçmesini ve bu akımın usb data kartına ulaşmasını sağlar. Bu şekilde bariyerin tam açık veya tam kapalı konuma geldiğini anlayan program, sistemi otomatik olarak durdurur.
Anahtarlar birbirleri ile paralel bağlı olup alt alta konumlandırılmışlardır. Böylelikle bariyerin, tam açık ve tam kapalı konumlarında kendilerine temas etmesiyle devreye girmiş olurlar. Anahtarların bir ucu -5V'luk bir gerilim kaynağına diğer bir ucu ise usb data kartının analogdaki 3.terminali olan AI4 kanalına bağlıdır. Usb data kartının analogdaki 4.terminali olan GND ise doğrudan aynı güç kaynağının topraklamasına bağlıdır. Bu prensiple, bariyerin 00 ve 900'lik konumlarında tetiklendikleri anda usb data kartı, bağlı terminalinde gerilim girdisi alır ve Visual Basic programına durumu iletir. Durumu değerlendiren VB programı usb data kartının tüm dijital çıkışlarını sıfırlayarak DC motor sürücü devresinin girişlerini keser. Girişleri sıfırlanan sürücü devresi çıkış gerilimi veremez ve gerilim alamayan DC motor durur. Bu şekilde bariyer olduğu pozisyonda (00 ve 900) sabit bir şekilde kalır. Aşağıda bu bağlantılar şekil üzerinde gösterilmiştir.

Şekil 2.6 Anahtarlar ile usb data kartı bağlantısı
2.2.2.3. DC MOTOR SÜRÜCÜ DEVRESİ İLE USB DATA KARTI BAĞLANTISI VE ÇALIŞMA PRENSİBİ
DC motor sürücü devresi usb data kartından aldığı komutlara göre kendisine bağlı olan bir DC motoru her iki yöne de çalıştırabilir. Bu sayede daha önceden de bahsedildiği gibi bariyer açılıp kapanmak suretiyle hareketlendirilir.
Bu proje kapsamında kullanılan usb data kartının üç portundan dijital olarak (yani her biri de +5V'luk) aldığımız gerilim değerleri DC motor sürücü devresinin Enable, İnput1 ve İnput2 kanallarına gönderilir. Daha önceden de DC motor sürücü devresi açıklamasında yer aldığı gibi her bir seferde ya "Enable ve İnput1" ya da "Enable ve İnput2" beslenerek DC motor yönlendirilir. Bunun için usb data kartının dijital portlarından 17, 18 ve 19. terminalleri (PO.0, PO.1, PO.2) DC motor sürücü devresinin sırası ile Enable, İnput1 ve İnput2 kanallarına bağlanır. Daha önceden de hatırlatıldığı gibi usb data kartının dijital kısmının 32.terminali olan GND ile DC motor sürücü devresinin topraklaması aynı güç kaynağında ortak olmalıdır. Sürücü devresi ayrıca +5V(kart beslemesi) ve +12V(motor beslemesi) ile de beslenecektir. Bu şekilde sensörlerden trenin geçmesi ile önceki kısımlarda anlatılan yollar takip edilerek VB programına kadar gelen girdiler, VB programında yönlendirilerek usb data kartından dijital olarak ya 17 ve 18. terminallerden ya da 17 ve 19. terminallerden +5V'luk çıktılar halinde sürücü devresini besler ve bu komutlarla bariyer ya açılır ya da kapanır. Uygulamada bariyer hızını daha makul bir değerde tutmak için 10V civarında olan sürücü devresi çıkışları bir potansiyometre ile daha düşük bir gerilim değerine ayarlanabilir. Bu şekilde sistem daha stabil olur.

Şekil 2.7 DC motor sürücü devresi ile usb data kartı bağlantısı
2.2.3. PROGRAMIN ÇALIŞMA MANTIĞI VE SİSTEMDE OTOMATİK KONTROLÜN UYGULANMASI
Uygulamada sistemin çalışma mantığına dayanarak programladığım Visual Basic tabanlı programı ve buna göre sistemin davranışını anlatacağım.
Yazmış olduğum program usb data kartından alınan sinyalleri yani gerilim değerlerini timer sayacı ile sürekli olarak kontrol etmekte ve bu değerlere göre hareket etmektedir. Usb data kartına analog olarak girdi veren daha önceden de anlatıldığı gibi iki aygıt vardır. Bunlardan biri sensörler ve diğeri de anahtarlardır. Bu sebeple program üzerinde hem sensörleri hem de anahtarları kontrol eden iki timer sayacı ile sürekli bir denetim söz konusudur. Bu mantığa göre tren sensörlerden geçer geçmez sensör devresi, daha önceden de bahsedildiği gibi -10V'luk bir gerilim değerini usb data kartına, usb data kartı da bunu doğrudan programa yönlendirir. Bu değerleri sürekli kontrol eden program, -10V'luk bu değeri görünce bu girdiyi impuls girdi şekliyle algılayarak yine usb data kartına uygun sinyalleri gönderir ve kartın uygun portlarından +5'er voltluk çıktılarının alınmasını sağlar. Bu şekilde sürücü devresi motoru ve motor da bariyeri tahrik eder. Bariyerin tam açık veya tam kapalı konumlara ulaşması ile de anahtarlara temas sağlanır ve bu sefer anahtarların bağlı olduğu kanallara gerilim değeri ulaşır. İkinci bir timer ile de anahtarları sürekli olarak kontrol eden program, -5V'luk bu değeri görünce de usb data kartına tüm dijital çıktılarını sıfırlamasını sağlayacak olan sinyalleri gönderir. Bu sayede sürücü devresi devre dışı kalır ve motor durur. Bariyer olduğu konumda kalır. Programda yer alan ayrı bir algılama sayısı sayacı ile de sistemin tersinir olarak çalışması kontrol edilir. Yani bu şekilde trenin diğer taraftan gelmesi durumunda bariyerin kapanması için gönderilen sinyaller bu sefer bariyerin açılması için gönderilmiş olur. Aşağıda programın arayüzü gösterilmektedir.

Şekil 2.8 Programın arayüzü
Buna göre, sistem başlangıçta açık durumdadır. Dijital çıkış kanalları kırmızı renkte yani sıfırlanmıştır. Bu durumda bariyer sabit bir şekilde açık konumda durmaktadır. Trenin konumu ve programın davranışı şekillerde gösterilmektedir.

Şekil 2.9 Trenin ve sistemin başlangıç konumu
Bu durumda, sensörlerden gelen değer "0"dır. Bariyer açık konumda olduğu için anahtarlardan gelen değer "-5" dir. Henüz bir çalışma olmadığı için algılama sayısı da "0" dır. Tüm dijital çıkışlar kırmızı renkli yani "0" dır. Durum da "açık" olarak gösterilmektedir.

Şekil 2.10 Başlangıç konumunda program davranışı

Şekil 2.11 Trenin girişi ve sistemin konumu
Bu durumda, sensörlerden gelen değer "-10"dur. Bariyer kapanmakta olduğu için anahtarlarla temas kesilmiştir. Bu sebeple anahtarlardan gelen değer "0"dır. Henüz çalışma süreci bitmediği için algılama sayısı da "0" dır. Dijital çıkışlardan D0-17 ve D1-18 yeşil renkli yani "+5V" dur. Durum da "kapanıyor" olarak gösterilmektedir. Tren sensörden geçip gittikten sonra da bu işlev anahtar temasına kadar devam eder.

Şekil 2.12 Giriş konumunda program davranışı

Şekil 2.13 Trenin geçişi ve sistemin konumu
Bu durumda, sensörlerden gelen değer "0"dır. Çünkü tren geçişini tamamlamıştır. Sistem tam kapalı konuma gelinceye kadar çalışmaya devam etmiştir. Bariyer tam kapandığı için anahtarlardan gelen değer "-5"dir. Çalışma süreci bittiği için algılama sayısı da "1" dir. Dijital çıkışlar kırmızı renkli yani "0" dır. Durum da "kapalı" olarak gösterilmektedir. Tren diğer sensörden geçinceye kadar bu durum devam eder.

Şekil 2.14 Geçiş konumunda program davranışı

Şekil 2.15 Trenin çıkışı ve sistemin konumu
Bu durumda, sensörlerden gelen değer "-10"dur. Bariyer açılmakta olduğu için anahtarlarla temas kesilmiştir. Bu sebeple anahtarlardan gelen değer "0"dır. Henüz çalışma süreci bitmediği için algılama sayısı da "1" dir. Dijital çıkışlardan D0-17 ve D2-19 yeşil renkli yani "+5V" dur. Durum da "açılıyor" olarak gösterilmektedir. Tren sensörden geçip gittikten sonra da bu işlev anahtar temasına kadar devam eder.

Şekil 2.16 Çıkış konumunda program davranışı

Şekil 2.17 Trenin geçip gitmesi ve sistemin son konumu
Bu durumda, sensörlerden gelen değer "0"dır. Çünkü tren geçip gitmiştir. Bariyer açık konumda olduğu için anahtarlardan gelen değer "-5" dir. Çalışma bittiği için algılama sayısı da "2" dir. Tüm dijital çıkışlar kırmızı renkli yani "0" dır. Durum da "açık" olarak gösterilmektedir.

Şekil 2.18 Trenin geçip gitmesi durumunda program davranışı
BÖLÜM ÜÇ SONUÇLAR
3.PROJENİN SONUÇLARI
Uygulamalı olarak hazırlanmış olan bu projede öncelikle usb data kartı hakkında elde edilen bilgilerle bir kontrol sisteminin nasıl oluşturulacağı ve kontrolün sensörler yardımıyla nasıl gerçekleştirilebileceği hakkında çeşitli fikirler geliştirilmiştir.
Geliştirilen fikirler neticesinde, bir hemzemin geçidin bilgisayar kontrollü olarak otomatik bir şekilde çalışması düşüncesi üzerine çalışılmıştır. Bu düşünceye göre hazırlanmış olan basit bir platform ile de böyle bir sistemin çalışması örnek olarak gösterilmiştir.
Buna göre, başlangıçta açık konumda bulunarak taşıtların geçmesine imkan tanıyan bariyer, trenin muhtemel hızına göre önceden hesaplanmış mesafelere yerleştirilmiş olan sensörler ile bu sensörlerden ilk girişi alarak tüm ara işlevleri gerçekleştiren cihazlar ve programlama sayesinde kapanarak, taşıtların, trenin geçişinden önce ve geçişi esnasında karşıya geçmeleri gibi olası bir tehlikeyi önlemektedir. Trenin uygun bir mesafe kat ederek uzaklaşmasından sonra ise tekrar otomatik olarak açılarak yine taşıtların karşıya güvenli birşekilde geçmelerine izin verilmektedir.
Böyle bir sistem bu proje kapsamında gerçeğine göre biraz daha basit bir şekilde tasarlanmıştır. Böyle bir sistemin gerçeğe uyarlanması sırasında elbette üzerinde daha kapsamlı düşünülmesi gerekecektir. Fakat genel çalışma mantığı aynı kalır. Sadece gerçek konstrüksiyona uygun olarak sensörler değiştirilebilir ve de yine konstrüksiyona uygun motor ve sürücü devresi kullanılabilir.
Böyle bir proje üzerine çalışmanın bana kişisel olarak sağladığı katkılara gelecek olursam, öncelikle gerçeğe uyarlanabilecek olan faydalı bir sistem düşünmüş oldum. Ayrıca böyle bir sistemin mantığını oluşturup bunu bilgisayar kontrolünde otomatik olarak çalışacak bir şekle sokmaya çalıştım. Özellikle, sistemin tüm çalışma mantığını içinde barındıran programlama kısmı, bu suretle programlama yeteneğimi ve bilgimi artırmış oldu.
Kaynaklar
[1] BYTE dergisi web sayfası, www.elektronikhobi.com , 13/04/2007
[2] NI USB-6008. cihaz kullanım özellikleri notları, The National Instruments..2004
[3] Visual Basic 6.0 Pro ,2. baskı, İhsan Karagülle & Zeydin Pala, İstanbul, Türkiye, 2002.
Hazırlayan : Hakan ORHAN
- Yorum yazmak için giriş yapın veya kayıt olun