İçindekiler:

POLOLU QTR 8RC-sensor Dizili PID Tabanlı Çizgi Takip Robotu: 6 Adım (Resimli)
POLOLU QTR 8RC-sensor Dizili PID Tabanlı Çizgi Takip Robotu: 6 Adım (Resimli)

Video: POLOLU QTR 8RC-sensor Dizili PID Tabanlı Çizgi Takip Robotu: 6 Adım (Resimli)

Video: POLOLU QTR 8RC-sensor Dizili PID Tabanlı Çizgi Takip Robotu: 6 Adım (Resimli)
Video: QTR-8A Çizgi Sensörü Kullanımı ve PID Çizgi İzleyen Robot Yapımı 2024, Kasım
Anonim
POLOLU QTR 8RC-sensör Dizili PID Tabanlı Çizgi Takip Robotu
POLOLU QTR 8RC-sensör Dizili PID Tabanlı Çizgi Takip Robotu

Merhaba!

Bu benim öğreticiler üzerine ilk yazım ve bugün sizi yola çıkaracağım ve QTR-8RC sensör dizisini kullanarak robotu takip eden PID tabanlı bir hattın nasıl oluşturulacağını açıklayacağım.

Robotun yapımına geçmeden önce PID denilen şeyin ne olduğunu anlamamız gerekiyor.

Adım 1: Çalışma Prensibi

PID nedir?

PID terimi orantısal, integral, türev anlamına gelir. Yani basitçe, PID'yi satır takip ederek dahil ederek yaptığımız şey, robota çizgiyi takip etmesi ve nasıl olduğunu düşünerek hatayı hesaplayarak dönüşleri tespit etmesi için komut veriyoruz. raydan çok uzaklaştı.

polalu belgelerinde belirtildiği gibi anahtar terimler

Orantılı değer, robotunuzun çizgiye göre konumuyla yaklaşık olarak orantılıdır. Yani robotunuz çizgiye tam olarak ortalanmışsa, tam olarak 0 orantısal bir değer bekliyoruz

İntegral değeri robotunuzun hareket geçmişini kaydeder: robot çalışmaya başladığından beri kaydedilen orantısal terimin tüm değerlerinin toplamıdır

Türev, orantısal değerin değişim oranıdır

Bu derste sadece Kp ve Kd terimleri hakkında konuşacağız, ancak sonuçlar Ki terimi kullanılarak da elde edilebilir. Sensörden aldığımız okumalar sadece analog okumalar değil, aynı zamanda robotun konumsal okumalarıdır..so temel olarak sensör, maksimum yansımadan minimum yansımaya kadar 0 ile 2500 arasında değerler sağlar, ancak aynı zamanda robotun hattan ne kadar uzakta kaldığı hakkında da bilgi sağlar.)

Şimdi hata terimini dikkate almamız gerekiyor, Bu, iki değer set noktası değeri ile mevcut değerin farkıdır.(Ayar noktası değeri, sensörlerin satırların üzerine "mükemmel" yerleşimine karşılık gelen okumadır. değer, sensörün anlık okumalarıdır. Örneğin: Bu dizi sensörünü kullanıyorsanız ve 8 sensörden yararlanıyorsanız, nokta üzerinde iseniz 3500, çok uzaktaysanız 0 civarında bir konumsal okuma alırsınız. çizgi ve çok haklıysanız 7000 civarında.). Amacımız hatayı sıfır yapmaktır. O zaman sadece robot çizgiyi sorunsuz bir şekilde takip edebilir.

Daha sonra hesaplama kısmı gelir,.

1) hatayı hesaplayın.

Hata = Ayar Noktası Değeri - Mevcut Değer = 3500 - pozisyon

Ben 8 sensör kullanıyorum. sensör, robot mükemmel bir şekilde yerleştirildiğinde 3500 konum okuması verir. Artık robotumuzun ray boyunca sürüklendiği marj olan hatamızı hesapladığımıza göre, hatayı incelememizin ve motor hızlarını buna göre ayarlamamızın zamanı geldi.

2) motorların ayarlanan hızlarını belirler.

MotorHızı = Kp * Hata + Kd * (Hata - LastError);

LastError = Hata;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = SolBaseSpeed - MotorSpeed;

Mantıksal olarak konuşursak, 0 hatası, robotumuzun sola doğru gittiği anlamına gelir; bu, robotumuzun biraz sağa gitmesi gerektiği anlamına gelir, bu da, sırayla, sağ motorun yavaşlaması ve sol motorun hızlanması gerektiği anlamına gelir. BU PID'DİR!

MotorSpeed değeri denklemin kendisinden belirlenir. RightBaseSpeed ve LeftBaseSpeed, robotun hata sıfırken çalıştığı hızlardır (PWM 0-255'in herhangi bir değeri).

Eklediğim kod ayrıca sensörün konum değerlerinin nasıl kontrol edileceğini de içeriyor, böylece seri monitörü açıp kodu yükleyebilir ve pozisyon değiştiğinde motorların nasıl döndüğünü bir çizgi ile kendiniz görebilirsiniz.

Robotunuzu uygularken sorun yaşarsanız, sadece denklemlerin işaretlerini değiştirerek kontrol edin ve görün !!!

Ve şimdi işin en zor kısmı Kp VE Kd'yi BULMAK, robotumu mükemmel bir şekilde ayarlamak için 1 saatten fazla harcamam gerekti. Rastgele değerler koymak yerine bunu belirlemenin daha kolay bir yöntemini buldum.

  1. Kp ve Kd eşit 0 ile başlayın ve Kp ile başlayın, önce Kp'yi 1'e ayarlamayı deneyin ve robotu gözlemleyin, amacımız çizgiyi yalpalasa bile takip etmektir, robot çizgiyi geçer ve kaybederse kp değerini azaltın.robot bir dönüşü yapamıyorsa ve yavaş hareket ediyorsa Kp değerini arttırın.
  2. Robot bir şekilde çizgiyi takip ediyor gibi göründüğünde, Kd değerini (Kd değeri >Kp değeri) 1'den başlayarak ayarlayın ve daha az yalpalama ile düzgün bir sürüş görene kadar değeri artırın.
  3. Robot çizgiyi takip etmeye başladığında hızı artırın ve çizgiyi koruyup takip edip edemediğini görün.

Hızın PID ayarı üzerinde doğrudan bir etkisi olduğunu ve bazen robotunuzun hızına uyacak şekilde yeniden ayarlamanız gerekebileceğini unutmayın.

Artık robotumuzun yapımına geçebiliriz.

Adım 2: Yapı

yapı
yapı
yapı
yapı
yapı
yapı

USB kablosu ile Arduino atmega 2560 – bu kullanılan ana mikrodenetleyicidir.

Şasi- robot şasesi için başka bir projede kullanılan 2 adet dairesel akrilik plaka kullandım, bunun için mükemmel.somun ve vida kullanarak 2 katlı bir şase yaptım, böylece diğer modülleri üst plakaya takabilirim. hazır kasa kullanabilirsiniz.

www.ebay.com/itm/2WD-DIY-2-Wheel-Drive-Rou…

Mikrometal dişli motorlar- robotun PID rutini ile başa çıkabilmesi için hızlı dönen motorlara ihtiyacı vardı, bunun için 6V 400rpm değerinde motorlar ve uygun kavrama tekerlekleri kullandım.

www.ebay.com/itm/12mm-6V-400RPM-Torque-Gea…

www.ebay.com/itm/HOT-N20-Micro-Gear-Motor-…

QTR 8Rc sensör dizisi – bu, hat takibi için kullanılabilir, daha önce de belirtildiği gibi, sensör dizisinin PID ile nasıl çalıştırılacağına dair net bir anlayışa sahip olduğunuzu düşünüyorum. Kod çok basittir ve mevcut arduino kitaplıklarını kullanarak yapabileceksiniz. hızlı bir çizgi takipçisi oluşturmak için.

www.ebay.com/itm/Pololu-QTR-8RC-Reflectanc…

TB6612FNG Motor sürücüsü-PWM sinyali düştüğünde motorları etkin bir şekilde frenleyebilen, dönüşleri bir anda halledebilen ve yön değiştirebilen bir motor sürücüsü kullanmak istedim.

www.ebay.com/itm/Pololu-Dual-DC-Motor-Driv…

Lipo pil - 11.1V lipo pil robota güç sağlamak için kullanılır. 11.1 V lipo pil kullanmama rağmen bu kapasite arduino ve motorlar için gerekenden daha fazla. lipo pil veya 6V Ni-MH pil takımı mükemmel olacak. Bu nedenle voltajı 6V'a dönüştürmek için bir dönüştürücü kullanmam gerekiyor.

11.1V-

7.4 V-

Buck dönüştürücü modülü-

Buna ek olarak, her şeyin yerinde olduğundan emin olmak için bağlantı tellerine, somun ve cıvatalara, tornavidalara ve elektrik bantlarına ve ayrıca fermuarlara ihtiyacınız vardır.

Adım 3: Montaj

birleştirme
birleştirme
birleştirme
birleştirme
birleştirme
birleştirme
birleştirme
birleştirme

somunları ve vidaları kullanarak motorları ve küçük bir tekerlek tekerleğini bir plakaya takın ve ardından QTR sensörünü, motor sürücüsünü, arduino kartını ve son olarak pili şasiye monte edin.

İşte internetten bulduğum, bağlantıların nasıl yapılması gerektiğini anlatan mükemmel bir diyagram.

Adım 4: Hat Parkurunuzu Tasarlayın

Hat Parkurunuzu Tasarlayın
Hat Parkurunuzu Tasarlayın

Şimdi projeniz neredeyse bitti gibi görünüyor. Son aşamada robotunuzu test etmek için küçük bir arenaya ihtiyacınız var. Siyah zemin üzerine rastgele 3cm genişliğinde beyaz bir çizgi kullandım. Her şeyi iyi yapıştırdığınızdan emin olun ve şimdilik 90 derecelik açı ve enine kesitlerden kaçının, çünkü bu kodlama açısından karmaşık bir durumdur.

Adım 5: Kodunuzu Programlayın

1. Arduino'yu İndirin ve Kurun

Masaüstü IDE

· pencereler -

· Mac OS X -

· Linux -

2. QTR 8 RC sensör dizi dosyasını indirip Arduino kitaplıkları klasörüne yapıştırın.

·

· Dosyaları yola yapıştırın - C:\Arduino\libraries

3. LINEFOLLOWING.ino'yu indirin ve açın

4. Kodu bir USB kablosuyla arduino kartına yükleyin

Adım 6: BİTTİ!

Image
Image

artık kendi yaptığınız bir çizgi izleyen robotunuz var.

Umarım bu eğitim yardımcı olmuştur. Herhangi bir sorununuz olursa benimle [email protected] aracılığıyla iletişime geçmekten çekinmeyin.

yakında yeni bir projede görüşmek üzere.

İnşa etmenin tadını çıkarın!

Önerilen: