AVATA二足機器人
這是M5STACK與二足機器人(miniRobot)的合體
這是M5STACK與二足機器人(miniRobot)的合體
初始運行測試
初始運行測試
在這台機器人的創作中,我主要設計了機體結構的部份,延續設計Micro:bit二足小機器人的經驗,將主板轉換成M5Stack Core,造型上我也參考了stack-chan 的構思,但是我不使用3D列印的方式,因為我覺得太慢了,改而利用壓克力雷切
在這台機器人的創作中,我主要設計了機體結構的部份,延續設計Micro:bit二足小機器人的經驗,將主板轉換成M5Stack Core,造型上我也參考了stack-chan 的構思,但是我不使用3D列印的方式,因為我覺得太慢了,改而利用壓克力雷切
這個構造中包含了四個SG90舵機(使用三個PIN來控制)
這個構造中包含了四個SG90舵機(使用三個PIN來控制)
M5AVATAR mini Robot的演化
M5AVATAR mini Robot的演化
這些設計是延續的,一開始是做了Micro:bit二足機器人,接著學習用壓克力製作像Stack-chan一樣外型的音樂機器人,最後又整合成M5AVATAR mini Robot,這個機器人預計可以播放音樂(虛擬頭像會跟著反應),而又能像OTTO一般地運動
這些設計是延續的,一開始是做了Micro:bit二足機器人,接著學習用壓克力製作像Stack-chan一樣外型的音樂機器人,最後又整合成M5AVATAR mini Robot,這個機器人預計可以播放音樂(虛擬頭像會跟著反應),而又能像OTTO一般地運動
零件與材料
零件與材料
M5Stack core
M5Stack core
M5Stack產品的核心,由ESP32擔任主控晶片,有著2吋的彩色螢幕
M5Stack產品的核心,由ESP32擔任主控晶片,有著2吋的彩色螢幕
PROTO洞洞擴展板
PROTO洞洞擴展板
由M5Stack所出品的擴展板,保留了與主板介接介面的電路空板,方便自行配買電路
由M5Stack所出品的擴展板,保留了與主板介接介面的電路空板,方便自行配買電路
壓克力組件
壓克力組件
自行設計的壓克力雷切組件,主要用於建構機器人的外型
自行設計的壓克力雷切組件,主要用於建構機器人的外型
升壓板
升壓板
為了讓電壓電流能穩定地供應整個機器人的運作,使用能將3.7V升壓至5V的升壓板,體積小且號稱能提供2A的電流
為了讓電壓電流能穩定地供應整個機器人的運作,使用能將3.7V升壓至5V的升壓板,體積小且號稱能提供2A的電流
16340電池組及舵機
16340電池組及舵機
在電力供應方面採用16340充電池及電池座,它將供應M5Stack及8Ω2w的小喇叭還有四顆9g舵機的電力需求
在電力供應方面採用16340充電池及電池座,它將供應M5Stack及8Ω2w的小喇叭還有四顆9g舵機的電力需求
黏著劑
黏著劑
在這個方案中,除了舵柄使用螺絲固定,其他壓克力件採用膠水黏著的方式,建議採用黏著力較強的才能黏好壓克力
在這個方案中,除了舵柄使用螺絲固定,其他壓克力件採用膠水黏著的方式,建議採用黏著力較強的才能黏好壓克力
電路板的製作
電路板的製作
外部DAC晶片MAX98357A
外部DAC晶片MAX98357A
不想使用M5Stack Core內建的DAC和小小聲的喇叭,所以使用I2S界面的DAC(Digial to Analog Converter) 晶片,這兒用MAX98357A 來拖動外接的2W小喇叭(總是會比內建的還大聲且音質也優美),這塊晶片將被一併計畫在自製的電路板中
不想使用M5Stack Core內建的DAC和小小聲的喇叭,所以使用I2S界面的DAC(Digial to Analog Converter) 晶片,這兒用MAX98357A 來拖動外接的2W小喇叭(總是會比內建的還大聲且音質也優美),這塊晶片將被一併計畫在自製的電路板中
M5Stack核心板的腳位圖
M5Stack核心板的腳位圖
想要自己設計外接電路之前,了解一下CORE的PIN位及作用是很重要的,docs.m5stack.com/en/core/gray 產品的說明頁有很詳細的介紹,最好先看一下,比如內建的DAC是在G25,如果把這個腳位拿來用,CORE會一直產生噪音G34~G36的腳位都只能接受INPUT,如果拿來用於輸出將不會有作用
想要自己設計外接電路之前,了解一下CORE的PIN位及作用是很重要的,docs.m5stack.com/en/core/gray 產品的說明頁有很詳細的介紹,最好先看一下,比如內建的DAC是在G25,如果把這個腳位拿來用,CORE會一直產生噪音G34~G36的腳位都只能接受INPUT,如果拿來用於輸出將不會有作用
※思考著這個方案中MAX98357A需要使用3個PIN而還要有3個PIN用於四個舵機的訊號(有二顆舵機接同一個PIN)
※思考著這個方案中MAX98357A需要使用3個PIN而還要有3個PIN用於四個舵機的訊號(有二顆舵機接同一個PIN)
※儘量不使用G21和G22,因為這二個PIN是連接到PORT A,如果使用了,以後PORT A便無法接其他模組
※儘量不使用G21和G22,因為這二個PIN是連接到PORT A,如果使用了,以後PORT A便無法接其他模組
PROTO電路板接線示意圖
PROTO電路板接線示意圖
這個可以考驗一下焊接的功力,在proto板上置放PH2.0的電源接口及MAX98357A加上四個3PIN的舵機接頭
這個可以考驗一下焊接的功力,在proto板上置放PH2.0的電源接口及MAX98357A加上四個3PIN的舵機接頭
焊好PROTO擴充板之後必須先進行測試(載入程式到CORE,程式部份後述),確定它的可用性,用一顆16340的3.7V電源供應M5Stack CORE及MAX98357A和四顆舵機的運作,※我曾測試過使用MG90結果電流會有不足的現象,使用SG90則可以運作
焊好PROTO擴充板之後必須先進行測試(載入程式到CORE,程式部份後述),確定它的可用性,用一顆16340的3.7V電源供應M5Stack CORE及MAX98357A和四顆舵機的運作,※我曾測試過使用MG90結果電流會有不足的現象,使用SG90則可以運作
機器人腳部的製作
機器人腳部的製作
只不過不需要剪舵機的固定片
只不過不需要剪舵機的固定片
二足機器人的下半身
二足機器人的下半身
這個部份比較考驗美勞製作的功力,用膠水黏壓克力需要多一些的耐心,還有一點必須注意的是舵機的選擇,用於腿部的二顆舵機會被接在同一個pin,意即它們將接受一樣的訊號,所以最好能先挑二顆舵齒誤差接近的(一樣更好)
這個部份比較考驗美勞製作的功力,用膠水黏壓克力需要多一些的耐心,還有一點必須注意的是舵機的選擇,用於腿部的二顆舵機會被接在同一個pin,意即它們將接受一樣的訊號,所以最好能先挑二顆舵齒誤差接近的(一樣更好)
機板主體的建構及電路的連接
機板主體的建構及電路的連接
這個部份是相對地重要的,因為在這個方案中不使用Servo Module直接使用CORE來供電給MAX98357A及四顆舵機,在電力方面的負擔是有點勉強的,但經過測試後,使用16340+大電流升壓板是可以滿足這些需求的
這個部份是相對地重要的,因為在這個方案中不使用Servo Module直接使用CORE來供電給MAX98357A及四顆舵機,在電力方面的負擔是有點勉強的,但經過測試後,使用16340+大電流升壓板是可以滿足這些需求的
機器人上半部的機殼
機器人上半部的機殼
這個部份的組裝其實不困難,主要就是黏一個箱子,這個箱子有中有一個橫桿是用來鎖固16340的電池盒的,前方那片3mm厚度的外框形是用來鎖定PROTO板子的,後面有個圓孔洞的那片是預留給薄形小喇叭的
這個部份的組裝其實不困難,主要就是黏一個箱子,這個箱子有中有一個橫桿是用來鎖固16340的電池盒的,前方那片3mm厚度的外框形是用來鎖定PROTO板子的,後面有個圓孔洞的那片是預留給薄形小喇叭的
全部的零件都置入上半部機殼後,線路的部份全部由前方穿出,接上PROTO板子上
全部的零件都置入上半部機殼後,線路的部份全部由前方穿出,接上PROTO板子上
機體部份完成
機體部份完成
線路都接好了,最後一個動作就是將PROTO板鎖固在前方框架上,這樣機器人的機體就完成了,M5Stack CORE隨時可以拆裝的,不用額外用螺絲鎖定了,再來的研究就是程式的寫法了(只有健康的身體是不夠的,)還要有靈活運作的腦袋(程式)
線路都接好了,最後一個動作就是將PROTO板鎖固在前方框架上,這樣機器人的機體就完成了,M5Stack CORE隨時可以拆裝的,不用額外用螺絲鎖定了,再來的研究就是程式的寫法了(只有健康的身體是不夠的,)還要有靈活運作的腦袋(程式)
程式部份的撰寫及參考資料
程式部份的撰寫及參考資料
使用Arduino來寫入程式
使用Arduino來寫入程式
最重要的一點是開發板的選擇→M5Stack-core-ESP32
最重要的一點是開發板的選擇→M5Stack-core-ESP32
※我覺得這位作者真是太厲害了~
※我覺得這位作者真是太厲害了~
參考資料的部份
參考資料的部份
### What you need ###
### What you need ###
* [M5Stack] (http://www.m5stack.com/ "Title") (I checked the operation with M5GO.)
* [M5Stack] (http://www.m5stack.com/ "Title") (I checked the operation with M5GO.)
* Arduino IDE (I checked the operation with 1.8.5.)
* Arduino IDE (I checked the operation with 1.8.5.)
* [Arduino core for the ESP32] (https://github.com/espressif/arduino-esp32 "Title")
* [Arduino core for the ESP32] (https://github.com/espressif/arduino-esp32 "Title")
* [M5Stack Library] (https://github.com/m5stack/M5Stack.git "Title")
* [M5Stack Library] (https://github.com/m5stack/M5Stack.git "Title")
* [ESP8266Audio] (https://github.com/earlephilhower/ESP8266Audio/ "Title")
* [ESP8266Audio] (https://github.com/earlephilhower/ESP8266Audio/ "Title")
* [M5Stack-SD-Updater] (https://github.com/tobozo/M5Stack-SD-Updater/ "Title")
* [M5Stack-SD-Updater] (https://github.com/tobozo/M5Stack-SD-Updater/ "Title")
* [M5Stack_TreeView] (https://github.com/lovyan03/M5Stack_TreeView/ "Title")
* [M5Stack_TreeView] (https://github.com/lovyan03/M5Stack_TreeView/ "Title")
MIT License
MIT License