PID Çizgi izleyen

Başlatan LukeSkywalker, 13 Ocak 2011, 16:24:31

ozgurelkt

cevap verdiğiniz için teşekkürler. Analog çıkışı neden dijatele çeviriyoruz.  QTR-8RC kullansak  hız mı yeterli olmuyor. analog dijatele çeviriken ne kullanacağız. 7414 mü.

LukeSkywalker

Sensörlerin çizgiye sağdan veya soldan yaklaşımına bağlı olarak çıkışlarındaki analog bilgi değişiyor. Çizgiye yaklaştıkça voltaj düşüyor mesela. Bu şekilde konumu daha hassas algılayabiliyoruz. Dijital sensörü denemedim fakat kondansatörün deşarj süresine bağlı olarak ondanda hassas konum bilgisi alınabiliyor yanlış hatırlamıyorsam. Fakat daha yavaş olacağı kanaatindeyim. analog dijital çevirici için ise mikrodenetleyicinin dahili ADC modülünü kullanabilirsiniz.

ozgurelkt

qtr-8a ile yaptığım  devrede   sensörlerden gelen bilgilerin ortalaması olan 3500 değerini referans olarak aldım.
yer=3500-sensor;
Şimdi  bir tarafta değerler (-)eksi olarak diğer tarafta (+) artı olarak çıkıyor.örneğin -2000 yada +3000 gibi. Bu elde ettiğim yer bilgisini önceki yer bilgisinden çıkarıpta mı pwm olarak kullanacağım . elde ettiğim bu değeri nasıl pwm olarak kullanacağım kafam karıştı birazda :) yardımcı olursanız sevinirim.

LukeSkywalker

pwm değerinin maximum 255 olduğunu düşünelim.

o halde
yer=3500-0;
yer=3500 olur.

255/3500=0.07 gibi bir değer çıkar.

yer1=(yer)*0.07; bu bizim P değerimiz.
yer2=önceki yer - yer*Kd; bu da bizim D değerimiz;

yer1+yer2==bu da bizim PD değerimiz.

ozgurelkt

#34
yardımlarınızla yapmış olduğum çizgi izleyen stabil değil bir türlü istediğim gibi olmuyor. bir çok araştırma yaptım. kodlarda da farklılıklar var. örneğin sizin verdiğiniz  PD kısmında  önceki_yer-yer*KD kısmı başka kaynaklarda farklı verilmiş. bazı kaynaklarda örnekleme zamanına bölünmüş.

CyberX-TR

Kendini Uyurken Cekip Youtubeyemi Atıyor :))

ozgurelkt

kendini komik mi sanıyorsun.

yusuf.ozyer

hocam çizgi izleyen robot yapıyorum fakat pid kısmını yapamadım değerlerimi yanlış giriyorum kodlardamı bi sıkıntı var anlayamadım
Pic basicde yazdım kodları
sensörleri anolog okutup dijitale çevirdim
sensörleri okuduğunu anlamak için birer led bağladım (pic e led bağladım picde işlemleri yapıp ledi yakıyor )
yani sensörlerden bilgi geliyor benim sorunum motor kontrol kısmı o kısmı halledemedim yardımcı olurmusunuz