
标准版
2021年全国电子设计大赛-F送药小车
1.7w
0
0
0
简介
本工程为2021年全国电子设计大赛-F-智能送药小车 全国一等奖开源工程
简介:本工程为2021年全国电子设计大赛-F-智能送药小车 全国一等奖开源工程开源协议
:GPL 3.0
创建时间:2021-12-18 13:33:19更新时间:2021-12-19 16:56:18
描述
题目简介
- 比赛任务

- 比赛要求
- 比赛赛道

- 比赛发挥要求
项目简介
本项目为2021年全国电子设计大赛-F-智能送药小车
- 主控:NXP的RT1021核心板
- 视觉:K210模块
- 循迹:4路模拟灰度传感器
- 驱动:TB6612
- 通信:蓝牙
项目功能介绍
- 供电系统:
- 总电源来自7.4V锂电池,采用T型插头防反接;

- 总电源来自7.4V锂电池,采用T型插头防反接;
- 硬件电路:
主要分为3个部分:- RT1021的顶板——RT1021_Top
- 为RT1021核心板供电
- 提供6路ADC检测端口:包括4路灰度传感器,1路载物检测,1路备用接口
- 4路USART接口:蓝牙,K210,陀螺仪,备用接口
- 1路5V供电RGB灯板接口
- RT1021的底板——RT1021_Bot
- DC-DC_to_5V
- 外设电源-3V3
- 电源引出接口
- 4路电机驱动-2个TB6612
- RGB灯板——RGB_Board
- 用于显示题目所要求的3色灯光:红,绿,黄
- RT1021的顶板——RT1021_Top
- 循迹模块
- 采用模拟灰度传感器,道由白、红、黑三色组成,数字红外对管无法在不调整阈值的情况下识别出红,黑两种颜色,而模拟灰度传感器通过软件处理电压数据后可以准确识别出不同的颜色,且电压的获取和处理较为简单
- 系统框图

原理图电路分析
- 系统供电:
- 采用独立LDO电源芯片-RT1021_Top_LM1117-5.0,由于RT1021的上电时序要求,通过开关S1控制,其电源由锂电池直接供给

- 其余所有外设电源均由SGM6132_DC-DC降压输出的5V转换,通过DCDC电路将锂电池电压7.4V降低到5V能够减小其余LDO的损耗,并提高电源资料,保证系统稳定性,由于整个系统的电能要求不高,为了板子的精巧性,DC电源的输入和输入电容均采用三星的22uF电容
- 6路ADC均采用3V3供电,由RT1201_Top_LM1117-3.3供电,接口均为XH2.54 * 3P

- RGB灯板电流较大,采用SGM6132_DC-DC_to_5V供电,接口采用Xh2.54 * 4P,避免电源反接

- 其余外设:如蓝牙,OLED,蜂鸣器等均采用RT1201_Top_LM1117-3.3供电,蜂鸣器为感性电路,且单片机的IO口驱动能力不足,故需要三极管放大,采用常用的S8050型NPN三极管,同时配以续流二极管1N5819提供续流回路

- 采用独立LDO电源芯片-RT1021_Top_LM1117-5.0,由于RT1021的上电时序要求,通过开关S1控制,其电源由锂电池直接供给
- 电机驱动:
- 电机采用带编码器的直流减速电机,驱动电流较小,采用TB6612集成H桥供电,每个TB6612可以提供2路H桥,提供给2个电机,板子2个驱动可以提高系统稳定性,操作失误而烧毁驱动时可以直接更换接口

- 电机采用带编码器的直流减速电机,驱动电流较小,采用TB6612集成H桥供电,每个TB6612可以提供2路H桥,提供给2个电机,板子2个驱动可以提高系统稳定性,操作失误而烧毁驱动时可以直接更换接口
- 载物检测:
- 采用12mm光敏电阻与10K电阻制成,通过ADC检测电压判断是否载物完成,基本原理为光敏电阻的阻值是变化的,受光照影响不同,通过与10K电阻进行分压通过ADC采集电压进行判断即可

- 采用12mm光敏电阻与10K电阻制成,通过ADC检测电压判断是否载物完成,基本原理为光敏电阻的阻值是变化的,受光照影响不同,通过与10K电阻进行分压通过ADC采集电压进行判断即可
软件
- 逻辑框图:

- 数据处理:
- 归一化:小车使用的寻迹模块为模拟输出,在不同地面与不同光照环境下输出的值相差较大所以在使用前需要对传感器进行标定。获取传感器在白色地面的读数ADC_L与红线的读数ADC_H,根据如下公式对ADC数据进行归一化。

根据传感器与红线的偏差使用PID算法实现可得出PWM占空比的矫正输出,加上基础速度,即可算得寻迹过程中两电机的占空比为。

通过该方法,极大的提高了传感器在不同环境下的鲁棒性,并实现小车平稳流畅的行驶。
- 归一化:小车使用的寻迹模块为模拟输出,在不同地面与不同光照环境下输出的值相差较大所以在使用前需要对传感器进行标定。获取传感器在白色地面的读数ADC_L与红线的读数ADC_H,根据如下公式对ADC数据进行归一化。
- ADC参数声明:
float ADC_Filter[ADC_NUM];
float ADC_calibrate[ADC_NUM];
uint16 Calibration_Tab[2][ADC_NUM] = {
{268, 212, 245, 387},
{1890, 1640, 1950, 2010}
};//校准表
- 获取校准过的ADC数值:
void Get_adc(void)
{
uint8 i;
for(i = 0; i < ADC_NUM; i++)
{
ADC_Filter[i] = adc_mean_filter(ADCN_num[i], ADC_num[i], 10);
ADC_calibrate[i] = (ADC_Filter[i] - Calibration_Tab[0][i]) * 1000.0 / Calibration_Tab[1][i]; //数据归一化
if(ADC_calibrate[i] < 0) ADC_calibrate[i] = 0;
else if(ADC_calibrate[i] > 1000) ADC_calibrate[i] = 1000;
if(ADC_calibrate[i] > ADC_threshold_H)ADC_OutLine[i] = 1;
else if(ADC_calibrate[i] < ADC_threshold_H)ADC_OutLine[i] = 0;
}
}
视觉
- 采用YOLO模型作为数字检测的模型,通过采集大量的数字图像,对YOLO模型进行训练,将训练好的模型部署到K210上,从而实现数字检测。部分数字数据集如下图所示。

- 在训练的同时通过观测损失函数的大小衡量模型预测的好坏,训练过程中的损失函数如图 2-2 所示,将模型部署到 k210 上,对数字进行检测,预测效果如图 2-3
- 图 2-2:训练过程中的损失函数

- 图 2-3:数字检测预测效果

图片
- 信号&电源:
- 所有接口均采用XH2.54 防呆接口,提高整体安全性,避免人为误操作,造成不可挽回的损失

- 所有接口均采用XH2.54 防呆接口,提高整体安全性,避免人为误操作,造成不可挽回的损失
- RT1021_Top:

- RT1021_Bot:

- RGB_Board:

放置原理图、PCB、3D图、实物以及和工程相关的图片和GIF。
演示视频
F-智能送药小车-全国一等奖-效果演示
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。




























评论