rf kontrollü robot yardım!

Başlatan lancelot, 01 Haziran 2012, 22:21:24

lancelot

Robot projesi bir kumanda devresi ve robot devresinden oluşuyor
kumanda devresindeki keypadden x ve y kordinatları giriliyor ve bu kordinatlar rf vericiyle robota aktarılıyor.
robot alıcıyla bu kordiatları alarak belirli bir platform üzerinde bu kordinatlara gidiyor.
birkaç sorunum var birincisi; ilk konum olarak 1,1 de olmasına rağmen kumandadan 1,1 gönderdiğimde hareket ediyor. tekrar 1,1 gönderdiğimde hareketsiz kalıyor. Bir başka problem 3 kordinatını 1 ve 2 den küçük görüyor, 6 kordinatını da 4 ve 5 ten. 7 yi ise hiç iplemiyor.
Bunlar kordinat konusundaki problemler.
En büyük problemim ise robot kısmında; motorlar devreye bağlı değilken devre sadece üstteki kordinat ile ilgili hataları verse de kararlı olarak çalışıyor ama motorları devreye dahil ettiğimde iş çığırından çıkıyor. Pic kararsız çalışmaya başlıyor (bazen girilen kordinatları hiç sallamıyor bazen de girilen kordinatlara değilde kafasına göre bir yerlere gidiyor)
bir de isiste problemsiz çalışıyor, beni asıl kahreden de bu zaten
Problemlerle ilgili önerilerinizi bekliyorum.

arslan74


yldzelektronik

motorlarla ilgili olan kısmı muhtemelen motorlarn çektiği akım ve sistemindeki beslemenin düşmesi.ayrıca rf konusunda aynı kart üzerinde led kullanırken veri almada sorun yaşarken siz motor sürmekten bahsetmişsiniz.bahsi geçen koordinat hataları sorunu sanırım hatalı veri alınmasıyla ilgili.tabii sadece tahmin ediyorum.tavsiyem öncelikle sisteminizdeki besleme sorununu halledin ve motorları sistemden yalıtın.rf konusuna öyle giriş yapın.iyi çalışmalar
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

lancelot

motorlar konusunu büyük ölçüde halldettim devre kaynaklı bir problemmiş, motorlara ayrı besleme bağlamaya bile gerek kalmadı.
Önerin için teşekkürler
Veri alımı komusunda neden bazılarını düzgün alırken, özellikle bazılarını hatalı aldığını çözemedim.

yldzelektronik

Bu veriyi dinlemene de bağlı aslında.Yani ccs kullanıyosan ben gets fonksiyonunda sorun yaşamıştım ve öneri üzerine
veri_al{
int i=0;
for (i=0;i<x;i++){
veri=getc();
i++;
if (i==z)
i=0;
}
}
gibi bi programla çözmüştüm.İstediğim kadar veri alabiliyorum.Birde rx kesmesi içinde bunu kullanmıştım.Senin sorununda benzer bişey olabilir.İStediğin verileri kaçırıyor olabilirsin.Veri göndermeden önce 2 byte falan uyandırma biti yada aynı veriyi 3 keç falan gönder yada çift sayı kadar gönder.karışabiliyo.burda x değeri senin kaç byte veri göndermek istediğine bağlı.
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

lancelot

uyandırma ve sonrasında senkron için dediğin gibi veriyi kaçırmamak adına bir byte da eşlik verisi gönderdikten sonra almak istediğim veriyi gönderiyorum. Yazdığın koda benzer bir rda kesmesi kullanıyorum. Önerin için teşekkürler
Sanırım sorun signed unsigned üzerinde. integer ile oynama yaptıkça düzelmeye başladı.