一.简介

本项目分享的是一个嵌入式系统的课程设计,老师给了多个题目供我们选择。我们组选择的题目是纸张计数显示装置设计,也是2019年全国大学生电子设计竞赛的F题。

有关这个题目的经验分享,网上已经出现了很多,各种实现原理也都比较明确。我们的这个设计便是基于FDC2214电容数字转换芯片这个方案。

电赛官网讲解——韩力教授:F题—纸张计数显示装置解析与交流

由于是课程设计,相对于四天三夜的电赛,时间十分充裕。因此我们组决定在实现题目要求的基础上,提高作品的整体性和实用性。

对题目没有了解的同学可以先仔细阅读下题目:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

下面便是我们在项目的开题准备阶段,设计的作品效果展示图
在这里插入图片描述

作品实际效果展示如下图所示:

在这里插入图片描述

运行步骤如下:
1.放入待测纸张;
2.按下串口屏上的识别检测按键;
3.电容上极板在滑块的带动下,向下移动,夹紧纸张;
4.压力传感器检测到压力超过阈值后,反馈信号,电机停止转动;
5.读取电容传感器数值,进行纸张数识别和显示;
6.电容上极板向上运动,当绿色接近开关检测到信号后,电机停止转动,完成一次检测;

二.项目设计

1.系统结构

在这里插入图片描述

作品的主控采用STM32F103C6T6(主要是因为便宜),整体采用24V电源适配器供电。
步进电机使用的是滑台配套的57步进电机。
结构图中还应加上EEPROM芯片AT24C64,用于存储纸张对应的电容值数据。

2.机械结构设计

在这里插入图片描述

作品的三视图如上,作品整体框架使用的是2020黑色铝型材
以右视图为例: 通过控制右侧滑台的上下移动,从而带动左侧滑块的上下移动。左侧的导轨滑块与电容上极板连接,从而完成电容上极板夹紧纸张的动作。
在这里插入图片描述

如上图所示,电容上极板的结构做了比较特别的设计。电容上极板通过四个弹簧与配重装载台连接,同时,空隙中间放置了两个立方体块,并有一个薄膜压力传感器粘贴在下方的立方体块上表面。
上方的亚克力盒中放置了砝码作为配重,确保纸张可以被快速压紧。

★当电容上极板开始下降,进行夹紧纸张的动作后,弹簧会受力压缩,从而挤压到中间的薄膜压力传感器。得到反馈信号后,控制电机停止转动。

★使用弹簧连接,还可以在一定程度上保证:在完全夹紧纸张后,电容上极板与下极板的处于平行状态。

3.硬件设计

(1)主控板设计

在这里插入图片描述

主控板主要包括stm32f103的核心板接口、DC-DC模块、蜂鸣器模块、外设模块接口等。设计和焊接难度均不大。

(2)FDC2214模块设计

在这里插入图片描述


为了方便安装在主控板上,FDC2214模块没有购买淘宝的成品。
★模块只引出了一个通道;
★时钟源使用的是外部40MHz有源晶振
★FDC2214芯片是QFN封装,焊接难度较大,我是使用热风枪焊接的。

(3)其余模块

★薄膜压力传感器模块

在这里插入图片描述
该传感器使用成品模块,包含一个左侧的压力传感器和一个右侧的转换电路模块。
★需要注意的是,薄膜压力传感器只适用于检测压力的大致大小,无法像电子秤那样获得精确的压力值。

★电机驱动部分
电机驱动部分由DM542电机驱动器、57步进电机控制的滑台和接近开关组成。均可在网上购买到相应的成品。
滑台的长度需要根据外金属框架大小做相应调整。

(4)各模块连接示意图

在这里插入图片描述

其中,电容金属极板使用PCB电路板制作,可以保证铜皮厚度尽可能小;极板与FDC2214模块使用屏蔽双绞线连接。这些设计主要是为了减少寄生电容和外部干扰对测量的影响。

4.软件设计

软件部分主要是电机的控制和学习识别部分的设计。

(1)电机控制部分

在这里插入图片描述
为了使运动结构能平稳地启动和停止,在每次按下识别检测按键后。电机均会经过加速、匀速、减速、停止四个状态。

(2)学习识别部分

在这里插入图片描述

学习和识别的方法采用的是本文开头推荐的官方视频中,韩力教授讲解的方法。下面做简单的讲解:
在这里插入图片描述
在学习模式下,需要依次学习并存储不同纸张数所对应的电容值区间。法如下:

1.每次按下启动按钮,会连续检测多次数据,从中获取电容的最大值和最小值。即上图中的max1和min1;
2.加入一张纸,进行相同的方式,得到图中的max2和min2;
3.由于电容值可能不连续,max1和min2之间会产生空白区,则通过均分的方式重新标定分界点。从而得到两个区间,即上图中的蓝色区间和红色区间。
4.其余纸张数以此类推。

在这里插入图片描述
当学习完足够多的张数后,即可开始进行识别。方法如下:
1.按下启动按钮,连续读取多个数据;

2.对读取到的多个数据进行分类,找到所有学习到的区间中,落入数据次数最多的一个;
3.则该区间所对应的纸张数就可以作为实际识别检测到的纸张数;

三.结果分析

在这里插入图片描述

经过多测测量,此作品识别纸张数的误差如上图所示:当测量65张以上的纸张,会产生随机性的±1张以内的误差。主要原因如下:
在这里插入图片描述

随着纸张数的增加,测得的电容值会快速下降,并趋于平坦,接近一个反比例函数。这也与平行极板电容公式吻合:C=εS/4πkd(其中纸张数直接影响极板之间的距离d)

这样便会导致如下的情况(在纸张数较少和较多情况下,分别测量相邻的3种不同纸张数):

在这里插入图片描述
在纸张数较少时,不同纸张所对应的电容值区间明确,易于区分;纸张数较多时,相邻纸张数之间所对应的电容值区间发生重合,导致难以准确识别。

四.总结

作品的整体功能已经基本完成,细节部分还有待优化,总成本约1000元。
目前作品还存在以下问题:

1.未加入校准功能。当环境变化后,需要重新进行学习,工作量大。
2.步进电机噪声很大,严重影响使用体验。
3.纸张数较多情况下,没有找到消除误差的方法。

本项目的开源资料包括展示视频、设计报告、3D模型(使用Rhino打开)、PCB文件、完整程序。
开源资料:【嵌入式系统课程设计——纸张计数显示装置设计开源资料(FDC2214方案)】