添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
如果有一款实用的美食推荐机器人,在我们纠结要吃什么的时候,只需要轻轻地按下按钮,它就可以在众多美食中快速做出决定。这样的美食推荐机器人简直是选择困难者的福音,接下来我们一起动手,使用行空板、RGB灯环、按钮模块设计一款这样的美食推荐机器人吧!
按下“按钮模块”,RGB灯环以跑马灯的形式显示,最后灯珠停在的位置就是美食机器人给我们推荐的美食,并且行空板上会显示灯珠对应的美食图片。
1. 学习带参函数的定义
2. 掌握按钮模块的使用方法及工作原理
硬件清单:
软件使用:Mind+编程软件 x1
下载地址: https://mindplus.cc/
这节课中,主要是使用按钮模块和RGB灯环,制作一款美食推荐机器人。首先需要了解按钮模块的输入信号,然后学习如何使用按钮模块控制RGB灯环,最后完成美食推荐机器人的制作。接下来,就通过下列三个小任务来学习如何制作一款美食推荐机器人吧!
任务一:读取按钮模块的值
读取带LED灯的按钮模块,在工作时输入的信号。
任务二:使用按钮控制RGB灯环
按下按钮,控制RGB灯环执行跑马灯程序。
任务三:制作美食推荐机器人
按下按钮,RGB的灯环执行跑马灯程序,并产生一个随机数,让随机数对应的灯珠亮起,行空板显示灯珠对应的美食。
任务一:读取按钮模块的值
1.硬件连接
带LED灯的数字按钮模块,是一款会发光的开关式按钮。当我们按下按钮时,它可以发出蓝色的灯光。
使用白色硅胶线将带LED灯数字按钮模块连接到P23引脚,硬件连接成功后,使用USB线将行空板连接到计算机。
注意: “带LED灯的数字按钮模块”相关介绍,见知识园地。
2.软件准备
打开Mind+,按照下面图示完成软件准备工作。
3.编写程序
带LED灯的数字按钮模块上印有丝印“D”,可以看出这是一个数字输入传感器。也就是说,这个按钮模块输入的信号为数字信号,即0和1。
如何才能知道这个按钮模块什么时候输入数字信号0,什么时候输入数字信号1呢?要获取按钮的输入信号,使用 读取数字引脚 指令,并选择引脚为P23引脚。
然后使用 显示文字 指令,将按钮按下和松开的数字值显示在行空板上。
4.程序运行
点击运行,程序运行成功后,按下按钮,按钮模块亮蓝色的灯,行空板上显示数字1;松开按钮,按钮模块上的灯灭,行空板上显示数字0。也就是按下按钮,输入数字信号1,松开按钮,输入数字信号0。
任务二:使用按钮控制RGB灯环
1.硬件连接

在任务一的硬件连接基础上,使用白色硅胶线将RGB灯环连接到 P24引脚 ,硬件连接成功后,使用USB线将行空板连接到计算机。
2.软件准备
添加WS2812 RGB灯库,点击“扩展”,在pinpong库中找到“WS2812 RGB灯”并点击,完成添加。
3.编写程序
如何使用按钮控制RGB灯环执行跑马灯程序呢?按下按钮,RGB灯环就执行跑马灯程序,使用 条件判断 指令,判断按钮是否被按下。
如果按钮按下,RGB灯环执行跑马灯程序,跑马灯程序在第三课中,已经学习了,这个任务中我们直接用就可以了。
程序中,按下按钮,执行一次跑马灯程序,也就是灯珠在灯环上跑一圈。如果想要灯珠在灯环上多跑几圈该怎么做呢?使用 重复执行次数 指令,控制跑马灯程序执行的次数。完整程序如下:
4.程序运行
点击运行,程序运行成功后,按下按钮,RGB灯环执行三次跑马灯的程序。三次跑马灯程序执行完后,灯环熄灭。只要检测到按钮按下,就继续执行三次跑马灯程序。
5.试一试
上面的程序,当检测到按钮按下,固定重复执行三次跑马灯的程序。想要实现执行次数为1-5的随机次数该怎么做呢?接下来,大家就在上面程序上进行修改,实现按下按钮后,RGB灯环执行1-5随机次跑马灯程序。
提示:将重复执行指令中的次数,修改为数字类型中的随机数指令。
任务三:制作美食推荐机器人
1.编写程序

在开始编写程序之前,先来分析一下,利用灯环如何实现美食推荐机器人。生活中,大家玩过抽奖大转盘吧,用力转动转盘,然后转盘的速度由快到慢,然后慢慢停下来,指针指着的位置就是我们中的奖项。美食推荐机器人的原理与这个抽奖大转盘类似,使用RGB灯环作为美食转盘。按下按钮,灯珠开始旋转,旋转速度由快到慢,最后灯珠停住的位置就是为我们推荐的美食。
(1)设置首页提示界面
首先在任务二试一试的基础上,完成首页行空板的界面设置。将图片素材中的背景以及美食图片导入文件系统中。
使用 显示文字 指令在行空板上显示文字“按下按钮,美食机器人为您推荐随机美食”。然后使用 显示图片 指令,将背景图片显示在行空板上。
(2)设置灯珠旋转速度
上面的程序,完成了灯珠执行1-5次跑马灯的程序。但是跑马灯程序中,灯珠旋转的速度是很快的,如何才能实现灯珠旋转由快到慢呢?控制灯珠旋转的速度可以修改 等待时间 (延时),在灯珠执行完快的跑马灯程序后,将等待时间变长,来控制灯珠旋转速度变慢。
同学们肯定发现了,我们这里新增加的程序也是跑马灯的程序,只是等待的时间不一样。当一段程序需要被重复使用时,怎样做才能提高效率呢?将这段程序封装成 函数 ,但是两个跑马灯执行的速度不一样,如何才能让一个函数执行两种不同的运行速度呢?
这里需要用到一个新的函数指令,叫 带参函数 指令。具体使用方法如下,点击模块中的“函数”,然后点击“自定义模块”,修改函数名为:跑马灯。
注意: 关于“带参函数”的相关介绍,见知识园地。
点击“添加输入项”,并将参数名称修改为时长,点击完成,完成带参函数的创建。
带参函数创建成功后,脚本区出现 跑马灯函数 ,并且 参数名为时长
将跑马灯的程序放到函数下,并将程序中的等待时长(0.2),修改为 函数参数名时长
在调用跑马灯函数时,将等待的具体时长,填写到调用函数的参数中即可。
程序实现了灯珠旋转的速度由快到慢,要让灯珠慢到可以停下来,并且停下的位置是随机位置该如何实现呢?在执行一次跑马灯程序,设置调用 函数的参数时长 为0.3,让灯珠旋转的速度变得更慢。
如何让灯珠停下来,并且停的位置是随机位置?随机位置可以使用 随机数 指令,新建 变量灯珠 ,将这个 变量灯珠 赋值为0-11的随机整数。然后将 for循环 指令的范围设置为:0-变量灯珠(0-11的随机数),程序执行完跑马灯程序后,设置随机数对应的变量灯珠亮起。
(3)行空板显示美食图片
完成了随机美食选择后,还需要将灯珠对应的实物图片显示在行空板上。新建一个 美食推荐函数 ,在随机数变量灯珠亮起后,调用 美食推荐函数 。函数下使用 更新数字参数 指令,将首页的背景图片和提示文字隐藏。
要将灯珠对应的美食图片显示到行空板上,使用 合并字符串 指令,将美食图片的文件名组合为:“美食+变量灯珠+.png”的格式,并使用 更新数字参数 指令,更新美食图片的宽为200。
最后美食推荐成功后,等待3秒,使用 更新数字参数 指令隐藏美食图片,行空板界面回到首页的提示界面。完成程序如下:
2.程序运行
点击运行,程序运行成功后,行空板界面上会有美食推荐机器人使用方法的提示。按下按钮后,RGB灯环的灯珠开始旋转,旋转速度由快到慢,然后停下来,行空板上显示灯珠停下对应的美食图片。
1.在RGB灯环上搭建美食转盘时,RGB灯环的IN接口,对应的灯珠编号为0。因此美食0.png(全家桶图片)需要放在0号灯珠上。
2.图片素材库中提供美食转盘图片,大家可以直接打印使用。
1.认识带参函数
什么是带参函数?顾名思义,带参函数就是带有参数的函数。参数,也叫参变量,是一个变量。带参函数,就是在创建函数时,在函数后面同时新建了一个变量。例如下面程序中,时长为跑马灯函数的参数,我们也可以将时长理解为在跑马灯函数中新建了一个变量时长。
在调用带参函数时,因为函数定义了参数,因此调用这个函数时,需要写入具体的参数值,这个过程就称为传入参数。
定义函数名后面的参数时长称为形参,而调用函数的时候传入的具体参数值叫做实参。形参和实参的关系是,形参是用来接收实参的。因此,在调用带参函数时,将参数修改为0.1、0.2、0.3就可以控制灯珠的旋转速度。
2.认识带LED灯的数字按钮模块
什么是按钮?按钮是一种手动控制器,又称为按钮开关。按钮只能短时间接通或者断开电流,因此按钮常用于控制电路当中,向其他电气元件或设备发出指令性的电信号,从而达到控制其他元件或电气设备的目的。
按钮模块主要是由哪些部分组成呢?按钮模块由按钮帽、复位弹簧、支柱连杆、动触点、静触点以及外壳等组成。
按钮是如何工作的呢?手按下按钮,按钮的动触点下移至静触点时接通,手松开时,动触点在弹簧的作用下上移,恢复断开,只有按下才能接通,否则一直断开。带LED灯的数字按模块内部有一个LED灯,当动触点与静触点接通时,LED灯亮起;当动触点与静触点断开时,LED灯熄灭。
3.指令学习
虽然程序实现了为使用者推荐随机美食,但是还有一点小问题,就是当美食推荐完成后,再次推荐美食时,上次的推荐美食的灯珠还是亮起的。接下来,大家修改一下程序,实现当按下按钮时,先将RGB灯环的灯珠全部熄灭,然后再执行跑马灯程序。
附件下载:
下载附件 第4课 美食推荐机器人2.rar
(如有其它问题,请添加微 信咨询:DFRobot2019)
  • 光电传感器如何检测透明物体
  • 【试用名单公布】Beetle ESP32 C6 Mini VS FireBeetle 2 ESP32 C6
  • 【试用名单公布】Beetle ESP32 C6 Mini VS FireBeetle 2 ESP32 C6
  • 【试用名单公布】Beetle ESP32 C6 mini VS FireBeetle 2 ESP32 C6开...
  • 【比赛优秀作品】一种基于人工智能的模拟射击玩具
  •