今天逛开源平台,看到了一个实用的项目——扫地机器人。
什么?你说它看着不像扫地机器人?但……
一、功能/亮点扫地机器人,有4大功能!
1.扫地+吸尘
一屋不扫,何以扫遍数电模电、嵌入式、嘉立创EDA……(bushi)
2.拖地+洗拖把
先洗拖把,再拖地,我是清理大使,你铭记!双押!
3.收纳
一键即可自行收纳作案工具
4.蓝牙遥控移动
前后左右+转弯,很轻松就扫了整个屋子~
那么问题就来了。
为什么将扫地机器人,设计为这样的结构呢?
二、结构设计①机器人最前面的是边刷组件。包括两个500电机和两个边刷,用于将垃圾扒拉到机器人前方。
②预吸尘组件,包括一个吸尘电机、对应的尘盒、过滤网。
③滚刷扫地组件,包括滚刷、滚刷电机、两个吸尘电机、尘盒、过滤网。
④拖地组件是一个迷你拖布,上面安装丝杆电机用于拉动拖布拉环,洗拖把、挤尽拖布内的水。
后方有超声波传感器,防止拖布提升时创到杂物
⑤整机由4个550电机组成四驱系统驱动,差速转向。
总装图如下:
这样的结构,能完美融合扫、洗、吸尘、自清洁的需求,岂不妙哉?
那,具体怎么设计硬件部分?
三、硬件设计硬件分别设计了:遥控器+机器人本体。
本体原理图
本体PCB图
遥控端原理图
遥控端PCB图
1.遥控器电路
这部分主要实现对扫地机器人的控制,硬件说明如下:
ESP32主控+Typec+CH340上传程序TP4056充电&18650电池供电XC6206P332MR给ESP32降压供电INA226读取摇杆电压、用于交互的摇杆、按键、LED等2.扫地机器人电路
硬件说明如下:
ESP32主控+Typec+CH340XT60接口作为整机电源输入(12V左右)LM2596给ESP32&传感器降压供电这部分电路主要完成对各电机的控制。
具体如何控制?
①自带驱动的吸尘电机,使用光耦隔离后,直接向吸尘电机的调速引脚输入PWM,控制其启停和速度。
②单向旋转的滚刷&边刷电机,使用光耦+MOS控制其启停和速度。
③需要双向旋转的电机(如驱动电机),使用光耦+MOS+继电器控制其启停、旋转方向和速度。
3.ESP32 GPIO数量有限?
本项目需要外接一些传感器,实现更智能的障碍检测、拖地、拧干……
因为GPIO口数量有限,所以可以使用一片Arduino作为协处理器,将后置超声波传感器连接到Arduino D9(TRIG)、D10(ECHO),将拖布翻转位置传感器连接到Arduino A0。
当超声波传感器检测到障碍时,Arduino D3(连接到ESP32 GPIO34)输出高电平,反之为低。
当拖布翻转到拖地、拧干水洗位时,Arduino D4、D5(连接到ESP32 GPIO35、36)分别输出高电平。
参考资料:
[1]https://oshwhub.com/abrahamabr/homemade-sweeping-robot
【正文完】
我会持续更新有趣的开源小创作!