古人智慧

Just Do it!
上士聞道,勤而行之;中士聞道,若存若亡;下士聞道,大笑之。不笑,不足以爲道。
~ 道德經 41

「實現夢想不是追逐成功,而是在於賦予生命意義,人生中的每個決定與聲音都有其重要含義。」"The key to realizing a dream is to focus not on success but on significance — and then even the small steps and little victories along your path will take on greater meaning."
電視名人-歐普拉·溫芙蕾(OPRAH WINFREY)

搜尋此網誌

Translation

2016年12月19日 星期一

[ESP8266] TinyPlan + A4988 + NEMA39 stepper

3年前,因對陀螺儀產生興趣,著手製作2輪自平衡車來理解Gyro的原理與運用。一路跌跌撞撞終於完成,這項目讓我成為maker~~
3年後,我發現對gyro還需要深入研究,而且現在有ESP8266平台,CPU與memory都提升很多,應該可以做細膩的運算與動作,這也是這篇主要的部分。

先規劃系統方塊圖:
電路板是用承田電子的TinyPlan板子,TinyPlan是將ESP8266模組與USB還有reset電路整合,與Adruino IDE結合使用非常容易與方便。

為了確保ESP8266能透過A4988驅動步進電機馬達,我先把測試電路接起來,做了以下實驗。
《用我DIY的電源供應器,
5V接TinyPlan,
A4988則接另一12V電源》

《TinyPlan上ESP8266模塊》

《DIY的A4988測試板》

《視訊分享》

實驗結果一切正常。。。。

測試code:


#include "A4988.h"

// Motor steps per revolution. Most steppers are 200 steps or 1.8 degrees/step
#define MICROSTEP 16
#define MOTOR_STEPS (200 * MICROSTEP)

// All the wires needed for full functionality
#define ENBL 15
#define DIR_1 13
#define STEP_1 12

// microstep control for A4988
A4988 stepper_1(MOTOR_STEPS, DIR_1, STEP_1, ENBL);

long move_r = 360;
int dir = 1;
void setup() {
  /*
     Set target motor RPM.
  */
  stepper_1.setRPM(10);
  stepper_1.setMicrostep(MICROSTEP); // make sure we are in full speed mode
}

void loop() {
  /*
     The easy way is just tell the motor to rotate 360 degrees at 1rpm
  */
  stepper_1.rotate(move_r * dir);
  dir = dir * -1;
}


參考資料:
A4988 arduino Library download - 《here》

沒有留言:

張貼留言