Search this site
Embedded Files
Skip to main content
Skip to navigation
Just Do it
首頁
音樂VS電腦
我的音樂之路
編曲作品賞析
天堂W廣告曲
我的Sony-MD
AI輔助音樂創作
影音拍攝學習
說起拍照
Insta360玩下去
花東影音
其他東東
模組化的概念
自製平板收集箱
製作MakerMind.SG的模型
原地奔跑的T-Rex
進擊的AT-AT
用搖桿玩Scratch遊戲
KS25夢幻水晶音柱
反作用輪&自平衡
製作一個ReactionWheel
JJRobot二輪平衡車
平衡輪腳踏車V1
平衡輪腳踏車V2-2023
藍芽音樂模型底座
風力二足機器人
製作小貓藍芽音箱
OmniWheels-CAR
機械蜂鳥COLIBRI
Kinetic Sculpture動態雕塑
客製化燈板設計
羽球筒音響
語音命令音樂播放盒
DFplayer的串口命令
神社故事屋音樂盒
ESP32/8266相關
咖啡虫氣象站
ESP32-CAM基本設定
視訊迷你履帶車
ESP32 Cam TAMIYA Robot
ESP32-CAM Girpper Car
漫威坦克ESP32Cam版
ESP32藍芽音樂分頻播放器
ESP32音頻分析板
磁流體音響
磁流體音箱
磁流體音箱V2
FerroFluid-Box
喇叭音箱製作
MiniStreer山貓車
MiniSteer山貓車(原始)
MiniStreer山貓車改作
寶工機械手臂電機改裝
AI聊天小竉
小智Ai麵包板版本
WaveShare-Ai小寵
Xmini-C3版本
PocketCard版本
AI的進階應用
小智AI-格魯特
Ai雙軸雲台
AI全向輪車
小智AI的UART通信
數位時鐘製作
M5Stack相關
使用UIFlow(設定)
M5Atom利用STT傳訊M5Stick-C
IKEA_Clock
Plen5Stack機器人
M5StickC機器人
PLEN5Atom機器人
壓克力版PLEN5Stack機器人
M5Stack音樂播放器
M5AVATA二足機器人
Stack-Chan機器人
RFID音樂播放器
認識RFID
音響系統
關於DAC
My Pet Ai小寵物
Micro:bit相關
Micro:bit基礎
安裝桌面版makecode
更新Micro:bit韌體
Micro:bit系列教學
迷你二足機器人
認識SG90舵機
舵機的角度
Micro:bit與凱斯電池及轉板
按鈕及光照觸發事件
廣播觸發事件
創意集錦
關於機器人走路
Cute版二足機器人
動作編輯器
AI機器人
風力仿生獸及電機改裝
麥克拉姆輪夾子車
Micro:bit仿生獸推車
齒輪箱的製作
仿生腳組裝
Micro:bit兩輪車
StandBeestCar程式撰寫
加值改造RacingCar
StandBeestCar_Plus
加上培林版本
Micro:bit與MeArm
Micro:bit V2與舵機板
使用MakeCode來寫程式
MeArm各舵機角度範圍
PLEN:bit
麥昆小車+HuskyLens
Tamiya滑冰機器人改裝
Tamiya-ROW_BOAT改裝
Micro:bit漫威坦克
SU-03T語音辨識
認識一下SU-03T
SU-03T韌體製作初始
發送訊號給Micro:bit
發送訊號給SU-03T
製作Microbit語音控制器
機械仿生眼
關於仿生眼
動手製作仿生眼
眼球的製作
舵機操控方案
Micro:bit語音夾子車
關於電的基礎常識
Micro:bit基礎
關於KSB048擴充板
製作材料篇
先認識馬達的運動方式
夾子車體的組裝
車子程式測試
另一塊Microbit控制車子
使用紅外線遙控器
使用V7RC來控制車子
SU-03T語音辨識
自製Microbit單搖桿
Micro:bit閃光車
尾燈的製作
Micro:bit方向盤
戰鬥恐龍車
Arduino相關
Arduino&麵包板&杜邦線
Arduino IDE
讓LED灯亮起來
HCSR04超音波模組
MeArm機械手臂
MeArm的組裝
使用Arduino操控MeArm
Arduino的JoyStick擴充板
手機藍芽控制MeArm
夾子的改造
MeArm V3版
JJRobot二輪平衡車
接收紅外線操控LED
程式作品
四則基本練習
數學計算大挑戰Open
進階數學四則
整數四則計算大挑戰
四則賓果大挑戰
分數大進擊
因數倍數大進擊
九九乘法遊戲板
AnswerSystem2022
AnswerSystem使用說明
教室內的使用環境
忠義國小
忠義國小網站
忠e數位學習紀錄儀
忠e學生資訊小組
家長資訊專區
為新生家長建議的數位學習資訊
微軟 Teams 的使用
AI世代的數位學習
Just Do it
首頁
音樂VS電腦
我的音樂之路
編曲作品賞析
天堂W廣告曲
我的Sony-MD
AI輔助音樂創作
影音拍攝學習
說起拍照
Insta360玩下去
花東影音
其他東東
模組化的概念
自製平板收集箱
製作MakerMind.SG的模型
原地奔跑的T-Rex
進擊的AT-AT
用搖桿玩Scratch遊戲
KS25夢幻水晶音柱
反作用輪&自平衡
製作一個ReactionWheel
JJRobot二輪平衡車
平衡輪腳踏車V1
平衡輪腳踏車V2-2023
藍芽音樂模型底座
風力二足機器人
製作小貓藍芽音箱
OmniWheels-CAR
機械蜂鳥COLIBRI
Kinetic Sculpture動態雕塑
客製化燈板設計
羽球筒音響
語音命令音樂播放盒
DFplayer的串口命令
神社故事屋音樂盒
ESP32/8266相關
咖啡虫氣象站
ESP32-CAM基本設定
視訊迷你履帶車
ESP32 Cam TAMIYA Robot
ESP32-CAM Girpper Car
漫威坦克ESP32Cam版
ESP32藍芽音樂分頻播放器
ESP32音頻分析板
磁流體音響
磁流體音箱
磁流體音箱V2
FerroFluid-Box
喇叭音箱製作
MiniStreer山貓車
MiniSteer山貓車(原始)
MiniStreer山貓車改作
寶工機械手臂電機改裝
AI聊天小竉
小智Ai麵包板版本
WaveShare-Ai小寵
Xmini-C3版本
PocketCard版本
AI的進階應用
小智AI-格魯特
Ai雙軸雲台
AI全向輪車
小智AI的UART通信
數位時鐘製作
M5Stack相關
使用UIFlow(設定)
M5Atom利用STT傳訊M5Stick-C
IKEA_Clock
Plen5Stack機器人
M5StickC機器人
PLEN5Atom機器人
壓克力版PLEN5Stack機器人
M5Stack音樂播放器
M5AVATA二足機器人
Stack-Chan機器人
RFID音樂播放器
認識RFID
音響系統
關於DAC
My Pet Ai小寵物
Micro:bit相關
Micro:bit基礎
安裝桌面版makecode
更新Micro:bit韌體
Micro:bit系列教學
迷你二足機器人
認識SG90舵機
舵機的角度
Micro:bit與凱斯電池及轉板
按鈕及光照觸發事件
廣播觸發事件
創意集錦
關於機器人走路
Cute版二足機器人
動作編輯器
AI機器人
風力仿生獸及電機改裝
麥克拉姆輪夾子車
Micro:bit仿生獸推車
齒輪箱的製作
仿生腳組裝
Micro:bit兩輪車
StandBeestCar程式撰寫
加值改造RacingCar
StandBeestCar_Plus
加上培林版本
Micro:bit與MeArm
Micro:bit V2與舵機板
使用MakeCode來寫程式
MeArm各舵機角度範圍
PLEN:bit
麥昆小車+HuskyLens
Tamiya滑冰機器人改裝
Tamiya-ROW_BOAT改裝
Micro:bit漫威坦克
SU-03T語音辨識
認識一下SU-03T
SU-03T韌體製作初始
發送訊號給Micro:bit
發送訊號給SU-03T
製作Microbit語音控制器
機械仿生眼
關於仿生眼
動手製作仿生眼
眼球的製作
舵機操控方案
Micro:bit語音夾子車
關於電的基礎常識
Micro:bit基礎
關於KSB048擴充板
製作材料篇
先認識馬達的運動方式
夾子車體的組裝
車子程式測試
另一塊Microbit控制車子
使用紅外線遙控器
使用V7RC來控制車子
SU-03T語音辨識
自製Microbit單搖桿
Micro:bit閃光車
尾燈的製作
Micro:bit方向盤
戰鬥恐龍車
Arduino相關
Arduino&麵包板&杜邦線
Arduino IDE
讓LED灯亮起來
HCSR04超音波模組
MeArm機械手臂
MeArm的組裝
使用Arduino操控MeArm
Arduino的JoyStick擴充板
手機藍芽控制MeArm
夾子的改造
MeArm V3版
JJRobot二輪平衡車
接收紅外線操控LED
程式作品
四則基本練習
數學計算大挑戰Open
進階數學四則
整數四則計算大挑戰
四則賓果大挑戰
分數大進擊
因數倍數大進擊
九九乘法遊戲板
AnswerSystem2022
AnswerSystem使用說明
教室內的使用環境
忠義國小
忠義國小網站
忠e數位學習紀錄儀
忠e學生資訊小組
家長資訊專區
為新生家長建議的數位學習資訊
微軟 Teams 的使用
AI世代的數位學習
More
首頁
音樂VS電腦
我的音樂之路
編曲作品賞析
天堂W廣告曲
我的Sony-MD
AI輔助音樂創作
影音拍攝學習
說起拍照
Insta360玩下去
花東影音
其他東東
模組化的概念
自製平板收集箱
製作MakerMind.SG的模型
原地奔跑的T-Rex
進擊的AT-AT
用搖桿玩Scratch遊戲
KS25夢幻水晶音柱
反作用輪&自平衡
製作一個ReactionWheel
JJRobot二輪平衡車
平衡輪腳踏車V1
平衡輪腳踏車V2-2023
藍芽音樂模型底座
風力二足機器人
製作小貓藍芽音箱
OmniWheels-CAR
機械蜂鳥COLIBRI
Kinetic Sculpture動態雕塑
客製化燈板設計
羽球筒音響
語音命令音樂播放盒
DFplayer的串口命令
神社故事屋音樂盒
ESP32/8266相關
咖啡虫氣象站
ESP32-CAM基本設定
視訊迷你履帶車
ESP32 Cam TAMIYA Robot
ESP32-CAM Girpper Car
漫威坦克ESP32Cam版
ESP32藍芽音樂分頻播放器
ESP32音頻分析板
磁流體音響
磁流體音箱
磁流體音箱V2
FerroFluid-Box
喇叭音箱製作
MiniStreer山貓車
MiniSteer山貓車(原始)
MiniStreer山貓車改作
寶工機械手臂電機改裝
AI聊天小竉
小智Ai麵包板版本
WaveShare-Ai小寵
Xmini-C3版本
PocketCard版本
AI的進階應用
小智AI-格魯特
Ai雙軸雲台
AI全向輪車
小智AI的UART通信
數位時鐘製作
M5Stack相關
使用UIFlow(設定)
M5Atom利用STT傳訊M5Stick-C
IKEA_Clock
Plen5Stack機器人
M5StickC機器人
PLEN5Atom機器人
壓克力版PLEN5Stack機器人
M5Stack音樂播放器
M5AVATA二足機器人
Stack-Chan機器人
RFID音樂播放器
認識RFID
音響系統
關於DAC
My Pet Ai小寵物
Micro:bit相關
Micro:bit基礎
安裝桌面版makecode
更新Micro:bit韌體
Micro:bit系列教學
迷你二足機器人
認識SG90舵機
舵機的角度
Micro:bit與凱斯電池及轉板
按鈕及光照觸發事件
廣播觸發事件
創意集錦
關於機器人走路
Cute版二足機器人
動作編輯器
AI機器人
風力仿生獸及電機改裝
麥克拉姆輪夾子車
Micro:bit仿生獸推車
齒輪箱的製作
仿生腳組裝
Micro:bit兩輪車
StandBeestCar程式撰寫
加值改造RacingCar
StandBeestCar_Plus
加上培林版本
Micro:bit與MeArm
Micro:bit V2與舵機板
使用MakeCode來寫程式
MeArm各舵機角度範圍
PLEN:bit
麥昆小車+HuskyLens
Tamiya滑冰機器人改裝
Tamiya-ROW_BOAT改裝
Micro:bit漫威坦克
SU-03T語音辨識
認識一下SU-03T
SU-03T韌體製作初始
發送訊號給Micro:bit
發送訊號給SU-03T
製作Microbit語音控制器
機械仿生眼
關於仿生眼
動手製作仿生眼
眼球的製作
舵機操控方案
Micro:bit語音夾子車
關於電的基礎常識
Micro:bit基礎
關於KSB048擴充板
製作材料篇
先認識馬達的運動方式
夾子車體的組裝
車子程式測試
另一塊Microbit控制車子
使用紅外線遙控器
使用V7RC來控制車子
SU-03T語音辨識
自製Microbit單搖桿
Micro:bit閃光車
尾燈的製作
Micro:bit方向盤
戰鬥恐龍車
Arduino相關
Arduino&麵包板&杜邦線
Arduino IDE
讓LED灯亮起來
HCSR04超音波模組
MeArm機械手臂
MeArm的組裝
使用Arduino操控MeArm
Arduino的JoyStick擴充板
手機藍芽控制MeArm
夾子的改造
MeArm V3版
JJRobot二輪平衡車
接收紅外線操控LED
程式作品
四則基本練習
數學計算大挑戰Open
進階數學四則
整數四則計算大挑戰
四則賓果大挑戰
分數大進擊
因數倍數大進擊
九九乘法遊戲板
AnswerSystem2022
AnswerSystem使用說明
教室內的使用環境
忠義國小
忠義國小網站
忠e數位學習紀錄儀
忠e學生資訊小組
家長資訊專區
為新生家長建議的數位學習資訊
微軟 Teams 的使用
AI世代的數位學習
AI 全向輪車
這個專題是延續之前的Pocketcard ai雲台的研究,藉由小智AI的原始碼的重新編輯,實現了以凱斯電子的Pocketcard+Audio Board來執行,並且開始想著如何讓它能操控本地端的電機,做成雲台即時可以操控舵機,接下來就是想著DC馬達了…,所以就試試看能不能把之前做過的
Omni Wheel car(wifi操控、PS手把操控…)改成用小智AI來命令它~
之前的
Omni Wheel car專案說明→
OmniWheels-CAR
如果你也想弄一台來玩玩,分享3D列印件(我是從承田科技的
高手
ShinWei Chiou 的
github.com/GeorgeChiou/ESP32-CAM-MotorShieldV3.0_Gripper
修改而來
)及我編譯好的韌體如下:
drive.google.com/file/d/1qhYU7RTJd7D5dH_cGA5dkLpZQEZ4NtHY/view?usp=sharing
(
1140512 AM10
:
30 Update Bug Fix
)
小智AI Omni Wheel car
原則上我已經實現了這個作法,使用Pocketcard+音訊板當小智ai的主執行板,透過KSB060 IO Board引出腳位,藉以連接二顆servo及三顆n20馬達,並將這些本地端的電機納入iot的管理…,影片中的簡單示範,演示了夾子車的夾子(舵機操控)運作及車子移動(DC馬達操控),全向輪只要三個方向的輪子便可進行各個方向的行進~
AI全向輪夾子車的語音對話及動作
這段影片要演示的是利用LLM來控制的車子,有別於以往我做過的語音控制機構(
SU-03t語音辨識
),用AI來掌控在感覺上,它並不一定是依靠單純語音辨識而已,反而比較像是理解了你的意思,才去判斷要執行什麼動作,當然這些動作的程式仍然是我們寫在程式中的…,在這段影片的最後,我測試去嫌它前一個動作的不精準,結果它就自己再做了一次動作…,其實我在程式中並沒有設定某些動作馬達要轉多久這回事~
對話式的操控
讓ai來控制車子與以前的遙控方式有些不同,你可以透過對話的方式來要求它,最簡單的就是可以讓它介紹自己的功能,問他可以如何運作之類的…
製作車子使用材料
先算一下成本好了:pocketcard lite 650元;音訊板 280元;KSB060 350元;SG90一顆50元;N20馬達一顆80元;DRV8833一塊24元;48mm的全向輪250元…,大約算一下弄一台這樣的小車得要二千多大洋~
凱斯的Pocketcard+音訊板
KSB060
N20 DC Motor x3
SG90 Servo x2
DRV8833 x2
全向輪x3
N20轉樂高軸 x3
可以參考的作品
Large Language Model Robot with ESP32-S3
ESP-SparkBot 是一款搭載 ESP32-S3 的智慧型設備,具備語音互動、影像辨識、遠端控制和多媒體功能。這款產品原本就是鎖定AI智能的,它後來也加入小智AI的支援之中,它的主控與車體是分開的,也就是AI是由上面的ESP32-S3執行,而車體則有另一塊晶片(可能是ESP32或ARDUINO之類的)操控,二塊晶片以UART進行傳訊…
bilibili中的「
用小智搞了台小車」
在所謂的B站中可以看到有人發佈了一段小小的視頻,是他用小智ai結合了一部麥克納姆輪的車子,還可以打開上方的炮塔進行發射的動作,並沒有說明具體是如何製作的,但我推測他一樣是以分開的二個晶片做的,在聯結的方法上除了UART外,還可以使用MQTT…(也就是小智AI發送MQTT給下方的車體控制晶片),不過這種做在一起的,我想是以UART的命令方式…
開始說一下我是怎麼做的:
我想就用一塊ESP32來做
在之前已成功地完成讓AI雲台(控制二個舵機)之後,我就想著控制直流馬達這個方向,根據以往的經驗,我知道足夠的電壓及電流是一定要的,除此之外,我還想繼續延續一下Pocketcard的可能性,所以第一個想法就是如果有一塊可以控制馬達及舵機擴充板(就是Arduino case思維~)就解決了…而符合這個方向的,自然就是KSB048
※小智AI的開源程式是以ESP-IDF寫的:
github.com/78/xiaozhi-esp32
先說一下失敗的A計畫
一開始我想做這輛車,第一個就想延用之前經驗(Pocketcard+KSB048) ,之前有拿到過凱斯給的Arduino範例,做得也蠻順利,但想不到這次完全被ESP-IDF如何驅動PCA9685這個問題給打敗了!花了幾天都是在想這個,就算找到例子也沒用(
比如:
blog.csdn.net/qq_48057513/article/details/138184114
),因為那個可能都舊版ESP-IDF用的,現在的V5.4.1是無法編譯成功的…
※雖費了幾天功夫,也只能放棄這個想法,也許之後有人會寫出來!
B計畫:讓ESP32自己驅動DC Motor
就用外加的馬達驅動板來試試,剛好手邊有一塊以前留下來的DRV8833電機驅動板,小巧又好用…,不過原本常用的Arduino驅動程式那招在這個case裡是不管用的,雖對ESP-IDF不是很熟悉,但只能K一些資料來達成這個想法~
DRV8833
這塊小小的電機驅動板就能控制DC馬達,一個馬達需要二個PIN的訊號(數位訊號只能控制轉或不轉;如果給PWM訊號則還能控制轉速)
※焊針腳時一邊朝上一邊朝下是為了之後放到車體中方便
ESP32內建的MCPWM單元
ESP32晶片中就有二個名為MCPWM的單元(
MCPWM_UNIT_0和MCPWM_UNIT_1
),ESP-IDF開發環境中有驅動程式可以載入,只要在程式開頭→
#include
"driver/mcpwm.h"
MCPWM與馬達驅動之間的關係
從這個圖例中可以知道,MCPWM中產生一對(兩組)PWM訊號送到DRV8833的IN1和IN2便可以控制一顆馬達的正反轉及轉速;而一個MCPWM單元可以產生三對PWM訊號,也就是說ESP32本身便可產生12組PWM(六對),相當於六顆馬達或12顆舵機,對我這次的計畫只要三顆馬達二個舵機,相當足夠了…
製作車體
這個部份由於我經常組東組西的,所以就相對簡單了,我使用了三顆1:50的n20馬達(套上D軸轉樂高軸),把KSB060座固定上去,再把KSB060放進去,由於使用了二塊DRV8833它們的供電是取自KSB060針腳的右上方(自己焊針,從凱斯RD處得知可直接引出電池的電),就設計了一個開關控制電源
電機測試
在完成組裝之前總是要先確認所有電機功能都是可以運行的…
以KSB060的腳位來說:
P4→夾子底舵機;P6→接夾子舵機;P7和P8→接DRV8833的IN1和IN2控右前輪馬達;P13和P14→
接
第二塊
DRV8833的IN1和IN2控
左
前輪馬達;P1
5
和P1
6
→接第二塊DRV8833的IN
3
和IN
4
控後輪馬達
…這樣其實已經把
Pocketcard的腳位給用盡了~
關於控制程式
這個部份是給我帶來許多感想的,以往我寫程式的經驗中,要機構執行某項任務,在程式中必定有對應的命令,但這AI程式不同,如左圖所示,我在程式中的命令詞可能是「前進」、「後退」…這些字詞,但實際在執行時,可以發現我未必得很明確地準確地下這些命令,AI似乎並不是完全比對語音,而倒像是理解我們對話之中的意思才決定做什麼動作,這一點讓我覺得有些訝異!
程式修改及編譯這部份,我是用VSCODE來做,如果要詳述這個部份,我這篇可能就寫不完啦!況且我也不是這方面的專才,如果有人也有興趣,可以再一起來討論…
參考資料:
PocketCard Lite Introduction:
kaise-ksrobot.github.io/docs/ch/MCU/ESP/PocketCard/PocketCard_Lite.html
PocketCard 音訊板:
kaise-ksrobot.github.io/docs/ch/MCU/ESP/PocketCard/PocketCard_Audio.html
小智AI的後台:
xiaozhi.me/
,這兒很重要,除了控制台外,GitHub及作者寫的一些教程也可以在這個看到
ESP32 Servo Motor Control Project:
github.com/Melek-Cherif/motor_control_esp32/tree/main
esp32用mcpwm驱动电机:
blog.csdn.net/qqliuzhitong/article/details/121510050
esp32驅動drv8833範例:
github.com/MihaiLupoiu/esp32_motor_driver_drv8833
ESP-SparkBot: ESP32-S3 大模型 AI 桌面机器人:
gitee.com/esp-friends/esp_sparkbot
esp32-PCA9685範例:
github.com/brainelectronics/esp32-pca9685/tree/master
BUG的發現及解決
我的一項學習就是在測試過程中去發現是不是有錯誤情形的產生,並不只是那種明顯的BUG,比如編譯失敗,那不用說就是程式碼有問題,有可能是{ }沒有成對;也有可能是變數沒有宣告,C/C++在這方面可嚴格了;還有一種是編譯好了,卻燒錄不進ESP32的,這個我是只有聽說~
1140511發現一個問題,目前的韌體執行沒有問題,但如果讓它進入待命狀態,再按A鍵喚醒它時,常會有「發送命令失敗,請檢查網路…」的錯誤訊息,系統重啟卻是沒問題的,一開始我以為是網路不穩或小智AI系統連接不順(畢竟在遙遠的地方),但經幾方測試之後,我找到問題了,可以透過修改程式碼解決~(
1140512早上我重傳了資料檔
)
程式出現錯誤的現象
這個bug是發生在執行期的,程式啟動時並不會有什麼異常,第一次按A鍵喚醒AI對話,要求車子做什麼動作都沒問題!通常AI會是說話中或是聆聽中,這時它的連線時期是一直維持的,如果太久沒跟它說話,或你直接要求它休息、待命,在原始設計上為了節省資源,它會暫時斷開連線,進入待命的狀態,我發現的問題是再一次按A鍵喚醒它時,就可能出現「命令發送失敗…」錯誤
如何觀察程式運作的情形呢?
你可以打開Arduino IDE的串口監控視窗,利用USB給ESP32供電時,你便可以查看它的程式碼運行的狀態,可以觀察到你跟它講的話以及它的回應,最重要的是可以看執行緒的運作情形,如果出現錯誤,可以幫助我們檢查…
Report abuse
Report abuse