心灵感应,我知你所想
本帖最后由 想你课堂 于 2022-8-28 10:25 编辑一、任务目标
1.给出一副图片,做背景;2.心中想一个1-60的数字;
3.在给出6张数字卡片中,通过每张卡片选择你想的数字是否在卡片中,在选择按键A,不在选择按键B,直到6张卡片选完;
4.最后给出你想的数字,看是否与你想的数字一致。
二、创意起源
二进制原理;猜数字
三、作品展示
对应的电脑端显示过程如下:
四、知识点
1.学习使用unihiker库显示图片、文字的方法
Unihiker库GUI类draw_image()方法显示图片
GUI类中的draw_image()方法可以实现在行空板屏幕上显示图片,在编程时,通过“对象.方法名()”的形式来实现功能,同时,此方法会返回一个图片对象,使用变量存储起来方便后续进行对象更新操作。
2.二进制知识;以十进制数52为例,二进制应该是:110100B,对应位换算成十进制为:
0乘2的0次方=0
0乘2的1次方=0
1乘2的2次方=4
0乘2的3次方=0
1乘2的4次方=16
1乘2的5次方=32
52=32+16+0+4+0+0
3.列表的应用
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1 =
list.reverse()
反向列表中元素
五、背景图片
六、动手实践
1、硬件搭建
通过USB连接线将行空板连接到计算机
2、程序编写
把图片放到同一个文件夹中。
# -*- coding: utf-8 -*-
from pinpong.board import *
from pinpong.extension.unihiker import *
card= ["""Card 1:
1 11 21 31 41 51
3 13 23 33 43 53
5 15 25 35 45 55
7 17 27 37 47 57
9 19 29 39 49 59""",
"""Card 2:
2 11 22 31 42 51
3 14 23 34 43 54
6 15 26 35 46 55
7 18 27 38 47 58
10 19 30 39 50 59""",
"""Card 3:
4 13 22 31 44 53
5 14 23 36 45 54
6 15 28 37 46 55
7 20 29 38 47 60
12 21 30 39 52 *""",
"""Card 4:
8 13 26 31 44 57
9 14 27 40 45 58
10 15 28 41 46 59
11 24 29 42 47 60
12 25 30 43 56 *""",
"""Card 5:
16 21 26 31 52 57
17 22 27 48 53 58
18 23 28 49 54 59
19 24 29 50 55 60
20 25 30 51 56 *""",
"""Card 6:
32 37 42 47 52 57
33 38 43 48 53 58
34 39 44 49 54 59
35 40 45 50 55 60
36 41 46 51 56 *"""]
import time
from unihiker import GUI #导入包
gui=GUI()#实例化GUI类
img = gui.draw_image(image='猜一猜.png')# 显示初始背景图为猜一猜
b=
i=0
s=0#最后显示你猜的数字
info_text = gui.draw_text(x=20, y=20, text=card)
info_text1 = gui.draw_text(x=20, y=180, text='''你心中想的数字,
在卡片中吗?
在选A,不在选B,
见证奇迹,
我知道你所想!''')
Board().begin() #初始化
while i<=5:
if button_a.is_pressed() == True: #判断按钮是否被按下
print("按钮A按下")
b=1
print(b)
info_text1.config(text='''有这个数字?
有选A,没有选B''')
time.sleep(1)
print(b)
i=i+1
print(i)
if(i==6):
break;
info_text.config(text=card)
if button_b.is_pressed() == True: #判断按钮是否被按下
print("按钮B按下")
b=0
print(b)
info_text1.config(text='''有这个数字?
有选A,没有选B''')
time.sleep(1)
print(b)
i=i+1
print(i)
if(i==6):
break;
info_text.config(text=card)
s=b*32 + b*16 + b*8 + b*4 + b*2 + b*1
b.reverse() #列表逆序输出二进制顺序数字;
print("Binary answer:",b)#你想的数字的二进制形式;
print("The number is:", s)
info_text1.config(text='''你心中想的数字,
是:''')
info_text3 = gui.draw_text(x=20, y=240, text=s)
while True:# 循环
time.sleep(10)# delay1秒
3、程序运行
STEP1:远程连接行空板
(1) 确认板子处于连接且开机状态
(2) 开启远程连接终端
https://mc.dfrobot.com.cn/forum.php?mod=attachment&aid=MTQ1NzAyfDNmZTM5YjlkfDE2NjE2NDg5MjZ8ODIzNzA2fDMxMzkxOQ%3D%3D&noupdate=yes
(3) 连接行空板
https://mc.dfrobot.com.cn/forum.php?mod=attachment&aid=MTQ1NzAzfGI4NTAwOWJlfDE2NjE2NDg5MjZ8ODIzNzA2fDMxMzkxOQ%3D%3D&noupdate=yesWedAugust-202208244269..png (31.43 KB, 下载次数: 0)下载附件保存到相册4 天前 上传
(4)运行程序观察效果
每出现一次卡片,按A,B键选择自己想的数字是否在卡片中。
总结:
感谢官方交流群的热心朋友的帮助,基础知识在具体应用中非常重要,中间很多基础知识的细节,需要进一步的练习和熟悉。否则具体应用中,会遇到各种问题,影响项目实施进度。
厉害厉害 6666666666
页:
[1]