Sorularım var :)

Başlatan BuToprak, 30 Kasım 2006, 19:26:45

BuToprak

Merhaba arkadaşlar.Ben makina müh. öğrencisiyim, projemizde hareketli linklerin arasında zaman bilgisiyle birlikte açı ölçümü ve bu bilgilerin bilgisayara aktarılıp anlamlı açı değerlerine dönüştürülmesi gerekmekte. Zamana bağlı elde ettiğim açı değerlerinden sayısal türev alarak, hız ve hızlanma değerlerini de elde etmek istiyorum. Yaptığım araştırma kadarıyla Pic microprocessor üzerinde bu tip işlemleri yaptırmak Pic'in sınırlı hafızasının kısıtlayıcılığından dolayı zor ya da imkansız olmakta. Bunun için bu verileri(zaman ve açı bilgisini) bilgisayarda değerlendirmenin(excele atılan açı zaman noktalarına eğri oturtarak elde edilen denklemin türevi alınarak hız ve hızlanma grafiklerine yaklaşık olarak ulaşmak) daha doğru olduğunu düşünüyorum. İşte ilk problemim: bilgisayara ulaşan binary codeları nasıl anlamlı veriye dönüştürebilirim?
Soru 2: Matlabda instrumentation control toolbox kullanımı hakkında bilginiz var mı ve matlab bu hizmeti bana sağlayabilir mi?
Soru 3:C programlama dilini kullanarak seri ya da paralel portlara ulaşabilir miyim? Galiba ulaşabilirim :) ama nasıl? C ile portlardan bilgi alırken veya gönderirken portlarımı yanma olasılığına karşı korumak için kullanılması gerektiği söylenen buffer circuit nasıl kullanılır, şeması var mı?

Sanırım bu kısımda sorularım bu kadar cık :D
Şimdi gelelim daha önemli ve kritik kısımlara...

Bizim projemiz için gereken açı ölçüm sensörlerinin:
-sonsuz tur atabilmesi en önemli şart
-Bana göreceli açı değeri(incremental encoderlarda olduğu gibi,yani tekerlekli farede kullanılan encoderlar) değil de kesin açı değeri vermeli
-Çok aşırı derece pahalı da olmamalı :D
-Boyutları uygun olmalı (koca bi kutu fln değil yani :D )
İnternetten yaptığım araştırmalara dayanarak sonsuz dönüş yapabilen potansiyometrelere rastlayamadım; fakat 5-6 tur atabiln potansiyometreler var. İlginç olan şudur ki Ankarada ulus konya sokakta (elektronikçiler hanı) sorduğum kadarıyla potansiyometre benzeri "Pozisyon POD"u yardımıyla istediğim kadar tur attırabilirim ve her açı için belirli bir değer elde edebilirim.
Soru 4:Bu "Pozisyon POD"u dediğimiz sensor bir çeşit potansiyometre mi ??
Yine internetten yaptığım araştırma kadarıyla gray code disk kullanan absolute encoder kullanarak kesin açı değerine ulaşabilirim. Fakat elektronikçiler çarşısında sorduğum kadarıyla : ya böyle bir aletten haberleri yok ya da Türkiye'de böyle bir şey yok.
Soru 5:Absolute encoder dediğimiz sensorlerin Türkçe olarak teknik kelimesi nedir??


Anladığım kadarıyla devrenin işleyişi kaba taslak şöyle olacak:
Sensor->PIC->Serial Port->Aracı programlar
Şimdi soracağım sorular Sensorden elde edilen sinyallerin pice aktarılmasıyla ilgili
Soru 6:Potansiyometreden bulunduğum açıya göre aldığım voltaj ya da akım farkını(hangisi doğru?) nasıl pic e input olarak vereceğim? Daha doğrusu bu sadece kafamda teorik canlanıyor,bunu gösteren ya da buna örnek olabilecek(yani sensorden elde edilenin Pic microcontroller'a input olarak aktarılması) bir devre şeması var mı elinizde? Kullanacağım sensorun pic le olan bağlantısı ya da iletişimi sensorün üretici firması tarafından döküman halinde veriliyor mu?
Soru 7:Bana sensorden gelen bilgi doğal olarak doğrudan açı bilgisi olmayacak :) Fakat Pic'e input olarak sensorden aldığım bilgiyi anlamlı açı değerlerine çevirmek için ya da açı karşılıklarını belirlemek için, deneysel yollar mı kullanmam gerekecek(bir çeşit kalibrasyon);yoksa sensorden gelen bilginin hangi açıya tekabül ettiği döküman olarak bulunabilir mi?

Kablo sorunlarından kurtulmak için wireless modülleri ya da rf teknolojisini kullanmak istiyorum.Bu konuyla da ilgili sorularım var.
Soru8: Sensörden aldığım bilgiyi Pic'in input bacagına aktarmadan önce wireless yani kablosuz iletişim teknolojisini kullanabilme imkanım var mı? Kablosuz veri aktarımı için sensörden gelen bilgiyi(voltaj,akım bilgisi ya da her neyse...) kesinlikle picten geçirmem gerekiyor mu(Çünkü pic in ölçüm yerinde doğrudan bulunması ölçüm alanında yetersiz yer sorunlarını doğuruyor)?
Soru 9:Kablosuz iletişimle veri aktarımına örnek olabilecek elinizde devre örnekleri var mı ya da bulabileceğimi düşündüğünüz kaynak ya da internet adresi var mı?
Soru 10:Birden fazla açı sensörü kullanmam durumunda, her sensör için ayrı olarak pic tahsis etmem gerekiyor mu,yoksa tüm bilgileri tek bir picte işleyebilir miyim ya da sakıncası var mı? (ayrı ayrı pic kullanacaksam önerebileceğiniz az yer kaplayan ve  ihtiyacımı karşılamaya yetecek kadar bacağı olan pic var mı?)
Soru 11:Pic'in işlem kapasitesi birden fazla sensorden gelen verinin bilgisayara gönderilmesini engelleer mi  ya da kısıtlar mı?
Soru 12:Bilgisayar aynı anda birden fazla sensör bilgisini alabilir mi?Alamazsa:
bilgisayara bilgi aktarımının senkronize çalışması için ne yapmam gerekir? İşlem sırasına girip gecikmeli olarak bilgisayara gelen verinin zaman bilgisinin hatalı elde edilmesi ihtimaşi var mıdır varsa nasıl giderilebilir?
Soru13:Analog veriden digital veriye çevirme işlemini pic ile yapabilir miyim ya da ayrı bir modül mü kullanmam lazım?
Soru 14:Kullanacağım kablosuz teknolojinin diğer benzer elektronik aletlerden etkilenme ihtimali var mıdır?
Soru15:Kablosuz teknolojinin menzili ne kadar tam olarak?
Daha sorularım olacak :D Sizi çok yoruyorum farkındayım. Elektronik bilmeyince böyle oluyor işte :D Teşekkürler...

G.A.

Göktuğ

Picte veya degişik mcularda input/output pinleri bulunmaktadır. Bu pinler ile dış dunyadan bilgi alma veya bilgi verme yapılabilir. Bilgi alma kısmı 2 sekilde olmaktadır .
1-Dijital bilgi alma. +5V seviyesinde cesitli elektronik devrelerden gelen bilgilerdir.
2- Analog bilgi alma. Bu bilgi ise dış dunyada olusabilen herhangi bir gerilim seviyesinin mcu nun bazı analog girişlerinden okunabilmesi ile olusur. Mcu nun girişteki işaretin seviyesini olcebilme kapasitesi sınırlıdır. Mesela 1-4V arası degerleri okuyabilir. Tabi buda içerideki analog digital çevirici unitenin hassasiyeti oranındaki bir dogrulukla gercekleşir. Eger okunması gereken işaretler bu aralıkta değilse bu aralıga gelecek sekilde oranlanarak kucultulur daha sonra oran miktarınca yazılımsal olarak gercek deger hesaplanabilir.

Dıs dunyada alınan bilgiler istenirse mcu uzerinde işlenir tabi bu mcunun kapasitene baglı olarak gerceklestirilebilecektir.
Siz bilgiyi pcye yollayıp orada işlemek istediginize gore bu bilgiyi pcnin anlıyacagı hale getirip yollamanız gerekmektedir.
PC nin dıs dunya ile haberleşmesi bildigimiz gibi bazı portlar uzerinden olmaktadır. Seriport, paralelport, usb, klavye, internet, vs... gibi.
Bu portlardan seri(rs232) olanına erişmek için bilgilerinizin rs232 formatına donusturulmesi gerekmektedir. Bunu gerceklestirmek için max232 denilen çevirici entegreler kullanmanız gerekmektedir. Forumda veya nette hatta kendi datasheetlerinde yeterince acıklayıcı bilgi devre bulunmaktadır. Mantıgı kısaca bir pinden aldıgı bilgileri rs232 seviyesine cevirerek pcye iletir. pcden aldıgı bilgileride ttl seviyesine cevirdigi baska bir hat ile arkasındaki devreye bilgileri aktarır.

Kablosuz haberleşmeyi pic ile beraber kullanabilirsiniz. udea firmasının kitleriyle alakalı bir cok baslık var forumda.Ancak tek cozum onlar değil tabiki. Pek cok rf alıcı ve verici kit ile bir noktadan veri gonderip diger taraftan bunları alabilirsiniz.
Şimdilik bu kadar. Diger arkadaslarda degişik noktalardan soruları yanıtlayacaklardır.

mytap

Öncelikle aramıza hoşgeldin. Bu encoderle alakalı soruna yanıt; Pozisyon acısını bulmak için ki sanırım bu bir mil yada dişli düzeneğine takılacak, encoder kullanabilirsin. Fiyat ve estetik açıdan isteklerini karşılayacaktır. Ayrıca encoderi bir elektronik malzeme satan kişinin bilmesi gereken bir terim olarak nitelendiriyorum. Açı için 360 pulsluk ( bu 1 turda 360 puls verir) encoder işini görecektir her açıya 1 puls düşer ve ayrıca mcu programında fazla hesaptan kurtarır.
-------------------------------------------------------- hayırlı günler, iyi çalışmalar..  --------------------------------------------------------

frkcn

CEVAP 3: Her yönüyle paralel port adlı kitap var buradan birtakım bilgilere ulaşabirsin. "lvr.com"  yazarın (Jan AXELSON) sitesi. Ayrıca buffer için kullanacağın entegrenin adı ise 74 serisi LS244.

eğer bahsettiğin yada var olduğunu düşündüğün açı sensörünün temeli potansiyometreye dayanıyorsa oluşan değişimlerde voltaj farkı oluşacaktır. Ve dolayısı ile analog bir bilgiden ibaret olcak bunu pic'e doğrudan girebilirsin(ufak birkaç eklenti ile ), kullanacağın picin özelliğine göre yazılımsal veya donanımsal olarak problemine çözüm bulabilirsin. Tabi picin içine yazacağın programa değişmelere göre nasıl yorum yapacağını önceden bildirmek kaydıyla. Kuracağın sistemde bana göre iki çıkış yolun var senin de bahsettiğin gibi her sensöre ayrı bir pic mi yoksa bütün çevre elemanları tek bir işlemciye bağlamak mı? Çok iyi algoritma çıkarabilirsen tek bir kontrolör ile bu sorunu halledebilirsin ama kayıpların olabilir. Yada kendine bir haberleşme protokolü belirleyip ayrı devreler tasarlamak yoluyla merkez işlemci ile irtibata geçerek işini kolaylaştırabilirsin. Ben genelde bu yolu seçiyorum programla fazla uğraşmayıp işi donanıma bırakarak. Yada programcılık mantığını daha oturtamadığım için bu yolu seçiyor olabilirim. Yazdıklarım bu işte yeni yol kateden biri olarak yorumdan ibaretti. Okuyan üstatlara şimdiden saygılar..
Bugün ömrümün geride kalan son günü...

BuToprak

Alıntı yapılan: "pharuq"eğer bahsettiğin yada var olduğunu düşündüğün açı sensörünün temeli potansiyometreye dayanıyorsa oluşan değişimlerde voltaj farkı oluşacaktır. Ve dolayısı ile analog bir bilgiden ibaret olcak bunu pic'e doğrudan girebilirsin(ufak birkaç eklenti ile ), kullanacağın picin özelliğine göre yazılımsal veya donanımsal olarak problemine çözüm bulabilirsin. Tabi picin içine yazacağın programa değişmelere göre nasıl yorum yapacağını önceden bildirmek kaydıyla. Kuracağın sistemde bana göre iki çıkış yolun var senin de bahsettiğin gibi her sensöre ayrı bir pic mi yoksa bütün çevre elemanları tek bir işlemciye bağlamak mı? Çok iyi algoritma çıkarabilirsen tek bir kontrolör ile bu sorunu halledebilirsin ama kayıpların olabilir. Yada kendine bir haberleşme protokolü belirleyip ayrı devreler tasarlamak yoluyla merkez işlemci ile irtibata geçerek işini kolaylaştırabilirsin. Ben genelde bu yolu seçiyorum programla fazla uğraşmayıp işi donanıma bırakarak. Yada programcılık mantığını daha oturtamadığım için bu yolu seçiyor olabilirim. Yazdıklarım bu işte yeni yol kateden biri olarak yorumdan ibaretti. Okuyan üstatlara şimdiden saygılar..

Tüm sensörleri bir mikrodenetleyiciye bağlarsam rf olayından yararlanamam galiba (?) çünkü sensörler birbirlerine yakın bir mesafede değil bu da kablo sorunu demek oluyor.Anladığım kadarıyla her sensör için ayrı pic ve rf modülü olması daha mantıklı olur . Birden fazla sensörden gelen veriyi receiver istasyonu gibi bir şey ile bilgisayara atmak ve sensörlerden gelen bilginin hangi sırayla bilgisayara aktarılacağını kontrol etmek için bir pic daha kullanmam gerekiyor değil mi? Gelen bilgilerin zaman bilgisi de benim için önemli olduğu için pic i ne kadar frekansta çalıştırmamı tavsiye edersiniz? 4 mhz yeterli olur mu? Bu arada farklı rf modüllerinden gelen verilerin birbirine karışmasını nasıl engellerim?

frkcn

tüm sensörleri microdenetleyiciye bağlarsan RF yine kullanabilirsin. Ama bu sefer yine her sensör için farklı devre tasarlaman gerekiyor. Çünkü birden fazla sensör olduğunda bunlardan gelen sinyallerin merkez mikrokontrolör tarafından hatasız işlenmesi için, yazının sonunda belirttiğin  gibi  "Bu arada farklı rf modüllerinden gelen verilerin birbirine karışmasını nasıl engellerim?" şifrelemen gerekiyor. Yani sensörden gelen bilgiyi merkeze göndeririken; örneğin okunan bilgiyi sekiz bit şeklinde göndericeksen bunun başında veya sonunda senin belirleyeceğin tanımlayıcı bilgiler bulunmak zorunda. Bu da sana ayrı bir algoritma ve yazılım zorluğu getirir. Mesafe aşırı uzun değilse yani 10-15 metreden bahsediyorsak kablo kullanmak daha mantıklı. Para + zaman. Benim çekindiğim nokta şu 5 sensörün var diyelim ve bunlardan aynı anda sinyal geldi pic nasıl yetişecek, normalde yetişir daha yokmu diye bekler bile  ;) ama gelen sinyali pic işleme aldı ve uzun bir iş yapması gerekiyo diğer gelen sinyalleri atlayabilir. Sistemin her parçasında pic + sensör grubunu kullanırsan merkez ile bir elşıkışma metodu uygulayabilirsin. Yani merkez pic in işi varsa sensörde bulunan pic bilgiyi merkezi tekrar tekrar test ederek hafızasında tutabilir. Aslında kafanda canlandırdığın projeyi şematik olarak buraya aktarabilirsen daha fazla yardımcı olmak isteyen çıkabilir.
Bugün ömrümün geride kalan son günü...

picusta

Alıntı Yapİşte ilk problemim: bilgisayara ulaşan binary codeları nasıl anlamlı veriye dönüştürebilirim?
Bitler bilgisayara USARTtan ulasacak. Orada baytlari olusturacak.
Sonra veri formatini  char'dan int'e veya bikaç char'dan float'te dönüstürebilirsin. Bunun için programlama dillerinde hazir fonksyonlar var (örn sprintf).

Alıntı YapSoru 2: Matlabda instrumentation control toolbox kullanımı hakkında bilginiz var mı ve matlab bu hizmeti bana sağlayabilir mi?
Evet Matlab'la ayni Visual Basic'te oldugu gibi seri porttan iletisim kurabilirsin. Bu konuda Matlab'in help'leri ve tutorialleri mevcut ve oldukça faydali. O toolbox'ta birkaç ölçü aleti için iletisim önceden konfig edilmis.
Ayrica kendi iletisim protokolünü de tanimlayabilirsin. O toolbox olmadan da yapilir. (Matlab 6.5 versyonunda seri port bug'u var. Patch gerekli)

Alıntı YapSoru 3:C programlama dilini kullanarak seri ya da paralel portlara ulaşabilir miyim? Galiba ulaşabilirim Smile ama nasıl? C ile portlardan bilgi alırken veya gönderirken portlarımı yanma olasılığına karşı korumak için kullanılması gerektiği söylenen buffer circuit nasıl kullanılır, şeması var mı?
C'de de yapilir. parallel port için inportb outportb komutlarini kullanabilirsin. Fakat XP kullaniyorsan portlara erisim saglayan bir program veya dll'den geçmelisin.

BuToprak

Cevaplarınız için teşekkürler arkadaşlar çok yararı oldu.
BEnim picle yaptırmak istediğim tek işlem var o da potensiyometrede bulduğum voltaj farkını ve ölçüm zamanını bilgisayara veri seti olarak sağlamak. Daha sonra bilgisayarda gelen verileri anlamlı açı ve zaman değerlerine dönüştürmek. Yani en sonunda elde etmeyi düşündüğüm(her sensör için ayrı olarak) şöyle bir şey olmalı:
-Açı1 Zaman1
-Açı2 Zaman2
  ..        ..      
  ..        ..

Yani picte bu gelen bilgileri ekstra bir işleme tabi tutmayı düşünmüyorum; çünkü dediğin gibi tüm işlemleri pice yığmak için kodlamayı ve picin kapasitesini buna göre ayarlamayı iyi yapmak gerekiyor galiba bu da beni biraz aşar gibi :D

Şematik olarak şöyle bir şey olmalı(?) anladığım kadarıyla:
Sensor1->pic1->rf->pic(ana denetleyici)->rs232(bilgisayara aktarma protokolü için bu ozelligi piclerde bulabiliyoruz değil mi?) ->C,Matlab ...