2021年全国大学生电子设计竞赛试题智能送药小车主控部分代码
- CPU:STM32F103C8T6
- 屏幕:[IIC串口屏](4引脚)
- 驱动:TB6612
- 角度传感器:GY-25
- OpenMV摄像头
设计并制作智能送药小车,模拟完成在医院药房与病房间药品的送取作业。院区结构示意如图 1 所示。院区走廊两侧的墙体由黑实线表示。走廊地面上画有居中的红实线,并放置标识病房号的黑色数字可移动纸张。药房和近端病房号(1、2 号)如图 1 所示位置固定不变,中部病房和远端病房号(3-8 号)测试时随机设定。
工作过程:参赛者手动将小车摆放在药房处(车头投影在门口区域内,面向病房),手持数字标号纸张由小车识别病房号,将约 200g 药品一次性装载到送药小车上;小车检测到药品装载完成后自动开始运送;小车根据走廊上的标识信息自动识别、寻径将药品送到指定病房(车头投影在门口区域内),点亮红色指示灯,等待卸载药品;病房处人工卸载药品后,小车自动熄灭红色指示灯,开始返回;小车自动返回到药房(车头投影在门口区域内,面向药房)后,点亮绿色指示灯。
- 先由OpenMV识别数字,通过四个I/O口低电平编码发送给STM32识别结果,只有识别到数字后才进入到下一个流程;
- 然后OpenMV进入巡线工作模式(向STM32发送2和3代表左转和右转),STM32依靠陀螺仪和巡线结果控制电机,根据一开始不同的识别数字结果走到不同的病房(时间问题,没有做识别病房号的部分);
- 遇到十字路口和T字路由时(不包括┣型的路口),OpenMV发送给单片机数据(优先找十字线,找不到十字线再判断左右转),协助单片机判断目前位置。