• 从胡红岩到王天荣,还有多少人在无辜背案底 2019-09-17
  • 英国政治家威廉·皮特说得好:百姓的茅草房,风可以进,雨可以进,国王不可以随便进。 2019-09-17
  • 事件 —频道 春城壹网 七彩云南 一网天下 2019-08-30
  • 《辉煌中国》第一集《圆梦工程》 2019-08-30
  • 建党精神,从这八个字学起——访中国史学会原会长金冲及 2019-08-26
  • "生死"淘汰赛启动 中国私募股权行业加速洗牌 2019-08-15
  • 国际锐评:美方反复无常,中方洞若观火,同等反制! 2019-08-03
  • 中美贸易战,让更多的中国人醒悟过来:美国是靠不住的。 2019-08-03
  • 中国电视剧诞生60周年盛典 老中青三代主创齐聚一堂 2019-07-25
  • 探寻南极之境 送给世界尽头的一封情书 2019-07-25
  • 抓住了!云南文山脱逃嫌疑人七小时后在城内被抓获 2019-07-22
  • “埃夫特·栋梁杯”全国工业机器人技术应用技能大赛落幕 2019-07-22
  • 应战美国贸易战中国跟500亿 同等力度、同日开征关税 2019-07-12
  • 专家谈当前市场预期 信心持续攀升预期比较乐观 2019-07-02
  • SNH48年度总决选速报结果公布 李艺彤登顶 2019-07-02
  • 查看: 3342|回复: 4
    打印 上一主题 下一主题

    [项目分享] 基于Arduino制作的激光打靶器

    [复制链接]

    相信很多人都玩过打靶游戏,尤其是很多男孩子都梦想成为一个神枪手。激光打靶游戏在一些游乐场中也是很火的游戏项目,但是玩别人的游戏总觉得有些被束缚,那么能不能发挥自己的想象力,自己制作一个会逃避的激光打靶器呢?这篇文章就教我们使用Arduino UNO和一直普通废弃的??乇式岷?,自制一个有趣聪明的激光打靶器。



    一、原理

    要让激光打靶器的靶子感知??乇史⒊龅募す?,最合适的传感器就是光线传感器了。该光线传感器可以检测环境光线的强度,检测的值在0~1024。

    当激光击中靶心时,即当光线传感器获取的值超过800时,触发靶子随机转动一个角度,引起靶子的转动就需要使用舵机。本案例中使用舵机虽然重量只有9g,但是输出的力矩却达到了1.6kg*cm。为了使游戏更加有趣和刺激,我们可以使用蜂鸣器报警提示玩家。蜂鸣器是最常见的电子发声装置,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中。当玩家不能在1分钟中内击中靶心超过10次,则蜂鸣器发出警笛般的报警声。为了方便玩家清晰知道已经击中的次数和游戏运行的时间,一般采用两种方式来显示,一种是数码管,另一种是LCD屏。但是由于数码管连接较为复杂,本案例就选择使用LCD屏显示。

    但是在实际的游戏过程中,由于距离较远,玩家不能有效观察到LCD屏上面的数字,这该怎么办呢?我们可以使用LED灯,当激光击中靶心后,LED闪烁提示玩家已经击中靶心。

    二、原型

    接下来,我们需要对于“激光打靶器”进行编程了。但是在开始之前,我们需要对整个程序流程梳理清楚。

    首先按钮开启,让LED闪烁提示玩家,游戏已经开始并倒计时。LCD屏开始工作,LCD屏可以显示两行字符串,我们选择上面一行显示击中的次数,下面一行显示系统运行的时间。接下来当激光击中靶心时,靶心的光线传感器采集到光线值大于800时,舵机随机转动一个角度,另外一个LED闪烁提示你已经击中了。随着时间的进行,当玩家在55s内,不能击中10次以上,蜂鸣器就会发出警笛般的报警。如果程序判断玩家是否在1分钟内击中10次,如果是,那么就恭喜你成功了,如果没有,那么就需要重启,重新开始游戏。

    接下来,我们需要选择一款合适的编程软件,主流的Arduino编程软件是Arduino IDE,

    但是这款软件对于新手要求较高,目前针对于Arduino的图形化编程软件也越来越多,主流有Mixly等。Mixly以功能强大,操作方便为人们所认可,因此本案例我们选择Mixly这款软件。首先我们设置按钮的管脚和提示游戏开始的LED管脚,在本案例中我们设置为“D4”和“D9”。并且为了显示击中的次数,我们需要定义一个变量,为了方便记忆,我们定义一个变量n为整数并赋值为0。为了控制LED的亮灭,我们也需要定义一个变量,我们定义一个变量x为整数并赋值为0。在实际的操作过程中,也会遇到手的抖动使得按钮的触发不规律状况,我们需要加入防抖的命令。

    接下来就进入本案例的核心程序了,当按钮触发时,程序就开始计时。在Mixly中计时??槌S玫氖莔illls()函数,但是millis()让很多人不太容易理解,因此我们可以选择for循环。使用这两个??榻岷?,就可以实现每秒钟记1次,共记录60次了。

    我们设置光线传感器的管脚为“A0”,提示的LED灯设置管脚为“D7”,蜂鸣器管脚设置为“D5”。当光线传感器接受光线值超过800,可以触发LED闪烁,舵机随机转动一个角度。在这里需要重点强调一下,由于程序运行速度较快,所以我们需要增加一个类似防抖的命令,否则会多次触发舵机和LED灯。为了增加游戏的趣味性,我们让舵机随机转动一个角度,这个程序设置也比较简单。

    在设置LCD??樾枰乇鹱⒁?,LCD??槭窃贛ixly软件的Dfrobot选项中,如果没有这个选项,需要从北师大创客教育实验室下载第三方拓展??橹械腄frobot导入即可。在设置LCD时,我们让液晶显示屏的第一行显示的击中的数量,第二行设置时间。

    当玩家在55s内不能击中10次,则触发蜂鸣器发出警笛的声音。因为不能让蜂鸣器一直发出警报,我们设置响3s后,自动关闭。

    综上所述,我们将上面“激光打靶器”的核心命令按照设计思路整合在一起就成为如下所示的代码。如果有不明白的地方,
    可以在https://pan.baidu.com/s/1jHGSNiu中下载程序。
    接下来就到了连接硬件的部分了,我们需要程序中对应的管脚和硬件连接部分的管脚保持一致。其中LCD??橛階rduino  UNO连接较为复杂,容易出错,两者的连接。



    三、产品

    接下来我们需要找一个尺寸合适的纸盒子把器材装进去,然后设置一个直杆连接靶子和舵机,把光线传感器的连接线放在直杆后面用胶枪固定即可。如果用普通的吸管代替直杆效果更好,组装起来。

    接下来,就触发按钮,发射激光开始有趣的游戏吧。
    原作者:李守良

    沙发

    gada888  版主

    发表于 2019-3-6 15:52:35

    不错不错
    板凳

    Andydonotknow  见习技师

    发表于 2019-3-12 17:14:28

    感觉作者的头像的项目更有意思哈
    地板

    SJHll  见习技师

    发表于 2019-5-12 22:12:57

    这个东西感jio不难做,自己做一个看看,作者能告知一下大概材料就更完美了
    5#

    啊歪  学徒

    发表于 2019-5-23 12:21:40

    有人做了吗?
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    为本项目制作心愿单
    购买心愿单
    心愿单 编辑
    wifi气象站

    硬件清单

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

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

    极速赛车预测
  • 从胡红岩到王天荣,还有多少人在无辜背案底 2019-09-17
  • 英国政治家威廉·皮特说得好:百姓的茅草房,风可以进,雨可以进,国王不可以随便进。 2019-09-17
  • 事件 —频道 春城壹网 七彩云南 一网天下 2019-08-30
  • 《辉煌中国》第一集《圆梦工程》 2019-08-30
  • 建党精神,从这八个字学起——访中国史学会原会长金冲及 2019-08-26
  • "生死"淘汰赛启动 中国私募股权行业加速洗牌 2019-08-15
  • 国际锐评:美方反复无常,中方洞若观火,同等反制! 2019-08-03
  • 中美贸易战,让更多的中国人醒悟过来:美国是靠不住的。 2019-08-03
  • 中国电视剧诞生60周年盛典 老中青三代主创齐聚一堂 2019-07-25
  • 探寻南极之境 送给世界尽头的一封情书 2019-07-25
  • 抓住了!云南文山脱逃嫌疑人七小时后在城内被抓获 2019-07-22
  • “埃夫特·栋梁杯”全国工业机器人技术应用技能大赛落幕 2019-07-22
  • 应战美国贸易战中国跟500亿 同等力度、同日开征关税 2019-07-12
  • 专家谈当前市场预期 信心持续攀升预期比较乐观 2019-07-02
  • SNH48年度总决选速报结果公布 李艺彤登顶 2019-07-02
  • 足彩开奖结果查询奖金任九 不断突破 网上赚钱无投入 广东时时彩快乐十分 真人游戏赢现金网站 辽宁彩票11选5预测 3d澳客网专家杀号 四川金7乐开奖结果查询 安徽快三走势图今天 彩票投注 快乐赛车是哪个地方开彩 金沙电玩城下载链接 腾讯牛牛 抽射教程 云南彩票中奖要怎样领奖