Arkadaşlar kendimi geliştirmek adına bazı uygulamalar yapmaya çalışıyorum bunlardan birtaneside Konu başlığındaki gibi bir uygulama..
Birden fazla Verici var Tek alıcı var Burdaki Vericilerde KartOkuyucular var ve okudukları bilgileri gönderecekler.KartOkuyucuların aynı anda bilgi gönderme olasılığı var...Master'ın olduğu pic Aldığı bilgileri PC'ye SeriPorttan verecek...( UDEA UTR-C12 veya UFM-M11) bu transceiverların haberleşebilmesi için kullanışlı olan yöntem nedir?
konuyla ilgili oldukça fazla başlık var. çoklu verici tek alıcı. genelde çözüm bulunamamış. zigbee modül önerilmişti en son.
her iki taraftada alıcı verici oldugu sürece sıkıntı olmaz ancak vericiler gönderecekse tek alıcı alacaksa:
1- haberleşme dataları olabildigince kısa olacak
2-haberleşme hızı yüksek olacak
yinede arada bir çakışmalar olacaktır.
Öncelikle Yanıtlar için tşkler..KartID'leri geleceği için Gönderilecek bilgi 32Bit KartID'si olucak Başka bir bilgi gönderilmeyecek..
Evet Hem bu forumda hem birçok forumda 2 gündür gece-gündüz araştırma yapıyorum ama çok soru var sonuç yok..
PC 'ye bağlanacak olan Kısımı Master Yapıp 100-200ms de bir Slave'lerden bilgi istemek bilgi varsa AL ve Diğer Slave Sor.. bu Şekilde tüm slaveleri taramak istiyorum..
Fakat Mantıken söylediklerimi nasıl yapacağımı Forum ve CCS C kitaplarını kurcalayarak bulamadım.. (SPI burda bir işe yarar mı bilmiyorum )
-Master pic'den Slave nasıl bir Sorgu ile Okunan ID olup olmadığını sorgulayacağım..
rs232 üzerine yoğunlaş
Çok profesyonel olmadığını belirtmekle birlikte alternatif bir fikir vereceğim. Aslında daha önceki başlıklarda buna benzer şeyler söylendi diye hatırlıyorum. Kısaca şunu yapabilirsin:
Her vericide birer alıcı olacak bunlara slave üniteler diyelim ayrıca tek alıcı dediğin master tarafta da bir tane verici olacak.
Yani her nokta da bir alıcı ve bir vericin olacak.
Tüm vericilerin beslemesi anahtarlanabilir olacak ve ilk konumda master verici hariç hepsi kapalı konumda olacak.
Her slave nin bir ID numarası olacak. Master verici sıra ile tüm slave lerden ID no göndererek bilgi isteyecek.
Kendi ID sini alan Slave vericisini açacak (Bu durumda master kendi vericisinin beslemesini kapatarak devre dışı yapacak) ve slave tüm verilerini gönderdikten sonra vericisini kapatacak. Master sıradaki slave nin ID sini gönderip aynı şekilde bilgi alacak...
Bu şekilde istediğin kadar slave noktasından master noktaya çakışma olmadan veri gönderebilirsin.
Aratınız CSMA.
Yanıtlar için teşekkürler.. Cihan Hocam Bahsettiğiniz yöntem güzel fakat benim modüllerimin zaten içerisinde hem alıcı hem verici barındırıyor..(UTR-C12 4 adet ve UFM-M11 6 adet var..
Benim Sorunum şu
1-Modüllere(Veya Modüle Bağlı PIC'e) nasil Kimlik atayabilirim
2-Modüllerden Master'a nasıl sırasıyla Veri aldırabilirim..(yani Master Slave'lere bilgi gönderecek ve bilgi Bekleyecek tüm Slave'leri bu şekilde tarayacak )
Bu sorgulamaları nası yaparım..
-Test Devrem- Yukaridaki 2 Slave ile Alttaki Master'ları Haberleştirmek istiyorum..
https://www.dropbox.com/s/h45in8kfx4jizqo/Spi.DSN (https://www.dropbox.com/s/h45in8kfx4jizqo/Spi.DSN)
bir alıcı ve birden fazla verici olan sistemlerde çalışamayan vericilerin enerjisini keseceksin. Veri gönderecek olan vericinin önce beslemesini verecek veriyi gönderecek sonra beslemeyi tekrar keseceksin. Ben bu uygulama için 4 verici 1 alıcıyı sorunsuz çalıştırdım.İşi biten vericinin beslemesini mini röle ile kapattım
Bu Yöntemi kullanmak istemiyorum .. Fakat Elinizdeki Örnek Eğer CCS C veya herhangi bir C ile yazıldıysa incelemek isterim..
"bir alıcı ve birden fazla verici olan sistemlerde çalışamayan vericilerin enerjisini keseceksin" bende merak ettim nasıl olacak ?
Alıntı yapılan: xoom - 27 Kasım 2012, 22:01:54
Öncelikle Yanıtlar için teşekkürler..KartID'leri geleceği için Gönderilecek bilgi 32Bit KartID'si olucak Başka bir bilgi gönderilmeyecek..
Evet Hem bu forumda hem birçok forumda 2 gündür gece-gündüz araştırma yapıyorum ama çok soru var sonuç yok..
PC 'ye bağlanacak olan Kısımı Master Yapıp 100-200ms de bir Slave'lerden bilgi istemek bilgi varsa AL ve Diğer Slave Sor.. bu Şekilde tüm slaveleri taramak istiyorum..
Fakat Mantıken söylediklerimi nasıl yapacağımı Forum ve CCS C kitaplarını kurcalayarak bulamadım.. (SPI burda bir işe yarar mı bilmiyorum )
-Master pic'den Slave nasıl bir Sorgu ile Okunan ID olup olmadığını sorgulayacağım..
Burda zorlandıgınız konu modülleri kullanmakmı yoksa sistem için algoritma oluşturmakmı.
Algoritma'yı doğru yukaridaki alıntınızdaki gibi doğru kurdugumu düşünüyorum yazılım konusunda eksiğim var. Yani şuan geldiğim aşama rfid okuyucudan bilgiyi okutup bir değişkene atıp lcd'de ID'yı okuyorum.. Bu Kartid'sini attıgım değişkeni bu transceiver'lerle göndermek ve bu modülleri kontrol etmek derken küçük bir yazılım örneğine ihtiyacım var.. 7.Mesajda bir devre ekledim bu bağlantıya uygun bu modülleri nasıl kullanacağımı anlayamadım udeanın datasheetten..
Alıntı yapılan: muhittin_kaplan - 28 Kasım 2012, 19:29:08
"bir alıcı ve birden fazla verici olan sistemlerde çalışamayan vericilerin enerjisini keseceksin" bende merak ettim nasıl olacak ?
Tüm slaveler alış modunda beklerken herhangi bir anahtarlama elemanı ile vericiyi kapatabilirsiniz. Sıra kendisinin olduğunu öğrenen slave vericiyi tekrar açacak ve verilerini master a göndermeye başlayacak. Tam olarak anlamadığınız nedir? Anahtarlama elemanı ile vericinin beslemesini nasıl kapatacağınızı mı soruyorsunuz?
hocam slave lerde de alıcı olmak zorunda ozaman değilmi, alıcı koyduysam kapatıp açmam adresi verir gönder kardeşim derim.
Evet hocam slave noktalarında da alıcı olacak. Benim bahsettiğim bu sistemde vericilerin hepsi aynı frekansta çalışıyor. Ben öyle varsayarak örnek vermiştim. Hepsinin 433mhz de çalışan basit vericilerden olduğunu düşünün. Bunların değil aynı anda veri göndermek aynı anda enerjide kalması bile alıcıların sapıtmasına yeter.
@Cihan Hocama katılıyorum eğer modüller modem modül tarzı değilse yani transparan modül ise tüm cihazların aynı anda açık kalması alıcıları sıkıntıya düşürür . Modem modüller ile bu işlem çok güzel olur ...
UFM-M11 rs232 ile çalışıyor module ilk enerji verildiginde seri port uzerinden
0x24,0x43,0x42 gönderir ("$CB"karekterleri)
ilk enerji verdiginizde bunu kaçırabilirsiniz.
output_low(UFMRESET);
delay_ms(50);
output_high(UFMRESET);
uygularsan Start up verisini tekrar gönderir
modüle rs232 pininden veri gönder komutu gelmediginde rx durumunda bekler.
RF den veri göndermek için
void Rfm_Send (unsigned char veri_boyu)
{
unsigned char i;//
putc(0x24);//Rf
putc(0x52);//gönderme
putc(0x46);//komutu
putc('9');//ID
putc('7');//ID
for(i=0;i<veri_boyu;++i)
{
putc(TxBufer[i]);
}
putc(0x45);// veri
putc(0x4E);// sonlandırma
putc(0x44);// komutu
putc(0x0D);//
putc(0x0A);//
}
modul rf den veri aldığında seriport üzerinden bunu size iletiyor.
Hocalarım başından beri bahsettiğim bende zaten UDEA'nın UFM-M11 Modem Modülü ve UTR-C12 RF Alıcı/Verici modülleri var.Bunları kullanmayı öğrenmek için örnek yazılım veya destek istiyorum diye belirtmiştim.. Hangi çiftleri kullanacağıma karar veremedim çünkü kullanmasını bilmiyorum..
Modüllerin üzerinde T/R pini var bu pin modülü Transmitter/Receiver olarak 1 veya 0 vererek ayarlanabiliyor..
Edit: Sadoğan Hocam Örnek için Çok Tşkler.Mesajı Sonradan Gördüm. Şimdi biraz Biraz anlamaya başladım..
Yazmayı unutmuşum.
TxBufer[] da göndermek istediginiz veri bulunacak.
Hocam Kod için tekrar teşk. 1-2 Sorum olucak
putc('9');//ID
putc('7');//ID
for(i=0;i<veri_boyu;++i)
{
putc(TxBufer[i]);
}
9 ve 7 diye gönderilen ID'ler neyin ID'si ? Bir Neyi verinin hangi slaveden geldiğini anlamamız için Kartid öncesi Ön tanımlama kodu gibi mi?
birde TxBuffer'ın VeriBoyutu Değişkenliğini veri_boyu adlı değişkene nasıl bildirebilirim? ( Aslında ID'lerim sürekli aynı uzunlukta ama merak ettim)
Alıntı yapılan: xoom - 28 Kasım 2012, 22:37:13
Hocam Kod için tekrar teşk. 1-2 Sorum olucak
putc('9');//ID
putc('7');//ID
for(i=0;i<veri_boyu;++i)
{
putc(TxBufer[i]);
}
9 ve 7 diye gönderilen ID'ler neyin ID'si ? Bir Neyi verinin hangi slaveden geldiğini anlamamız için Kartid öncesi Ön tanımlama kodu gibi mi?
birde TxBuffer'ın VeriBoyutu Değişkenliğini veri_boyu adlı değişkene nasıl bildirebilirim? ( Aslında ID'lerim sürekli aynı uzunlukta ama merak ettim)
master hangi slave veri gonderecekse o slave nin ID si örenkte ascii 97 ID si olan slave
yanıt verecek digerleri ID kendilerini ilgilendirmediginden paketi imha edecekler.
fonsiyonu cagırırken
Rfm_Send (15)
gibi
masterden gönderirken :buraya bana ID ni gönder,motoru çalıştır,Sunu yap gibi komutlar koyabilirsin
slave de ise masterin gönderdiği ID bakıp kendi ID si ile tutuyorsa gelen komuta göre pakete veriyi (RFID nosunu gibi )ve verinin boyunu foksiyonun girişine yazıyorsun.
istersen sabitte yapabilirsin.
sleve tarafında boyle bir rutin kullanabilirsin
void cek_paket()
{
if(RxBufer[0]==0x24&&RxBufer[1]==0x52&&RxBufer[2]==0x46)
{
if(RxBufer[3]=='9'&&RxBufer[4]=='7')//id ok
{
IdOkFlag=1;
}
else
{IdOkFlag=0;}
}
}
sadogan hocam Örnek kodlar için ne desem az.. Süper Kodlar.Tabi Anlayamadıgım kısımlar var ama önce ben biraz bu kodlara göre şekillendirip buraya ekliyim kodumu. Yarın Oturup Programı bunlara göre yazmaya başlayacağım.. Takılırsam Tekrar Yardımlarınıza Danışabilirim İzninizle..
Arkadaşlar selamlar,
Benzer bir konuda fikir almak istiyorum.
Yaklaşık 50 verici tek bir alıcının olduğu bir ortamda kablosuz olarak haberleşmek istiyorum. Alıcı master olacak. Sıra ile hızlı bir şekilde tüm vericilerden bilgi toplayacak.
Ortam olarak bir sınıf ortamı düşünülebilir. Büyükçe kapalı bir oda olacak yani.
Bu işte Hangi RF modül kullanılması uygun olur?
Tek yönlü haberleşme yaptığın zaman sorun olacağını bilecek kadar bu iştesin.
Örneğin sera gibi bir ortamda.
ESP8266-01 SERİAL WİFİ MODÜL türünden veya çift yönlü haberleşme olabilir. Bluetooth diyemiyorum, çünkü modülleri sıra ile adresleyip habereşmesi gerekir uzun iş.
Hocam benim aklıma ilk başta zigbee modüller geldi. Daha önce wifi ile hiç uğraşmadım. Herhangi bir sıkıntı yaşanırmı emin değilim. Temel şartlardan biri kullanılacak olan modülün Türkiyede bulunabilmesi ve fiyatının uygun olması. Aslında bluetooth'da aklıma geldi fakat mesafe sıkıntısı yaşanabilir diye düşünüyorum.
bir süredir arkadaşlar forumda bu modül üzerinde çalışıyorlardı..
http://www.direnc.net/ESP8266-01-SERIAL-WIFI-MODUL-ARDUINO,PR-20347.html (http://www.direnc.net/ESP8266-01-SERIAL-WIFI-MODUL-ARDUINO,PR-20347.html)
sanırım Türkiye'de var.. (sormadım)
İlle de bu olacak diye bir şey yok...
Ben Udea'nın UFR-C12U reciver modul ve UFM-M11 modem modüller ile kısa bir çalışma yapmıştım.. Test çalışmalarından sonra projemi yarım bırakmıştım.. O zamanlar sınıf içerisinde sıkıntı çıkmamıştı.