BİR ÇUBUĞU PID KONTROLU İLE İSTENEN AÇIDA TUTMAK

Bir eksen etrafında hareket edebilecek şekilde bağlı bir çubuğu yatay durumda ya da istediğimiz herhangi bir eğimde sabit tutmak istiyoruz. Öyle ki bağlı olduğu platformu nasıl hareket ettirirsek ettirelim aynı eğimi korumaya devam etsin, çubuğu itip pozisyonunu bozsak da hemen kendini toparlayıp önceki eğimine geri dönsün.

Bu projede ortasındaki mafsal etrafında serbestçe hareket edebilen bir çubuktan oluşan “tahtırevalli” yi istediğimiz eğimde tutmaya çalışacağız. Bunun için kontrol işlemcimiz STM32F103, eğim/ivme sensörümüz ADXL345, aktivatörümüz de çubuğumuzun iki ucundaki pervaneli drone motorları olacak. Şimdilik iki motordan birisini kullanacağız, iki motorlu çalışma bir başka projeye…

Türevsel bileşeni bu projede de devreye sokmuyorum ama ne olduğunu, ne zaman kullanılması gerekeceğini matematiğe girmeden basitçe anlatıyorum.

ADXL345 ile eğim ölçme ve PID kontrolu altında DC motor kontrolu hakkında daha önce yayınlarım olmuştu, bu projeye girişmeden önce o yayınlara göz atmakta yarar var derim:

Bu proje çubuğun tek tarafındaki tek motor ile dengede tutmayı ele alıyor. Bunun devamı olan çalışmada aynı işi çubuğun iki ucundaki iki motor ile yapıyoruz. O yayına ulaşmak için aşağıdaki linki tıklayabilirsiniz. İkisi birbirinin tamamlayıcısı olduğundan önce bu ilk yayına göz atmalısınız):

Continue reading “BİR ÇUBUĞU PID KONTROLU İLE İSTENEN AÇIDA TUTMAK”

STM32 İLE PID KONTROL ALTINDA DC MOTOR SÜRMEK

Bu yayın ile oldukça kapsamlı bir konuya el atıyoruz. Küçük bir DC motoru, sabit bir hızda çalıştırmak için bir kapalı çevrim süreç kontrol sistemi oluşturacağız.

Bunu yapabilmek için, mikro denetleyici sistemleri geliştirirken edindiğimiz neredeyse tüm birikimimize ihtiyacımız olacak. Öyle ki :

  • Motoru istediğimiz hızda sürebilmek için bir TIMER ile PWM kontrol sinyali üreteceğiz
  • Motoru sürmek için bir L298 Motor sürücüyü kontrol edeceğiz.
  • Motorun devir hızını bir Hall Effect sensör ile algılayıp bir TIMER’in “Input Capture” fonksiyonundan yararlanarak ölçeceğiz.
  • İstediğimiz çalışma hızını bir potansiyometre ile ayarlamak üzere bir ADC kullanacağız.
  • Geliştirdiğimiz kodun kontrolu ve hata ayıklaması için ARM Cortex M çekirdeğinin SWV/ITM araçlarını kullanacağız.

Bu tekniğin bir çubuğu dengede tutmak için geliştirilmiş başka bir uygulamasını görmek için daha yeni bir yayınım var. Ona ulaşmak için burayı tıklayabilirsiniz.

Bu yayındaki projede motora akım sınırlaması uygulamıyoruz. Akım sınırlaması ile daha gelişmiş bir motor sürücü için “Akım sınırlaması altında DC motor sürmek” yayınıma başvurabilirsiniz.

İşimiz çok yani, hadi başlayalım.

Continue reading “STM32 İLE PID KONTROL ALTINDA DC MOTOR SÜRMEK”