查看: 5568|回复: 3

基于STM32F0的电子硬币识别系统

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

发表于 2014-3-7 17:14:50 | 显示全部楼层

感谢楼主对本次活动的支持,开发板已寄出,请注意查收。

后续还请继续分享您的设计经验和使用中遇到的问题,大家一起交流,一起玩转STM32 F0吧!
发表于 2014-10-9 09:57:25 | 显示全部楼层
楼主能上资料吗   能给我发份完整资料吗   582577452@qq.com
发表于 2016-10-30 13:20:49 | 显示全部楼层
6666666谢谢分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表