亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

全自动 3D 打印无刷电机 Nerf 飞镖发射器 (Arduino Nano Every 控制)

项目简介

这是一个完全 3D 打印的、电动全自动 Nerf 飞镖发射器 —— 灵感来自游戏《赛博朋克 2077》中的"康道 (Kang Tao)"智能枪。项目核心在于用 Arduino Nano Every 精准控制:

发射性能:半油门飞轮下飞镖飞行距离 25 米 (82 英尺);全自动射速可通过代码调节延迟实现。

核心硬件清单 (BOM)

组件关键规格数量选型提示
Arduino Nano EveryATmega4809, 5V, 16MHz, 体积小1兼容 Uno/Nano 代码,引脚足够
无刷电机 (Outrunner 外转子)2600kV, 3S (12.6V) 支持, >60W, 后部安装孔2外转子扁平便于 3D 打印飞轮套装
无刷 ESC20A+ (电机电流 7A 实测), 3S 支持, OPTO 或带 BEC2每电机一 ESC,严禁并联!
12V 线性电磁阀行程 35mm, 8A 额定, 12V1短行程无法推满长飞镖
N 沟道逻辑电平 MOSFETVds >20V, Id >15A @ Vgs=5V (如 IRLZ44N)1驱动电磁阀,Arduino 5V 直接驱动
3S 锂聚合物电池11.1-12.6V, ≥1300mAh, ≥25C (峰值 32A+)1XT60 接头,单电池供全系统
微动开关通用小型,信号级即可2主/副扳机,不通大电流
二极管 1N40071A 1000V2D1 防反接,D2 电磁阀续流
电容100μF/25V (电解) + 100nF (陶瓷)各 1Arduino 供电滤波,防电压跌落复位
电阻4.7kΩ (上拉) ×2, 10kΩ (MOSFET 下拉), 150Ω/220Ω (LED)若干按原理图连接
滑动开关 (安全开关)2 挡 3 脚,只用 2 脚1切断 Arduino 供电,熄火保险

电路原理与关键设计

双扳机逻辑 (防卡弹核心)

无刷 ESC 与电机选型要点

MOSFET 驱动电磁阀

电源保护电路

Arduino 固件代码 (完整注释版)

const int buttonPinF = 2;   // MS2 飞轮预旋微动开关
const int buttonPinS = 5;   // MS1 发射微动开关
const int solenoidPin = 4;  // MOSFET 栅极驱动引脚

#include <Servo.h>
Servo throttle;             // 用 Servo 库产生 ESC 所需 50Hz PWM
int escPin = 3;             // ESC 信号线

void setup() {
  pinMode(buttonPinF, INPUT);
  pinMode(buttonPinS, INPUT);
  pinMode(solenoidPin, OUTPUT);
  digitalWrite(solenoidPin, LOW);

  throttle.attach(escPin);
  // === ESC 解锁/上电自检序列 ===
  // 大多数 ESC 需要先发送最小油门 (约 1000-1100μs) 保持 3-10 秒
  // 这里用 write(90) 对应 ~1500μs (中点),再微调到 91
  for (int pos = 90; pos <= 91; pos += 1) {
    throttle.write(pos);
    delay(3700);  // 关键:等待 ESC 退出安全模式,视 ESC 调大到 10000 (10秒)
  }
  // 此时 ESC 已就绪,电机微转或静止
}

void loop() {
  // 读取副扳机 (飞轮预旋)
  bool flywheelBtn = digitalRead(buttonPinF) == HIGH;
  if (flywheelBtn) {
    throttle.write(92);   // 怠速/低速预旋 (根据 ESC 微调,92≈1520μs)
  } else {
    throttle.write(97);   // 全速/高速 (97≈1550μs,最大约 115 对应 2000μs)
  }

  // 读取主扳机 (发射) - 必须副扳机也按住
  bool fireBtn = digitalRead(buttonPinS) == HIGH;
  if (!flywheelBtn && fireBtn) {  // 逻辑与:飞轮转着才允许发射
    digitalWrite(solenoidPin, HIGH);
    delay(90);                    // 电磁阀通电时长 (推镖行程)
    digitalWrite(solenoidPin, LOW);
    delay(100);                   // 复位间隔 → 决定射速 (约 5.2 发/秒)
  } else {
    digitalWrite(solenoidPin, LOW);
  }
}

参数调节指南

参数代码位置调节效果建议范围
ESC 解锁延迟delay(3700)等待 ESC 退出安全模式3000-10000ms (听 ESC "嘀嘀" 声音判断)
怠速/预旋油门throttle.write(92)飞轮预旋转速,影响启动响应90-95 (1500-1550μs)
全速油门throttle.write(97)最大发射初速95-115 (1550-2000μs),勿超 ESC/电机极限
电磁阀通电时间delay(90)推镖行程完成度80-120ms (视弹簧/阀行程)
电磁阀间隔时间delay(100)射速 (周期 = 190ms → ~5.3 RPS)80-200ms (防卡弹需给飞轮恢复转速时间)

3D 打印与机械组装

所有 STL 文件已上传 Thingiverse:Kang Tao Nerf Blaster

安全警示 ⚠️

进阶改进想法

资源汇总

制造工艺

  1. 自制家用作业书写机:Arduino + GRBL 控制的笔绘仪
  2. 用 Arduino 打造绚丽显示器 Ambilight 系统
  3. 用 Alexa 控制吊扇:分步指南
  4. 基于 Arduino、1Sheeld 与红外控制的万能安卓遥控器
  5. 智能存钱罐:Arduino Nano 控制硬币识别器实现余额显示
  6. Arduino 电源控制中心:N-FET/P-FET/继电器/RTC 多功能扩展板
  7. Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
  8. 打造功能完整的 Arduino 驱动 3D 打印机械臂:分步指南
  9. DIY Arduino 加湿器控制器:继电器安全控制高压电路
  10. Arduino Nano + 摇杆控制双步进电机:Visuino 图形化教程
  11. 智能淋浴调节器:基于电磁阀的精准定时节水控制器
  12. Arduino 合成乐音:从零实现 88 键钢琴全音域