基于STM32的新型自动贩卖机设计
2024-04-20王子玉白博文陈佳星王玉林
王子玉,白博文,陈佳星,王玉林
(辽宁工程技术大学 电气与控制工程学院,辽宁葫芦岛,125100)
0 引言
物联网、人工智能等无人化技术日趋成熟,无人零售概念也逐渐被大众熟知,带动大量资本和企业的发展。自动售货机作为其中重要业态之一,具有销售方式新、市场潜力大等优点[1]。但随着人们生活水平提高,越来越多商品琳琅满目,一定程度上增加了消费者对商品选择的难度。针对这一情况,本设计添加了智能推荐模块,结合消费者购买习惯、健康指南,进行智能化的商品推荐。对于一些场景有着十分重要的意义,帮助消费者更加快捷地完成购买,具有不可替代的实际作用。
1 整体方案设计
该设计选择STM32 为主控,制作了一款能够便捷购物的自动贩卖机,主要包括了三个主要功能:商品选择、货币识别和商品输出。
为更贴近于消费者日常生活习惯,增加了移动支付的功能。消费者在移动设备上下单后,此信号通过Wi-Fi 模块传送给单片机控制直流电机进行商品输出。针对现代消费者选择困难的问题,该设计拓展了智能化推荐功能,结合商品自身属性和销售情况进行推荐,很大程度上缓解选择焦虑,具体方案流程图如图1 所示。
图1 方案流程图
2 基础电路
2.1 商品选择设计
考虑到按键在商品选择功能的不适性,该系统采用LCD触摸屏代替按键完成商品选择的功能。LCD 触摸屏可以提供更直观、灵活、交互性强的用户界面,提升购物体验,同时也方便运营商进行定制和更新,满足不断变化的市场需求。它通过在液晶显示屏表面添加一层透明导电薄膜,实现对用户触摸操作的感应和响应[2]。
该设计采用ZJY180S0800TG01,它是一款128×160 点矩阵TFT(Thin-Film Transistor)液晶显示模块。TFT 面板由384 个源极和160 个栅极组成。LCM(Liquid Crystal Module)可通过微控制器轻松访问,和单片机适应性高,完全满足设计需要,LCD 触摸屏电路如图2 所示。
图2 LCD 触摸屏电路
2.2 货币识别设计
该设计采用了高频反射式电磁传感器、低频透射式电磁传感器和激光传感器进行对硬币的辨识,分别针对硬币的材质、厚度和直径进行判别,只有完全达到了三个标准,才可识别出硬币的金额。具体货币识别设计流程图如图3 所示。
图3 货币识别流程图
(1)高频反射式电磁传感器
金属硬币经过高频反射式电磁传感器时,金属硬币的表面会由于集肤效应产生涡流。相对地,这个涡流产生磁场反作用于线圈L,将会引起线圈自感和阻抗的变化,该变化与硬币的材质、磁导率等都有关系[3]。投入硬币的方式一定,此时只与硬币的材质有关系,因此记录下金属硬币对应的数值变化,便实现了硬币材质的检测,以防假币泛滥。
(2)低频透射式电磁传感器
金属硬币经过低频透射式电磁传感器时,会受到低频电压E1 在L1 上产生的磁场影响而产生涡流[3]。此时的材质已经确定,即金属硬币的电阻率一定,不同厚度金属硬币产生的涡流将会不同,记录不同数值对应的金属硬币厚度,自此便实现了金属硬币厚度的测量。
(3)激光传感器
激光传感器是利用激光技术进行测量的传感器。它的主要组成部分由激光器、激光检测器和测量电路组成,它被称为新型的测量仪表[4]。金属硬币投入机器后,会受到激光二极管的照射,此时在接收端会接收到一个金属硬币直径的阴影,这个数值便是金属硬币的直径。
自此,整体的货币识别功能完成,即能够分辨出投入硬币的材质,厚度和直径,进而确定硬币的金额—一角、五角和一元。若投入金属硬币符合三个条件的情况下,金额将会存入单片机存储器,完成下一步的找零判断,否则该设计会自动吐出此硬币。
2.3 找零判断设计
在单片机内部预存了商品对应的金额,此时进行数据对比判断即可,将识别到货币金额与所选购的商品金额比对。若低于商品金额将不输出商品,屏幕将提示继续投币;若等于商品金额将输出商品,无其他操作;若大于商品金额将输出商品,并且将多余的硬币吐出。实现这三种情况便将完成了找零判断功能。
2.4 商品输出设计
该设计采用HS-F04 直流电机模块实现商品输出功能,该模块具有两个TTL/CMOS 兼容输入端子,两个输出端子可以直接驱动电机。当单片机接收到相应商品输出信息时,将会控制此模块工作,将对应的商品输出。电机将会把商品推出货物槽,进入到待取凹槽,自此商品输出功能完成,消费者便可把商品取出。直流电机电路图如图4 所示。
图4 直流电机电路图
图5 移动支付工作流程图
3 拓展功能
3.1 移动支付设计
进入信息爆炸时代,移动设备无处不见,手机支付成为主流。为此,该系统装备了移动支付功能,满足和方便更多消费者。在移动支付功能设计中,利用了ESP-8266Wi-Fi模块进行与单片机的信息传递。该模块在远程数据监控终端与数据传输端进行交互时有着极其重要的作用。且该模块价格低、稳定性高、串口速率可达 4Mbps,可支持 STA、AP以及 AP 和 STA 共存的多种工作模式[5],有着十分完备且灵活的属性。在本系统中,从以上的工作模式中选择 STA 模式作为Wi-Fi 模块的工作模式,完成订单信息与Wi-Fi 模块的数据通信。消费者先扫描机器上的二维码,在手机上进行自助下单,Wi-Fi 模块将接收到订单信息。Wi-Fi 通讯模块与单片机利用串口进行连接,自此便利用串口将获取到的信息传递到单片机,单片机进行指定货物的输出即可。
3.2 商品智能化推荐
相对于传统的无智能推荐功能的自动贩卖机,具备智能推荐功能的自动贩卖机在提供个性化购物体验、增加销售额、进行数据分析和预测、开展营销和促销活动以及提高用户体验等方面具有显著的优势。随着时间的推移,数据库中的数据量增加,导致算法对不同数据的适应性不同。因此,该设计采用多种智能算法相互比较,对各个算法进行赋权,最终输出最佳推荐结果。这种方法提高了模型整体的适应性,能更好地提供推荐结果。主要流程如图6 所示。
图6 加权新算法流程图
(1)参数准备
系统初始化时,由管理员手动导入初始数据,随后每次顾客通过自动贩卖机购买商品后,系统将自动存储该次购买信息,并将其导入数据库中,作为模型的训练数据。此外,为了提高顾客体验,顾客可以自行选择所需商品的属性,例如商品种类、商品价格等。然后,这些选择将用于对数据库中的数据进行初步筛选,并作为模型的输入参数。
(2)智能算法选取
随机森林是一种集成学习算法,它通过构建多个决策树模型并采用投票或平均的方式进行预测[6]。相对于传统的决策树算法,随机森林在处理高维数据等方面具有明显优势。但该算法对输入参数的要求较苛刻,如决策树数量等。在不同的数据集和问题,参数的选择可能会有所不同,因此需要进行一定的实验和调优,增加了算法的复杂性。
Adaboost(Adaptive Boosting)是一种集成学习算法,其通过串行训练一系列弱分类器,并根据每个分类器的表现调整样本权重,最终将这些弱分类器组合成一个强分类器[7]。Adaboost 具有较好的泛化能力,能够有效地避免过拟合问题。然而,Adaboost 算法对噪声和异常值比较敏感,使得容易被错误分类的样本在后续的迭代中得到更多地关注。
GBDT(Gradient Boosting Decision Tree)是一种集成学习算法,它通过迭代的方式构建多个决策树模型,并通过梯度下降的方法逐步优化模型的预测能力[8]。GBDT 相较于随机森林算法在预测准确性方面具有优势。然而,GBDT 算法的训练过程相对较慢,需要较多的计算资源和时间。
BP 神经网络,全称为反向传播神经网络,是一种有监督,并可以用于解决预测分析等问题的人工神经网络模型[9]。该算法具有很强的学习能力,但是训练过程依赖于梯度下降算法 ,极其容易陷入局部最优解。
(3)加权新算法
尽管所选择的四种智能算法本身功能强大,但它们或多或少都存在不同的限制条件,这些条件可能会影响算法的效果。该设计通过综合考虑不同算法的预测误差、训练得分,为每个基算法分配权重,并剔除效果较差的算法。最终,综合考虑剩余算法的权重输出,得到最终的商品推荐结果。通过该方法,可以有效地弱化各个基算法存在的限制条件,更好地应对模型在进行商品推荐时的实际情况,从而提升用户体验。
4 测试结果
本设计实现了基本的消费者自助购买功能,利用LCD屏幕进行挑选,投币进行购买,一切功能正常。设计的移动支付模块也正常工作,消费者在手机上自助下单,订单信息将会传送到单片机,从而实现购买。本设计根据购买情况与健康指南进行智能化推荐,利用此算法分别对商品进行模拟推荐,对比其他算法具体结果如图7 ~图9 所示。
图7 两种商品推荐效果对比图
图8 十种商品推荐效果对比图
图9 二十九种商品推荐效果对比图
由图可见,加权新算法在处理多种商品进行推荐的情况下效果最好。除此之外,依据每天各时间段购买情况和季节的差别,算法将结合多种因素持续优化,不断推出更加优化的推荐选项供给选择。
5 结束语
该设计完成了对商品购买的基础功能,帮助消费者更加快捷地自助购买。此外,该设计装配Wi-Fi 模块实现订单信息的传递,进而实现移动支付功能。相较于传统自动贩卖机,该设计增加了智能推荐功能,极大程度地解决了传统自动贩卖机给消费者带来的选择困难的难题。后期完善此设计,投入市场可以帮助更多人便捷购买和“买有所值”。