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

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

前言

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

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

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

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

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

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

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

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

動作流程

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

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

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

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

 Q腳獸四隻腳行進示意圖
Q腳獸四隻腳行進示意圖

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

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

 六步驟流程圖
六步驟流程圖

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

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

接腳編號
接腳編號

程式說明

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

第一步(站穩):

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

 站穩模擬圖
站穩模擬圖

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

程式撰寫如下:

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

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

「站穩」程式撰寫與模擬圖
「站穩」程式撰寫與模擬圖

第二步(伸右腳):

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

  伸右腳模擬圖
伸右腳模擬圖

程式撰寫如下:

 「伸右腳」程式撰寫與模擬圖
「伸右腳」程式撰寫與模擬圖

第三步(身體向前推):

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

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

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

 身體向前推模擬圖
身體向前推模擬圖

程式撰寫如下:

「身體向前推」程式撰寫與模擬圖

第四步(站穩):

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

站穩模擬圖

程式撰寫如下:

「站穩」程式撰寫與模擬圖

第五步(伸左腳):

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

伸左腳模擬圖

程式撰寫如下

「伸左腳」程式撰寫與模擬圖

第六步(身體向前推):

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

身體向前推模擬圖

程式撰寫如下

「身體向前推」程式撰寫與模擬圖

上傳程式

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

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

程式設定
Q腳獸動起來!
Q腳獸動起來!

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

結論

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

有非常多可能等著你來發掘,是不是相當有趣呢!請大家多多支持與分享唷!那我們下一主題再見~以上!