做了个桌面机器人,也可以是“电子宠物”

参考了Anki公司Cozmo机器人的外观设计。

*图片来源自百度,仅对文中提及的“Cozmo机器人”起到说明作用,侵删
它实现了这些功能:
功能/亮点


- 手机遥控RC:机器人拍摄实景,手机可查看实景并控制机器人行动
- 局域网图传
- 语音交互:能和机器人聊天!通过ESP32的语音唤醒+识别
- 魔方与机器人交互、UI交互
- 具备3个自由度(手臂2个、头部1个):使用自己修改的特制舵机支持关节角度回传
硬件设计
机器人主要由【头部+底盘】两部分组成,共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.电路设计说明
- 设计软件:嘉立创EDA
- 机器人头部主控:ESP32-S3,担任 “大脑” 进行UI交互、网络通讯、轻量化AI处理
- 机器人底盘主控:STM32F103,担任 “小脑” 进行运动控制
- 魔方主控:ESP32-S3
- 参与活动:星火计划,活动已提供:3次3D外壳打印(共计717元)3次SMT(共计2250元)等耗材费用
2.选型说明
①机器人底盘为什么选择STM32F103作为主控?


第一,机器人的底盘设计,需要满足以下基础功能:
- 支持1路串口 MSH 交互(用过rtthread的同学知道有多香)
- 与头部开发板进行通讯(串口)
- 支持串口OTA升级固件
- 支持激光测距,实时检测掉落
- 控制两个 I2C 总线舵机
- 可通过幻彩灯带 WS2812 显示状态
- ADC电压采集测量
- 控制两个电机+采集编码器计数
- 可以检测机器人的状态(拿起、被摇晃等)
于是,诞生了以下几点硬件需求:
- 至少2路串口
- 至少2路 I2C 总线
- SPI/PWM驱动WS2812
- 1路ADC
- 2路硬件编码器接口
- 4路PWM输出
而 STM32F103RCT6:
- 资源符合本项目需求,没有太多资源冗余
- 价格可以接受
- ST的芯片成熟度较高(主要是软件)
由此,最终底盘主控选择了STM32F103RCT6

②机器人头部为什么选择ESP32-S3作为主控?

头部PCB实物图

头部PCB实物图
第一,机器人的头部设计,需要满足以下基础功能:
- 支持1路串口MSH交互
- 与底盘进行通讯(串口)
- 驱动一路 I2C 总线舵机
- 算力不能太弱(需部署语音识别等算法)
- 支持无线协议(遥控、图传)
- 支持摄像头 DCMI 接口
- 可以流畅显示 UI 动画
- 可以播放音频(I2S/DAC)
于是,诞生了以下几点硬件需求:
- 至少2路串口
- 至少2路 I2C 总线
- 需要自带无线射频功能
- 需要支持 DCMI/MIPI-CSI 接口
- 需要支持高速率 SPI/RGB/MIPI-DSI 接口
- 需要支持 I2S /高分辨率 DAC 接口
而 ESP32-S3:
- 价格合理
- 乐鑫的软件成熟度较高(ESP-IDF)
- 算力较强,有较为完善的AI端侧算法支持
- 自带 Wi-Fi 协议栈,带宽符合应用需求
- 支持 DCMI 接口用于图传
因此,底盘采用的主控是 ESP32-S3
③机器人控制板为什么选择ESP32-S3作为主控?
第一,机器人的手臂&头部控制板的设计,需要满足以下基础功能:
- 作为I2C从机使用,主机采用I2C控制从机的舵机运动
- 控制舵机中的电机运动
- 需要支持力反馈
- 需要可以精准控制舵机运动
于是,诞生了以下几点硬件需求:
- 支持硬件 I2C 从机协议
- 支持至少2路 PWM
- 支持 ADC 采样
而 STM32F030F6:
- 资源符合本项目需求,没有太多资源冗余
- 价格可以接受
- ST的芯片成熟度较高(主要是软件)
因此,底盘采用的主控是STM32F030F6
软件设计
项目提供配套【开发资料】和对应【SDK】以供二次开发:

参考开源资料:
https://oshwhub.com/rbbbb/ATom-Bot
【正文完】
你的点赞+关注,是我的动力
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
您必须登录才能参与评论!
立即登录

虽然看不懂,但是觉得你太厉害了
真厉害,可惜没有3D打印机
可以在嘉立创3D打样打呀~
那只狗🐶做错了什么?尽然也是测试用例之一!
怎么入门
好家伙,你以为你把图纸全给我,我就会做了么
不错