AVATA二足機器人

這是M5STACK與二足機器人(miniRobot)的合體

初始運行測試

在這台機器人的創作中,我主要設計了機體結構的部份,延續設計Micro:bit二足小機器人的經驗,將主板轉換成M5Stack Core,造型上我也參考了stack-chan 的構思,但是我不使用3D列印的方式,因為我覺得太慢了,改而利用壓克力雷切

這個構造中包含了四個SG90舵機(使用三個PIN來控制)

M5AVATAR mini Robot的演化

這些設計是延續的,一開始是做了Micro:bit二足機器人,接著學習用壓克力製作像Stack-chan一樣外型的音樂機器人,最後又整合成M5AVATAR mini Robot,這個機器人預計可以播放音樂(虛擬頭像會跟著反應),而又能像OTTO一般地運動

零件與材料

M5Stack core

M5Stack產品的核心,由ESP32擔任主控晶片,有著2吋的彩色螢幕

PROTO洞洞擴展板

由M5Stack所出品的擴展板,保留了與主板介接介面的電路空板,方便自行配買電路

壓克力組件

自行設計的壓克力雷切組件,主要用於建構機器人的外型

升壓板

為了讓電壓電流能穩定地供應整個機器人的運作,使用能將3.7V升壓至5V的升壓板,體積小且號稱能提供2A的電流

16340電池組及舵機

在電力供應方面採用16340充電池及電池座,它將供應M5Stack及8Ω2w的小喇叭還有四顆9g舵機的電力需求

黏著劑

在這個方案中,除了舵柄使用螺絲固定,其他壓克力件採用膠水黏著的方式,建議採用黏著力較強的才能黏好壓克力

電路板的製作

外部DAC晶片MAX98357A

不想使用M5Stack Core內建的DAC和小小聲的喇叭,所以使用I2S界面的DAC(Digial to Analog Converter) 晶片,這兒用MAX98357A 來拖動外接的2W小喇叭(總是會比內建的還大聲且音質也優美),這塊晶片將被一併計畫在自製的電路板中

M5Stack核心板的腳位圖

想要自己設計外接電路之前,了解一下CORE的PIN位及作用是很重要的,docs.m5stack.com/en/core/gray 產品的說明頁有很詳細的介紹,最好先看一下,比如內建的DAC是在G25,如果把這個腳位拿來用,CORE會一直產生噪音G34~G36的腳位都只能接受INPUT,如果拿來用於輸出將不會有作用

※思考著這個方案中MAX98357A需要使用3個PIN而還要有3個PIN用於四個舵機的訊號(有二顆舵機接同一個PIN)

※儘量不使用G21和G22,因為這二個PIN是連接到PORT A,如果使用了,以後PORT A便無法接其他模組

PROTO電路板接線示意圖

這個可以考驗一下焊接的功力,在proto板上置放PH2.0的電源接口及MAX98357A加上四個3PIN的舵機接頭

焊好PROTO擴充板之後必須先進行測試(載入程式到CORE,程式部份後述),確定它的可用性,用一顆16340的3.7V電源供應M5Stack CORE及MAX98357A和四顆舵機的運作,※我曾測試過使用MG90結果電流會有不足的現象,使用SG90則可以運作

機器人腳部的製作

只不過不需要剪舵機的固定片

二足機器人的下半身

這個部份比較考驗美勞製作的功力,用膠水黏壓克力需要多一些的耐心,還有一點必須注意的是舵機的選擇,用於腿部的二顆舵機會被接在同一個pin,意即它們將接受一樣的訊號,所以最好能先挑二顆舵齒誤差接近的(一樣更好)

機板主體的建構及電路的連接

這個部份是相對地重要的,因為在這個方案中不使用Servo Module直接使用CORE來供電給MAX98357A及四顆舵機,在電力方面的負擔是有點勉強的,但經過測試後,使用16340+大電流升壓板是可以滿足這些需求的

機器人上半部的機殼

這個部份的組裝其實不困難,主要就是黏一個箱子,這個箱子有中有一個橫桿是用來鎖固16340的電池盒的,前方那片3mm厚度的外框形是用來鎖定PROTO板子的,後面有個圓孔洞的那片是預留給薄形小喇叭的

全部的零件都置入上半部機殼後,線路的部份全部由前方穿出,接上PROTO板子上

機體部份完成

線路都接好了,最後一個動作就是將PROTO板鎖固在前方框架上,這樣機器人的機體就完成了,M5Stack CORE隨時可以拆裝的,不用額外用螺絲鎖定了,再來的研究就是程式的寫法了(只有健康的身體是不夠的,)還要有靈活運作的腦袋(程式)

程式部份的撰寫及參考資料

使用Arduino來寫入程式

最重要的一點是開發板的選擇→M5Stack-core-ESP32

程式內容部份主要是參考https://github.com/mongonta0716/M5Stack-Image-Avatar提供的程式,依需要進行修改

※我覺得這位作者真是太厲害了~

關於操控舵機的部份可以參考→ESP32 arduino PWM 驱动SG90舵机 

參考資料的部份

### What you need ###

* [M5Stack] (http://www.m5stack.com/ "Title") (I checked the operation with M5GO.) 

* Arduino IDE (I checked the operation with 1.8.5.) 

* [Arduino core for the ESP32] (https://github.com/espressif/arduino-esp32 "Title")

* [M5Stack Library] (https://github.com/m5stack/M5Stack.git "Title")

* [ESP8266Audio] (https://github.com/earlephilhower/ESP8266Audio/ "Title")

* [M5Stack-SD-Updater] (https://github.com/tobozo/M5Stack-SD-Updater/ "Title")

* [M5Stack_TreeView] (https://github.com/lovyan03/M5Stack_TreeView/ "Title") 

MIT License