6475浏览
查看: 6475|回复: 5

[进阶] 快乐智造营 | 02 抢答器

[复制链接]
本帖最后由 怀若谷 于 2020-8-16 21:08 编辑

本系列教程主要分享基于开源硬件和激光建模的创客作品的制作,每个作品涉及两三个电子模块的使用,让学习者能够轻松、扎实地掌握创客制作的知识和技能,并体会到智造的乐趣。
【目录】
2.1 项目概述
快乐智造营 | 02 抢答器图1

图2-1
     “抢答器”,如图2-1所示,是一个模拟实现现实中已有机器的功能的项目。通过该项目的学习,可以掌握数字按钮和LED灯的使用。
       项目功能:第一个选手按下按钮后,其对应的LED灯亮起,其后按的动作无效,LED灯不会亮起;从而,很容易判断谁是第一次按下按钮的选手。一定时间后(本例为10秒),LED等自行熄灭,为下一次抢答做准备。
演示视频
2.2 材料准备
快乐智造营 | 02 抢答器图2
图2-2
本项目所需要的硬件材料,如图2-2所示,分别为:
(1)DFRduino Uno R3  1块
(2)IO扩展板    1块
(3)数字按钮    4个
(4)LED灯       4个
2.3 电子模块的使用
2.3.1 数字按钮模块
快乐智造营 | 02 抢答器图4

图2-3

       数字按钮模块,就是常见的按键开关。其属于数字输入设备,可分为按钮被按下和按钮未被按下两种状态,两种状态分别会传输不同的数值(0或1)给主控板。通常,按钮被按下时,会输入1,未按下时输入0。但是也有相反的情况,需要在使用前进行测试。连接时,可以连接到任一引脚(不建议连接引脚D0和D1)。连接示例如图2-3所示,GND、VCC、数据三个引脚要分别对应。
       *说明:本教程中部分硬件连接图引用了DF创客商城的产品文档中的图片,仅供学习用途。
快乐智造营 | 02 抢答器图3
图2-4
       在编程软件Mind+中,对应的积木为【读取数字引脚(0)】,在【引脚操作】中可找到,如图2-4所示。我们可以编写一段程序,将读取到按钮输入值通过串口打印的方式显示出来。程序及输出结果,如图2-5所示。
快乐智造营 | 02 抢答器图5
图2-5

     根据测试结果,可以进行定性判断:到底是按下按钮时数值为1、未按下时数值为0,还是相反的情况。
2.3.2 LED发光模块
快乐智造营 | 02 抢答器图6
图2-6
     LED发光模块,通常称之为LED灯,是创客制作中常用的输出设备。我们可以通过程序指令控制LED灯点亮或者熄灭,还可以控制灯以不同的亮度亮起。
        在与Arduino Uno主控板连接时,可以连接任一引脚。连接示例如图2-6所示,GND、VCC、数据三个引脚要分别对应。
快乐智造营 | 02 抢答器图7

图2-7
      在编程软件Mind+中,要控制LED灯的亮灭,对应的积木为【设置数字引脚(1)输出为(高电平)】,也在【引脚操作】中可找到,如图2-7所示。当输出高电平时,LED灯亮起;当输出低电平时,LED灯熄灭。示例程序如图2-8所示,该程序执行的结果是使接在引脚D2上的LED灯先亮起3秒然后熄灭。
快乐智造营 | 02 抢答器图8
图2-8

2.4 项目制作
2.4.1 硬件搭建
     将数字按钮模块分别连接到扩展板的D2、D3、D4、D5引脚、LED发光模块分别连接到A2、A3、A4、A5引脚,如图2-9所示。
快乐智造营 | 02 抢答器图9
图2-9

2.4.2 编写程序
2.4.2.1 测试硬件连接
快乐智造营 | 02 抢答器图10
图2-10

        编写如图2-10所示的程序,上传到设备,测试4个按钮能否控制4个LED灯亮起。如果不能正常亮起,需要检查各电子模块连接是否正确。
2.4.2.2 编写程序
         本项目采用了我编写的《人工智能趣味入门:光环板程序设计》一书中的《比比谁手快》项目的思路。有兴趣的朋友可点击下方链接查看此书介绍。
        编程思路:用一个变量“是否有人按过?”来记录当前是否已有按钮被按下的情况,默认为0。当某个按钮被按下时,根据变量的值来判断其是否为第一个被按下的按钮,如果是则更改变量的值为1,从而阻止其他按钮的触发指令执行,同时点亮对应的LED灯;等待10秒后,自行熄灭,并将变量值设为0,为下一轮抢答做准备。
根据编程思路,编写出程序,示例程序如图2-11所示。编好程序后,上传到设备,进行初步的测试。
快乐智造营 | 02 抢答器图16快乐智造营 | 02 抢答器图17
图2-11
        注意:使用数字按钮模块时,一般需要进行“去抖”,以防止连续触发(因为人认为的按下一次,对于计算机来说已经是N次了)。常用的处理方法是,把“按下-抬起”视为一个有效触发动作,一直按着无效,必须等按键弹起后才算一次触发,示例程序段见图2-12所示:当引脚D2上连接的数字按钮被按下后,一直等待,直到按钮被释放,然后执行后面的亮灯指令。
快乐智造营 | 02 抢答器图11
图2-12
2.4.3 设计切割外型
        使用激光建模软件进行外型的设计,设计图如图2-13所示。
快乐智造营 | 02 抢答器图12
图2-13

        图纸设计好后,使用激光切割机进行切割。切割好的木板件如图2-14所示。
快乐智造营 | 02 抢答器图13
图2-14

2.4.4 装配调试
2.4.4.1 组装
        将切割好的木板和硬件进行组装,步骤如图2-15、图2-16所示。

快乐智造营 | 02 抢答器图14
图2-15
(1)组装好四个桌子的四面
(2)将桌子固定到底盒的顶板
(3)组装底盒的五个面,安装主控板
(4)将所有的线拔下,分别穿过4个桌子
(5)重新将电子模块接上扩展板
(6)安装LED发光模块
快乐智造营 | 02 抢答器图15
图2-16
(7)将数字按钮模块安装在桌子的顶板上
(8)将底盒的顶板与其他部分组合起来
(9)安装桌子的顶板
2.4.4.2 调试   
    安装好后,通电测试。
2.5 思维拓展
        对于今天制作的项目,你觉得还有什么改进之处,可以记录下来。等学习了更多的电子模块后,我们可以对其进行改进。
       你能不能基于今天学习的硬件材料,设计出不一样的作品呢?


hnyzcj  版主

发表于 2020-8-17 08:03:05

呃,脑筋急转弯题目不错。哈哈哈。大毛,二毛,小明的故事。
回复

使用道具 举报

 初级技匠

发表于 2022-4-16 14:22:00

hnyzcj 发表于 2020-8-17 08:03
呃,脑筋急转弯题目不错。哈哈哈。大毛,二毛,小明的故事。

哈哈哈        
回复

使用道具 举报

 初级技匠

发表于 2022-4-16 14:36:07

作品很好
回复

使用道具 举报

happyblue  见习技师

发表于 2023-3-14 18:17:02

激光切割的设计图能共享吗?
回复

使用道具 举报

怀若谷  高级技匠
 楼主|

发表于 2023-3-17 08:06:44

happyblue 发表于 2023-3-14 18:17
激光切割的设计图能共享吗?

自己照着画一画,不难的
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail