Raspberry Pi ile Arduino Üzerinden Step Motor Kontrolü

Daha önce yaptığım Raspberry Pi ile Step Motor Kontrolü ve OpenCV Renk İzleme projesinde motorun hareketi ( [1,0,1,0], [0,1,1,0], [0,1,0,1], [1,0,0,1] ) step dizisi Python kodunda bir döngü içerisinde sırasıyla icra edilerek sağlanmaktaydı. Motorun normal hızda dönüşünde bir sorun olmazken çok yavaş dönmesi gerektiğinde stepler arasındaki gecikme fonksiyonlarının süresi artırılarak yavaş dönmesi sağlandı. Ancak bu dönüşler oldukça keskin ve kesik kesik olduğundan motora bağlı kameranın görüntü kalitesinde de sarsıntılara bağlı olarak kötüleşme oldu. Step geçişlerini yumuşatmak için yaptığım araştırmalarda Microstepping özelliğini gördüm. Bu özellik motorun sahip olduğu ana stepleri, daha fazla steplere bölerek motorun daha küçük stepler ile hareketini sağlıyor. 32 microstep'e kadar bölebilen Pololu DRV8825 step motor sürücü kartını kullanmaya karar verdim. Örnek microstepping kütüphanelerini incelediğimde microstepping için çok küçük milisaniyelerin kullanıldığını fark ettim. Arduino'nun bu çok kısa süreli işlemlerde daha stabil çalışacağını düşündüğümden ve nihayetinde bir bilgisayar olan Raspberry Pi'yi fazla yormamak adına motoru Arduino Nano ile sürmeye karar verdim. Raspberry Pi daha önce olduğu gibi socket server olarak yayın yaparken mobil cihaz(client) lardan gelen motor hareket komutları Raspberry Pi'den seri port ile Arduino'ya iletilerek motor hareketi sağlandı. Yine OpenCV kütüphaneleri kullanılarak yapılan renk tanıma ve izleme işleminde tanınan cisim koordinatları seri port ile Arduino'ya iletilerek motorun cismi izlemesi sağlandı.

Ekipmanlar

Raspberry Pi

Arduino Nano

DRV8825 Motor Sürücü

PiCamera

Step Motor

Görseller