10715浏览
查看: 10715|回复: 0

[K10教程] 【行空板K10基础入门教程】第04课 :K10无人超市

[复制链接]
本帖最后由 zoey不种土豆 于 2024-12-5 17:00 编辑

Hi,欢迎各位来到行空板K10的第四课!随着物联网技术的发展,RFID射频识别技术已经越来越普及。在我们日常的生活中,无论是商场支付,还是门禁刷卡,RFID技术都有着广泛的使用。在今天的课程中,我们将通过行空板和RFID射频识别模块,搭建一个模拟超市环境,实现商品的自动识别和计费。希望通过这节课,你能搭建一个K10无人购物超市!
【行空板K10基础入门教程】第04课 :K10无人超市图1

任务目标
在行空板K10上搭建一个无人购物超市,能够利用RFID射频识别模块识别不同的商品,并对商品进行结算。
【行空板K10基础入门教程】第04课 :K10无人超市图2

知识目标
1、 了解数字信号的概念
2、 掌握行空板K10获取数字输入信号的方法
3、 掌握RFID射频感应模块的使用
4、 掌握行空板K10的引脚操作指令

材料清单
硬件清单:行空板K10
数据线
【行空板K10基础入门教程】第04课 :K10无人超市图3

软件使用
Mind+编程软件
1.软件压缩包下载:
  * 百度网盘下载:https://pan.baidu.com 提取码: 17d6
2.将压缩包解压,注意解压过程中关闭杀毒软件,解压后文件夹路径不含中文,解压后文件夹路径不宜过长
3.打开解压后的文件夹,找到 Mind+.exe,双击打开
4.若编译任何代码都报错,建议在解压时将所有后台的杀毒软件退出,将解压出的文件夹放到 C 盘根目录,文件夹的名字改为"win-ia32-unpacked20241012"。文件夹中的 exe 文件,不可直接拖到桌面,要右键-发送到桌面快捷方式。

软件基础使用
1、 打开 Mind+,切换到上传模式
【行空板K10基础入门教程】第04课 :K10无人超市图4

2、 加载行空板K10
基于前面的操作,只需要点击“扩展库”,找到“官方库”下的“行空板”模块点击完成添加,点击返回后,就可以在“指令区”找到行空板K10,完成行空板K10加载。
【行空板K10基础入门教程】第04课 :K10无人超市图5

3、连接行空板K10
首先,你需要通过 USB 连接线将行空板 K10 连接到计算机
【行空板K10基础入门教程】第04课 :K10无人超市图6

然后,点击连接设备后,点击 COM7-UNIHIKER K10 进行连接。
【行空板K10基础入门教程】第04课 :K10无人超市图7
注:不同行空板 K10 的设备名称可能不同,但都是以 K10 结尾。

动手实践
接下来一起动手完成今天的课程任务吧。我们将从添加超市商品开始,逐步学习如何在行空板K10上利用RFID射频感应模块,实现对商品的识别和结算。
任务一:搭建超市
这一部分我们要对超市进行商品的添加,创建超市首页,同时让顾客能通过按钮进入商品选购界面。
任务二:识别商品这一部分我们主要实现让RFID射频识别模块能够识别到对应商品,并在选购界面显示所购商品数量。
任务三:结算商品
这一部分我们主要实现能够对商品的总价进行计算,并对顾客进行收款。

任务一:搭建超市

【行空板K10基础入门教程】第04课 :K10无人超市图8


1、 硬件搭建

确认使用USB连接线将行空板K10连接到计算机。
2、 软件准备
确认已打开Mind+,在Python图形化模式下出现预设代码,成功加载行空板。接下来就可以编写项目程序了。
【行空板K10基础入门教程】第04课 :K10无人超市图9


3、 编写程序

STEP1:添加商品,创建超市首页。
想一想,在我们的超市中,有梨、苹果、香蕉三种商品,我们可以通过什么方法,记录下顾客所购买商品的价格?
【行空板K10基础入门教程】第04课 :K10无人超市图10

我们需要记录下顾客所购买每种商品的数量,乘商品的单价,从而计算出总价,因此,我们需要用前面学过的知识——“变量”,来存储所购商品的数量,同时,我们需要一个变量来计算商品的总价。因此,我们总共需要创建四个变量,分别是“梨、香蕉、苹果和总价”,要注意,商品的初始值为0。相关程序如下所示:
【行空板K10基础入门教程】第04课 :K10无人超市图11

商品添加完成之后,我们需要创建超市的首页,我们可以使用 缓存显示本地加载图片 指令,添加超市首页图片,设置好宽和高,相关程序如下。
【行空板K10基础入门教程】第04课 :K10无人超市图12

显示效果如下:
【行空板K10基础入门教程】第04课 :K10无人超市图13

STEP2:进入选购界面。

完成超市首页的创建之后,我们要如何设置进入选购商品界面的条件呢?
【行空板K10基础入门教程】第04课 :K10无人超市图14

我们可以在行空板K10上数字引脚P0处,外接一个按钮,当按下按钮时,读取到引脚P0的值为1,就可以自动跳转到商品的选购界面。要读取到数字引脚的值,可以使用引脚操作模块下的 读取数字引脚P0 指令。
用两头PH2.0-3P硅胶绞线在引脚P0外接按钮,如下图:
【行空板K10基础入门教程】第04课 :K10无人超市图15

相关程序设置如下图:
【行空板K10基础入门教程】第04课 :K10无人超市图16

注:关于“引脚”的更多信息,详见“知识园地”

STEP3:添加射频感应模块
为了让超市具备RFID结算商品的功能,我们需要让我们的超市添加RFID射频感应技术模块 ,在Mind+的用户库中,已经具备了该模块。
我们需要先将RFID射频识别模块连接到行空板K10的I2C接口,接着我们需要使用 初始化RFID模块I2C地址0×7c 指令,进行初始化。
RFID射频识别模块与行空板K10的连接如下图所示:
【行空板K10基础入门教程】第04课 :K10无人超市图17

RFID射频感应模块的使用如下图所示:
【行空板K10基础入门教程】第04课 :K10无人超市图18

创建超市模块完整代码如下图:
【行空板K10基础入门教程】第04课 :K10无人超市图19

4、 程序执行
STEP1:检查并保证行空板K10已连接Mind+,即在“菜单栏”部分显示IP;
【行空板K10基础入门教程】第04课 :K10无人超市图20

STEP2:点击界面右上方的上传到设备按钮;
【行空板K10基础入门教程】第04课 :K10无人超市图21

STEP3:一开始加载超市首页,按下按钮P0,跳转到超市选购界面,如下图所示:
【行空板K10基础入门教程】第04课 :K10无人超市图22

任务二:识别商品
1、 编写程序
STEP1:获取商品对应UID值
在我们的无人购物超市中,对每种商品,我们都有对应的NFC电子标签贴纸,我们需要先知道NFC电子标签贴纸的值,才能进行进行判断,从而实现对商品的识别。
因此,我们需要先用一个程序,获得三个商品对应的UID码。我们用RFID射频感应模块下的 读取RFID模块UID 指令,在行空板K10屏幕上输出每种卡片所扫描出来的UID值,对应记录下来。相关程序如下图所示:
【行空板K10基础入门教程】第04课 :K10无人超市图23

上传程序之后,将三个卡分别靠近RFID射频识别模块,记录下每种商品对应的UID值,结果如下:
【行空板K10基础入门教程】第04课 :K10无人超市图24

注:不同NFC电子标签纸对应的UID值不同,需要自己读取。

STEP2:显示商品所购数量
获取每种商品NFC电子标签卡对应的UID值后,我们需要进行判断,如果顾客选购商品的电子标签卡UID值与对应的相等,则将该商品对应变量的加1,并在数量这一列显示对应的值,相关程序如下。
【行空板K10基础入门教程】第04课 :K10无人超市图25

商品识别模块完整程序代码如下:
【行空板K10基础入门教程】第04课 :K10无人超市图26

2、 程序运行
STEP1:连接行空板K10
STEP2:点击界面右上方的“上传到设备”按钮
STEP3:在选购界面,将不同商品的NFC电子标签卡放到RFID射频识别模块上,观察对应商品数量的变化。
【行空板K10基础入门教程】第04课 :K10无人超市图27

任务三:结算商品
在这个任务中,我们需要根据前面得到的商品数量,计算出商品的总价,同时顾客按下按钮,能够跳转到支付页面。
1、 编写程序
STEP1:结算商品总价
我们使用RFID射频技术模块下的 当检测到卡片? 指令,当检测到有卡片的时候,我们就先用前面的程序得出商品数量,接着我们需要用每种商品的数量乘以单价,从而计算出总价,并在对应的位置进行显示,相关程序如下。

【行空板K10基础入门教程】第04课 :K10无人超市图28


SETP2:进行收款
在顾客购物完成之后,顾客只需要按下按钮,就可以跳转到扫码支付界面。因此,我们需要在行空板K10的P1引脚,外接一个按钮,当按下按钮时,就跳出商品结算的程序,进入到扫码支付的界面。
用两头PH2.0-3P硅胶线在引脚P1外接按钮如下图:
【行空板K10基础入门教程】第04课 :K10无人超市图29

相关程序设置如下:
【行空板K10基础入门教程】第04课 :K10无人超市图30

完整的程序参考下图:
【行空板K10基础入门教程】第04课 :K10无人超市图31

2、 运行程序
点击上传到设备,完成商品结算后,按下P1按钮,跳转到扫码支付界面,效果如下图:
【行空板K10基础入门教程】第04课 :K10无人超市图32

知识园地
1、 什么是数字输入信号?
数字信号是指用一组特殊的数据0和1来描述信号,1代表有信号,0代表没有信号。之所以用0和1表示数字信号,是因为电路只有两种状态,即电路的通与断。输出数字信号1,电路连通;输出数字信号0,电路断开。
【行空板K10基础入门教程】第04课 :K10无人超市图33

数字输入信号其实就是数字传感器采集到信号,并且采集到的信号只有0和1。在程序中,当我们按下按钮时,返回的值为1,即true;当松开按钮时,返回的值为0,即false。
那如何才能分辨这个传感器是否为数字传感器呢?在传感器板子上会印有“D”和“A”的字样。其中,“D”代表“数字”,“A”代表“模拟”。标有“D”的传感器就为数字传感器,标有“A”的传感器就为模拟传感器。关于模拟传感器的知识,在使用到模拟传感器时会有相关介绍。
【行空板K10基础入门教程】第04课 :K10无人超市图34

在行空板K10上有2个3Pin的引脚,分别是P0、P1。这两个引脚都可以用来连接数字传感器,同样,也可以用来连接PWM传感器(如舵机)、模拟传感器。关于PWM的知识,在使用到PWM传感器时会有相关介绍。
【行空板K10基础入门教程】第04课 :K10无人超市图35

2、认识引脚
引脚是从集成电路内部电路引出与外围电路的接线,这里可以简单地理解为:引脚是行空板K10与外部交互的接口,可以通过引脚读取外部的数据,也可以通过引脚控制外部设备。
在我们的行空板K10中,有2个3Pin接口和1个4Pin接口,两个3Pin接口可以支持数字输入输出、模拟输入和PWM输出,灵活应对各种控制需求。4Pin接口为I2C接口,可以连接手势识别传感器、RFID射频识别模块等,扩展设备功能,支持多样化应用场景。
【行空板K10基础入门教程】第04课 :K10无人超市图36

3、 引脚操作指令
行空板K10的引脚操作指令如下:
【行空板K10基础入门教程】第04课 :K10无人超市图37

本文程序和相关素材下载:
下载附件第四课 无人超市.rar


延伸阅读:
【行空板K10基础入门教程】第01课:趣识脸谱
【行空板K10基础入门教程】第02课:打地鼠游戏
【行空板K10基础入门教程】第03课:K10随身听

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail