花了1年半時間,我終于做出來了桌面機器人!
做了個桌面機器人,也可以是“電子寵物”
本文引用地址:http://www.biyoush.com/article/202412/465286.htm參考了Anki公司Cozmo機器人的外觀設計。
*圖片來源自百度,僅對文中提及的“Cozmo機器人”起到說明作用,侵刪
它實現(xiàn)了這些功能:
功能/亮點
手機遙控RC:機器人拍攝實景,手機可查看實景并控制機器人行動
局域網圖傳
語音交互:能和機器人聊天!通過ESP32的語音喚醒+識別
魔方與機器人交互、UI交互
具備3個自由度(手臂2個、頭部1個):使用自己修改的特制舵機支持關節(jié)角度回傳
硬件設計
機器人主要由【頭部+底盤】兩部分組成,共6塊PCB:
Chassis-board 原理圖
Chassis-board PCB圖
Cube 原理圖
Cube PCB圖
Cube-usb-ttl 原理圖
Cube-usb-ttl PCB圖
head-board 原理圖
head-board PCB圖
lcd-board 原理圖
lcd-board PCB圖
servo-board 原理圖
servo-board PCB圖
1.電路設計說明
設計軟件:嘉立創(chuàng)EDA
機器人頭部主控:ESP32-S3,擔任 “大腦” 進行UI交互、網絡通訊、輕量化AI處理
機器人底盤主控:STM32F103,擔任 “小腦” 進行運動控制
魔方主控:ESP32-S3
參加活動:星火計劃,活動已提供:3次3D外殼打?。ü灿?17元)3次SMT(共計2250元)等耗材費用
2.選型說明
①機器人底盤為什么選擇STM32F103作為主控?
首先,機器人的底盤設計,需要滿足以下基礎功能:
支持1路串口 MSH 交互(用過rtthread的同學知道有多香)
與頭部開發(fā)板進行通訊(串口)
支持串口OTA升級固件
支持激光測距,實時檢測掉落
控制兩個 I2C 總線舵機
可通過幻彩燈帶 WS2812 顯示狀態(tài)
ADC電壓采集測量
控制兩個電機+采集編碼器計數(shù)
可以檢測機器人的狀態(tài)(拿起、被搖晃等)
于是,誕生了以下幾點硬件需求:
至少2路串口
至少2路 I2C 總線
SPI/PWM驅動WS2812
1路ADC
2路硬件編碼器接口
4路PWM輸出
而 STM32F103RCT6:
資源符合本項目需求,沒有太多資源冗余
價格可以接受
ST的芯片成熟度較高(主要是軟件)
由此,最終底盤主控選擇了STM32F103RCT6
②機器人頭部為什么選擇ESP32-S3作為主控?
頭部PCB實物圖
頭部PCB實物圖
首先,機器人的頭部設計,需要滿足以下基礎功能:
支持1路串口MSH交互
與底盤進行通訊(串口)
驅動一路 I2C 總線舵機
算力不能太弱(需部署語音識別等算法)
支持無線協(xié)議(遙控、圖傳)
支持攝像頭 DCMI 接口
可以流暢顯示 UI 動畫
可以播放音頻(I2S/DAC)
于是,誕生了以下幾點硬件需求:
至少2路串口
至少2路 I2C 總線
需要自帶無線射頻功能
需要支持 DCMI/MIPI-CSI 接口
需要支持高速率 SPI/RGB/MIPI-DSI 接口
需要支持 I2S /高分辨率 DAC 接口
而 ESP32-S3:
價格合理
樂鑫的軟件成熟度較高(ESP-IDF)
算力較強,有較為完善的AI端側算法支持
自帶 Wi-Fi 協(xié)議棧,帶寬符合應用需求
支持 DCMI 接口用于圖傳
因此,底盤采用的主控是 ESP32-S3
③機器人控制板為什么選擇ESP32-S3作為主控?
首先,機器人的手臂&頭部控制板的設計,需要滿足以下基礎功能:
作為I2C從機使用,主機采用I2C控制從機的舵機運動
控制舵機中的電機運動
需要支持力反饋
需要可以精準控制舵機運動
于是,誕生了以下幾點硬件需求:
支持硬件 I2C 從機協(xié)議
支持至少2路 PWM
支持 ADC 采樣
而 STM32F030F6:
資源符合本項目需求,沒有太多資源冗余
價格可以接受
ST的芯片成熟度較高(主要是軟件)
因此,底盤采用的主控是STM32F030F6
軟件設計
項目提供配套【開發(fā)資料】和對應【SDK】以供二次開發(fā):
參考開源資料:
https://oshwhub.com/rbbbb/ATom-Bot
評論