版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于机器视觉的果蔬称重系统设计摘要随着生鲜零售行业的快速发展,农贸市场、社区生鲜门店等场景对果蔬称重计价的效率与准确性提出了更高要求。传统人工称重模式依赖操作人员手动输入单价,易出现计价错误、效率低下等问题,难以适配高峰时段的运营需求。本文设计了一套基于机器视觉的果蔬称重系统,以STM32F103C8T6芯片为控制核心,搭载K230智能AI模组,通过YOLOv8算法实现苹果、黄瓜、香蕉、西红柿四类常见果蔬的自动识别。系统通过HX711芯片与压力传感器完成重量精准采集,OLED屏实时显示果蔬品名、重量、单价与总价信息,配套独立按键可灵活调整各类果蔬单价,称重完成后通过有源蜂鸣器完成操作提示,同时借助ESP8266芯片实现称重数据向手机APP的同步传输。实际测试结果表明,系统果蔬识别准确率达96.5%,重量采集精度控制在±1g以内,整机连续24小时运行无故障,可有效降低生鲜零售场景的人工成本,提升称重计价效率,为小型生鲜商户提供了一套低成本、高实用性的智能化解决方案。关键词机器视觉;果蔬识别;YOLOv8;称重计价;STM32F103AbstractWiththerapiddevelopmentofthefreshretailindustry,scenariossuchasfarmers'marketsandcommunityfreshstoreshaveputforwardhigherrequirementsfortheefficiencyandaccuracyofvegetableandfruitweighingandpricing.Thetraditionalmanualweighingmodereliesonoperatorstomanuallyinputtheunitprice,whichispronetopricingerrorsandlowefficiency,andisdifficulttoadapttotheoperationneedsduringpeakhours.Thispaperdesignsavegetableandfruitweighingsystembasedonmachinevision,whichtakesSTM32F103C8T6chipasthecontrolcore,isequippedwithK230intelligentAImodule,andrealizesautomaticrecognitionoffourcommonfruitsandvegetables:apple,cucumber,bananaandtomatothroughYOLOv8algorithm.ThesystemcompletesaccurateweightcollectionthroughHX711chipandpressuresensor.TheOLEDscreendisplaysthename,weight,unitpriceandtotalpriceoffruitsandvegetablesinrealtime.Thesupportingindependentkeyscanflexiblyadjusttheunitpriceofvariousfruitsandvegetables.Afterweighing,theactivebuzzercompletestheoperationprompt,andrealizesthesynchronoustransmissionofweighingdatatothemobileAPPthroughESP8266chip.Theactualtestresultsshowthatthesystem'sfruitandvegetablerecognitionaccuracyreaches96.5%,theweightcollectionaccuracyiscontrolledwithin±1g,andthewholemachinerunscontinuouslyfor24hourswithoutfailure.Itcaneffectivelyreducethelaborcostoffreshretailscenarios,improvetheefficiencyofweighingandpricing,andprovideasetoflow-costandhigh-practicalintelligentsolutionsforsmallfreshmerchants.Keywordsmachinevision;fruitandvegetablerecognition;YOLOv8;weighingandpricing;STM32F103目录191011绪论 155381.1研究背景 1265691.2国内外研究现状 1229411.3论文组织结构 213991.4本章小结 239272功能与设计方案 3217862.1系统功能要求 3303642.2系统设计方案 389402.3器件方案对比 4286492.3.1单片机的选择 4178822.3.2视觉识别单元的选择 5136272.3.3显示单元的选型 5234682.4本章小结 6291983系统的硬件设计 770303.1STM32F103C8T6单片机 7318823.2ESP8266无线通信电路 862973.3HX711重量采集电路 9166323.4OLED显示单元电路 9253173.5独立按键电路 10148313.6有源蜂鸣器提示电路 1052653.7K230智能AI模组电路 11253064系统的软件设计 1395074.1软件介绍 13163294.2软件程序的设计 14206154.2.1主程序流程图 14114334.2.2按键子程序流程图 1571374.2.3显示子程序流程图 16305484.3本章小结 1735455系统的测试 1889925.1硬件测试 1878035.2软件测试 18270855.3实物功能测试 19171175.3.1果蔬识别功能测试 19279105.3.2重量采集精度测试 19233385.3.3人机交互功能测试 20258145.4本章小结 2015805结论 2115027参考文献 2312411谢辞 2515899附录A 2627014附录B 271绪论1.1研究背景近年来,国内生鲜零售行业规模持续扩大,社区生鲜店、便民农贸市场等线下零售场景凭借贴近消费群体、配送时效快的优势,成为生鲜流通的核心渠道之一。果蔬类商品作为生鲜零售的核心品类,具有周转快、品类多、价格调整频繁的特点,称重计价环节的效率直接决定了门店的运营能力与消费体验。当前多数小型生鲜商户仍采用传统人工称重模式,操作人员需要熟记数十种果蔬的单价,称重时手动选择品类、输入价格,不仅效率低下,高峰时段极易造成消费者排队等待,还可能因人工输入失误出现计价错误,引发消费纠纷。市面上已有的自助称重设备大多基于扫码识别模式,需要提前为果蔬粘贴专属条码,增加了商户的运营成本;少数搭载机器视觉的智能称重设备价格高昂,结构复杂,难以适配小型商户的使用需求。在此背景下,设计一套低成本、易操作、集成度高的基于机器视觉的果蔬称重系统,具有极强的实际应用价值。1.2国内外研究现状国外在智能称重与商品识别领域的研究起步较早,技术落地主要集中在大型无人零售场景。美国亚马逊推出的AmazonGo无人便利店,通过多摄像头机器视觉方案实现商品的自动识别与结算,可完成包括果蔬在内的多品类商品识别,但整套系统部署成本极高,难以适配小型零售场景。日本东芝、日立等企业研发的智能称重设备,搭载了成熟的图像识别算法,在大型商超的自助称重区域得到广泛应用,但设备体积较大,对使用环境的光照、摆放条件要求较高,灵活性不足。国内相关研究与应用发展速度较快,头部生鲜零售企业如盒马鲜生、美团买菜等,均在门店部署了搭载机器视觉的自助称重设备,可实现常见果蔬的快速识别与计价,大幅提升了门店运营效率。高校与科研机构也在果蔬识别算法领域开展了大量研究,中国农业大学针对果蔬品类的外观特征,优化了轻量级图像识别模型,提升了复杂背景下的识别准确率;江苏大学针对嵌入式设备的算力限制,完成了YOLO系列算法的轻量化改进,实现了在低算力芯片上的实时识别。但当前国内的相关研究成果,大多集中在算法优化层面,面向小型商户的低成本、高集成度的整机系统设计仍存在空白,多数方案存在硬件成本高、操作复杂、维护难度大的问题,难以在小型零售场景大规模推广。1.3论文组织结构本论文共分为五个核心章节,完整覆盖系统从需求分析到落地实现的全流程内容,各章节的具体安排如下:第一章为绪论,主要阐述本次研究的背景与实际应用价值,梳理国内外智能称重与果蔬识别领域的研究现状,明确本次研究的核心内容与设计目标,同时介绍全文的组织结构。第二章为系统功能与总体设计方案,明确系统需要实现的各项功能需求,提出系统整体设计框架,梳理数据流向与各单元的协同逻辑,同时对主控芯片、视觉识别单元、显示单元三类核心器件完成选型对比,确定最终的器件方案。第三章为系统硬件设计,详细介绍系统各部分硬件电路的设计细节,包括主控电路、AI模组电路、重量采集电路、显示电路、按键电路、蜂鸣器电路、无线通信电路与电源电路,明确各部分电路的设计逻辑与连接方式,为系统稳定运行提供硬件基础。第四章为系统软件设计,介绍系统的软件开发环境,梳理主程序与各子程序的运行流程,同时说明果蔬识别模型的训练、优化与部署过程,以及无线数据传输的实现逻辑,完成系统各项功能的软件实现。第五章为系统测试,分别完成硬件单元测试、软件功能测试与整机性能测试,通过多组测试验证系统各项功能的实现情况,量化系统的识别准确率、称重精度、运行稳定性等核心性能指标,确认系统是否达到设计目标。最后为结论部分,总结本次研究的核心成果,说明系统设计的优势与实际应用价值,同时分析当前系统存在的不足,提出后续的优化与改进方向。1.4本章小结本章围绕果蔬称重系统的研究背景展开,分析了当前生鲜零售场景中传统称重模式存在的痛点,明确了本次研究的实际应用价值。通过梳理国内外机器视觉与智能称重领域的研究现状,明确了当前研究的空白与本次设计的优化方向,同时详细介绍了系统的核心研究内容与全文的组织结构,为后续章节的展开奠定了基础。2功能与设计方案2.1系统功能要求结合小型生鲜零售场景的实际使用需求,本次设计的果蔬称重系统需要实现以下核心功能:系统可通过摄像头采集果蔬图像,借助机器视觉算法自动识别苹果、黄瓜、香蕉、西红柿四类常见果蔬,识别结果可快速传输至主控单元,无需人工手动选择品类,识别过程满足实时性要求,可适应不同光照环境与果蔬摆放角度。系统可通过压力传感器完成果蔬重量的精准采集,称重精度满足零售计价的行业要求;可根据识别到的果蔬品类匹配对应单价,结合采集到的重量自动计算总价,无需人工手动计算,避免计价错误。系统通过显示屏实时显示果蔬品类名称、实时重量、对应单价、合计总价四项核心信息,显示内容清晰直观,可适应不同光线环境;配套独立按键,操作人员可通过按键完成显示界面切换,以及四类果蔬单价的增减调整,适配果蔬价格频繁变动的使用需求,按键操作响应及时,无延迟、误触问题。系统完成一次完整的识别、称重、计价流程后,可通过蜂鸣器发出单次提示音,告知操作人员与消费者称重流程已完成,避免重复称重、漏称重问题。系统可接入无线网络,将每次称重的果蔬品类、重量、单价、总价、称重时间等信息同步传输至手机APP,商户可通过APP查看历史称重记录,完成日常营业数据的统计与核对。2.2系统设计方案系统上电后,首先完成所有外设的初始化,进入待机状态;当果蔬放置到称重台上后,摄像头实时采集果蔬图像,传输至K230智能AI模组,模组通过训练完成的YOLOv8模型完成果蔬品类识别,将识别结果通过串口传输至主控单元;同时,重量采集单元将称重台上的重量信号转换为数字信号,传输至主控单元;主控单元接收到品类信息与重量数据后,匹配对应单价,自动计算总价,将所有信息刷新至显示屏上;操作人员可通过按键调整对应品类的单价,主控单元接收到按键指令后,同步更新单价数据与显示内容;当重量数据稳定后,判定本次称重流程完成,主控单元触发蜂鸣器发出提示音,同时将本次称重的所有数据通过无线通信单元上传至手机APP,完成一次完整的称重流程。图2.1系统硬件模块工作框图2.3器件方案对比2.3.1单片机的选择方案一:STC89C52STC89C52基于8051内核,是工业场景中常用的8位单片机,开发资料丰富,采购成本极低,硬件电路设计简单,可满足基础的IO控制与数据处理需求。但该芯片内核算力有限,最高工作频率仅为24MHz,内置RAM与Flash存储空间较小,无法同时处理多路串口数据与高频传感器数据采集,面对多外设协同运行的场景,易出现数据延迟、处理不及时的问题,同时芯片内置外设接口数量有限,难以满足系统多路串口、IO口的使用需求。方案二:STM32F103C8T6STM32F103C8T6是一款32位单片机,最高工作频率可达72MHz,内置64KBFlash与20KBRAM,可轻松应对多外设的数据处理与协同控制需求;芯片内置多路USART串口、I2C、SPI接口与ADC采集通道,可直接适配系统中视觉模组、无线通信单元、显示单元、重量采集单元的接口需求,无需额外搭建扩展电路;芯片配套的开发库与资料完善,可大幅缩短开发周期,同时工业级芯片具备极强的抗干扰能力,可适应复杂的使用环境。综合算力、接口数量、稳定性与成本等多方面因素,本次设计最终选用STM32F103C8T6芯片作为系统主控。2.3.2视觉识别单元的选择方案一:OpenMV4H7Plus该模组搭载STM32H7芯片,内置完善的机器视觉算法库,可直接实现图像采集与品类识别,开发难度较低。但该模组的算力有限,运行YOLO系列算法时识别速度较慢,难以满足实时识别需求,同时模组采购成本较高,且无法完成算法的深度优化与定制化训练,难以适配本次设计的四类果蔬识别需求,灵活性不足。方案二:K230K230搭载双核RISC-V架构芯片,内置独立的AI算力核心,可支持YOLOv8系列算法的流畅运行,单次识别耗时可控制在0.3s以内,完全满足实时识别需求;模组自带摄像头接口,可直接适配不同规格的摄像头,同时支持自定义模型的训练与部署,可针对本次设计的四类果蔬完成模型的定制化优化,提升识别准确率;模组支持串口通信,可直接与主控芯片完成数据传输,硬件连接简单,且采购成本仅为同性能方案的三分之一,具备极高的性价比。综合识别速度、准确率、定制化能力与成本,本次设计最终选用K230智能AI模组作为视觉识别单元。2.3.3显示单元的选型方案一:LCD1602LCD1602屏幕是工业场景中常用的字符型显示屏,可显示两行16个字符,硬件连接简单,采购成本极低,运行稳定。但该屏幕仅能显示英文字符与数字,无法显示中文汉字,无法直观呈现果蔬品类名称,且屏幕可视角度小,在强光环境下显示内容模糊,无法适配生鲜门店的使用环境,同时屏幕刷新速度慢,难以满足实时重量数据的刷新需求。方案二:OLEDOLED屏幕采用有机自发光技术,无需背光源,可视角度广,在强光与弱光环境下均可清晰显示内容,可支持中文、英文、数字的混合显示,分辨率为128×64,可完整呈现果蔬品名、重量、单价、总价四项核心信息;屏幕通过I2C接口与主控芯片连接,仅需两根信号线即可完成控制,占用IO口资源极少,屏幕刷新速度快,可实时更新重量数据;屏幕功耗极低,使用寿命长,适配嵌入式系统的使用需求。综合显示效果、接口占用、环境适应性等因素,本次设计最终选用0.96寸OLED屏作为显示单元。2.4本章小结本章明确了果蔬称重系统的各项功能需求,结合小型生鲜零售场景的实际使用场景,提出了系统的总体设计方案,梳理了系统的核心单元组成与整体运行流程。同时针对主控芯片、视觉识别单元、显示单元三类核心器件,完成了不同方案的对比分析,确定了最终的器件选型方案,为后续的硬件与软件设计提供了明确的方向。3系统的硬件设计3.1STM32F103C8T6单片机主控电路是整个系统运行的硬件基础,所有外设的控制指令与数据处理均通过该电路完成。本次设计的主控电路以STM32F103C8T6芯片为核心,分为最小系统与外设接口两部分,最小系统保障芯片的正常运行,外设接口完成与其他功能单元的连接。最小系统包含电源、晶振、复位、BOOT设置四部分电路。电源输入采用Type-C接口,支持5V直流电源输入,适配常规手机充电器与移动电源供电,满足不同场景的使用需求;晶振电路选用8MHz高速晶振作为主时钟源,搭配30pF负载电容保障时钟频率稳定,同时配备32.768kHz低速晶振,为系统提供精准的计时基准;复位电路采用上拉电阻搭配手动复位按键的设计,可实现上电自动复位与手动按键复位,保障系统故障时可快速重启;BOOT设置电路通过10K电阻设置BOOT0与BOOT1引脚电平,默认从Flash启动程序,可通过调整电平切换下载模式,方便程序调试与烧录。外设接口根据系统功能需求完成引脚分配,USART1接口的PA9与PA10引脚连接K230智能AI模组,接收果蔬识别结果;USART2接口的PA2与PA3引脚连接ESP8266无线通信单元,实现数据上传与指令接收;PB14与PB15引脚通过I2C接口连接OLED显示屏,完成显示内容的传输;PB12与PB13引脚连接HX711重量采集电路,接收重量数据;PB0、PB1、PB5三个引脚连接独立按键,PA15引脚连接蜂鸣器驱动电路,所有引脚分配均避开芯片的复用功能冲突,保障多路外设可同时稳定运行。电路设计中,在芯片电源引脚处并联100nF滤波电容,抑制电源纹波干扰,提升电路运行的稳定性。图3.1STM32F103C8T6单片机3.2ESP8266无线通信电路无线通信电路负责实现系统与手机APP之间的数据传输,将每次称重的相关信息同步上传至APP,同时可接收APP发送的参数调整指令,是系统实现远程数据查看功能的核心。本次设计选用ESP8266-12F芯片搭建无线通信电路,该芯片内置完整的TCP/IP协议栈,支持802.11b/g/n无线标准,可快速接入WiFi网络,实现设备与手机APP之间的双向数据通信。电路连接中,ESP8266芯片的UART_TXD引脚与主控芯片的PB11引脚连接,UART_RXD引脚与主控芯片的PB10引脚连接,通过USART2串口建立与主控芯片的双向通信链路,主控芯片可通过该链路向ESP8266芯片发送需要上传的称重数据,同时接收芯片转发的APP指令;芯片的VCC引脚接入5V直流电源,GND引脚与系统地连接,EN使能引脚通过10K电阻上拉至3.3V,上电后自动进入工作状态,无需额外的启动控制。芯片的GPIO引脚预留了扩展接口,可后续实现WiFi参数配置、工作状态指示等扩展功能。图3.2ESP8266无线模块3.3HX711重量采集电路重量采集电路是系统实现精准称重的核心,负责将果蔬的重量信号转换为可被主控芯片识别的数字信号,采集精度直接决定了计价的准确性。本次设计的重量采集电路由电阻应变式压力传感器与HX711模数转换芯片组成,二者配合完成重量信号的采集与转换。电阻应变式压力传感器基于惠斯通电桥原理工作,当称重台上放置果蔬时,传感器内部的应变片发生形变,导致电阻值发生变化,惠斯通电桥输出与重量成正比的微弱模拟电压信号,该信号传输至HX711芯片完成放大与模数转换。HX711芯片是一款专为高精度称重场景设计的24位模数转换芯片,内置可编程增益放大器,可将微弱的模拟信号放大至可精准转换的范围,有效提升重量采集的分辨率,芯片内置稳压源与时钟振荡器,无需额外的外围电路,大幅简化硬件设计。HX711芯片的DT引脚与主控芯片的PA6引脚连接,SCK引脚与主控芯片的PA7引脚连接,主控芯片通过这两个引脚完成芯片配置与重量数据读取;芯片的模拟电源引脚与传感器供电引脚共用5V电源输入,数字电源引脚接入3.3V电源,与主控芯片电源域匹配;芯片的正负模拟输入引脚分别连接压力传感器的输出端,组成差分输入模式,可有效抑制共模干扰,提升复杂环境下的采集稳定性。图3.3HX711重量采集电路3.4OLED显示单元电路显示单元电路是系统实现人机交互的核心窗口,负责实时呈现果蔬品类、重量、单价、总价等核心信息,操作人员可通过显示内容直观了解称重状态与参数设置情况。本次设计选用0.96寸OLED屏,分辨率为128×64,内置SSD1306驱动芯片,可支持中文、英文、数字的混合显示,满足系统的显示需求。屏幕采用I2C串行通信接口,仅需两根信号线即可完成所有显示内容的传输与控制,大幅减少对主控芯片IO口资源的占用。电路连接中,屏幕的SDA串行数据线与主控芯片的PB7引脚连接,SCL串行时钟线与主控芯片的PB6引脚连接,主控芯片通过I2C总线向驱动芯片发送显示指令与数据,完成屏幕内容的刷新;屏幕的VCC电源引脚接入3.3V直流电源,与主控芯片最小系统共用同一电源域,GND引脚与系统地连接,保障电平匹配。图3.4OLED显示单元电路3.5独立按键电路独立按键电路是系统实现参数设置的核心输入单元,操作人员可通过按键完成显示界面切换、果蔬单价调整等操作,是人机交互的重要组成部分。本次设计共设置四个独立按键,操作逻辑简单,无需复杂的学习成本即可快速上手。按键均采用轻触式微动开关,按下时导通,松开后自动断开,使用寿命可达10万次以上,适配高频次的日常操作需求。电路采用下拉电阻的设计方式,每个按键的一端连接主控芯片的IO口,另一端连接3.3V电源,同时在IO口与地之间接入10K下拉电阻,按键未按下时,IO口被下拉电阻拉至低电平,按键按下时,IO口接通3.3V电源,变为高电平,主控芯片通过检测IO口的电平变化,判断按键是否被按下,完成对应操作的响应。图3.5独立按键电路3.6有源蜂鸣器提示电路蜂鸣器提示电路负责在称重流程完成后发出提示音,为操作人员与消费者提供明确的操作反馈,避免重复称重、漏称重等问题,是系统交互体系的重要补充。本次设计选用5V有源蜂鸣器,通电后即可发出固定频率的提示音,无需额外的振荡电路,硬件设计简单,提示音清晰响亮,可适应农贸市场、生鲜门店的嘈杂环境。有源蜂鸣器的工作电流较大,无法通过主控芯片的IO口直接驱动,因此本次设计采用NPN三极管搭建开关驱动电路,通过主控芯片的IO口控制三极管的导通与截止,进而控制蜂鸣器的工作状态。电路连接中,NPN三极管的基极通过1K限流电阻与主控芯片的PB15引脚连接,集电极与蜂鸣器的负极连接,发射极与系统地连接;蜂鸣器的正极直接连接5V电源输入,在蜂鸣器的两端反向并联一个1N4007续流二极管,吸收三极管关断时蜂鸣器线圈产生的反向电动势,避免反向电压击穿三极管,保障电路的长期稳定运行。图3.6有源蜂鸣器提示电路3.7K230智能AI模组电路K230智能AI模组电路是系统实现果蔬自动识别的核心,负责完成图像采集、算法运算与识别结果输出,所有与机器视觉相关的运算均在该电路完成,无需占用主控芯片的算力资源。本次设计选用的K230模组内置64MBDDR2内存与16MBFlash存储空间,可直接存储训练完成的识别模型与运行程序,模组自带MIPI摄像头接口,可直接适配200万像素的CMOS摄像头,满足果蔬图像的高清采集需求。电路连接中,模组的UART_TX引脚与主控芯片的PA10引脚连接,UART_RX引脚与主控芯片的PA9引脚连接,通过USART1串口建立双向通信链路,识别完成的果蔬品类信息可通过该链路实时传输至主控芯片,主控芯片也可通过该链路向模组发送指令,调整识别参数与触发模式。图3.7K230智能AI模组电路
4系统的软件设计4.1软件介绍本次设计的系统软件分为两部分,分别是STM32主控芯片的嵌入式程序,与K230模组的果蔬识别模型及运行程序,两部分程序分别在对应的开发环境中完成编写、编译与调试。STM32主控芯片的嵌入式程序采用Keil5MDK开发环境完成编写,该环境是ARM公司专为Cortex-M系列内核单片机推出的集成开发环境,内置代码编辑、编译链接、下载调试全流程功能,支持C语言编程,配套完善的STM32标准外设库,可快速完成芯片外设的初始化与控制,大幅缩短开发周期。开发过程中,通过STM32CubeMX工具完成芯片引脚配置、时钟树设置与外设初始化代码的生成,之后导入Keil5环境中完成功能代码的编写,程序编译完成后,通过ST-Link仿真器完成程序的下载与在线调试,快速定位并解决程序中的问题。K230模组的程序开发基于Linux环境完成,模型训练采用PyTorch框架,搭配UltralyticsYOLOv8开发库完成自定义数据集的模型训练、优化与导出;模型部署采用Canaan官方提供的SDK开发工具链,完成模型的量化与转换,使其可在K230模组的AI算力核心上流畅运行;模组的运行程序采用C语言编写,完成摄像头图像采集、模型推理、识别结果解析与串口数据传输全流程功能,程序编译完成后,通过串口烧录至模组的内置Flash中,上电后自动运行。图4.1Keil_5软件界面4.2软件程序的设计4.2.1主程序流程图系统的主流程图如图4.2所示,系统的主程序采用循环运行的架构,上电后首先完成所有外设的初始化,之后进入主循环,依次完成各项功能的处理,保障系统的实时响应与稳定运行。系统上电后,首先执行初始化流程,包括系统时钟配置、GPIO引脚初始化、USART串口初始化、定时器配置、OLED显示屏初始化、HX711芯片初始化、ESP8266芯片初始化,初始化完成后,OLED屏显示开机界面,同时ESP8266芯片自动连接预设的WiFi网络,与手机APP建立通信链路,K230模组完成摄像头与识别模型的加载,进入待机识别状态。初始化完成后,系统进入主循环,依次执行四项核心处理流程:第一是按键扫描与处理,检测按键状态,判断是否有按键按下,若有按键操作,执行对应的界面切换、单价增减功能,同步更新显示内容;第二是传感器数据采集,通过HX711芯片读取当前重量数据,对数据进行滤波处理,得到稳定的重量值,同时通过串口接收K230模组传输的果蔬识别结果,更新当前果蔬品类与对应单价;第三是显示内容刷新,根据当前的界面状态与采集到的数据,刷新OLED屏的显示内容,实时更新品类、重量、单价、总价信息;第四是称重流程判断与处理,检测重量数据是否稳定,若重量稳定且大于设定的阈值,判定本次称重有效,触发蜂鸣器发出提示音,同时将本次称重数据打包,通过ESP8266芯片上传至手机APP,完成一次完整的称重流程。主循环的每轮循环耗时控制在100ms以内,确保重量数据与识别结果的实时刷新,同时通过标志位管理不同功能的执行逻辑,避免程序出现阻塞,保障系统运行的流畅性与稳定性。图4.2系统逻辑流程图4.2.2按键子程序流程图按键子程序流程图如图4.3所示,按键处理流程负责识别操作人员的按键操作,执行对应的功能指令,是系统实现参数设置的核心逻辑。按键处理采用状态机的设计方式,配合硬件防抖电路,实现按键的准确识别,避免误触发、漏触发问题。按键处理流程在主循环中每10ms执行一次,首先读取四个按键对应IO口的电平状态,记录当前的按键值;之后将当前按键值与上一次扫描的按键值进行对比,判断按键状态是否发生变化,若连续三次扫描到相同的按键状态,确认按键稳定,消除机械抖动的影响;之后根据按键的按下与松开状态,判断是否为有效触发,仅在按键松开时执行对应功能,避免长按导致的连续触发问题。图4.3按键子程序流程图4.2.3显示子程序流程图显示模块子程序流程如下图4.4所示,显示刷新流程负责根据系统当前的运行状态,更新OLED屏的显示内容,确保操作人员可直观读取所有核心信息。显示流程采用双界面设计,分别为主显示界面与单价设置界面,通过标志位判断当前需要显示的界面内容。主显示界面为系统默认界面,分为四行显示核心信息,第一行显示当前识别到的果蔬品类名称,未识别到有效品类时显示“待识别”;第二行显示当前的实时重量,单位为千克,保留三位小数,确保称重精度的直观呈现;第三行显示当前品类对应的单价,单位为元/千克,保留两位小数;第四行显示当前的合计总价,单位为元,保留两位小数。界面内容每50ms刷新一次,确保重量数据的实时更新,识别到品类切换时,同步更新对应单价与总价。单价设置界面可依次查看并调整四类果蔬的单价,界面第一行显示当前选中的果蔬品类名称,第二行显示该品类当前设置的单价,第三行提示按键操作方式,操作人员可通过界面切换键切换不同的果蔬品类,通过增减键调整对应单价,调整完成后自动保存,切换回主界面时同步更新对应品类的单价数据。显示内容采用中文大字号设计,核心数据突出显示,确保在不同光线环境下均可清晰读取。图4.4显示子程序流程图4.3本章小结本章详细介绍了系统的软件设计内容,明确了系统的软件开发环境,梳理了主程序、按键处理、显示刷新的核心运行流程,同时阐述了果蔬识别模型的训练、优化与部署过程,以及无线数据传输的实现逻辑,完成了系统所有功能的软件实现。软件设计采用简化的运行逻辑,避免冗余的代码结构,保障系统运行的实时性与稳定性,与硬件电路配合,实现了系统的全部设计功能。5系统的测试5.1硬件测试在完成系统硬件电路的焊接后,首先对各部分硬件单元进行单独测试,验证每个单元的功能是否正常,确保所有硬件单元均可稳定工作,为后续的整机联调奠定基础。主控电路测试中,首先使用万用表测量电源电路的输出电压,确认5V与3.3V电源输出正常,无短路、虚焊问题;之后通过ST-Link仿真器向主控芯片下载测试程序,验证芯片的下载与运行功能是否正常,同时测试所有IO口、串口、定时器的功能,确认所有外设均可正常配置与运行,主控电路测试全部通过。视觉识别单元测试中,为K230模组供电,下载编写好的识别程序,测试摄像头的图像采集功能是否正常,模型能否正常加载与运行,识别结果能否通过串口正常输出,测试结果显示,模组可正常采集图像,准确识别四类果蔬,识别结果可稳定传输至电脑端,功能全部正常。重量采集电路测试中,为电路供电,通过主控芯片读取HX711芯片的输出数据,测试空载时的零点输出是否稳定,放置标准砝码后,输出数据是否与重量呈线性对应,测试结果显示,重量采集电路可正常输出重量数据,无数据跳动、无响应问题,满足设计需求。5.2软件测试在硬件单元测试全部通过后,进行软件功能测试,验证系统各部分软件功能的实现情况,确保所有程序逻辑均可正常运行,功能响应准确。基础外设功能测试中,首先验证按键处理功能,依次按下三个按键,测试界面切换、单价增减功能是否正常,累计完成300次按键操作,所有操作均准确响应,无漏触发、误触发问题,防抖功能正常;之后测试显示刷新功能,验证主界面与设置界面的切换是否流畅,重量、单价等数据的刷新是否实时,测试结果显示,显示内容清晰,刷新无延迟、无乱码问题,功能正常。识别与称重功能测试中,验证主控芯片能否正常接收K230模组的识别结果,能否准确读取重量数据,自动计算总价,测试结果显示,主控芯片可实时接收识别结果,匹配对应单价,结合重量数据准确计算总价,数据处理逻辑正常,无计算错误问题。无线通信功能测试中,验证ESP8266芯片能否正常连接WiFi网络,与手机APP建立通信链路,称重数据能否正常上传,APP指令能否正常接收与执行,测试结果显示,芯片可快速连接WiFi网络,数据传输稳定,指令响应准确,无线通信功能全部正常。5.3实物功能测试5.3.1果蔬识别功能测试本次测试选取苹果、黄瓜、香蕉、西红柿四种目标果蔬,在室内自然光、灯光直射、弱光三种常见使用环境下,每种果蔬各完成200次识别测试,统计系统的识别准确率与单次识别耗时。测试结果显示,系统在三种环境下的整体识别准确率达96.5%,单次识别平均耗时0.3s,无连续识别失败的情况,可满足日常使用的实时性与准确性要求。图5.1果蔬识别功能测试5.3.2重量采集精度测试本次测试选用10g、50g、100g、200g、500g、1000g、2000g、5000g共8组标准砝码,每组砝码在称重台上重复测试50次,记录系统显示重量与标准重量的差值,统计最大误差与零点漂移量。测试结果显示,系统重量采集误差控制在±1g以内,零点漂移量小于0.5g,在0-5kg的称重范围内均保持稳定的采集精度,满足生鲜零售计价的精度要求。图5.2重量采集精度测试5.3.3人机交互功能测试本次测试验证OLED显示与按键操作的全流程功能,依次完成界面切换、四类果蔬的单价增减设置、实时数据刷新三项核心测试,累计完成300次按键操作与100次界面切换。测试结果显示,所有按键操作响应准确无延迟,界面切换流畅,显示内容清晰无乱码,核心数据刷新实时,无卡顿、显示异常问题,符合人机交互的设计需求。图5.3人机交互功能测试5.4本章小结本章完成了系统的全流程测试工作,分别进行了硬件单元测试、软件功能测试与整机性能测试,验证了系统所有功能的实现情况,量化了系统的核心性能指标。测试结果表明,系统各项功能均正常实现,果蔬识别准确率、重量采集精度、运行稳定性等核心指标均达到设计目标,可满足小型生鲜零售场景的实际使用需求。结论本次研究针对小型生鲜零售场景的称重计价需求,设计并实现了一套基于机器视觉的果蔬称重系统,完成了系统的方案设计、硬件电路搭建、软件程序编写、识别模型训练与整机调试全流程工作,解决了传统人工称重模式效率低、易出错、成本高的痛点。系统以STM32F103C8T6芯片为控制核心,搭载K230智能AI模组,通过YOLOv8轻量级模型实现了苹果、黄瓜、香蕉、西红柿四类果蔬的自动识别,识别准确率达96.5%;通过HX711芯片与压力传感器实现了重量的精准采集,采集精度控制在±1g以内;配套OLED显示屏与独立按键,实现了清晰的人机交互与灵活的单价调整功能;称重完成后可通过蜂鸣器完成操作提示,同时借助ESP8266芯片实现了称重数据向手机APP的同步传输。整机测试结果表明,系统各项功能均正常实现,可连续24小时稳定运行,具备低成本、易操作、高实用性的特点,可直接应用于农贸市场、社区生鲜店等小型零售场景,有效降低商户的人工成本,提升称重计价效率。参考文献[1]甘慧娟.基于HX710A的高精度电子秤设计[J].2022(11).[2]唐荣芳.基于ARM精确实时获取活禽交易信息的智能电子秤设计[J].电子制作,2022,30(18):46-48.[3]蓝奇,吴奕,李林政,等.基于电阻应变片的智能电子秤的设计[J].电脑知识与技术:学术版,2023,19(13):96-98.[4]王胜楠.电子秤测重数据同步传送系统的嵌入式开发[J].科技与创新,2022(13):3.[5]左兰,肖洁.基于单片机的智能电子秤的设计与实现[J].农业装备技术,2023,49(3):42-46.[6]刘子杰,段元梅.基于单片机的智能电子秤设计[J].电脑编程技巧与维护,2023(4):127-129.[7]唐荣芳.基于无线传输的智能电子秤数据采集统计系统设计研究[J].信息记录材料,2022,23(6):3.[8]薛允涛.斗轮机悬臂高精度电子皮带秤研发与应用[J].衡器,2023(8):35-38.[9]沈忱.整机型高精度电子皮带秤的设计与改造[J].设备管理与维修,2023(4):68-69.DOI:10.16621/ki.issn1001-0599.2023.02D.31.[10]孙春虎,方愿捷.一种改进型高精度定量称重系统的设计[J].包装与食品机械,2023,41(1):86-90.[11]王昀刘泓叶珺刘亚璇吴小莉.一种基于YoloV4-tiny算法的智能电子秤设计[J].长江信息通信,2022,35(10):37-41.[12]王贵松,张志萍.基于单片机的智能电子秤控制系统的设计[J].自动化应用,2023,64(16):92-94.[13]郑冬,李萍萍,龚识懿,等.基于轻量卷积神经网络的智能电子秤设计[J].重庆电力高等专科学校学报,2023,28(5):18-21.[14]甘辉,吕美妮,王奎奎,等.基于CH32高精度称重数据采集系统的设计与实现[J].电脑知识与技术:学术版,2023,19(11):10-12.[15]耿令新,王恒一,李洋,等.蒜头高精度动态称重信号获取与分级方法研究[J].干旱地区农业研究,2023,41(5):274-282.[16]王志强戴泽军项锦波彭建飞庄晓玮.絮状粉末制品微量高精度称重系统设计与试验[J].机电工程,2022,39(3):330-336.[17]王柯竣,胡乃瑞,李露.基于物联网的智能体重秤系统设计[J].电子技术,2023(11):18-19.[18]唐智飞,牛重举,王争站,等.基于STM32的智能体重秤设计[J].无线互联科技,2022(003):019.[19]严龙,肖福礼,王喜阳,等.电子秤全自动检定装置的设计与研究[J].中国品牌与防伪,2023(12):67-69.[20]王春泉.基于单片机的电子秤质量检测系统设计[J].轻工标准与质量,2022(001):000.谢辞本论文的完成,离不开我的指导老师的悉心指导。从论文的选题、系统方案设计,到硬件调试与论文撰写的全流程,老师都给予了我专业的指导与宝贵的建议,帮助我解决了研究过程中遇到的诸多难题,老师严谨的治学态度与丰富的工程经验,让我受益匪浅,在此向老师致以最诚挚的感谢。感谢学院为我提供了完善的实验环境与设备支持,让我能够顺利完成系统的硬件焊接与调试工作。感谢实验室的同学与朋友们,在研究过程中与我交流探讨,为我提供了很多思路与帮助,陪我度过了很多调试程序的日夜。特别感谢我的家人,一直以来给予我无条件的理解与支持,是我能够安心完成学业与研究的坚强后盾。最后,感谢所有在论文评审过程中付出时间与精力的各位老师,感谢你们提出的宝贵修改意见。附录A原理图:附录B部分源程序:#include"led.h"#include"delay.h"#include"sys.h"#include"usart.h"#include"oled.h"#include"key.h"#include"timer.h"#include"HX711.h"#include"usart2.h"#include"usart3.h"#include"esp8266.h"shorttemperature; //温度inttemp_n;intweight_now,weight_num;constchar*mingbuff="";u8danjia=0;u8moshi=0;u16temp_l=12; //单价u16temp_h=8;u16time_t=15; //u16time_h=10;u8ms_flag=1;u8mingcheng=2;voidKey_process(){ u8t=0; u8t1=0; t=KEY_Scan(0); //得到键值 t1=KEY_Scan(1); //得到键值 if(t==KEY0_PRES) { OLED_Clear(); moshi++; if(moshi>=5)moshi=0; if(moshi==0) { OLED_ShowStr(8,0,"名称:",16); OLED_ShowStr(8,16,"单价:元/千克",16); OLED_ShowStr(8,32,"重量:克",16); OLED_ShowStr(8,48,"总价格:.元",16); } elseif(moshi==1) { OLED_ShowStr(16,24,"苹果单价:",16); } elseif(moshi==2) { OLED_ShowStr(16,24,"黄瓜单价:",16); } elseif(moshi==3) { OLED_ShowStr(16,24,"香蕉单价:",16); } elseif(moshi==4) { OLED_ShowStr(16,24,"茄子单价:",16); } } if((t1==KEY1_PRES)&&(moshi!=0)) { delay_ms(120); if(moshi==1) { if(temp_l<99)temp_l++; } elseif(moshi==2) { if(temp_h<99)temp_h++; } elseif(moshi==3) { if(time_t<99)time_t++; } elseif(moshi==4) { if(time_h<99)time_h++; } } if((t1==KEY2_PRES)&&(moshi!=0)) { delay_ms(120); if(moshi==1) { if(temp_l>0)temp_l--; } elseif(moshi==2) { if(temp_h>0)temp_h--; } elseif(moshi==3) { if(time_t>1)time_t--; } elseif(moshi==4) { if(time_h>1)time_h--; } } if((t==KEY3_PRES)&&(moshi==0)) { } }intmain(void){ delay_init(); I2C_Configuration(); OLED_Init(); //显示屏初始化 OLED_ShowStr(16,16,"Conecting...",16); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组2 TIM3_Int_Init(99,7199); //定时器初始化 uart_init(9600); USART2_Init(9600); //串口初始化 usart3_init(9600); //串口初始化 esp8266_start_trans(); //esp8266进行初始化 OLED_Clear(); OLED_ShowStr(8,0,"名称:",16); OLED_ShowStr(8,16,"单价:元/千克",16); OLED_ShowStr(8,32,"重量:克",16); OLED_ShowStr(8,48,"总价格:.元",16); Init_HX711pin();//初始化压力传感器 KEY_Init(); //按键初始化 LED_Init(); Get_Maopi(); Get_Maopi(); while(1) { Key_process(); if(moshi==0) { if(cz_flag==1) { Get_Weight(); //压力检测 cz_flag=0; } if(mingcheng>0)LCD_ShowNum(48,32,Weight_Shiwu,4,16); //显示重量 if(Weight_Shiwu>10) { if(mingcheng==1) { OLED_ShowStr(48,0,"苹果",16); LCD_ShowNum(48,16,temp_l,2,16); //LCD_ShowNum(48,32,weight_num,2,16); weight_num=Weight_Shiwu*temp_l; t_min1=weight_num/1000; t_sec1=weight_num%1000; LCD_Show
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 康复治疗技术专业课程介绍
- 2026年艺术设计行业技能考试-家具设计师历年参考题库含答案解析
- 2026年石油石化技能考试-防腐绝缘工考试历年参考题库含答案解析
- 2026年生化化工药品技能考试-氯乙烯合成历年参考题库含答案解析
- 2026年环保知识生态建设知识竞赛-垃圾分类知识竞赛历年参考题库含答案解析
- 2026年煤炭矿山职业技能鉴定考试-综掘机司机历年参考题库含答案解析
- 2026年煤炭矿山职业技能鉴定考试-凿岩机司机考试历年参考题库含答案解析
- 2026年火电电力职业技能鉴定考试-电厂热力试验考试历年参考题库含答案解析
- 2026年浙江住院医师-浙江住院医师儿科历年参考题库含答案解析
- 2026年河南住院医师-河南住院医师医学检验科历年参考题库含答案解析
- 2026中国交通建设集团招聘考试历年参考题库含答案详解
- 2026年中秋国庆节前安全教育培训
- 2026年秋统编版(新教材)小学道德与法治六年级上册(全册)分层作业及答案(附目录)
- 韩语topik考试历年真题及答案新课标
- 莲蓬创意绘画课件
- 2025贵州贵阳贵安面向退役军人选拔培养中小学“兵教师”40人笔试备考题库及答案解析
- 车间降本增效培训
- 工业机器人基础中职完整全套教学课件
- GB/T 192-2025普通螺纹牙型
- 外来车辆进出管理制度
- 《文化研究导论》全套教学课件
评论
0/150
提交评论