温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
STM32
自主
调配
奶茶
系统
设计
第 卷湖北师范大学学报(自然科学版)第 期 ()基于 的自主调配奶茶机系统设计段玉龙高红亮赵宇科(湖北师范大学 电气工程与自动化学院湖北 黄石)摘要:随着奶茶饮品的流行店铺间的竞争日益激烈如何在满足顾客需求的前提下节约成本、提高饮品生产效率已经成为该行业的重要问题而实现奶茶调配过程的半自动化可以有效地解决这一问题 为了实现奶茶调配半自动化以 为硬件基础搭配 外部中断器通过移植 操作系统在 上使用 语言进行编程实现了自主调配奶茶机系统 实验过程中代码运行无错误无警告且实现了预期的功能 在该系统中操作员可根据顾客的需求自主选择加入各种配料达到了减少人工成本、提高工作效率的目的关键词:奶茶机中图分类号:.文献标志码:文章编号:():./.引言在人流密集的商业场所中纯手工的奶茶调配流程已无法确保奶茶的及时供应同时各个店铺之间竞争激烈如何有效地降低奶茶制作成本、提高奶茶制作效率已然成为每个店铺所面临的问题 由于每个人对奶茶口味的喜好不同全自动化的奶茶调配设备难以适用因此在奶茶调配的过程中更需要半自动化的调配设备在满足顾客的需求下提高奶茶的调配效率在设计系统的过程中需要考虑到奶茶的配比问题这需要系统具有一定的精确性以保证奶茶的良好品质同时为了节约奶茶制作的时间需要系统具备多模块同步工作的能力因此本系统采用 移植 操作系统的方式保证饮品的高生产效率及配比的准确 为 位微控制器与常见的 单片机相比虽然价格略高但 可多任务运行、功耗更低、功能更齐全所以本文选择 作为硬件基础 在操作系统的选择上 是一款开源免费的实时操作系统可以在较小 的单片机上运行能够在保证功能齐全的同时降低设备的成本因此本系统选择使用 操作系统 整体系统设计以 为硬件基础移植 后可进行多任务运行可以有效的提高奶茶制作效率本系统创建三个任务任务一控制奶茶机出水口阀门任务二控制配料 阀门任务三控制配料 阀门初始状态下任务二与任务三不执行任务一执行当任务一执行完后可通过 按键使程序重新运行 在程序运行期间用户可以根据自己的喜好选择按下 或 键加入指定的配料从而达到自主选择配料的功能原理如图 所示:收稿日期:基金项目:湖北省自然科学基金()湖北省高等学校省级教学研究项目()作者简介:段玉龙()男安徽阜阳人在读硕士研究生研究方向为嵌入式系统的设计与应用.通讯作者:高红亮()男湖北黄冈人副教授博士研究方向为嵌入式系统与智能控制 :.图 自主调配奶茶机原理图本系统在设计的过程中涉及到的主要原理包括 外部中断、多任务运行、消息队列的使用以下则是对各原理的简要介绍:外部中断:是外部中断/事件控制器其管理了 根中断/事件线每根线都有对应的边缘检测器并且每根线都可以单独配置可以检测输入信号的上升沿和下降沿 本系统中将与 配置为中断线分别通过 与 按键触发对应中断 多任务管理:与裸机系统相比 移植 后可进行多任务运行合理地配置任务优先级可以大大增加系统的实时性 在 操作系统中任务与中断类似都拥有优先级但区别在于优先级的配置方法和高低次序不同中断中数字越小则优先级越高但任务优先级中数值越大则优先权越高 在程序运行时优先级高的任务会率先被系统执行当高优先级的任务处于阻塞态、挂起态时系统才可以执行优先级较低的任务消息队列:消息队列是用于任务间通信的数据结构也可以实现中断与任务间的通信使任务可以接收来自中断的消息当消息队列为空时可设置读取消息的任务以阻塞状态等待消息当队列中有新消息时该任务将会从阻塞状态下被唤醒并处理新的消息综合上述原理本系统将任务二与任务三设为高优先级任务在任务首部加入消息队列读取函数可以使任务二与任务三在初始状态下处于阻塞态通过中断服务函数向消息队列发送消息的方式唤醒任务二与任务三将中断配置为按键触发从而达到通过按键触发任务二或任务三开启的效果进而通过任务二和任务三控制机器配料口的开关阀门可实现自主选择奶茶配料的功能 移植 操作系统需要在裸机项目模板的基础上进行移植在裸机项目模板中应注意选择对应的芯片型号避免因芯片引脚不同导致程序运行失败本系统采用的芯片为.移植 操作系统时应确保系统的完整性和正确性移植的关键在于项目文件和 中断服务函数在物理层加入指定文件后需要在工程项目中创建两个分组分别为/和/并将指定的文件加入到各个分组且在 分组中加入.头文件最后在.文件中加入 中断服务函数即可完成操作系统的移植 移植完成后 中部分项目组的文件结构如图 所示:图 移值 后部分项目文件结构 实例系统设计本系统使用 语言进行设计主程序中设置了三个 灯任务以三种不同颜色的 灯的开关来模拟三个原料的开关阀门其中用控制红灯的亮灭来模拟控制奶茶机出水阀门的开关绿灯与蓝灯分别模拟原料 与原料.系统通过 灯的点亮与关闭直观地反映奶茶机系统运行时的状态.硬件初始化在主程序设计之前首先需要进行硬件初始化硬件初始化需要配置 函数、函数以及 函数配置 函数与配置 函数相对简单打开相对应的时钟配置指定的 端口注意配置 灯时选择推挽输出配置 函数时选择浮空输入最后在 函数中加入按键扫描函数即可在配置 函数时要首先需要配置中断优先级此时需注意配置.头文件中宏定义的系统可管理最高中断优先等级本系统中设置数值为 同时本系统的外部中断抢占优先级数值也设置为 之后配置外部中断结构体函数的成员其中 外部中断器的结构体函数包含四个成员 为中断/事件线选择可选 至 本系统中选择的为 与分别连接 与 为 模式选择可配置为产生中断或产生事件 为 边沿触发选择有三种可配置选项分别为上升沿触发、下降沿触发、上升沿和下降沿都触发 为是否使能 线.主程序设计设计多任务程序主要在于合理配置任务的优先级在 操作系统当中一般限定 个任务优先级数值越大则表示任务优先级越高 则代表最低优先级当程序运行时系统将优先运行优先级较高的任务因此应避免高优先级任务出现无延时的死循环主任务流程图如图 所示在主程序的开头应先定义中断优先级分组本系统中采用 即 都用来表示抢占优先级可选数值为:.初始化中断优先级后进行硬件初始化其中包括、硬件初始化之后进行 任务的创建最后调用 的任务调度器即调用函数()使程序得以运行 任务的内容如图 所示首先进入临界区防止程序在创建任务的过程中被中断打断 创建 个消息队列后分别创建三个 任务最后退出临界区图 主程序流程图 图 程序流程图其中创建的消息队列分别为 和 在创建消息队列的过程中本系统将消息队列的长度与消息大小全部设置为.之后创建三个 任务分别为、这里三个 灯任务对应的优先级分别为、其中 任务内容如下:()()程序中以 为控制红灯亮起实际为模拟打开奶茶机出水阀门 为模拟关闭阀门使用()延时函数控制出水的时间在实际生产中可根据奶茶杯的容量、出水口的流量、奶茶各原料配比等因素进行具体设定 代码为 ()()()()/代码段/()任务二在任务一的基础上加入了消息队列的读取函数其中 为消息队列的句柄为用来接收消息的变量 为设置等待时间为一直等待即当消息队列为空时任务二会以阻塞状态等待消息从而使系统运行优先级较低的任务一 当消息队列中有新消息时消息读取函数会接收到消息任务二从阻塞状态下被唤醒进而执行任务二的内容实际应用中可根据奶茶配比中的具体参数调节()函数的延时时间也可根据程序中的延时时间选择合适大小的配料口开关阀门达到较为合适的奶茶原料配比 任务代码与 任务原理相同区别在于读取的消息队列不同 以此方法达到初始状态下任务一运行任务二与任务三不运行在接收到来自中断服务函数的消息后触发任务二或任务三的功能.配置中断服务函数本系统中创建了两个中断服务函数分别为 和 在两个中断服务函数中分别向消息队列 和 发送指定信息需要注意在中断中向消息队列发送消息不能用()函数需要使用具有中断保护功能的()函数最后在发送消息队列后调用()清除中断标志位 实例运行本系统采用实物模拟的方式验证系统的可行性实例测试在野火 开发板上进行通过、三个按键控制 灯的方式测试系统的运行状态在实验中以红灯亮灭模拟奶茶机出水阀门开关绿灯亮灭模拟配料 阀门开关蓝灯亮灭模拟配料 阀门开关在实验中开发板呈现了 种状态如图 所示:图 开发板运行状态当程序下载到开发板时按 键使程序开始运行此时红灯亮起若无其他操作一段时间后红灯熄灭若红灯已熄灭则可按下 键使程序重新启动此时红灯重新亮起既开始新一杯奶茶的制作红灯亮起时按下 键则红灯变为嫩绿色即为绿色与红色的混合色表示原料 正在加入在一段时间后嫩绿色转化为红色表示原料 加入完毕再经过一段时间后红灯熄灭表示奶茶制作完成 红灯亮起时按下 键则红灯变为紫色表示原料 正在加入即为蓝色与红色的混合色在一段时间后紫色转化为红色表示原料 加入完毕再经过一段时间红灯熄灭表示奶茶制作完成在红灯亮时按下 键 灯呈现嫩绿色此时再按下 键则 灯呈现天蓝色即蓝色、绿色、红色的混合色表示原料 与原料 在同时加入一段时间后天蓝色转化为紫色表示原料 加入完毕之后紫色转化为红色一段时间后红色灯熄灭 在红灯亮时按下 键 灯呈现紫色此时再按下 键则 灯呈现天蓝色表示原料 与原料 在同时加入一段时间后天蓝色转化为嫩绿色表示原料 加入完毕之后嫩绿色转化为红色一段时间后红色灯熄灭综合模拟结果证明该系统可在野火 开发板上正常运行由第一部分实验结果可知该系统可以实现在配料 与配料 之间进行自由选择且在配料 或配料 加入的同时并不会影响到奶茶机出水阀门的开关状态既可实现两个任务的同时工作由第二部分实验可知该系统也可以实现配料 与配料 的同时加入既可实现三个任务的同时工作且改变配料 与配料 加入的先后顺序并不会导致系统卡死综合上述实验结果可知该系统运行时可以实现自主选择奶茶配料的功能且各种配料可以同时加入节省了奶茶制作的时间实验现象完全符合实验预期 结语基于 开发板、操作系统和 外部中断本文分析了主要部分的设计原理实现了自主调配奶茶机系统 该系统可以有效地提高奶茶制作效率减少人力成本的消耗 在实例系统的演示中本文将实际的开关阀门使用 灯亮灭的方式展现出来直观地展示了系统正常运行时的状态 代码使用 语言编写程序结构简洁可读性高可移植性高 在本系统的结构框架下可以衍生到类似于奶茶机的各种原料调配设备具有一定的实际应用意义参考文献:朱向庆何昌毅朱万鸿等.基于 单片机的通信技术实验系统设计.实验技术与管理():.:./.:.:():.张根宝李 露.基于 的/数字键盘通信协议模拟与实现.电子器件():.熊一鹏岳伟.多任务调度机制在监控单元中的应用.单片机与嵌入式系统应用():.沈小其何勇.基于 和 的剑杆织机主控系统设计.制造业自动化():.赵 波.基于 和 的温度测量系统设计.电子技术与软件工程():.徐菁菁张 宇杨俊清王月柔.基于 的车辆状态监测系统.电子器件():.卢洪钰刘成印韩梦雅陈怡光.基于 和 光离子传感器的挥发性有机气体在线监测仪.电子设计工程():.:./.胡进德.单片机 的红外遥控器解码系统设计.单片机与嵌入式系统应用():.曾雨晨熊薇薇苏明霞.基于 的 单片机仿真实验教学.产业与科技论坛():.():.: