古人智慧

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

2015年4月18日 星期六

縮小版平衡車 Arduino 2WD Auto Balance robot - Small version

去年初(2014)做第一款自平衡車時,
為了找零件來固定馬達,電路板等模組,
我把小孩子的組合玩具拆來用,
讓他難過一陣子。。。。



2014年中,進入了3D Printer世界,

我終於可以自己設計零件來固定馬達與電路板,
讓作品可以更接近現實產品,
真是讓人興奮啊!!!



真正實作之前,我的習慣是先將主要的零件
用簡單快速的方式連接起來,並且做驗證,
確定方向想法是可行,
然後,再進行真正的堆疊與PCB製作。


之前已經完成平衡車,這次是用新的5V電機馬達,而且不帶碼盤。
所以,我要先把碼盤的部份實作出來。

驗證5V電機驅動模組,把Arduino結合電機與碼盤,
還有光耦開關用麵包板連接好如下圖。









測試程式:

const int buttonPin = 2;     // Opto input pin
const int ledPin =  13;      //  LED pin
const int motorPin1 =  4; // IN1 of Motor driver pin 
const int motorPin2 =  6; // IN2 of Motor driver pin

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(buttonPin, INPUT);  

  // output PWM to IN1, IN2 pins
  analogWrite(motorPin1, 255);
  analogWrite(motorPin2, 255);

}
int buttonState = 0;         // variable for reading the pushbutton status

void loop() {
  // read the state of the opto 
  buttonState = digitalRead(buttonPin);

  if (buttonState == HIGH) {
    // turn LED on:
    digitalWrite(ledPin, HIGH);
    //analogWrite(motorPin, 255);
  }
  else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
    //analogWrite(motorPin, 128);
  }  
}

通上5V,電機馬達會立即動起來,
如果,LED會閃爍,恭喜,第一步成功!


接下來,把Opto用洞洞板焊接起來,如下圖:




然後,與車身試組看看。




再來,開始對整體展開堆疊。
我把電機馬達,Arduino,Gryo等等的零件用
Sketchup建模,然後在電腦上排列組合比較有效率。



設計出車身底盤結構3D架構圖

然後,用我心愛的3D打印機開始打印!!!!
Cura切片


經過1.5hr後,噹噹,印出來的品質還不錯!











組合的效果幾乎無誤差,好爽啊!!!

把之前作品比一下,嗯,看起來有感覺了!!!


來個初體驗看看效果如何




確定功能正常後,展開Arduino+Bluetooth+Power主板製作。
我把它們結合在35x53x18mm的尺寸,還蠻小的!










4 則留言: