1852浏览
查看: 1852|回复: 2

[M10项目] 心灵感应,我知你所想

[复制链接]
本帖最后由 想你课堂 于 2022-8-28 10:25 编辑

一、任务目标

1.给出一副图片,做背景;2.心中想一个1-60的数字;
3.在给出6张数字卡片中,通过每张卡片选择你想的数字是否在卡片中,在选择按键A,不在选择按键B,直到6张卡片选完;

4.最后给出你想的数字,看是否与你想的数字一致。


二、创意起源
二进制原理;猜数字


三、作品展示

心灵感应,我知你所想图1心灵感应,我知你所想图6


对应的电脑端显示过程如下:
心灵感应,我知你所想图7


四、知识点

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 = [1, 2, 3, 4, 5 ]

list.reverse()
反向列表中元素

五、背景图片
心灵感应,我知你所想图8


六、动手实践
1、硬件搭建
通过USB连接线将行空板连接到计算机


2、程序编写
把图片放到同一个文件夹中。
  1. # -*- coding: utf-8 -*-
  2. from pinpong.board import *
  3. from pinpong.extension.unihiker import *
  4. card= ["""Card 1:
  5.     1 11 21 31 41 51
  6.     3 13 23 33 43 53
  7.     5 15 25 35 45 55
  8.     7 17 27 37 47 57
  9.     9 19 29 39 49 59""",
  10.     """Card 2:
  11.     2 11 22 31 42 51
  12.     3 14 23 34 43 54
  13.     6 15 26 35 46 55
  14.     7 18 27 38 47 58
  15.    10 19 30 39 50 59""",
  16.     """Card 3:
  17.     4 13 22 31 44 53
  18.     5 14 23 36 45 54
  19.     6 15 28 37 46 55
  20.     7 20 29 38 47 60
  21.    12 21 30 39 52 *""",
  22.     """Card 4:
  23.     8 13 26 31 44 57
  24.     9 14 27 40 45 58
  25.    10 15 28 41 46 59
  26.    11 24 29 42 47 60
  27.    12 25 30 43 56 *""",
  28.     """Card 5:
  29.    16 21 26 31 52 57
  30.    17 22 27 48 53 58
  31.    18 23 28 49 54 59
  32.    19 24 29 50 55 60
  33.    20 25 30 51 56 *""",
  34.     """Card 6:
  35.    32 37 42 47 52 57
  36.    33 38 43 48 53 58
  37.    34 39 44 49 54 59
  38.    35 40 45 50 55 60
  39.    36 41 46 51 56 *"""]
  40. import time
  41. from unihiker import GUI   #导入包
  42. gui=GUI()  #实例化GUI类
  43. img = gui.draw_image(image='猜一猜.png')# 显示初始背景图为猜一猜
  44. b=[1,2,3,4,5,6]
  45. i=0
  46. s=0  #最后显示你猜的数字
  47. info_text = gui.draw_text(x=20, y=20, text=card[i])
  48. info_text1 = gui.draw_text(x=20, y=180, text='''你心中想的数字,
  49. 在卡片中吗?
  50. 在选A,不在选B,
  51. 见证奇迹,
  52. 我知道你所想!''')
  53. Board().begin() #初始化
  54. while i<=5:
  55.    
  56.    
  57.     if button_a.is_pressed() == True: #判断按钮是否被按下
  58.         print("按钮A按下")
  59.         b[i]=1
  60.         print(b[i])
  61.         info_text1.config(text='''有这个数字?
  62.         有选A,没有选B''')
  63.         
  64.         time.sleep(1)
  65.         print(b)
  66.         i=i+1
  67.         print(i)
  68.         if(i==6):
  69.             break;
  70.         info_text.config(text=card[i])
  71.         
  72.         
  73.         
  74.     if button_b.is_pressed() == True: #判断按钮是否被按下
  75.         print("按钮B按下")
  76.         b[i]=0
  77. print(b[i])
  78.         info_text1.config(text='''有这个数字?
  79.         有选A,没有选B''')
  80.         time.sleep(1)
  81.         print(b)
  82.         i=i+1
  83.         print(i)
  84.         if(i==6):
  85.             break;
  86.         info_text.config(text=card[i])
  87. s=b[5]*32 + b[4]*16 + b[3]*8 + b[2]*4 + b[1]*2 + b[0]*1
  88. b.reverse() #列表逆序输出二进制顺序数字;     
  89. print("Binary answer:",b)#你想的数字的二进制形式;
  90. print("The number is:", s)
  91. info_text1.config(text='''你心中想的数字,
  92. 是:''')
  93. info_text3 = gui.draw_text(x=20, y=240, text=s)
  94. while True:  # 循环
  95.     time.sleep(10)  # delay1秒
复制代码

3、程序运行

STEP1:远程连接行空板

(1) 确认板子处于连接且开机状态

(2) 开启远程连接终端


(3) 连接行空板
[size=0.83em]
WedAugust-202208244269..png (31.43 KB, 下载次数: 0)
下载附件  [url=]保存到相册[/url]
[color=rgb(153, 153, 153) !important]4 天前 上传


(4)运行程序观察效果
每出现一次卡片,按A,B键选择自己想的数字是否在卡片中。
心灵感应,我知你所想图2心灵感应,我知你所想图3心灵感应,我知你所想图4心灵感应,我知你所想图5
总结:
      感谢官方交流群的热心朋友的帮助,基础知识在具体应用中非常重要,中间很多基础知识的细节,需要进一步的练习和熟悉。否则具体应用中,会遇到各种问题,影响项目实施进度。






小企鹅  初级技匠

发表于 2022-9-4 16:35:45

厉害厉害
回复

使用道具 举报

vvjr  见习技师

发表于 2022-9-6 22:17:12

6666666666
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail