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

DIY 飞行模拟器方向舵脚踏板:分步制作指南

组件与物料

组件数量备注
Arduino Nano R31或 Arduino UNO(模拟输出)
Arduino Micro1仅需数字输出(Win 8-10)
Arduino UNO1或 Arduino Nano(模拟输出)
MCP41050 数字电位器 (SPI)3单/双通道
SS49E 霍尔效应线性传感器4或 AH3503 等同类线性传感器

项目简介

2021 更新:新版脚踏板采用 HID 接口,设计改进,高精度霍尔传感器模块提供极佳控制手感。详情见作者网站。

各位飞行模拟爱好者好!我设计并制作了一套用于飞行模拟器的方向舵脚踏板,核心由 Arduino 控制。制作仅需两天,但文档整理花了两周。我制作了多个视频详细展示全过程。

制作方案

Arduino 与模拟器连接有两种方式:

  1. 数字连接:使用 ArduinoJoystickLibrary 和 Arduino Micro 板,识别为 HID 游戏手柄。
  2. 模拟连接:本文提供的代码采用此方式,通过数字电位器输出模拟电压信号。

两种方式的电路制作和传感器配置均在视频中演示。

传感器与电子电路

采用 4 个 SS49E 霍尔线性传感器检测踏板位置,3 个 MCP41050 数字电位器通过 SPI 接口输出模拟电压,模拟传统电位器信号。电路设计紧凑,适合集成在脚踏板内部。

代码:模拟输出(通过数字电位器)

#include <SPI.h>
#define CS_RUDDER 10
#define CS_LEFT 8
#define CS_RIGHT 9
#define SENSOR_LEFT_PEDAL A6
#define SENSOR_RIGHT_PEDAL A5
#define SENSOR_RUDDER_LEFT A0
#define SENSOR_RUDDER_RIGHT A1

int val_left, val_right, remap_left, remap_right, rudder;
int val_brake_left, val_brake_right, remap_brake_left, remap_brake_right;
int tuning_rudder = 128;

void setup() {
  Serial.begin(9600);
  SPI.begin();
  pinMode(CS_RUDDER, OUTPUT);
  pinMode(CS_LEFT, OUTPUT);
  pinMode(CS_RIGHT, OUTPUT);
}

void loop() {
  // -------- 方向舵 -128 ~ 128 --------
  val_left = analogRead(SENSOR_RUDDER_LEFT);
  if (val_left <= 950) {
    remap_left = map(val_left, 30, 870, -128, 0);
  } else remap_left = 0;
  if (remap_left > 0) remap_left = 0;
  if (remap_left <= -128) remap_left = -128;

  val_right = analogRead(SENSOR_RUDDER_RIGHT);
  if (val_right <= 950) {
    remap_right = map(val_right, 0, 820, 132, 0);
  } else remap_right = 0;
  if (remap_right < 0) remap_right = 0;
  if (remap_right >= 127) remap_right = 127;

  rudder = remap_left + remap_right;
  if (remap_left == 0) tuning_rudder = tuning_rudder + 128;
  else tuning_rudder = abs(tuning_rudder - 128);

  // -------- 刹车 0-255 --------
  val_brake_left = analogRead(SENSOR_LEFT_PEDAL);
  if (val_brake_left <= 328) {
    remap_brake_left = map(val_brake_left, 200, 328, 0, 255);
  } else remap_brake_left = 255;
  if (remap_brake_left < 0) remap_brake_left = 0;

  val_brake_right = analogRead(SENSOR_RIGHT_PEDAL);
  if (val_brake_right <= 328) {
    remap_brake_right = map(val_brake_right, 200, 328, 0, 255);
  } else remap_brake_right = 255;
  if (remap_brake_right < 0) remap_brake_right = 0;

  // -------- 发送数据到数字电位器 --------
  digitalWrite(CS_RUDDER, LOW);
  SPI.transfer(0b00010001);
  SPI.transfer(tuning_rudder);
  digitalWrite(CS_RUDDER, HIGH);
  delay(5);

  digitalWrite(CS_LEFT, LOW);
  SPI.transfer(0b00010001);
  SPI.transfer(remap_brake_left);
  digitalWrite(CS_LEFT, HIGH);
  delay(5);

  digitalWrite(CS_RIGHT, LOW);
  SPI.transfer(0b00010001);
  SPI.transfer(remap_brake_right);
  digitalWrite(CS_RIGHT, HIGH);
  delay(5);
}

原理图

DIY 飞行模拟器方向舵脚踏板:分步制作指南 DIY 飞行模拟器方向舵脚踏板:分步制作指南 DIY 飞行模拟器方向舵脚踏板:分步制作指南

制造工艺

  1. Arduino Nano飞行模拟2020控制面板——LCD与CDI显示
  2. Arduino 与智能手机打造智能电压表——简单易做的 DIY 项目
  3. DIY VR 滑板:用 Arduino、Google Cardboard 与蓝牙打造虚拟滑雪体验
  4. DIY Arduino 电子波疗设备 - 基于拉德尼克疗法的 EMR 治疗仪
  5. 校园智能体温监测系统 - 精准、实时、安全的学生健康守护方案
  6. Arduino 8 位并行 IO 端口库:一行代码实现 8 位数字读写
  7. Arduino 64 键原型键盘矩阵:用移位寄存器打造全自定义键盘
  8. DIY二自由度竞速模拟器:Arduino Nano驱动SG90微型舵机
  9. 掌握直流电机控制:PID 与 PWM 专家技巧全解析
  10. 低成本 Arduino 闪电探测器制作指南
  11. 使用 Arduino 制作便携式 RFID 门锁——分步指南
  12. DIY三轴CNC立式加工中心:打造精密铣床