0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何通过遥控器操作nerf枪

454398 来源:工程师吴畏 2019-08-22 09:38 次阅读

第1步:项目介绍

如何通过遥控器操作nerf枪

这个项目/instructables展示了如何通过遥控器操作nerf枪。 nerf枪放在支架上,部件是3D打印和激光切割。那样,nerf枪能够自立站立。

nerf枪旋转并在x轴和y轴上移动,这使得它能够向上,向下,向左和向右移动。然而,还存在一种尺寸z轴。这是“Fire”功能,可以让nerf枪射击。

nerf枪连接到蓝牙模块,与移动应用程序通信,因此可以控制通过应用程序的nerf枪。

第2步:第1步:设备

材料:

1 x Nerfgun炮塔

1 x Arduino Mega 2560板(通过USB连接到计算机)

1 x面包板

大量跳线

1 x电源

1 x继电器

2 x Pololu a4988

2 x Nema 17 hybrid步进电机2相

2 x超声波传感器HC-SR02

1 x HC-05蓝牙模块

1 x模拟操纵杆控制器突破

3 x 1k欧姆电阻器或一个1k电阻器和一个2k电阻器。

机械设备:

某种装配/固定,

4 x滚珠轴承

步骤3:Fablab

我们用fablab做了一些机械方法nerf枪的设备。目标是使nerfgun独立,这就是我们使用Fablab的原因。

在Fablab中,我们设计,3D打印和激光切割一些机械设备,这使得nerfgun现在可以自立,并与蓝牙通信一起工作,无需任何物理人体交互。

持有人/配件:

- 一种拟合

拟合是3D打印和制作,使其完美地适合nerfgun的侧面。

配件的轮廓/草图由3D扫描仪创建。之后,在最终打印之前,在 vxelements 中编辑了大纲,大约需要12个小时。

其余的机械设备:

- 两个齿轮。

其余设备均由木材制成。草图分别在Illustrator和AutoCAD中制作。

当最终的草图完成后,它被激光切割。

步骤4:步骤4:工作原理

第一个视频显示了nerf枪如何仅使用操纵杆工作。

第二个视频显示了如何使用与蓝牙模块通信的Android应用程序。

步骤5:引脚连接

2 x Nema 17:

sx = pin 2(步骤x轴)

dirx = pin 3 (方向x轴。

sy =针脚4(步骤y轴)

diry =针脚5(方向y轴)

超声波传感器

trigPin1 = 12

echoPin1 = 13

trigPin2 = 51

echoPin2 = 49

模拟操纵杆:

模拟x -axis = A0

模拟y轴= A1

开关=引脚6

继电器:

接力=第7针

蓝牙:

Bluetooth_RXD = Arduino_TXD

Bluetooth_TXD = Arduino_RX

步骤6:连接设备

将超声波传感器插入面包板。

1)连接超声波传感器上的 GND 连接到 GND Arduino引脚。

2)将 VCC 连接到 5V Arduino引脚。

3)将 trig 连接到 Arduino Board上的引脚51。 4)连接 echo 在 Arduino Board上固定49位。

模拟操纵杆: 1)连接《将》 VCC 和 GND 引脚分别连接到面包板上的正极和负极导轨。

2)将 V引脚连接到A1 在Arduino板上,以及Arduino板上的 H引脚到A0 。3)此外, A1引脚需要连接到 Nema 17 stepper

Pololu a4988:

1)将Nema 17连接到电机引脚在pololu上。

2)将Step引脚连接到Arduino引脚。

3)将Direction引脚连接到Arduino引脚。

4)将它分别连接到Arduino上的12V和GNd以及5V。

蓝牙: 1)分别连接 VCC 和 GND 引脚到面包板上的正负轨。

2)将蓝牙的RXD 引脚连接到 TXD Arduino 引脚(此处使用电阻以避免烧毁模块)

3)连接蓝牙的TXD 引脚连接到 RXD Arduino 引脚。

将Nerfgun连接到电路:

1)将正极和负极线连接到继电器。

2)将继电器连接到电源。

第7步:Fritzing

步骤8:代码细分

解释了部分代码:

if(Serial.available() 》 0)

{

state = Serial.read(); //Read the incoming data and store it into variable Incoming_value

Serial.print(state); //Print Value of Incoming_value in Serial monitor

Serial.print(“ ”); //New line

}

此处它从蓝牙模块读取输入数据并将其保存在变量“状态”。

//Read the joystick.

joyx = analogRead(A0);

joyy = analogRead(A1);

notPressed = digitalRead(inPressed);

if ( notPressed == 0 || state == 8)

{

// Serial.print(notPressed);

digitalWrite(relay, HIGH);

}

else{

digitalWrite(relay, LOW);

}

这部分代码读取bluetoothmodule。如果按下操纵杆(notPressed == 0)并且蓝牙“开火”按钮是(状态== 8),继电器将激活并使nerf枪射击。否则它将保持不活动状态。

steppermotor根据操纵杆方向/位置移动。

if (joyx 《 550 && joyx 》 450 || joyy 《 550 && joyy 》 450 )

{

digitalWrite(dirx, LOW);

digitalWrite(diry,LOW);

digitalWrite(sx, LOW);

digitalWrite(sy, LOW);

// digitalWrite(relay, LOW);

当操纵杆处于此位置时,轴不会移动,继电器将保持不活动状态。

//The x, axis will start and move to the left

if (joyx 》 550 || state == 1 )

{

digitalWrite(dirx, LOW);

digitalWrite(sx, HIGH);

delay (fart);

digitalWrite(sx, LOW);

delay(fart);

curstepx++;

} //The axis will start moving right.

if (joyx 《 450 || state == 2)

{

digitalWrite(dirx, HIGH);

digitalWrite(sx, HIGH);

delay (fart);

digitalWrite(sx, LOW);

delay(fart);

curstepx--;

} // The y-axis will start moving.

if (joyy 》 550 || state == 4)

{

digitalWrite(diry, LOW);

digitalWrite(sy, HIGH);

delay (fart);

digitalWrite(sy, LOW);

delay(fart);

curstepy++;

} // The y-axis will start moving up or down.

if (joyy 《 450 || state == 5)

{

digitalWrite(diry, HIGH);

digitalWrite(sy, HIGH);

delay (fart);

digitalWrite(sy, LOW);

delay(fart);

curstepy--;

}

根据操纵杆的位置/方向,电机将向上,向下,向右或向左移动。该代码还显示,根据Android应用程序的输入,电机将根据该移动。

这是传感器的代码。

// long duration1, distance1;

// digitalWrite(trigPin1, LOW); // Added this line

// delayMicroseconds(2); // Added this line

// digitalWrite(trigPin1, HIGH);

// delayMicroseconds(10); // Added this line

// digitalWrite(trigPin1, LOW);

// duration1 = pulseIn(echoPin1, HIGH);

// distance1 = (duration1/2) / 29.1;

////

//// if (distance1 《 10 || distance1 《= 0){

//// Serial.println(“SHOOT!”);

//// digitalWrite(relay, HIGH);

//// delay(1000);

//// digitalWrite(relay, LOW);

////

//// }

// Serial.print(“Sensor1 ”);

// Serial.print(distance1);

// Serial.println(“cm”);

这是第一个放置的传感器在nerf枪枪管。传感器测量距离,如果物体在10厘米以内,它将激活继电器并使枪射向目标。

传感器2的代码:

//long duration2, distance2;

// digitalWrite(trigPin2, LOW); // Added this line

// delayMicroseconds(2); // Added this line

// digitalWrite(trigPin2, HIGH);

// delayMicroseconds(10); // Added this line

// digitalWrite(trigPin2, LOW);

// duration2 = pulseIn(echoPin2, HIGH);

// distance2= (duration2/2) / 29.1; // if (distance2 《= 10 ){

// Serial.println(“BEHIND ME!”);

// for (i = 0; i 《 100; i++) {

// digitalWrite(dirx, LOW);

// digitalWrite(sx, HIGH);

// delay (fart);

// digitalWrite(sx, LOW);

// delay(fart);

// curstepx++;}

//

// }

//

// }

//

// else {

// Serial.print(“Sensor2 ”);

// Serial.print(distance2);

// Serial.println(“cm”);

// }

这部分基本上像部件一样工作对于传感器1.唯一的区别是,它不会激活继电器。当对象在10厘米范围内时,它会做出反应。

请注意,代码的某些部分无法正常工作,这就是为什么它们被作为注释放置的原因。我们仍在尝试调试程序并解决错误。它可能与导线的连接方式有关,如果导线有点不稳定,则会导致错误并使硬件失效。或者如果代码不正确,它还会导致硬件的工作方式与最初计划/思考的不同。

步骤9:蓝牙模块通信

我们使用了HC-05蓝牙模块,可以使用我们的手机来控制nerf枪。

HC-05模块是蓝牙SPP(串行端口协议)模块,这意味着它通过串行通信与Arduino通信。

det数据引脚的电压电平为3.3V。 Arduino TX(具有5V输出)和蓝牙模块RX(仅支持3.3V)之间的线路需要通过电阻连接,以免烧毁蓝牙模块。但是蓝牙模块TX引脚和Arduino RX引脚之间的线路可以直接连接,因为Arduino接受来自蓝牙模块的3.3V信号为高逻辑。

上传代码时,您必须拔掉TX和RX线,因为上传Arduino时使用串行通信,因此引脚RX和TX正忙。

然后你必须激活蓝牙,你的手机才能找到HC-05蓝牙模块。

步骤10:移动应用程序

Android应用程序旨在将串行数据发送到Arduino蓝牙模块在应用程序上按下按钮。

该应用程序是在MIT App Inventor中制作的,它由六个按钮组成。

1) 选择蓝牙: 在手机上激活蓝牙,它会找到HC-05蓝牙模块。将手机连接到模块,连接完成后,按钮下方的文字会显示“已连接”。

2) 左键: 只要“Left”《,就会向“1”整数《按下/em》按钮。它会使nerf枪在x轴上向左旋转。第二个你停止按下按钮,整数“0”被发送到Arduino Board。

3)右键: 只要按下“Right”按钮,就会向“2”整数。它会使nerf枪在x轴上向右旋转。第二个你停止按下按钮,整数“0”被发送到Arduino Board。

4)消防按钮: 只要按下“Fire”按钮,就会向“8”整数。它会导致nerf枪射击/射击某物。第二个你停止按下按钮,整数“0”被发送到Arduino Board。

5)向上按钮: 只要按下“向上”按钮,就会向“4”整数。它会使nerf枪向上移动 - 在y轴上。第二个你停止按下按钮,整数“0”被发送到Arduino Board。

6)向下按钮: 只要按下“向下”按钮,就会向“5”整数。这将导致nerf枪向下移动 - 在y轴上。第二个你停止按下按钮,整数“0”被发送到Arduino Board。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 遥控器
    +关注

    关注

    18

    文章

    839

    浏览量

    66303
收藏 人收藏

    评论

    相关推荐

    数字遥控器

    智能车辆解决方案中数字遥控器产品是现场开发、测试以及运维人员调试、控制车辆的重要手段,数字遥控器系统整体由云端、移动客户端和嵌入式车端三部分构成,针对不同场景,经纬恒润数字遥控器能够依据客户要求进行深度定制,在保证安全可靠的前提
    的头像 发表于 01-07 09:56 73次阅读
    数字<b class='flag-5'>遥控器</b>

    定制遥控器主要分为哪些步骤?

    随着人们对生活质量的要求不断提高,各种电器都开始由无线遥控器控制。对于一些厂家没有做遥控控制的电器,就需要找生产厂家去定制遥控器了。定制遥控器流程一般为:客户需求确认、外观设计和电路板
    的头像 发表于 01-03 13:47 64次阅读

    RF遥控器厂家:射频遥控器将成为未来的控制主流

    改革开放40余年来,人们的家庭生活发生了巨变——各型家用电器走进了千家万户。在此期间,家用电器的发展也在不断走向多样化、智能控制化。通常我们所见的电视和空调、投影仪等设备大都是使用红外遥控器来控制
    的头像 发表于 12-31 11:47 77次阅读

    如何选购适合的拷贝遥控器——增配遥控器教程来啦

    安装设备的时候,都会给两个遥控器,但是家庭人多的情况下,遥控器就不够用了。增配遥控器就成了我们头疼的问题,原厂遥控器不仅贵还需要师傅上门配对,比较麻烦。而拷贝
    的头像 发表于 12-26 13:57 312次阅读
    如何选购适合的拷贝<b class='flag-5'>遥控器</b>——增配<b class='flag-5'>遥控器</b>教程来啦

    遥控器解码怎么使用

    遥控器解码是一种用于解码和复制遥控器信号的设备,它可以帮助用户在遥控器丢失或损坏的情况下,重新获得对设备的控制。 遥控器解码器使用指南 1
    的头像 发表于 09-30 14:23 955次阅读

    蓝牙语音遥控器方案

    ,使用非常方便,彻底摆脱传统红外遥控器在节目搜索时的繁琐操作和低效。 一、方案介绍: 蓝牙语音遥控器一般是通过按下语音键,遥控器会发送一个
    的头像 发表于 08-29 14:37 560次阅读
    蓝牙语音<b class='flag-5'>遥控器</b>方案

    433M 通讯技术无线遥控器芯片CMT2300A

    433M遥控器原理是通过使用433MHz频率进行无线通信, 将信号从发射发送到接收,并在接收中执行相应的
    的头像 发表于 07-15 15:01 1422次阅读
    433M 通讯技术无线<b class='flag-5'>遥控器</b>芯片CMT2300A

    老陆测功耗03 | 遥控器该扔吗?

    在日常生活中,你一定遇到过下列情形:开电视要用到两个遥控器三居室有四个空调遥控器窗帘、吊灯都得配遥控器……遥控器多多多,多到厌烦本期选取了生活中常见的三款
    的头像 发表于 06-08 08:04 450次阅读
    老陆测功耗03 | <b class='flag-5'>遥控器</b>该扔吗?

    OpenHarmony开发案例:【分布式遥控器

    分布式遥控器将手机的输入能力和电视遥控器遥控能力结合为一体,从而快速便捷操控电视。
    的头像 发表于 04-16 16:44 962次阅读
    OpenHarmony开发案例:【分布式<b class='flag-5'>遥控器</b>】

    多元传感测量系统测量遥控器:技术挑战与应用探索

    多元传感测量系统在测量遥控器方面虽然面临诸多技术挑战,但通过不断优化系统性能、提升数据处理能力,可以克服这些挑战,实现对遥控器的精确测量和全面分析。随着技术的不断进步,多元传感测量系统在遥控器
    的头像 发表于 03-20 10:49 1063次阅读
    多元传感测量系统测量<b class='flag-5'>遥控器</b>:技术挑战与应用探索

    应用在机顶盒遥控器中的2.4GHz无线芯片

    机顶盒遥控器是用于控制机顶盒,进而控制电视机的遥控器。以机顶盒遥控器为例,其遥控器按钮由前后两部分组成,前一部分按钮是用来代替电视机遥控器
    的头像 发表于 02-29 09:48 925次阅读
    应用在机顶盒<b class='flag-5'>遥控器</b>中的2.4GHz无线芯片

    华为入局的智能遥控器市场,产业创新不断

    电子发烧友网报道(文/莫婷婷)智能遥控器指的是通过与嵌入到各类设备中的智能模块接发信号实现的智能控制产品,集成了自动控制、传感技术、通讯、电磁兼容等多种技术。从市场使用定位来看,智能遥控器
    的头像 发表于 02-27 00:28 4070次阅读

    如何提高红外线发射管在遥控器上的发射距离

    如何提高红外线发射管在遥控器上的发射距离  遥控器成为了我们日常生活中不可或缺的一部分,我们通过遥控器可以控制电视、空调、音响等大量设备。而遥控器
    的头像 发表于 01-31 14:47 3457次阅读

    万能遥控器的设置和使用方法

    万能遥控器是一种能够控制不同品牌电器的设备,它可以将多个遥控器的功能整合到一个遥控器上,方便用户操作。在本文中,我将详细介绍万能遥控器的设置
    的头像 发表于 01-24 10:57 1.6w次阅读

    2.4G无线遥控器方案开发,稳定性强,可用于多种应用

    不会受到光线干扰。它由遥控器和接收两部分组成,遥控器通过内部的控制芯片把指令转换成2.4GHz无线信号,发送给接收,接收
    的头像 发表于 01-18 15:44 2509次阅读