RoboMaster

标题: 【分享帖】DIY自动瞄准机关枪(附代码) [打印本页]

作者: 机械狗    时间: 2015-12-18 17:18
标题: 【分享帖】DIY自动瞄准机关枪(附代码)
[attach]6114[/attach]
作为一个创客,我们所做的东西不仅仅是为了科技创新、改变世界之类的宏伟目的,还有一方面的原因是要完成一些我们脑中徘徊已久的那些中二的想法,今天的教程我们就来做一个中二无比的东西——自动追踪岗哨炮塔枪(别嫌长,临时取的名字)。

这种枪可以自动追踪移动的目标,然后朝目标发动进攻。好,我们开始今天的武器制作教程!(P.S.纯玩具,不是教你做武器!)
[attach]6115[/attach]
第一步:准备材料

气枪或彩弹枪×1(这玩意在我国确实不太好搞,大家可以联系一下真人CS场地的人,问一下他们所使用玩具枪的货源,或者直接买一个电动软弹玩具枪,某宝一搜便知,子弹软绵绵的,打在身上也不会很痛)。

第二步:组装

这一步非常的考验大家的动手能力,因为这种枪的硬件组装并不是有完整的定义和教程的,只能把各种零件按你的想法安装到一起,再此,硬创邦给出一些意见仅供参考:

最需要注意的,就是找到枪的重心,要保证枪在安装之后,伺服电机在操控枪械做任何动作的时候,都用力均衡。不过这一步也是最难的,因为大家买到的枪不一样,重心也会不一样,具体的重心位置还需要各位创客自己花一些时间去测量。

摄像头一定要牢固的安装在基座上,无论如何摄像头不能晃动,由于摄像头和枪挨得比较近,所以要保证枪械的动作幅度碰不到摄像头。
[attach]6116[/attach]
底座一定要牢靠,三脚架底座非常酷,稳定性也尚可,制作方面也比较容易,但重量一般不够,如果枪械动作幅度较大,那么整体就容易晃动,如果你不能保证制作的三脚架绝对稳定,就在在底部做一些相应的固定处理!

找到枪械的重心之后,把枪安装到底座上的固定架上,架上一定要有两个活动架,可以使枪械实现平移、倾斜的活动目的,然后把伺服电机和活动架连接。
[attach]6117[/attach]
总之,安装时的三个重点要牢记:稳定,稳定,还是稳定!

第三:控制板的布线

接下来是一道送分题,按照电路图,把Arduino和伺服电机等部件连接起来。
[attach]6118[/attach]
整个系统需要一个独立电源,推荐4 C-cell或D-cell电池,使用电压6V。

伺服电机有三个电线,电力、地线和信号线,每个伺服电机的电源线通常是红色的,连接到电池的(+)线,地线通常是黑色或棕色,连接(-),信号线通常是黄色、橙色或者白色,连接I/O接线口。
[attach]6119[/attach]
同时你还可以选择性地添加一些开关和LED灯。

使用焊丝将连接线焊丝以固定。

第四步:调试软件

整个岗哨枪的核心就在于软件了。
[attach]6120[/attach]
首先,把Arduino插入电脑,下载Arduino IDE,并且下载相关处理软件如果你的Arduino是 Diecimila以上的版本,则需要连接电源跳线。

然后需要在库中下载 JMyron, blobDetection和 controlP5 libraries  ,点击连接进入下载,解压,然后按照其中的README.txt文件的说明进行操作即可。

打开 Arduino IDE中的代码,确保电路板和串行端口在工具栏中的正确选择,然后单击确定,等待编译,然后点击上传,Arduino的代码调试就结束了。

    P.S.

    Win 7用户有可能会遇到一些问题,在这里给大家一些解决方法:

    当你遇到这个运行错误时: processing.app.debug. RunnerException: UnsatisfiedLinkError: D:\Software\processing-1.2.1\libraries\JMyron\library\JMyron. dll: Can't find dependent libraries:

    "Reason : Windows 7 doesn't come with MicroSoft C libraries, which were normally include in the other (older) Windoes system.

    意味着有两个Windows 7文件丢失,分别为:MSVCP71.dll和Msvcr71.dll

    点击如下链接,下载这两个文件:http://www.addictivetips.com/?attachment_id=38105

    下载完成后,将文件放到相应位置。

    32位操作系统放到Windows/System32文件夹中。

    64位操作系统放到Windows/SysWOW64 文件夹中。

当你运行代码时,屏幕上会有两个窗口弹出,一是摄像头的监控画面,另一个是控制面板。

在这个系统下,有两个模式。
[attach]6121[/attach]
手动模式:手动指向目标,并向其开火。

自动模式:系统会用一段时间去适应背景,过后如果有与背景颜色相违背的物体冲入画面,系统就会给枪下达攻击命令,自动射击物体。

当这些都完成后,枪械并不能准确地完成射击,所以需要一些校准,先通过软件中的 xMin, xMax, yMin和 yMax轴进行校准,然后还需要调整Arduino中的代码,具体参考代码如下:

      if(digitalRead(7) == HIGH) {
            xPosition = 110 ;
            yPosition = 135 ;
            fire = 0;
        }

    To set the home position (no USB communication), change these lines :
        if(idle) {
            idleCounter++;   
            if(idleCounter > 10000) {
                analogWrite(5, 50);
                delay(250);
                digitalWrite(5, LOW);
                idleCounter = 0;
            }
            else{
                 digitalWrite(5, LOW);
            }
            xPosition = 110 ;
            yPosition = 100 ;
            fire = 0;
        }

    To set the 'squeezed' and 'not squeezed' positions for the trigger servo, changethese lines :
        void Fire(int selector) {
            if(selector == 1) {
                fireTimer++;
                if(fireTimer >=0 && fireTimer <= triggerTravelMillis) {
                    trigger.write( 90 );
                    digitalWrite(2, HIGH);
                }
                if(fireTimer > triggerTravelMillis && fireTimer < 1.5*triggerTravelMillis) {
                    trigger.write( 140 );
                    digitalWrite(2, LOW);
                }
                if(fireTimer >= 1.5*triggerTravelMillis) {
                    fireTimer = 0;
                }
            }
            if(selector == 3) {
                trigger.write( 90 );
                digitalWrite(2, HIGH);
            }
        }
        void ceaseFire(int selector) {
            if(selector == 1) {
                fireTimer = 0;
                trigger.write( 140 );
                digitalWrite(2, LOW);
            }
            if(selector == 3) {
                trigger.write( 140 );
                digitalWrite(2, LOW);
            }
        }

好了,让我们来看一看成品效果的视频吧:视频连接:http://v.youku.com/v_show/id_XMTM2OTc4ODI5Ng==.html



作者: cpigfree    时间: 2015-12-19 13:30
看上去好NB
作者: seeyou    时间: 2015-12-19 14:02
厉害厉害!!
作者: Airstar960    时间: 2015-12-19 19:35
66666666666
作者: ぃ箴¨兮    时间: 2015-12-19 23:47
厉害!!!
作者: 聪明小可爱pc    时间: 2015-12-20 15:46
资源好像没有了
作者: 而后,淡默安然    时间: 2015-12-21 00:16
厉害,分享
作者: wonder7ful    时间: 2015-12-21 17:23
厉害。佩服
作者: 未来冠军    时间: 2015-12-24 19:35
66666666666666666
作者: ice.c    时间: 2016-1-12 16:27
看起来很厉害的样子
作者: steven    时间: 2016-1-13 11:48
厉害厉害呀!!!
作者: dyycumt    时间: 2016-3-24 16:14
哈哈哈依旧坚挺的飘过···
作者: SMU猫鼬DJIclub    时间: 2016-3-25 10:37
厉害,佩服
作者: 随波逐流    时间: 2017-11-25 22:29
谢谢分享!!!!!!!!!!!!!!
作者: panzhiqiang1998    时间: 2017-11-26 01:14
6666666666666666
作者: sher    时间: 2017-11-26 17:07
666666666666666666666666666
作者: R伟M良A    时间: 2017-12-8 14:22
厉害啊           
作者: 有钥匙没门    时间: 2017-12-31 19:11
厉害厉害
作者: 叮ing~~~    时间: 2018-1-1 19:32
做好应该会不错,视频链接好像失效了,麻烦能处理一下吗
作者: 阿飞123    时间: 2018-1-10 22:35
厉害了6666666666666666666
作者: qiaoch    时间: 2018-1-14 15:16
不是舵机吗?

作者: 爱笑的十三    时间: 2018-12-29 21:31
可以呀小牛
作者: Gloaming    时间: 2019-1-20 15:09
想看看实际效果视频链接却吃土了




欢迎光临 RoboMaster (https://bbs.robomaster.com/) Powered by Discuz! X3.2