micro:bit X MbitBot 創造Q腳獸(二)

Updated: Jun 10, 2019




micro:bit X Q腳獸-程式撰寫篇

前言

小夥伴們手邊的Q腳獸已經組裝完成並且校正完畢了嗎?

還沒有的小夥伴請參考上一篇 "micro:bit X Q腳獸-組裝與校正" 進行組裝與校正喔!


本篇要教大家的是如何讓Q腳獸動起來,並且是扎實的動起來!


怎麼個扎實法呢?剛開始時小編以為很容易,不過就是一隻腳抬起另隻腳落下嗎?應該沒什麼難度吧!沒想到這一弄就是3小時,3小時過後我的Q腳獸還是走得相當奇怪,像殭屍一樣拖著走...是小編自己太自大了,於是趕緊上網爬文,尋求各路高手的幫助!

果真只要google一開,立馬讓您站在巨人肩膀上。還真讓小邊找到了一則優質好文:

Make:Taiwan 如何編寫Arduino程式讓四足機器人移動

有興趣的小夥伴們可以好好拜讀一下這篇文章。


動作流程

那這邊小編就針對我們的Q腳獸,將文章內容簡略的告訴大家,如何才能扎扎實實的前進。

首先我們必須要知道,如何讓Q腳獸抬起一隻腳後還不至跌倒。這點相當重要!

腳要離地才能扎扎實實的前進,老拖著地板的移動就是小編Q腳獸走鐘的原因。


我們先來看一下怎麼抬腳才不會跌倒。如下圖所示,Q腳獸身體的正中心為中心點(紅色圈圈),扣除抬起來的那隻腳(紅色),其餘三隻腳的位子,必須要可以畫出一個涵蓋中心點的三角形,涵蓋越多站的越穩。


知道如何抬起一隻腳還能站穩後,就可以來了解整個前進的動作流程啦!

如下圖所示,總共六個步驟為一個循環。


大致上來說就是:站穩>伸右腳>身體向前推>站穩>伸左腳>身體向前推

還是不太了解對不對,沒有關係~小編會一步步解說並說明程式,說明時會依照下圖,每個伺服馬達會以各自的接腳編號稱呼。



程式說明

建議是將每一步都寫在函式積木裡,這樣在修改上會比較清楚。


第一步(站穩):

如同剛剛說的,在抬腳前必須讓其他腳形成一個涵蓋中心點的三角形。因為下一個動作是抬右前腳,所以我們必須讓左前腳、左後腳與右後腳形成一個可以站穩的三角形。


由圖中可以看出左半邊是維持一開始的站立姿勢,只有右半邊不一樣,所以只要控制右半邊的伺服馬達即可。


程式撰寫如下

在動作中,S5向後移動加上S6向前移動,即可達到站穩的姿態。但在程式中為什麼S6移動前還抬升了S8呢?這是因為在移動的循環中,第一步的上一步為第六步,第六步的右後腳較為靠後。

故回到第一步時,抬升S8再移動S6會使整體流程更順暢。



第二步(伸右腳):

顧名思義就是先抬起S7再讓S5向前轉動,最後放下S7。


程式撰寫如下


第三步(身體向前推):

這一步是關鍵,前兩步都只是預備前進的動作,在這一步才會真正讓Q腳獸身體向前位移。

從圖片可看到我們需要一口氣移動四隻腳,當四隻腳一起向後,身體就會被往前推,如此身體就會向前位移一點點。

整個移動的流程會有兩次將身體向前推的步驟,Q腳獸就是靠這兩次動作漸漸向前位移。


程式撰寫如下


第四步(站穩):

經過第三步後你會發現Q腳獸的右半邊呈現原本的站立狀態,而左前腳已與右半邊形成涵蓋中心點的三角形。所以只要移動左後腳向前形成可以讓左前腳抬起的三角形即可。這一步剛好與第一步形成的姿態對稱。


程式撰寫如下


第五步(伸左腳):

與第二步類似,這邊先抬起S2,再將S4向前轉動,最後放下S2。


程式撰寫如下



第六步(身體向前推):

與第三步相同,這是移動循環的第二次位移,都是將身體向前推。一口氣移動四隻腳,身體就會向前位移一點點。


程式撰寫如下


上傳程式

這樣移動的每個步驟都完成了,將每一步的函式依序放在重複無限次的積木內,也建議各位小夥伴可以將站立的程式放在當啟動時,讓每次啟動時都是呈現站立的狀態。

再將程式上傳到micro:bit,打開電源就可以看看Q腳獸有沒有向前移動囉!


猶如拔山倒樹而來!如果想要加快動作或減慢動作觀看每個移動步驟,可以調整暫停的時間。但建議還是不要調的太短,畢竟馬達移動也需要時間。



範例程式連結

連結網址



結論

學會向前移動後,小夥伴們可以挑戰看看如何讓Q腳獸旋轉方向與招手。比起向前移動,這些動作的難度相對簡單,有興趣的小夥伴可以試看看。您也可以加入另外一塊micro:bit當作遙控器,透過廣播操控Q腳獸。或是透過micro:bit上5x5的LED陣列,為Q腳獸新增表情。

有非常多可能等著你來發掘,是不是相當有趣呢!那我們下一主題再見~以上!

創客萊吧MakerLab

高雄市左營區博愛二路202號B1F

0989-250-580