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

仿真枪械后坐力鼠标:电磁阀振动+声音反馈打造沉浸射击体验

项目创意与效果

将普通鼠标改装为具有真实枪械后坐力反馈的游戏外设。点击鼠标左键时,6个12V电磁阀同步冲击产生强烈振动,配合PC端音频播放枪声,带来媲真实枪械的射击手感。适合FPS游戏玩家、VR模拟训练、沉浸式交互研究。

硬件架构

系统工作流程

  1. PC端Python脚本:监听鼠标左键点击事件(pynput库)
  2. 串口通信:检测到点击 → 发送字节指令给Arduino(如'F'表示开火)
  3. Arduino端:串口中断/轮询读取指令 → 控制继电器板通断电磁阀电源
  4. 同步音频:PC端同时播放枪声音频文件(pygame.mixer或winsound)
  5. 物理反馈:6个电磁阀芯同步高速往复冲击鼠标外壳,产生强烈振动感

核心代码实现

Arduino固件


#include 
// 假设继电器板I2C地址0x20,控制寄存器0x01
#define RELAY_ADDR 0x20
#define RELAY_REG 0x01

void setup() {
  Serial.begin(115200);
  Wire.begin();
  // 初始化继电器板所有通道关闭
  Wire.beginTransmission(RELAY_ADDR);
  Wire.write(RELAY_REG);
  Wire.write(0x00);
  Wire.endTransmission();
}

void loop() {
  if (Serial.available()) {
    char cmd = Serial.read();
    if (cmd == 'F') {  // Fire命令
      // 打开所有6路继电器(假设低电平触发)
      Wire.beginTransmission(RELAY_ADDR);
      Wire.write(RELAY_REG);
      Wire.write(0x3F);  // 低6位置1
      Wire.endTransmission();
      delay(50);         // 冲击持续50ms
      // 关闭所有继电器
      Wire.beginTransmission(RELAY_ADDR);
      Wire.write(RELAY_REG);
      Wire.write(0x00);
      Wire.endTransmission();
    }
  }
}

PC端Python控制脚本


import serial
import time
from pynput import mouse
import pygame

# 初始化
ser = serial.Serial('COM3', 115200, timeout=1)  # 修改为实际端口
pygame.mixer.init()
gunshot = pygame.mixer.Sound('gunshot.wav')

def on_click(x, y, button, pressed):
    if button == mouse.Button.left and pressed:
        ser.write(b'F')      # 发送开火指令
        gunshot.play()       # 同步播放音效

# 启动鼠标监听
with mouse.Listener(on_click=on_click) as listener:
    listener.join()

关键设计考量

电磁阀选型与布局

机械结构集成

原鼠标外壳空间有限,建议:

  1. 设计3D打印外壳延伸件,容纳电磁阀阵列
  2. 或制作外挂式"后坐力模块"通过支架固定在鼠标后部
  3. 使用减震垫隔离电路板,防止振动损坏焊点/元件
  4. 保持鼠标底部传感器窗口无遮挡,不影响追踪精度

延迟优化

GitHub开源资源

完整代码仓库:Arduino固件 + Python脚本 + 原理图 + 3D模型

安全与人因提示

拓展应用场景

制造工艺

  1. 汤普森冲锋枪:从创新到标志性传奇
  2. 树莓派水下无人机构建:设计、开发与组装全记录
  3. 仅用 Arduino 构建 DTMF 解码器 – 无需额外 IC
  4. Arduino Nano高速摄影控制器 – 定格水滴碰撞瞬间
  5. Giftduino:面向极客与教育者的终极 Arduino 礼物盒
  6. 用 Arduino 测量地球质量:DIY 分步指南
  7. 复刻《传送门 2》炮塔:三轴动作+语音+LED 的 Arduino 实战
  8. 基于 Arduino Nano 的智能运动感应水枪
  9. MAX30100脉搏血氧传感器与Arduino接入指南:获取PPG波形与SpO2
  10. 理解TTL电路中的非门(反相器)
  11. 五极管:第五元素增强电子管性能
  12. SoundWatch:智能提醒赋能听障人士

组件数量规格/作用
Arduino UNO1主控,串口接收PC指令驱动继电器板
12V直线电磁阀6并联驱动,产生冲击振动模拟后坐力
8路继电器扩展板1I2C控制,隔离驱动大电流电磁阀
9V 1A电源适配器1为Arduino供电
12V大功率电源1为6个电磁阀并联供电(需>6A)
普通鼠标1改装宿主,保留光学/激光定位功能