青少年科技创新大赛创新发明获奖作品《食堂点餐辅助系统》Word格式文档下载.docx

上传人:b****2 文档编号:13688570 上传时间:2022-10-12 格式:DOCX 页数:22 大小:250.41KB
下载 相关 举报
青少年科技创新大赛创新发明获奖作品《食堂点餐辅助系统》Word格式文档下载.docx_第1页
第1页 / 共22页
青少年科技创新大赛创新发明获奖作品《食堂点餐辅助系统》Word格式文档下载.docx_第2页
第2页 / 共22页
青少年科技创新大赛创新发明获奖作品《食堂点餐辅助系统》Word格式文档下载.docx_第3页
第3页 / 共22页
青少年科技创新大赛创新发明获奖作品《食堂点餐辅助系统》Word格式文档下载.docx_第4页
第4页 / 共22页
青少年科技创新大赛创新发明获奖作品《食堂点餐辅助系统》Word格式文档下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

青少年科技创新大赛创新发明获奖作品《食堂点餐辅助系统》Word格式文档下载.docx

《青少年科技创新大赛创新发明获奖作品《食堂点餐辅助系统》Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《青少年科技创新大赛创新发明获奖作品《食堂点餐辅助系统》Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。

青少年科技创新大赛创新发明获奖作品《食堂点餐辅助系统》Word格式文档下载.docx

2、系统组成

RFID设备通讯总线

3、系统工作原理

通讯0:

连接方式:

USB串口线,通讯协议:

串口,9600比特率

通讯内容:

①I2C主控下发I2C通讯中收到的各个菜价给MiniPC;

②MiniPC上传点菜总价给I2C主控;

③I2C主控下发RFID读取到的或扣款后的卡内金额给MiniPC

通讯1:

网线POE供电,通讯协议:

I2C

①I2C主控接收I2C通讯总线中传来的各个菜价

②I2C主控向I2C通讯总线发送需要机械手点按的总价(或下发传菜指令,视需求而定)

③I2C主控向I2C通讯总线发送需要指示的菜品信息

通讯2:

机械手接收I2C通讯总线中传来的需要点按的总价(或传菜指令,视需求而定)

通讯3:

①价格显示调整及指示系统向I2C通讯总线发送各个菜价

②价格显示调整及指示系统接收I2C通讯总线传来的需要指示的菜品信息

通讯4:

二、子系统的实现

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=&

AndLab1

(2).BackColor=&

Then

ledstate="

0"

ElseIfLab1

(1).BackColor=&

HFF&

1"

2"

3"

EndIf

If(MSComm1.PortOpen=True)Then

MSComm1.Output=ledstate+Str(Text1.Text*10)

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

PrivateSubForm_Load()

Lab1(i).Width=Lab1(9).Width

Lab1(i).Height=Lab1(9).Height

Lab1(i).Font.Size=Lab1(9).Font.Size

Lab1(i).Alignment=2

以下代码实现扫描可用串口端口并列到Combo1选择框内可供选择

Fori=1To16

MSComm1.CommPort=i

IfMSComm1.PortOpen=TrueThen'

先关闭串口

MSComm1.PortOpen=False

EndIf

OnErrorResumeNext

MSComm1.PortOpen=True

IfErr.Number<

>

8002Then

Combo1.AddItemi

Nexti

以下代码实现如果1.txt存在则读取1.txt文档内容并且写入Combo1文本框内

IfDir(App.Path&

)<

"

Then'

如果1.txt存在

OpenApp.Path&

ForInputAs#1

DoWhileNotEOF

(1)

Input#1,B

Combo1.Text=Combo1.Text&

B

Loop

Close#1

PrivateSubForm_Unload(CancelAsInteger)

IfMSComm1.PortOpen=TrueThen

PrivateSubLab1_Click(IndexAsInteger)

DimiAsInteger

i=Index

Iff(i)=0Then

f(i)=1

Text1.Text=Val(Text1.Text)+Val(Lab1(i).Caption)

ElseIff(i)=1Then

Text1.Text=Val(Text1.Text)-Val(Lab1(i).Caption)

PrivateSubdealWithData()'

处理缓存TMP

Dimstr_tmp()AsString

str_tmp=Split(tmp,"

|"

Fori=1ToUBound(str_tmp)

price(i)=Val(str_tmp(i-1))/10

PrivateSubMSComm1_OnComm()

If(MSComm1.CommEvent=comEvReceive)Then

DimdataAsString

data=MSComm1.Input

Fori=1ToLen(data)

DimchAsString

ch=Mid(data,i,1)

Ifch="

*"

CalldealWithData

tmp="

Else

tmp=tmp+ch

PrivateSubTimer1_Timer()

Lab1(i).Caption=price(i)

Ifprice(12)<

0Then

Text2.Text=price(12)'

余额

Text2.Text="

放卡后显示"

2、I2C主控,兼RFID刷卡系统

ArduinoNano控制板,RFID读卡模块

#include<

Wire.h>

#include"

RC522.h"

SPI.h>

EEPROM.h>

//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总线通讯传过来的子设

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1