古人智慧

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

2017年1月27日 星期五

自平衡車 - ESP8266 + A4988 + NEMA39 (3/xx)

軟件開發是重中之重,怎麼說?
當結構與硬件完成後,軟件的開發耗掉不少時間研究演算法,每個部分都非常的深。。。

這次是使用mpu6050的DMP code,可以直接從FIFO取出加速與角速度融合的角度,可以減少ESP8266 CPU的loading,但是DMP code的行為是需要用interrupt中斷通知CPU取值,這會多出一根GPIO的需求。ESP8266的GPIO很少,為了節省GPIO,我運用polling方式來取代中斷,設定在5ms區間來取值,應該很穩定。

第一階段已經可以穩定站立與往前行進,不過,PID與angle fusion的演算法還需要再優化。

影片分享:
站立:
往前行進:
加速與減速的旋轉:

2017年1月24日 星期二

自平衡車 - ESP8266 + A4988 + NEMA39 (2/xx)

3D建模與打印美圖分享:
《3D 建模》

《採用39步進馬達》

《3D打印的輪子,還要去買個橡膠圈來套在輪框》

《輪子粗胚》

《把mpu6050塞在機器中心,不僅穩固而且達到精確效果》

《組合成型》

《電路板垂直方式塞進兩個步進馬達中間》

《做個外殼,不僅美觀與防撞,而且避免裡面線路脫落》

《這曲線還不錯,3D建模能力有些提升,呵呵》

《有紅有綠,紅配綠狗臭屁》

《完美包裝》

《還不錯看》

《內臟包的好好地》

測試程式試跑~~正常!!


2017年1月15日 星期日

自平衡車 - ESP8266 + A4988 + NEMA39 (1/xx)

每次看到3年前做的自平衡車都好想幫他升級,但是要玩的的東西太多了~~~
今天,google到一款JJRobots open design- B-Robot的項目,設計的真棒!

真是很好玩的平衡車,跌倒了可以自動爬起來!!!
燃起心中的慾望, 就狠狠把時間留下,準備做個不一樣的自平衡車。。。。

原設計是用Arduino Uno當做host,ESP8266做wifi接收器,接收OSC的protocol。
但是我自己的經驗是直接用ESP8266當host會更直接,而且結構簡單價錢便宜。
《先考慮TinyPlan(ESP-12F) GPIO是否足夠,8 pin剛好》

《要做一塊PCB來接步進電機馬達》

《拿之前的A4988板子來試著堆疊》
《橫擺》

《疊著》



《看起來還可》

用Eagle PCB畫電路圖與Layout。。。


再來,就是用我DIY的雕刻機,雕刻效果還真不錯!!!



《簡單的零件》

《焊接完成,背面》

《正面》

《裝上A4988》


《應該用這種擺法,體積最小》

《開始測試》

《夜間模式,漂亮嗎?》

《視頻分享》

video

2017年1月2日 星期一

Spider Robot恭祝大家2017新年快樂~

祝大家新年快樂,身體健康,事事順心,心想事成~


如何用LibreOffice/OpenOffice輸入數學公式

製作Spider Robot最重要的部分就是三角函數還有矩陣運算。

這學習過程跌跌撞撞,尤其是cos、sin等等角度與象限整合的矩陣運算,真令人頭昏腦漲的搞不清楚,實在沮喪~~

還好,從Google search中找到前人的智慧與分享,終於打通任督二脈,趕快記下來!!

先分享Spider robot在3軸旋轉的動作,好有趣~
《這個版本身體與腳會分開,做的不是很好》
《修正版》

這是我手寫的旋轉矩陣,


但是,如何用word寫下三角函數與矩陣公式? 這又是一門深奧的學問,真是過一關卡一關,關關難過關關過-----

首先,找到用LibreOffice可以輸入數學公式。
在Writer中點選「插入/物件/公式」後,
輸入數學式子原始碼:
left [ matrix{(X_2-X_1)#(Y_2-Y_1)#(Z_2-Z_1)##(X_3-X_2)#(Y_3-Y_2)#(Z_3-Z_2)##(X_1-X_3)#(Y_1-Y_3)#(Z_1-Z_3)} right] left ( matrix{ X##Y##Z} right) = left ( matrix{ L_1^2-L_2^2+R_2^2-R_1^2##L_2^2-L_3^2 +R_3^2-R_2^2##L_3^2-L_1^2 +R_1^2-R_3^2} right)

呵呵,就出現這個矩陣,就是我要的!!
那就寫個旋轉矩陣試試,對X/Y/Z軸旋轉矩陣為-

其中,我卡在對Y軸旋轉的矩陣好幾天,後來在可汗學院找到這課程,如同打開神秘大門,讃!Rotation in R3 around the x-axis

然後,把這3個矩陣整合成為3D旋轉矩陣!
我竟然可以做出這矩陣,太帥了!!
source code如下:

left [ matrix{X_1##Y_1##Z_1} right] = [R_x*R_y*R_z]left[ matrix{X##Y##Z}right  ] = left[ matrix{cos%beta#0#sin%beta##sin%alpha Sin%beta#cos%alpha#-sin%alpha cos%beta##-cos%alpha Sin%beta#sin%alpha#cos%alpha cos%beta}right ]left [ matrix{ cos%gamma#-sin%gamma#0##sin%gamma#cos%gamma#0##0#0#1} right] left[ matrix{X##Y##Z}right] newline %= left[ matrix{cos%beta cos%gamma#-cos%beta sin%gamma#sin%beta##sin%alpha sin%beta cos%gamma+cos%alpha sin%gamma#-sin%alpha sin%beta sin%gamma+cos%alpha cos%gamma# -sin%alpha cos%beta##-cos%alpha sin%beta cos%gamma + sin%alpha sin%gamma#cos%alpha sin%beta sin%gamma+sin%alpha cos%gamma#cos%alpha cos%beta}right ]left[ matrix{X##Y##Z}right  ]



參考資料: