Seri Port Haberleşmesi

Başlatan robikod, 05 Mayıs 2016, 12:39:23

robikod

Arduino kullanarak, seri portu DevC üzerinden bir sensör ve 4 motoru yönlendireceğim bir proje yapmak istiyorum.Sensörü HC-SR04 olarak düşünüyorum araç engele geldiği zaman geri dönsün bu şekilde engelden kaçsın istiyorum. Seri port ile bunu yapmam nasıl mümkün olabilir ? Birden fazla arduino mu kullanmalıyım ? Yoksa bluetooth üzerinden mi haberleşme yapmalıyım ?

MrDarK

en kolayı hc06 ile bluetooth
Picproje Eğitim Gönüllüleri ~ MrDarK

robomaster

PC yi kullanmaya gerek yok.  Mikrodenetleyici yeter. Bu sebeple bluetooth da gerekmez.
İlla PC kullanacağım diyorsanız yukarıdaki modül iyidir.

robikod

Alıntı yapılan: robomaster - 05 Mayıs 2016, 16:38:50
PC yi kullanmaya gerek yok.  Mikrodenetleyici yeter. Bu sebeple bluetooth da gerekmez.
İlla PC kullanacağım diyorsanız yukarıdaki modül iyidir.

İçerisinde mutlaka C kodu olması gerekiyor. Bu yüzden PC kullanmak şart yani.
Nasıl bir yol izleyebilirim ?Araştırmalarıma devam ediyorum ancak tavsiye edeceğiniz bir kaynak var mı ?

Firzen

İstersen HC06 istersende Xbee her ikisininde COM PORT desteği var. öncelik olarak herhangi en iyi bildiğin bir IDE'de C/C++ ile port haberleşmesi yap. ardından arudinoya  char gönder "w a s d" değerleri arduinoda da bu değerleri alınca sağ sol ileri geri hareket etsin. Peşindende tabiki işlemin tersi olan veri okumasını yaparsın.
Kararsız...

robikod

Alıntı yapılan: Firzen - 05 Mayıs 2016, 20:34:25
İstersen HC06 istersende Xbee her ikisininde COM PORT desteği var. öncelik olarak herhangi en iyi bildiğin bir IDE'de C/C++ ile port haberleşmesi yap. ardından arudinoya  char gönder "w a s d" değerleri arduinoda da bu değerleri alınca sağ sol ileri geri hareket etsin. Peşindende tabiki işlemin tersi olan veri okumasını yaparsın.

Arduinoya char değerlerini bluetooth sensöründen aldığı değere göre göndermek için ne yapmam gerek önce bluetooth değerini arduinoya gönderip daha sonra bunu pc ye mi göndermeli ?

robomaster

Ben tam olarak istenen nedir anlamadım. C derken gömülü sistemlerde olmuyor mu?
Tam anlayamadım kusura bakmayın.

robikod

Alıntı yapılan: robomaster - 05 Mayıs 2016, 21:42:49
Ben tam olarak istenen nedir anlamadım. C derken gömülü sistemlerde olmuyor mu?
Tam anlayamadım kusura bakmayın.

DevC üzerinden yazdığım C kodu ile seri haberleşme olacak

robomaster

DevC kullanmadım. Ancak c# ile hc05 modül haberleştirdim benim robot çalışması için. Dikkat edilmesi gereken husus mesela Windows için, porttan dinleme yaparken data kaçırmamak için;  Windows ta interrupt mantığı gibi düşünülen event handler mutlaka kullanmak gerekir.
Denetleyici tarafında ise gene eğer denetleyiciniz destekliyorsa USART interrupt kullanılması profesyonel olur. Aksi halde belli aralıklarda denetleyiciyi dinleme durumuna sokmak gerekir ki PC den gönderdiğiniz ile denk gele beklersiniz. Eğer UASRT interruptı kullanamazsanız denetleyiciden data talep ettiğiniz yönünde bil bilgi gönderip akabinde datayı PC den gönderin.

Umarım net olabilmişimdir.

Firzen

Alıntı yapılan: robikod - 05 Mayıs 2016, 21:40:35
Arduinoya char değerlerini bluetooth sensöründen aldığı değere göre göndermek için ne yapmam gerek önce bluetooth değerini arduinoya gönderip daha sonra bunu pc ye mi göndermeli ?
Bu cümleyi zerre anlamadım?
Bir şematik olarak çizip anlatmayı denesen?
SAnırım benim gibi birçok kişi anlamadı.
Kararsız...

robikod

Alıntı yapılan: Firzen - 05 Mayıs 2016, 22:44:40
Bu cümleyi zerre anlamadım?
Bir şematik olarak çizip anlatmayı denesen?
SAnırım benim gibi birçok kişi anlamadı.
Bluetooth sensörünü bu olayda nasıl kullanacağım ?

Firzen

bilgisayarla HC06 eşleşme olunca sana bilgisayarda 2 comport açar
Bunlardan 1si RX diğeri ise TX
COMPORT RX = COM22 diyelim. Sen C/C++ üzerinden COM22den veri gönderirden bluetoothun bağlı olduğu kısıma veri gider.
COMPORT TX = COM21 diyelim. aynı şekilde read yaparsanda Bluetoothun bağlı olduğu yerden veri alırsın
Kararsız...

quarko

Alıntı yapılan: Firzen - 09 Mayıs 2016, 00:27:44
bilgisayarla HC06 eşleşme olunca sana bilgisayarda 2 comport açar
Bunlardan 1si RX diğeri ise TX
COMPORT RX = COM22 diyelim. Sen C/C++ üzerinden COM22den veri gönderirden bluetoothun bağlı olduğu kısıma veri gider.
COMPORT TX = COM21 diyelim. aynı şekilde read yaparsanda Bluetoothun bağlı olduğu yerden veri alırsın

HC06 dan oluşan iki comm port un birini  tx için, diğerini rx için kullanmaya gerek yok hocam. Bir tanesi kullanılarak hem data gönderilebilir, hem data alınabilir.
"Aslanlar kendi hikayelerini yazmadıkça, avcıların kahramanlık hikayelerini dinlemek zorundayız."