古人智慧

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》

Spider Robot family 成員大集合

2016年底了,把手上的Spider Robot蜘蛛機器人做個盤點。
做這個project最大的收穫有幾個部分“
1. 數學-三角函數:這部分是非常基礎而且必要的部分!
2. 熟悉Arduino與ESP8266平台開發,學習有關於interrupt與HTML語法。
3. 3D建模,使用Sketchup建模,開發蜘蛛的動件結構,腳的結構簡單與結實是重點。
4. PCB設計,使用Eagle PCB設計電路與layout,再用雕刻機刻出電路板。
5. 仿真步態模擬,開發不同與有趣的步態。

提供Spider Robot蜘蛛機器人的寫真:
[Give me five!]

[hand in hand~]

[疊疊樂]

[兄弟機合照-1]

[兄弟機合照-2]



[圍著老祖宗]




2016年12月16日 星期五

Git架設-Banana-Pi M2+

因正職工作因素,時常出差在外地。在hotel寫Code時,需要參考以前的code都很困擾。如果把這些code全部上傳到GitHub又不太現實。
心中就想自己有個Git repository可以從外地進來取code,應該是很美好的事!
是的,在網路上已經有很多先進提供很好的方案,經過實作後完全符合我的需求,真是太棒了!

記錄實作流程:
設備:
1. Banana-Pi M2+
2. TP-Link Wifi分享器

安裝Git:
>> sudo apt-get install git-core

建立一個Git repository放在  /var/git 目錄內:
>> cd /var
>> sudo mkdir git

>> cd git
>> sudo mkdir regis_project.git

>> cd regis_project.git
>> sudo git --bare init

建立git的group:
>> sudo groupadd git
>> sudo usermod -a -G git your_login # your_login改成你自己的帳號。
>> sudo chgrp -R git /var/git
>> sudo chmod g+rwx -R /var/git

到這裡,已經在server(Banana-Pi)端完成Git的部署。
再來就是把所有的code上傳到這個repository。

我所有的code放在Mac的 ~/Documents/arduino/regis_project
>> cd ~/Documents/arduino/regis_project
>> git init

設定server端的short name,之後輸入比較容易,因為避免被駭,我把ssh的port換掉。
>> git remote add origin ssh://your_login@your.host:port/var/git/regis_project.git

這裡的host name,如果在內網就直接輸入banana-pi的IP,在外網就要輸入外網對應的IP。

把code上傳
git add .
git commit -m "說明remark"
git push origin master

完成所有code上傳。
再來,就是實驗下載code。

在PC上d槽
D:\test\t2\regis_project> git init
D:\test\t2\regis_project> git clone origin
就可以把code全部拉下來在這個目錄。

有用的命令:
git status -v
git log
git log --graph --oneline
git pull
git mergetool



參考先進文章:
簡易git server架設教學 (用Ubuntu linux)
伺服器上的 Git - 在伺服器上部署 Git

2016年12月15日 星期四

[Spider Q] Q版的蜘蛛機器人

製作一系列的Spider Robot,主控板從Arduino ProMini到ESP8266,發現用ESP8266模塊的TinyPlan或MinPlan還不錯用。

為何用TinyPlan與MiniPlan PCB?
因為Arduino的cpu只有8bit,memory只有32kB,要做的複雜的功能與動作限制多,而且無線傳輸需要再加入藍牙或是Wifi模組。ESP8266吸引人的部分,就是32bit CPU,memory高達4MB內建Wifi,這足以滿足大多開發者的需求。

這是TinyPlan與MiniPlan PCB的主要方塊圖,把USB與power與ESP8266整合,提供很好的使用體驗。
Spider Robot Q是2DOF簡化版,一支腳有2個關節,總共8個servo。
TinyPlan提供8個GPIO產生PWM訊號就足夠推動這8個servo,不僅體積縮小結構簡單,且價格便宜不少。

視頻分享:
控制器解說:這是HTML的遙控器,很容易加入其它特殊功能。因為每顆servo都有一些角度誤差,每隻腳與關節都必須calibration來確保四足對地板都是平衡。



實際操作:

兩隻Spider-Q跳舞~~


設計細節分享:
結構:

控制板:

軟件: