天天看點

arduino控制步進電機移動絲杆實作撥片架水準移動寫在前面正文實作效果步進電機驅動介紹arduino驅動方法序列槽控制正文

寫在前面

這篇部落格不同于前面的樹莓派和底盤子系統的控制了,而是要進行講解分析如何通過arduino控制步進電機移動絲杆實作撥片架的水準移動了,那麼為什麼要實作這麼一個功能呢?

原因很簡單,因為我們的購物機器人依靠撥片撥取貨物,但是在貨架上或者倉庫裡的時候,購物機器人的撥片可能撥不到貨物,是以就需要依靠絲杆帶動撥片架去撥取貨物。

正文

主要内容在我的古月居部落格:

arduino控制步進電機移動絲杆實作撥片架水準移動

實作效果

arduino控制步進電機移動絲杆實作撥片架水準移動寫在前面正文實作效果步進電機驅動介紹arduino驅動方法序列槽控制正文
arduino控制步進電機移動絲杆實作撥片架水準移動寫在前面正文實作效果步進電機驅動介紹arduino驅動方法序列槽控制正文

步進電機驅動介紹

arduino控制步進電機移動絲杆實作撥片架水準移動寫在前面正文實作效果步進電機驅動介紹arduino驅動方法序列槽控制正文
arduino控制步進電機移動絲杆實作撥片架水準移動寫在前面正文實作效果步進電機驅動介紹arduino驅動方法序列槽控制正文

arduino驅動方法

按鍵控制

arduino控制步進電機移動絲杆實作撥片架水準移動寫在前面正文實作效果步進電機驅動介紹arduino驅動方法序列槽控制正文
arduino控制步進電機移動絲杆實作撥片架水準移動寫在前面正文實作效果步進電機驅動介紹arduino驅動方法序列槽控制正文

測試結果如下

arduino控制步進電機移動絲杆實作撥片架水準移動寫在前面正文實作效果步進電機驅動介紹arduino驅動方法序列槽控制正文

序列槽控制

int move_ctl_dis;
unsigned long cm_cnt = 32000; //32000是1cm
  if (move_ctl_dis != 0) {
    if (move_ctl_dis > 0) {
      for (int i = 0; i < move_ctl_dis; i++)
      {
        for (unsigned long j = 0; j < cm_cnt; j++ ) {
          turn_left();
        }
      }
    } else if (move_ctl_dis < 0) {
      move_ctl_dis = -move_ctl_dis;
      for (int i = 0; i < move_ctl_dis; i++)
      {
        for (unsigned long j = 0; j < cm_cnt; j++ ) {
          turn_right();
        }
      }
    }
    move_ctl_dis = 0;
  }
           

這段程式有什麼特别的呢?我們抓取主要的一部分來做特别分析

for (int i = 0; i < move_ctl_dis; i++)
 {
   for (unsigned long j = 0; j < cm_cnt; j++ ) {
     turn_left();
   }
 }
           

正文

主要内容在我的古月居部落格:

arduino控制步進電機移動絲杆實作撥片架水準移動

arduino控制步進電機移動絲杆實作撥片架水準移動寫在前面正文實作效果步進電機驅動介紹arduino驅動方法序列槽控制正文

瘋狂明示,這次一定

arduino控制步進電機移動絲杆實作撥片架水準移動寫在前面正文實作效果步進電機驅動介紹arduino驅動方法序列槽控制正文