一、 项目概述 (介绍项目设计背景及目的) 随着现在各种智能仪器的大量的普及和应用,人的参与越来越少,大量的产品都是智能化发展。在此也出现了许多的无人贩货机。本产品的目的就是为了给无人贩售机提供支持。该系统可以准确的识别并计算出本次投币的所有种类和个数,精确的在 显示器上提示顾客已投的钱数和需要在投入的硬币数。同时,如果顾客投币时没有投我们市面上流通的如1 角(新旧款)、五角(新旧款)、一圆(新旧款),我们会在显示器提示顾客投入了假币并发出相应的警告信息。另外本产品我们还设计了一个扩展应用,就是应用于公交车上的投币箱内,这样我们就可以省去大量的人力去清点一天所收入的硬币数目。二、 项目系统框架图 1. 软件系统框架图 file:///C:\Users\YUQ~1.Z\AppData\Local\Temp\ksohtml\wps_clip_image-19628.png 三、 工作原理介绍 本设计的突出点和创新点区别与以往的 机器视觉来实现识别硬币,我们队利用称重来设计一个类似于 电子称的一个整体完善的系统。 来前端用电子称中常用的 电阻应变片来进行对所投硬币的重量测量。之后在采集前端采用 AD620仪表放大器和LM358N来对电阻应变片输出的微弱模拟信号进行两级放大,保证我们的AD芯片可以清晰的分辨不同种类硬币间的细微差别。便于软件处理。然后采用ADS8332这种高精度低功耗16位SPI接口的芯片对模拟信号进行模数转化,同时ADS8332的电压基准源我们采用RFE5025和TI的轨对轨放大器来提供超高精度的电压基准,保证了AD采集的精度。软件设计方面,我们的主要算法是根据aX+bY+cZ=ALL,这个公式来进行推理的。这种算法就是根据总共我们得到的当前硬币的总重量。同时我们也是已知了每一个硬币的重量大致是多少,这样这个三元一次方程组中我们就可以得到了X、Y、Z、ALL这四个已知量。这里我们预先在程序中定义几个我们已知的硬币重量相关参数,如果出现不符合这些参数的硬币,我们既可以判断出是假币。这里我们为了减少误差,提高精度,我们采用的硬币都是假设没有磨损,没有污渍的硬币。这样可以稍微的简化了一下我们的数学模型。当然在精度方面可能还是会有所改进。这样剩下来的软件部分只需要利用枚举算法和穷举算法来推导出符合条件的一组或几组的a、b、c值。然后在通过选优算法,选出最大可能出现的数据来。然后通过我们外接的5110液晶液晶显示出来。 四、 项目实现要点、难点分析 实现: 1、准确的识别单个硬币的种类,即是1角,5角,1圆 2、准确的识别同一类别的多个硬币的总数(有一个误差上限,即硬币到达一定个数会出现误差)。 3、在误差率为4%的情况下实现多种硬币混合后,可以识别里面有多少个1角, 5角,1圆,并显示总数。(PS:误差率为100次中出现4次错误)。 4、如果有人投入不是市面上流通的硬币,即为假币,我们会用声光电设备进行报警并提示。 难点分析: 由于硬币之间的差别很微小,而我们采集到得信号误差有限,所以在硬币多的情况下误差累积会对我们整个算法产生影响。影响我们得到准确的一组数据。同时该系统无法支持对大量硬币的采集,因为数量越多,误差越大。 五、 项目设计预计效果 预计可以实现上述的基本功能,可能在20个硬币以内可以精确的测量识别出种类,硬币过多的话误差严重变大,难以实现多硬币,跟我们系统的硬件设计和软件优化有关。同时估计到交作品的截止期限我们可以最最大努力减少硬件带来的系统误差,进一步优化我们的软件。让我们的误差率降低,并且可以测量更多的硬币。我们最需要也是最难解决的就是精度问题。我们会慢慢攻克的!
|