Stack-Chan機器人

這是一位日本的神人(Shinya Ishikawa )發起的專案,一個手掌大小的機器人,使用M5Stack當作內核,使用二個舵機馬達做出X軸及Y軸的擺動(pan-tilt)組成了一個很可愛的萌寵小機器結構,原作者想創建一個任何人都可以從頭開始構建的開源機器人。 

Stack-Chan們

可以做許多不同的版本,選用M5Stack Core或Core2來做核心,印不同的外殼、載入不同的程式都可以形成不一樣的樂趣…

專案網址:https://hackaday.io/project/181344-stack-chan-javascript-driven-super-kawaii-robot
引用作者的說明:Stack-chan is open in two aspects. First, All the resources of Stack-chan are distributed under Apache-2.0 license, including the schematics, the 3D model of the case and the firmware. Second, I'm opening up not only the source code and model data for Stack-chan, but also the entire process of creating it. In other words, I shared widely the background issues, the decisions I made, the troubles I had, and the mistakes I made so that users can learn how to make and customize Stack-chan. You can follow the process by searching its official twitter hashtags. 

想自己做一台可以先到他的Github下載相關的檔案:github.com/meganetaaan/stack-chan 

列印Stack-Chan的外殼

這小小的機器人結構十分的簡單,一個兩軸的pan-tilt組成及一個外蓋和小小的腳部,作者提供了完整的3D列印檔,大概花個7~8個小時來印它,如果想要有更多的搭配或顏色可就要花更多的時間了!

你會發現列印件設計得剛剛好,我是選使用SG90舵機的版本,還有使用總線舵機的版,不過日本容易買到的SERVO我們可不好買,所以就用最普羅便宜的SG90啦!

※其實就算是SG90,我們買到的也大都不是原廠所謂的正版,沒關係 !能做出來就好~

到作者的GitHub還提供了詳細的組裝動畫:github.com/meganetaaan/stack-chan/tree/dev/v1.0/case 

材料檢查:M5Stack Core(16M閃存的版本)、二個180度舵機(上圖用的是M5STACK的,其實就是SG90,線長比較短省得自己做頭),3D列印件,由於我們沒有作者設計的PCB版(OpenSource但我們不太可能自己去洗電路板,日本可能比較方便),所以我們就自己用小麵包板(可愛的25洞小板)來湊和一下,使用電容目的是濾波吧!避免舵機的抖動~那條ph2.0是M5Stack特規,是要插入port.A用的,和我們這兒一般買到的PH2.0可能不太一樣(我是直接從官方店舖買的),另一頭自己做成杜邦接頭(公)

pan-tilt零件接線方式

利用25孔特規的小麵包板

(參考:https://raspberrypi.mongonta.com/how-to-make-stackchan-m5gobottom/在這網頁說明中,把其中一個舵機的排針退開換接四pin的,用意是這樣的,從M5Stack的PORT.A接線過來(4PIN)分別是VCC.GND21和G22,這種接法儘可能降低製作的難度,讓一般人或小朋友都容易上手吧,不過port.AM5Stack CORE版本預設的i2c腳位,這種作法就有一條排線會露出Stack-Chan外頭。

使用這種組法i2c port就不能再用,也就是不能再接m5的一些感測器了

二種不同的電容

陶瓷電容無極性,電解電容有極性,陶資電容一般用於訊號源濾波,而電解電容一般用於電源部分,長腳是正極不可接錯

pan-tilt的組合

這個列印件設計得剛剛好,塞入二個SG90後,旁邊的位置剛好可以把小麵包板電路放進去,感覺到作者的細心~

x軸及y軸舵機的擺法

使用M5電池擴充板

M5Stack core (basic版本)出場

如果先把電池擴板先鎖固在Stack-Chan的外殼上(折掉原本的六角孔小螺絲改用m2x10的自攻螺絲)那麼就不需要去鎖M5Stack Core的m3螺絲了,因為可以直接接上去就好,也好拆裝。

使用的CORE需要是有16MB記憶體的版本(現在買的應該都是了吧!),第一次開電就會來個預設的聲光SHOW

別急著把Stack-Chan組起來,先寫入程式接一下舵機讓它跑預設角度(90度)再說

要載入Stack-Chan的主程式,現在有個很簡單的方法,就是下載M5BURNER來燒錄程式→docs.m5stack.com/en/download 

在這個V3的版本中就有Stack-Chan的映像檔可以直接燒錄,把CORE接上,選好要燒錄的檔,按BURN就行了,當然要選一下CORE接在哪個COM埠

組裝起來

這就是燒錄進去的程式,可以把機體起裝起來測試囉!沒有錯誤的話就是這個有趣的小黑臉出現,不自主地搖頭晃腦,還會出一些圖說文字,預設值是以下隨機出現:
- "こんにちは"- "Hello"- "Bonjour"- "你好"- "私はスタックチャン"- "我是Stack-chan"- "I'm Stack-chan"

- "Je suis Stack-chan"

程式的設定檔

剛燒錄進去的程式跑的是預設值,可以下載作者的原始碼,其中在data\yaml目錄下有個SC_Config.yaml文字檔,可以自己定義參數,像是Stack-Chan圖文框要出現的文字都可以在這個檔裡設定,讀入自訂設定的方法是利用Micro-SD卡→在SD卡根目錄放入\yaml\SC_Config.yaml,將卡插入M5Stack Core程式啟動時就會去讀。

還可以設定使用的pin,如果不想佔用portA的話,不過原始設計是利用PortA來為二顆舵機供電,所以順便就以G21和G22來做訊號傳輸,如果選用別的PIN,就要有對應的電路規劃,比如加上M5GO的底座擴充板(有PortB和PortC),即使如此也不能使用PortB,因為PortB使用G26和G36(只能Input)=~ 哈哈講遠了

*我個人喜歡用bus板或proto空板來安排電路,不過就是要動到電烙鐵

Stack-Chan開機測試 

組起來就是要跑跑看囉!那條PH2.0的線就要從裡頭拉出來插在M5Stack Core側面紅色的portA,開機就開始動起來了,程式預設就是在一般常態時,二軸會自己動,螢幕也會做表情(ESP32的多執行緒程式)

※可以聽到舵機傳來一些噪音,我想那是電流吃緊造成的,因為這種接法,3.7v的鋰電供應給CORE然後透過PortA轉出的5V供應二個舵機,通常這種主板轉出的5V電,電流都有點小,而9g舵機小歸小也是需要一 定額度的電流才能啟動(這種問題只能靠自訂電路改善)

藍芽連接播音

Stack-Chan的初始發想就是要製作一台小小的掌上小寵物,會自己變化可愛的表情,自己隨意擺動,給主人帶來療癒的感覺,所燒錄進去的程式包含了A2DP的功能,可以透過藍芽傳送音樂播放,非常有趣的

組裝補充說明

其實Stack-Chan發展過程中,造型也有許多不同的版本,本頁說明使用在下載的封包中case/contributed/mongonta_case_for_SG90_and_M5GoBottomBoard/case_for_SG90andM5GoBottomBoard/ 裡的列印檔,在/case/case_SG90/ 目錄中還有另一個不同的版本,想做的人可以自己參考一下就知道了

底座舵柄固定

把pan-tilt和底座組起來

M5Stack Core Basic Bottom板

如果你買了M5Stack Core Basic都會附一個Bottom底板,可以把它拆下來使用

Bottom底板安裝在外殼上

我的做法是利用這塊Bottom板固定在Stack-Chan的外殼前方,如此主板就可以直接嵌上,不用再特別鎖螺絲了

Bottom板有附一個很小的鋰電

Core主板直接卡上去

在Stack-Chan的3D列印件中還包含了Accessories_for_M5GoBottomShell,可以印出來插在外殼預留的長方形孔,有造型耳朵或是一些相容於樂高孔規格的配件…作者的想法還真多,配服…