Devre bilgisayarın USB portu üzerinden Visual Basic 6.0 ile yazılan program ile step motor kontrolü yapıyor pic yazılımı Pic Basic Pro ile hazırlanmış PIC18F4550 ve pc programının kaynak kodları var.
Elektronik ve bilgisayar endüstrisindeki gelişmeler, günlük hayatta kullandığımız birçok cihazın daha hızlı, daha güvenilir ve daha kullanışlı olmasını gerektirmektedir. Bu amaç doğrultusunda mikrodenetleyici olarak tanımlanan küçük bilgisayarlardan oldukça sık yararlanılmaktadır. Özellikle elektronik ölçme ve enstrumasyon alanında bilgisayar ve mikrodenetleyici destekli cihazların sayısı her geçen gün artmaktadır.
PIC18F4550 Mikrodenetleyicisi ile tasarlanmış bu devre ile step motorun adım adım, açısal olarak ve tur sayısı olarak döndürmek. Çağımızda elektromekanik bir çok devre step motor kullanıyor. Bu motorların kontrolü ise küçük mikro devreler aracılığıyla gerçekleştirilmektedir. Bu projedeki amaç kontrolü bilgisayar tabanlı yaparak kontrolün geliştirilmesidir.
Kullanılan Programlar
Mikro denetleyiciyi programlamak için Pic Basic Pro görsel arayüzle kontrolü sağlamak için Visual Basic 6.0 kullanılmıştır. Baskı devre tasarımı için Ares programı kullanılmıştır. Derleyici olarak Proton kullanılmıştır.
Bilgisayar Kullanıcı Arayüzü
Projenin bu kısmı Visual Basic 6.0 ile tasarlanmıştır. Şekil 2.1’de görüldüğü gibi sağ üst köşede PIC mikrodenetleyicin D Portunun ilk dört pinine giden sinyaller gösterilmiştir. Step motorumuz pic’in bu pinleri ile kontrol edilmektedir. Kırmızı olan kutucuklara “1” sinyali siyah olan kutucuklara “0” sinyali gönderilmektedir.
Şekil 2.1 Step Motor Kontrolünün Bilgisayar Ara yüzü
Yön seçeneği ise motorun hangi yöne döneceğini ayarlamaktadır. Yön seçeneğinin hemen yan tarafında bulunan çubuk hız ayar çubuğudur. Motorun hız ayarı Visual Basic’te bulunan timer komponenti ile yapılmaktadır. Döndür butonu motoru daimi olarak seçtiğimiz yünde döndürme komutu vermekte olup durdur butonu çalışmakta olan motoru durdurur.
Açı döndür butonu motorumuzu 7.5 derecenin katları şeklinde motoru açısal olarak döndürür. Tur atma butonu üstünde bulunan kutudaki sayı adedince devir yaptırma komutu verir.
Pic ile bağlantı kurulduğu zaman Şekil 2.2’de görüldüğü gibi “Pic İle bağlantı kuruldu” yazısı aktif hale gelmektedir.
Şekil 2.2 Bağlantı kurulması
Veri Aktarım Hattı USB Hakkında
USB Tarihçesi: USB arabiriminin geliştirilmesi Hewlett Packard firması ile başlamıştır. Fakat o zamanlar HP Arabirim Bus’ı olarak anılmaktaydı. Bu arabirimin sadece HP’ye yani tek bir firmaya ait olması Lisans ücretleri ve buna benzer sebeplerden dolayı istenmeyen bir durum olduğundan USB standartlarını belirlemek üzere bir örgüt kurulmuştur. Bu örgütte bulunan şirketler Intel, Microsoft, NEC, Philips HP ve Compaq’dır. Ocak 1996 tarihinde ilk olarak USB 1.0 sürümü devreye girmiş, hemen ardından Eylül 1998′ de ise USB 1.1 sürümleri hazırlanmıştır.
USB 1.1 ile gelen özelliklerden bir tanesi Kesme OUT transfer tipi’nin ve yüksek hız desteğinin eklenmesidir. (Bu transfer tipi ve diğerleri ileriki ünitelerde incelenecektir.) Aralık 2000’de ise mini-B tipi konnektör eklenmiştir. USB arabirimine destek veren ilk işletim sistemi 98 kadar kuvvetli olmada Windows 95’dir. Fakat bu arabirim 98 işletim sistemi ile yaygınlaşmıştır. Tüm gelişmelerden sonra en büyük adım olan USB 2.0 geliştirildi.20 kat olması hedeflenen transfer hızı 40 kat olarak belirlenmiş ve transfer hızı saniyede 480MBit yani 60MB olmuştur.
USB Avantajları ve Dezavantajları
USB arabiriminin avantajları denildiğinde akla ilk gelen yüksek işlem hızı ve hata denetiminin son derece güvenli olmasıdır. Böylece tasarımcıları yazılım ve donanımlarında hata denetimi ile uğraşmaktan kurtarmaktadır.USB arabirimi sinyallere fonksiyonlar yüklemediğinden birkaç USB portuna takılı cihaz aynı hat üzerinden farklı işlevleri yerine getirebilir.
Paralel porta takılı bir cihaz düşünün.Bu cihaz paralel portun bir veya birkaç bitini kendisi için tahsis edip özel bir amaçla kullanıyorsa bu diğer cihazlar için bir engel oluşturacaktır. Bir diğer avantaj ise güç sarfiyatının düşük olmasıdır. Tasarımlar sayesinde kullanılmayan cihazların güçleri kesilir fakat gerektiğinde tekrar haberleşmeye hazırdırlar. USB tasarımında kullanılacak devre elemanları pahalı değildir. Örneğin bu makaledeki projelerimizde kullanacağımız PIC18F4550 denetleyicisi Microchip firması tarafından üretilmiş, ek özellikleri ile birlikte USB modülünü de bünyesinde barındırmaktadır ve fiyatı yaklaşık 15YTL kadardır.
Bu yonganın SPI, I/O, CCP,USART, ADC, TIMERS ve kesmeler gibi ek özellikleri sayesinde hem USB haberleşmesi halledilir hem de tasarımla ilgili ek işlemler tek bir yonga ile yapılabilir. USB’nin dezavantajları denildiğinde ise akla ilk gelen eski donanımlarla uyumsuz olmasıdır. USB desteği olmayan bir sisteme USB cihazını bağlamanın tek yolu dönüştürü kullanmaktır. Fakat buda USB işlevselliğini gölgelemektedir. USB arabirimi masaüstü arabirimi olarak tasarlandığından mesafe sınırlamaları vardır.
Kablo boyutu düşük hızlı cihazlar için 3 metre tam hızlı ve yüksek hızlı cihazlar için 5 metre olabilir. Fakat hub kullanılarak bu sınır azda olsa aşılabilir. Cihazlar kendi aralarında haberleşemezler. İki mikrodenetleyici yonga seri protokol kullanarak örneğin 9600baud hızında haberleşebilirken USB sistemlerde bu söz konusu değildir. Haberleşmeyi sadece PC yönetir, başlatır ve sonlandırır. USB’nin dezavantajları hakkında bir örnek daha verirsek buda protokolün çok karmaşık olmasıdır.
Aynı zamanda USB cihazların satışlarında, cihazın üretici kimliğine sahip olması gerekir. Bu USB-IF’den 1500$ karşılığında alınabilir. Yani yüksek çaplı projeler tasarlanmak isteniyorsa USB’nin çok da ucuz olduğu söylenemez. Tüm bu dezavantajların yanında USB arabirimin diğer avantajları göz önüne alındığında başka protokollerle çalışmak zaman kaybından başka bir şey değildir.
USB Projesini geliştirmek için gerekli elemanlar
USB Denetleyici Seçimi: Piyasada USB projelerinde kullanılmak üzere farklı firmalarca tasarlanmış birçok USB denetleyicisi mevcuttur. Bazıları bir mikrodenetleyiciye arabirim olarak bağlanabilirken, bazıları da direkt denetleyici içerisinde yer almaktadır. Bir denetleyiciye arabirim olarak bağlanabilen USB arabirim yongaları maliyet, eleman fazlalığı ve giriş/çıkış uçlarının bazılarının kendilerine tahsis edilmeleri gibi unsurlardan dolayı çok fazla tercih edilmemelidir.
Fakat bu yapılacak tasarıma ve USB arabirim yongasına göre değişmektedir. Örnek vermek gerekirse USBN9604 gibi bir USB arabirim yongası, bir denetleyiciye hem paralel hem de seri olarak bağlanabilir. Aynı zamanda piyasa fiyatı kendi kategorisinde bulunan diğer yongalara göre daha ucuzdur. Fakat yinede bunun haricinde birde denetleyici yonga fiyatı olduğundan On-Chip USB yongalar daha ucuza gelmektedir.
Bu sorunların yanında tasarım yapılacak USB yonganın kolay bulunabilmesi de belli başlı bir olaydır. Aynı zamanda kullanılacak yonganın iç mimarisine hâkim olmak, internetten hazır kod ve kaynak bulmak da son derece önemli etkenlerdendir. İşte bu sorunları göz önünde bulundurarak projelerimizde, tek chip üzerinde USB arabirim modülü ve diğer çevresel donanımları bulunan PIC18F4550 yongasını kullanacağız. Bu chip’e alternatif olarak giriş/çıkış sayısı daha az olan PIC18F2550’de kullanılabilir.
PIC18F4550’nin USB Özellikleri
PIC18F4550’nin dâhili USB birimi bulunmaktadır ve temel özellikleri aşağıda listelenmiştir;
* USB 2.0 uyumludur.
* Low Speed(1.5Mb/s) ve Full Speed(12Mb/s) hızlarını desteklemektedir.
* Kontrol, Kesme, İzokron ve Yığın transferleri desteklemektedir.
* 32 Adet Uçnoktası vardır.(Çift yönlü 16 adet)
* 1KB USB Ram belleği(Dual Access)
* Dahili voltaj regülatörü
* Dahili Pull-Up dirençleri
PIC18F4550’nin USB işlemleri için ayırdığı toplam 22 adet register’ı mevcuttur. Bunların en önemli olanları ve projelerimizde sıkça kullanacaklarımız aşağıda incelenmiştir.Daha fazla bilgi ve diğer bitlerin özellikleri için chip’in datasheet’i incelenebilir. Her USB destekli microdenetleyicide olduğu gibi PIC18F4550’ninde SIE motoru bulunur.(Serial interface Engine)SIE gönderilen paketlerin çözülmesinde ve ilgili register’ların set edilmesinde aynı zamanda gönderilecek verilerinde USB paket formatına dönüştürülmesinde büyük bir rol üstlenir.PIC18F4550’nin SIE motoru dahili tranceiver’dan faydalanabileceği gibi dış bir tranceiver’ada bağlanabilir. Dahili bir 3.3 volt regülatörü vardır ve 5 volt’luk uygulamalarda dahili tranceiver’a güç sağlar.Hem SIE’nin hemde CPU’nun USB RAM’ine direkt hafıza erişimi mevcuttur.
USB Control Register – UCON –
Şekil 3.1 USB Kontrol Yazmacı
PPBRST bitinin set edilmesi tüm Ping-Pong Buffer işaretçilerinin düzenlenen tamponlara yerleştirilmesini sağlar. 0 olarak bırakılırsa Ping-Pong buffer’lar görmezden gelinir. Ping-Pong buffer özelliği birçok denetleyicide bulunur. Bu özellik bilgi setinin tampona yazılmasının hemen ardından ikinci setinde tampona yazılmasını sağlar.Böylece ilk veri gönderilirken ikinci veri seti’de gönderime hazır olur.Bu alım işleminde de aynıdır.
SE0 biti USB bus’ında Single Ended Zero durumu oluştuğunda set olur.Bu durum D+ ve D- hatlarının aynı anda yüksek olduğu özel bir durumdur.
PKTDIS biti SIE’nin paket aktarmasını ya da almasını aktif yapmak üzere kullanılan bir bayraktır.Bu bit bir SETUP paketi alınmasının ardından SIE tarafından set edilir ve paket aktarma/alma işlemi pasif yapılmış olunur.SIE’nin paket alma/aktarma işlemine tekrar izin vermek için bu bit CPU tarafından sadece temizlenebilir.
USBEN biti USB modülünü aktif/pasif yapar.Eğer cihaz bus’a bağlı ise ve bu bit set edilirse cihaz attached durumuna geçer, temizlenirse cihaz bus’dan çıkatılmış gibi olur. (Detached)Böylece cihaz’ın bus ile olan ilişkisi yazılımsal olarak kontrol edilebilir.Aynı zamanda bu bit set edildiğinde tüm PPBI yazmaçlarını 0’a kurar, USB regülatörünü dahili pull-up dirençlerini aktif yapar(Eğer ayarlandıysa)
RESUME biti PC’ye resume sinyali göndermek için kullanılır.Resume sinyali göndermek için bu bit yaklaşık 1 ile 13ms arası set edilmeli ardından temizlenmelidir.Askı durumundaki bir cihaz PC’ye haberleşmeyi canlandırması için Resume sinyali gönderebilir.
SUSPND biti USB modülün suspend duruma yani askıya geçmesini sağlar.Bu bit set edilerek SIE’nin clock kaynağı pasif yapılmış olunur.Bus’da 3ms işlem görmeyen bir cihaz suspend durumuna geçmelidir.Bu durum IDLEIF bayrağının set olmasıyla anlaşılabilir.Bu durumda SUSPND biti set edilerek suspend moduna geçilmelidir.Bus’da takrardan faaliyet başlaması durumunda ACTVIF biti set olur.Bu durumda SUSPND biti temizlenmeli ve SIE’nin clock kaynağı aktif edilmelidir.
USB Configuration Register – UCFG –
Şekil 3.2 USB Konfigürasyon Yazmacı
USB Status Yazmacı USB Status Register –USTAT—
USB Uç nokta n Yazmacı USB Endpoint n Control Register – UEPn –
Tampon Künyesi n Status Yazmacı (CPU Mod) BDnSTAT CPU Mod
Tampon Künyesi n Status Yazmacı (SIE Mod) BDnSTAT SIE Mod
USB Kesme Yazmacı USB Interrupt Status Register – UIR –
USB RAM Yerleşimi Buffer Descriptor ve Buffer Descriptor Tablosu
PING-PONG Buffer Özelliği USB Osilatör Konfigürasyonu Ayarları
Easy HID İle Projeyi Oluşturma
SONUÇ
Elektronik ölçme sektöründeki hızlı gelişmeler ve bilgisayar tabanlı sistemlerin ölçme sistemlerindeki yerinin her geçen gün artması, hızlı ve güvenilir veri iletişim metotlarına olan ihtiyacı arttırmaktadır.
Özellikle gömülü sistemlerde sıklıkla kullanılan mikroişlemci ve mikrodenetleyiciler ise elektronik alanındaki gelişmelerde lokomotif görevi üstlenmişlerdir. Programlanabilme özellikleri ile gerek üreticiye gerekse de kullanıcıya yönelik hayal gücü ile sınırlı opsiyonlar sağlanmıştır.
Sonuç olarak üzerinde çalışılan projede, çevrebirimlerin PIC18F4550 mikrodenetleyicisi ile USB üzerinden bilgisayarla haberleştirilmesi sağlanmıştır. USB protokolünün karmaşıklığı bir takım zorluklara yol açsa da, kullanılan mikrodenetleyici üretici firması olan Microchip’in internet ortamında sunmuş olduğu Kernel’ler ile uygulamanın yazılım kısmının hazırlanmasını kolaylaştırmıştır.
Kullanılan mikrodenetleyicinin bir kaç yıl öncesinde kullanılan bilgisayar işlemcilerinden bile daha üstün bir yonga olması, uygulama alanlarını oldukça genişletmektedir. Endüstriyel elektronik, medikal, otomotiv, tüketici elektroniği vb. gibi genel başlıklarıyla verilen birçok alanda çeşitli uygulamalar için kullanılabilecek bir proje hazırlanmıştır. Projede kullanılan uygulama kartı genel amaçlı bir arabirim olarak tasarlandığından uygulaması yapılacak sisteme adapte edilerek kullanılabilecektir.
Bu çalışma temel alınarak PIC18F4550 mikrodenetleyicisi ile gerçekleştirilebilecek yeni projelerde, programlama kartında herhangi bir değişikliğe gidilmeden sadece uygulama kartına yapılabilecek revizyonlar yeterli olacaktır.
Bu bağlamda, mikrodenetleyici temelli tüm uygulamalar için prototip sayılabilecek bir uygulama gerçekleştirilmiş ve yeni tasarımcılar için bir yol açılmıştır. Üzerinde çalışılan bu devre ile elektromekanik sistemlerde büyük bir alana sahip olan step motorun kontrolü sağlanmıştır. Elektronik sanayisinde birçok cihazda kullanılan adım motorlarının kontrolü bu projenin geliştirilmesi ile rahatlıkla yapılabilecektir.
USB ile Step Motor Kontrolü projesini hazırlayan Eyüp ŞEKERLİ – Emeği geçen hazırlayan kişilere teşekkürler
Şifre-Pass: 320volt.com
Yayım tarihi: 2010/08/04 Etiketler: microchip pic projeleri, pic18f4550 projeleri, pic18f4550 usb kontrol, step motor usb, uln2803 step motor, vb6 usb motor, visual basic usb
harika bir paylaşım.
Teşekkürler.
Öncelikle böyle bir paylaşım yaptığı için Eyüp ŞEKERLİ ‘ye ve emeği geçenlere çok teşşekür ederim.Ellerinize sağlık.Bir sorum olacak : devredeki 470pf kondasatörün çeşiti ve osc. kısmındaki 1M ohm’luk direncin sebebi nedir.Biraz araştırdım fakat kesin bir sonuca ulaşamadım.Şimdiden teşekkürler.
1M ohm luk direnç yüksek frekanslarda oluşan kapasite etkisini minumuma indirmek için,470pf kondansatör için dise mercimek kondasatör denen tipdeki kondasatörden kullandım ve devre sorunsuz bir şekilde çalıştı.Teşekkürler.
pekala usb ile iki motor kontrolü yapmak istersek bunun için nasıl bir devre kulanmak gerekir arkadaşlar ?
arkadaşlar bu devre en fazla kaç amperlik step motoru çalıştırabilir. Ben yüksek amperli bir step motor calıstırmak istiyorum. model helikopterim için.
bu konu hakkında yardımcı olabilecek arkadaslar varsa lütfen yazsın
@fatih
bu devrede sürücü olarak uln2803 kullanılmış, bu malzeme ile küçük step motorları sürebilirsiniz. sizin step motorunuzun gücü çektiği akım nedir. ona göre mosfetli bir devre kullanmalısınız. aşağıdaki linkte n kanal power mosfet IRF510 kullanılmış bir devre var. mosfetlere soğutucuda takılabilir.
http://elektroinfo.blogspot.com/2008/11/pic16f84-ile-projeler.html
davut abi, ben aşağıdaki motorlardan bir tanesini kullanmak istiyorum yada bunlara yakın değerlerde bir motor kullanmak istiyorum.
Şimdi ben bunları çalıştırabilmek için, bu devredeki hangi malzemeyi hangi malzeme ile değiştireyim bu konu hakkında yardımcı olur musunuz ?
http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=14741 200kv
http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=5158 700 KV
@fatih linklerde step motorlar görülmüyor.
Turnigy L2508A-3500 Brushless Heli Motor (200w)
Specifications:
Dimension: 25mm x 20.5mm
Weight: 31g
Kv: 3500rpm/V
Voltage: 7.2v (2s)
Max Power: 200w
Max Current: 27A
No load Current: 1.1A
Diameter of shaft: 2.3mm
ESC: 30A
Kv (rpm/v) 3500
Weight (g) 31
Max Current (A) 27
Resistance (mh)
Max Voltage (V) 7
Power(W) 200
Shaft A (mm) 2.3
Length B (mm) 21
Diameter C (mm) 25
Can Length D (mm) 11
Total Length E (mm) 29
———-
KB45-17XL 700kv Brushless Inrunner
Kv: 700RPM/V
Idle current: 1.6A (8.4V)
Max Amp: 48A (36V)
Max Watts: 1600W
Max volt: 48VWeight: 557g
Shaft: 6mm
Size: 77x45mm
Voltage: 36v
This size motor will fit our larger 5inch and 4.75inch EDF perfectly. (same mounting holes & shaft size)
Kv (rpm/v) 700
Weight (g) 557
Max Current (A) 48
Resistance (mh) 0
Max Voltage (V) 36
Power(W) 1600
Shaft A (mm) 6
Length B (mm) 77
Diameter C (mm) 45
Can Length D (mm) 75
Total Length E (mm) 97
Davut abi benim için onemli olan 2nci motor, acaba bu motoru bu devre calistirir mi? icerisinden hangi parcalari hangileriyle degistirmem gerekliki bu motoru calistirsin
http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=14741
http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=5158
Aşağıdaki linkleri inceleyin. yüksek güçlü mosfetler bu projede işinize yarayabilir. IGBT kullanmakta bir çözüm olabilir. devredeki frekans ve voltajda bu tip motorları sürmek için önemli.
bu mosfetleri bu devrede kullanmak konusunda bir şey diyemeyeceğim, hiç bu kadar yüksek güçlü mosfet kulanmadım.
http://www.st.com/stonline/books/pdf/docs/6035.pdf
http://www.irf.com/product-info/datasheets/data/irfp064n.pdf
can you give me the programming code in language C for stepper motor?
Program çalıştı elinize sağlık çok güzel olmuş 🙂
Arkadaşlar arayüz programını nerden indireceğiz?
pic pcye bağlanıyor ama programdan kontrol edemiyorum neden olabilir?