Aracın verilen koordinatlara gitmesini saglayan C kodu

Başlatan piquand, 22 Haziran 2007, 08:42:10

piquand

Selam arkadaslar,

Baska bi baslık altında da acmıstım bu konuyu ama cevap alamadım sanırım burası daha uygun olacak.

İki dc motora sahip aracım var, derbot gibi. Bu aracın verilen koordinatlara ulasması isteniyor. Hareketimiz 2 boyutta olacak yani sadece x ve y yonunde. Baslangıc noktamız (+x,+y) bolgesinde, verilecek noktalarda yine bu bolgede olacak, ama nereden baslayacagımız test sırasında soylenecek,bastan belli değil; şöyle ki (+10,+10) da verilebilir (+75,+60) da olabilir.

Bize mesela aracın gitmesini istedigimiz iki tane koordinat verilsin. (20,80) ve (60,45) gibi, baslangıc noktamız da (30,20) olsun. Aracın bu noktalara gitmesi ni saglayacak C kodu nasıl olabilir sizce?

İlgilenen herkeze şimdiden teşekkür ediyorum.

Analyzer

Selam,

Öncelikle normal dc motor yerine step motor kullanmanızı tavsiye ederim. Analitik düzleminizde 1 birim kaç stepe denk geliyorsa o kadar step işareti yollarsınız ve araç istenilen yerde durur. Step motor kontrolü, örnek projeler boardda mevcut, arayabilirsiniz.
Ancak dc motor kullanmak şart ise arkasında encoderi mevcut olan modeller var onlar ile motor şaftının konumu okunabilir ve yine koordinat sisteminin birimi ile motor turu eşleştirilebilir. Yani x yönünde +10 birim gitmesi için motor 10 tur atması gerekiyordur, yazılım ile ayarlanabilir. Pwm ile demaraj ve durma kısımları belli miktarda yavaşlatılırsa, aracın belirtilen konumu bulması kolaylaşır.

Donanımı bilmeden kod önermek pek doğru olmaz bence.

Analyzer
Üşeniyorum, öyleyse yarın!

ftsahin

Araç rasgele bir yere konulup start verildiğinde hangi yöne doğru gittiğini bilecek mi? Yani gittiği sürece hangi eksenin değiştiğini bilecek mi? Yoksa testlerde hep aynı yerden başlayıp aynı yöne mi bakacak? Bunlar hedefi bulmak için önemli.
Hedefe giderken sizi en çok zorlayacak olan kısım bence dönüşleri ayarlamak. İki tür hedef bulma yöntemi kullanabilirsiniz.
Birincisi sadece ana yönleri kullanarak ve 90 derece dönüşler yaparak.
Diğeri de başlangıçta hedefe yönelip düz giderek.
İkinci yöntem eğer dönüşü doğru yapabilirseniz bence daha iyi. C dilini bilmiyorum ama eğer bu yöntemi kullanmak isterseniz  araç ve hedef koordinatlarına göre dönüş açısını bulmak için gerekli matematik formüllerini yazabilirim.
Kolay gelsin.