BİR ÇUBUĞU PID KONTROLU İLE İSTENEN AÇIDA TUTMAK-Bölüm 2 (2 motor)

İki ucunda birer adet pervaneli drone motoru bağlı olan bir çubuğumuz var. Bunu istediğimiz eğimde tutmak için STM32F103 mikrodenetleyici ile ADXL345 ivme sensörü kullanarak PID kontrolu altında çalışan bir sistem geliştiriyoruz.

Bu projenin ilk adımı çubuğun sadece tek tarafındaki bir motor ile dengede tutulması idi, o aşamayı anlattığım yayına ulaşmak için burayı tıklayabilirsiniz. İlk yayında anlattıklarımı burada tekrarlamayacağım için önce onu okumanızı öneririm.

Continue reading “BİR ÇUBUĞU PID KONTROLU İLE İSTENEN AÇIDA TUTMAK-Bölüm 2 (2 motor)”

İVME VE GYRO SENSÖRLERİ İLE EĞİM AÇILARININ ÖLÇÜLMESİ

Hareket ve pozisyon kontrolu yaptığımız projelerimizde ADXL345 ve MPU6050 gibi ivme ölçer sensörleri kullanıyoruz.

Bu sensörler 3 eksen doğrultusundaki doğrusal ivmeleri ve bu eksenler etrafındaki dönüş hareketlerinin yarattığı açısal ivmeleri 10 ila 16 bitlik rakamlar halinde veriyor. Biz ise çoğu zaman ivme değerlerinden çok, sensörün bağlı olduğu platformun sağa sola, öne arkaya eğim açılarıyla ilgileniyoruz.

Eğer projelerinizde Arduino kullanmayı seviyorsanız, sizin için “şu kütüphaneyi yükle, şu fonksiyonu çağırınca sana istediğin eğim açılarını verecektir” tarzındaki bir yol tarifi yeterince tatminkar olacaktır. Bu yayın ise işin arka planındaki süreci anlamak isteyenler, yani benim gibi mazoşist teknisyenlere yönelik.

Bu yayında doğrusal ve açısal ivme değerlerinden hareketle bu açıların nasıl hesaplanacağını anlatacağım. Meraklısına …


Not: Kullandığım görsellerden başka yerlerden aldıklarımı mutlaka belirtiyorum. Bunların dışında kalanlar kendi hazırladıklarım ve epey uğraş gerektiren çizimler. Bunlar ticari kazanç amacı güdülmediği sürece, kaynak belirtilmek suretiyle başkaca bir izin gerektirmeden kullanılabilir.

Continue reading “İVME VE GYRO SENSÖRLERİ İLE EĞİM AÇILARININ ÖLÇÜLMESİ”

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”

ESP8266 WEB SERVER İLE ADXL345 İVME SENSÖRÜ GRAFİK ARAYÜZÜ

Blog sitesindeki ilk teknik yayınım ESP8266_01 ile bir WEB Server oluşturulması üzerineydi. O yayına bu link’i tıklayarak ulaşabilirsiniz. Bir aradan sonra yine ESP8266_01 tabanlı bir projemden söz edeceğim. WEB sunucumuz ADXL ivme ölçerden okunan verileri bir grafik halinde yayınlıyor.
Başlangıçta ESP programlarını Arduino IDE platformu üzerinde geliştirip yüklüyordum. Son zamanlarda Arduino IDE yi terkederek Visual Studio/Platform IO kullanmaya başladım. Bu yayında bu yeni platformun kullanılışını anlatmayacağım. VS Platform_IO kullanımının bilindiği varsayımı ile devam ediyorum.

WEB Grafikleri için Highcharts kütüphanesini kullanıyorum. NTP zaman bilgileri için de ezTime kütüphanesini kullandım.

Bu yayında ivme ve gyro okumalarını derece’ye çevirmiyorum. Açı hesaplamalarının yapılışını anlattığım bir başka yayınım var:

İvme ve gyro değerlerinden hareketle eğim açılarının hesaplanması.

ESP8266 belirlenen aralıklarla yeni bir okuma yaparak flash belleğe littleFS kütüphanesinden yararlanarak kaydediyor. Bir istemci ile bağlantı kurulduğunda kaydedilmiş olan verileri istemciye aktarıp, bağlantı kesilmediği sürece yeni okumalar ile Asenkron WEB protokolu ile güncelleme yapıyor.

Continue reading “ESP8266 WEB SERVER İLE ADXL345 İVME SENSÖRÜ GRAFİK ARAYÜZÜ”