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