【21年电赛】智能送药小车项目全解析——硬件讲解

2026-10-02 7967阅读

一、项目概述

1.1 项目背景

本项目基于2021年全国大学生电子设计竞赛F题“智能送药小车”展开。题目要求设计一台能够自主识别病房号、装载药品并自动运送至指定病房,随后返回药房的小车系统。整个任务流程模拟医院场景中的药品配送:工作人员将数字标号纸张展示给小车,小车识别后等待药品装载,确认装载完成后自动出发,沿走廊寻径行驶至目标病房,停车等待卸载,卸载完成后自动掉头返回药房,完成任务。基本要求包括:识别数字标号、检测药品装载、沿红线寻径行驶、在路口转向、到达病房后等待卸载、自动掉头返回药房。单次送药流程需在20秒内完成。发挥部分还涉及两车协同、无线通信等扩展功能。

wKgZPGq4jQOAKpxWAABs7kN007Y55.webp

1.2 系统组成小车系统由以下核心模块组成:

主控MCU:CW32L012,负责整车调度与外设控制

摄像头模块:K230开发板,负责数字识别

巡线模块:五路智能寻线模块,基于CW32L010开发

电机与编码器:带编码器的直流减速电机,左右轮各一个

人机交互:OLED屏、按键、LED、蜂鸣器

电源管理:电池供电,ADC电压监测

1.3 设计思路

整个系统采用模块化设计,硬件选型注重稳定性与扩展性,软件架构清晰,便于调试与功能扩展。核心思想是:分工明确、模块解耦、参数集中、便于标定。

K230负责视觉识别,CW32负责运动控制与任务调度

巡线模块负责方向修正,编码器负责距离测量

任务参数以宏定义形式集中管理,方便根据实际地图调整

主程序采用状态机结构,流程清晰,易于扩展

二、硬件详解

2.1 主控芯片CW32L012

CW32L012是基于ARM Cortex-M0+内核的微控制器,主频可达96MHz,配备64KB Flash与4KB SRAM。其核心优势包括:

-安全机制:支持硬件奇偶校验,可将存储区划分为只能执行指令但不能直接读数据的区域,保护核心代码不被抄袭

IO口滤波:所有IO口自带滤波防抖动,比软件滤波更省事,抗干扰效果好

高级定时器:支持多路互补PWM输出,适合电机控制与数字电源

Cordic硬件运算模块:做三角函数、开方等数学计算速度极快,相比软件运算快几十到上百倍,节省内存,减轻CPU负担

-低功耗与宽电压:待机功耗低,电压范围宽,适合电池供电场景

抗干扰性能:经过三万伏高压放电、小黑盒、特斯拉线圈等严苛干扰测试,设备依旧稳定运行

-模拟外设丰富:集成2路轨到轨运放、2路DAC、2路12位ADC,最高1M采样速率,支持9种编码器模式

2.2 巡线模块

采用基于CW32L010开发的五路智能寻线模块,由5路可见光白光LED发射与光敏三极管接收组成。

硬件原理:

LED发射可见光,照射到不同颜色区域反射回来

光敏三极管接收反射光,两端电压随光强变化

ADC采集电压值,转换为数字量

白色区域反射强,三极管导通强,电压低(约0.2V)

黑色线条吸收光,三极管导通弱,电压高(2~3V)

软件原理:

设置比较阈值COMPARE_VALUE,默认200

循环比较实时ADC值与校准白值

差值大于阈值则认为压线

校准值存储在Flash中,断电不丢失

模块输出数字高低电平给主控

颜色识别扩展:

为只识别红线、不识别黑线,将简单作差比较改为区间判断。只有ADC值落入红色区间时判定结果才返回1,区间外返回0。这需要精确测量各颜色对应的ADC值。

wKgZO2q4jQSAcz5TAABycogF-3c52.webp

2.3 电机与编码器

电机驱动:

使用带编码器的直流减速电机,左右轮各一个

方向控制引脚:PB3、PB4、PB5、PA12

以右轮为例:PB3高电平、PB4低电平则正转,翻转则反转

PWM调速使用GTIM1的通道3与通道4

预分频系数16,重装载值400,PWM频率7.5kHz

编码器:

左轮编码器接入GTIM2的CH1、CH2

配置为硬件四倍频正交编码器模式

定时器硬件自动识别A、B两相脉冲相位关系,自动加减计数

无需CPU中断,CPU只需在需要时读取计数器值

四倍频模式下,每个完整脉冲周期计四次,分辨率提高四倍

2.4 摄像头模块

数字识别采用01科技K230开发板。

硬件组成:

Type-C口:烧录和调试

SD卡插口:需拷贝官方镜像

UART通信:5V供电、GND、TX、RX

蓝色LED:供电不足时亮起

红色LED:上电即亮

复位按钮

模型训练:

搜集照片,可自己拍或网上找

通过官方训练平台训练视觉模型

得到.py文件和.kmodel文件

.py供K230运行,.kmodel是模型文件

在IDE修改调试后放入K230

2.5 人机交互外设

LED:

LED2(PC13):绿色,任务完成指示

LED3(PC14):红色,等待装载指示

LED4(PC15):红色,等待卸载指示

均为低电平点亮

蜂鸣器:

PA15驱动,高电平鸣叫

NPN三极管基极经限流电阻R4连接PA15,发射极接地

R5下拉电阻防止上电误导通

R4限制基极电流,保护IO口

按键:

SW1连接PA5,内部上拉输入

松开时高电平,按下时低电平

软件检测下降沿并消抖

OLED屏:

128x64分辨率,I2C通信

实时显示小车状态与电池电压

通过显存方式存储像素状态

ADC电压采集:

电池电压经1/6分压后送入PA4

软件读取ADC值后乘6还原真实电压

使用内部1.2V基准反推参考电压

指数平滑滤波防止电压突变