• 一“证”在手  产品畅行海内外 2019-06-15
  • 河北省交通运输厅:平安交通一路同行 2019-06-13
  • 徕卡M10限量版外观曝光-热门标签-华商网数码 2019-06-10
  • 四川能投集团党委书记、董事长郭勇荣获“2017 2019-06-01
  • 男子为新车烧香敬神  不料车被烧成空壳 2019-06-01
  • 绿水青山就是金山银山——浙江湖州生态文明建设纪实之一 2019-05-31
  • 人社部:改革国有企业工资总额决定机制 2019-05-26
  • 这些藏在主城中的小众公园 景美还免费 2019-05-23
  • 荆楚网(湖北日报网)采购信息 2019-05-22
  • 松原地震视频汇总!监控录像记录地震现场画面曝光 2019-05-22
  • 木渎古镇文章中国国家地理网 2019-05-15
  • 上海合作组织青岛峰会举行 2019-04-20
  • 遭遇隐形歧视 就业权益谁来维护 2019-04-20
  • 杨立新解读2018年天津市《政府工作报告》--天津频道--人民网 2019-04-19
  • 【北京海之沃车型报价】北京海之沃4S店车型价格 2019-04-19
  • 查看: 1432|回复: 2
    打印 上一主题 下一主题

    [项目分享] 基于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

    感觉作者的头像的项目更有意思哈
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    硬件清单

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

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

    浙江6加1开奖结果
  • 一“证”在手  产品畅行海内外 2019-06-15
  • 河北省交通运输厅:平安交通一路同行 2019-06-13
  • 徕卡M10限量版外观曝光-热门标签-华商网数码 2019-06-10
  • 四川能投集团党委书记、董事长郭勇荣获“2017 2019-06-01
  • 男子为新车烧香敬神  不料车被烧成空壳 2019-06-01
  • 绿水青山就是金山银山——浙江湖州生态文明建设纪实之一 2019-05-31
  • 人社部:改革国有企业工资总额决定机制 2019-05-26
  • 这些藏在主城中的小众公园 景美还免费 2019-05-23
  • 荆楚网(湖北日报网)采购信息 2019-05-22
  • 松原地震视频汇总!监控录像记录地震现场画面曝光 2019-05-22
  • 木渎古镇文章中国国家地理网 2019-05-15
  • 上海合作组织青岛峰会举行 2019-04-20
  • 遭遇隐形歧视 就业权益谁来维护 2019-04-20
  • 杨立新解读2018年天津市《政府工作报告》--天津频道--人民网 2019-04-19
  • 【北京海之沃车型报价】北京海之沃4S店车型价格 2019-04-19