青少年科技创新大赛创新发明获奖作品《食堂点餐辅助系统》.docx
- 文档编号:763531
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:22
- 大小:250.41KB
青少年科技创新大赛创新发明获奖作品《食堂点餐辅助系统》.docx
《青少年科技创新大赛创新发明获奖作品《食堂点餐辅助系统》.docx》由会员分享,可在线阅读,更多相关《青少年科技创新大赛创新发明获奖作品《食堂点餐辅助系统》.docx(22页珍藏版)》请在冰豆网上搜索。
青少年科技创新大赛创新发明获奖作品《食堂点餐辅助系统》
食堂点菜辅助系统
技术文档1.0
宁波三中
机器人实验室
2017年11月13日
项目摘要
项目背景:
中小学生多数在学校食堂吃午饭或者晚饭,通常吃饭时间比较集中,打饭排队时间较长,食堂打饭工作人员很繁忙,而且在打卡结账的时候还容易算错帐,打饭效率低。
通过现场观察和与食堂工作人员和学生的交流,发现食堂打饭效率底下的原因主要在以下几个方面;
(1)、学生排队打饭的时候,通常排到打菜窗口的时候,才看需要打什么菜,在学生思考的过程中,后面排队的同学和工作人员是在一个等待的过程。
(2)、由于食堂环境比较吵杂,需要打什么菜和食堂工作人员存在沟通方面不是特别顺畅的问题(3)、学生打完不同的菜后,食堂工作人员通过心算得出应该刷卡的价钱,然后在刷卡机上输入金额并刷卡,经常会出现算错价钱或打卡输错金额的情况。
设计的优点:
(1)通过食堂不同窗口和时间段的多次观察,统计每一个学生从开始点餐到将打好饭的餐盘拿到手中,平均用时35—50秒时间,通过食堂点餐辅助系统,学生完成整个过程只需要15—25秒时间。
(2)食堂工作人员劳动强度降低,不需要再计算每个同学打饭扣款金额,不需要频繁的在打菜窗口和食堂的菜盆之间移动。
工作人员节省的时间和体力可以更多用在饭菜的种类、口味、卫生上。
一、系统结构(为方便演示携带,故用模型代替)
1、功能划区
①价格
2、系统组成
RFID设备通讯总线
3、系统工作原理
通讯0:
连接方式:
USB串口线,通讯协议:
串口,9600比特率
通讯内容:
①I2C主控下发I2C通讯中收到的各个菜价给MiniPC;
②MiniPC上传点菜总价给I2C主控;
③I2C主控下发RFID读取到的或扣款后的卡内金额给MiniPC
通讯1:
连接方式:
网线POE供电,通讯协议:
I2C
通讯内容:
①I2C主控接收I2C通讯总线中传来的各个菜价
②I2C主控向I2C通讯总线发送需要机械手点按的总价(或下发传菜指令,视需求而定)
③I2C主控向I2C通讯总线发送需要指示的菜品信息
通讯2:
连接方式:
网线POE供电,通讯协议:
I2C
通讯内容:
机械手接收I2C通讯总线中传来的需要点按的总价(或传菜指令,视需求而定)
通讯3:
连接方式:
网线POE供电,通讯协议:
I2C
通讯内容:
①价格显示调整及指示系统向I2C通讯总线发送各个菜价
②价格显示调整及指示系统接收I2C通讯总线传来的需要指示的菜品信息
通讯4:
连接方式:
网线POE供电,通讯协议:
I2C
通讯内容:
①价格显示调整及指示系统向I2C通讯总线发送各个菜价
②价格显示调整及指示系统接收I2C通讯总线传来的需要指示的菜品信息
二、子系统的实现
1、MiniPC点菜控制系统
硬件配置:
MiniPC主机,7寸触摸显示屏
如上图采用VB界面设计,增加定时器及串口通讯模块
代码如下:
Dimf(12)AsInteger
Dimprice(12)AsDouble
DimtmpAsString
Dimcombegin,jAsInteger
'以下代码实现标签的颜色回到初始设置的颜色
PrivateSubCommand1_Click()
Fori=1To10
Lab1(i).BackColor=&HFFFF&
f(i)=0
Next
Text1.Text=0
EndSub
PrivateSubCommand2_Click()
IfLab1
(1).BackColor=&HFFFF&AndLab1
(2).BackColor=&HFFFF&Then
ledstate="0"
ElseIfLab1
(1).BackColor=&HFF&AndLab1
(2).BackColor=&HFFFF&Then
ledstate="1"
ElseIfLab1
(1).BackColor=&HFFFF&AndLab1
(2).BackColor=&HFF&Then
ledstate="2"
ElseIfLab1
(1).BackColor=&HFF&AndLab1
(2).BackColor=&HFF&Then
ledstate="3"
EndIf
If(MSComm1.PortOpen=True)Then
MSComm1.Output=ledstate+Str(Text1.Text*10)
EndIf
EndSub
PrivateSubCommand3_Click()
MSComm1.CommPort=Combo1.Text
MSComm1.PortOpen=True
MSComm1.RThreshold=1
'以下代码实现将Combo1文本框内文本存入1.txt以便下次打开时调用
OpenApp.Path&"\1.txt"ForOutputAs#1
Print#1,Combo1.Text
Close#1
'
Combo1.Visible=False
Command3.Visible=False
EndSub
PrivateSubForm_Load()
Fori=1To10
Lab1(i).Width=Lab1(9).Width
Lab1(i).Height=Lab1(9).Height
Lab1(i).Font.Size=Lab1(9).Font.Size
Lab1(i).Alignment=2
Next
'以下代码实现扫描可用串口端口并列到Combo1选择框内可供选择
Fori=1To16
MSComm1.CommPort=i
IfMSComm1.PortOpen=TrueThen'先关闭串口
MSComm1.PortOpen=False
EndIf
OnErrorResumeNext
MSComm1.PortOpen=True
IfErr.Number<>8002Then
Combo1.AddItemi
MSComm1.PortOpen=False
EndIf
Nexti
'以下代码实现如果1.txt存在则读取1.txt文档内容并且写入Combo1文本框内
IfDir(App.Path&"\1.txt")<>""Then'如果1.txt存在
OpenApp.Path&"\1.txt"ForInputAs#1
DoWhileNotEOF
(1)
Input#1,B
Combo1.Text=Combo1.Text&B
Loop
Close#1
EndIf
'
EndSub
PrivateSubForm_Unload(CancelAsInteger)
IfMSComm1.PortOpen=TrueThen
MSComm1.PortOpen=False
EndIf
EndSub
PrivateSubLab1_Click(IndexAsInteger)
DimiAsInteger
i=Index
Iff(i)=0Then
Lab1(i).BackColor=&HFF&
f(i)=1
Text1.Text=Val(Text1.Text)+Val(Lab1(i).Caption)
ElseIff(i)=1Then
Lab1(i).BackColor=&HFFFF&
f(i)=0
Text1.Text=Val(Text1.Text)-Val(Lab1(i).Caption)
EndIf
EndSub
PrivateSubdealWithData()'处理缓存TMP
Dimstr_tmp()AsString
str_tmp=Split(tmp,"|")
Fori=1ToUBound(str_tmp)
price(i)=Val(str_tmp(i-1))/10
Nexti
EndSub
PrivateSubMSComm1_OnComm()
If(MSComm1.CommEvent=comEvReceive)Then
DimdataAsString
data=MSComm1.Input
Fori=1ToLen(data)
DimchAsString
ch=Mid(data,i,1)
Ifch="*"Then
CalldealWithData
tmp=""
Else
tmp=tmp+ch
EndIf
Nexti
EndIf
EndSub
PrivateSubTimer1_Timer()
Fori=1To10
Lab1(i).Caption=price(i)
Next
Ifprice(12)<>0Then
Text2.Text=price(12)'余额
Else
Text2.Text="放卡后显示"
EndIf
EndSub
2、I2C主控,兼RFID刷卡系统
硬件配置:
ArduinoNano控制板,RFID读卡模块
代码如下:
#include
#include"RC522.h"
#include
#include
//4bytesSerialnumberofcard,the5bytesisverfiybytes
unsignedcharserNum[5];
unsignedcharstate_pre=1;
intBalance=3000;//余额
intaddress=0;
Stringtotalprice="";
intprice[12]={88,88,88,88,88,88,88,88,88,88,0,0};//最后一位为向RFID发送的数据“余额”
charledstate;//led状态,'0'为全关,'1'开左灯,'2'开右灯,'3'开两灯
voidRFIDwrite();//函数声明
voidsetup(){
Wire.begin();
Serial.begin(9600);
Serial.println("GO!
");
Serial.println();
pinMode(chipSelectPin,OUTPUT);//Setdigitalpin10asOUTPUTtoconnectittotheRFID/ENABLEpin
digitalWrite(chipSelectPin,LOW);//ActivatetheRFIDreader
SPI.begin();
MFRC522_Init();//初始化RFID
}
voidloop()
{
intflag,address;
RFIDwrite();
///////////////////////////////////////////////////
//以下代码是扫描I2C总线通讯传过来的子设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 食堂点餐辅助系统 青少年科技 创新 大赛 发明 获奖作品 食堂 辅助 系统