花了1年半时间,我终于做出来了桌面机器人!鬼斧神工

 人参与 | 时间:2024-12-07 19:41:50

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

花了1年半时间,我终于做出来了桌面机器人!鬼斧神工

本文引用地址:

参考了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.选型说明

首先,器人机器人的底盘设计,需要满足以下基础功能

  • 支持1路串口 MSH 交互(用过rtthread的一无所得同学知道有多香)

  • 与头部开发板进行通讯(串口)

  • 支持串口OTA升级固件

  • 支持激光测距,实时检测掉落

  • 控制两个 I2C 总线舵机

  • 可通过幻彩灯带 WS2812 显示状态

  • ADC电压采集测量

  • 控制两个电机+采集编码器计数

  • 可以检测机器人的状态(拿起、被摇晃等)

于是,诞生了以下几点硬件需求

  • 至少2路串口

  • 至少2路 I2C 总线

  • SPI/PWM驱动WS2812

  • 1路ADC

  • 2路硬件编码器接口

  • 4路PWM输出

而 STM32F103RCT6:

  • 资源符合本项目需求,没有太多资源冗余

  • 价格可以接受

  • ST的鸡口牛后芯片成熟度较高(主要是软件)

由此,最终底盘主控选择了STM32F103RCT6

头部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

首先,机器人的手臂&头部控制板的设计,需要满足以下基础功能:

  • 作为I2C从机使用,主机采用I2C控制从机的舵机运动

  • 控制舵机中的电机运动

  • 需要支持力反馈

  • 需要可以精准控制舵机运动

于是,诞生了以下几点硬件需求:

  • 支持硬件 I2C 从机协议

  • 支持至少2路 PWM

  • 支持 ADC 采样

而 STM32F030F6:

  • 资源符合本项目需求,说长道短没有太多资源冗余

  • 价格可以接受

  • ST的芯片成熟度较高(主要是软件)

因此,底盘采用的主控是STM32F030F6

项目提供配套【开发资料】和对应SDK以供二次开发

参考开源资料:https://oshwhub.com/rbbbb/ATom-Bot