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

油门象限和配平轮

组件和用品

Arduino Leonardo
Leonardo 或 Micro 将适合这个项目,每个 Arduino 上最多可以有 6 个控件
× 1
电线,连接
每个模块 3 根线
× 3
旋转电位器 50k,详情见故事部分
每个模块 1 个
× 1

必要的工具和机器

烙铁(通用)
3D 打印机(通用)

应用和在线服务

Arduino IDE

关于这个项目

简介

最近升级了我的 PC 以使其能够运行 MS FS2020,我受到启发来改进我使用的控件。键盘真的没有正确的飞行感觉,我想将体验升级到更好的东西。我不是一个全职的飞行爱好者,负担不起空间或金钱来投入大量精力来制作一个完整的驾驶舱,甚至是一套购买的控制装置。

设计

我开始在 CAD 中设计一组可以使用我拥有的工具制作的控件,并给出我想象的真实飞机感觉的合理体验,我从未接触过飞机上的控件,因此它基于什么我认为他们会像。

我决定我想要的控制是一些用于油门、襟翼、起落架和升降舵配平轮的单杆。我主要驾驶模拟中的小型轻型单引擎飞机,这就是我关注的重点。

装饰轮的设计最具挑战性,我花了好几天的时间构思出一个我认为可以提供我想要的外观和感觉的设计。

构建

所有零件都是在我的 UP 上用 ABS 3D 打印的!打印机,然后他们被绘制并连接到一个 Arduino,一个莱昂纳多开始,然后交换到一个微型。最终得到一个即插即用的装置,不用时可以很容易地收起来。

零件

3D打印零件清单

每个杠杆模块将需要

  • 1 x 身体左侧
  • 1 x 身体右侧
  • 1 个带 x 个棘爪的杠杆,有 5 种变体,带有 2-6 个棘爪
  • 1 x 杠杆端
  • 1 个旋钮,有 6 种可供选择
  • 1 x 摩擦片,有 3 种可供选择
  • 1 个电位器支架
  • 每个车轮模块都需要

  • 左侧 1 个装饰轮体
  • 1 x Trim 轮体右侧
  • 1 x 修剪齿轮
  • 1 x 修剪轮毂
  • 1 x 装饰轮(如果制造组装轮)
  • 8 x 装饰轮结节,如果制造组装轮
  • 1 x 单件装饰轮(如果制作单件式车轮)
  • 1 x 修剪轮象限
  • 1 x 修整轮象限驱动
  • 1 个电位器支架
  • 后箱部件可用于容纳 Arduino 和接线。

    结论

    一个非常愉快的构建,从编码的角度来看非常简单,这个构建中真正的挑战是设计,尤其是装饰轮和获得感觉 对。

    代码

    • Quadrant.ino
    Quadrant.inoArduino
    使用设置变量和串行监视器找到每个电位器的终点值,将它们输入axisLimits 数组
    #include Joystick_ Joystick;// 将analogRead 中的最大值和最小值放入这些数组// 这些被转换为 0 - 1023int axisLimits0[] ={686, 338};int axisLimits1[] ={345, 695};int axisLimits2[] ={327, 678};int axisLimits3[] ={342, 692};int axisLimits4[] ={0, 1023};int axisLimits5[] ={0, 1023};// 通过设置这些变量来打开或关闭轴bool a0Used =true;bool a1Used =true;bool a2Used =true;bool a3Used =true;bool a4Used =false;bool a5Used =false;// 设置模式将引脚值和转换值打印到串行监视器// int setting =-1; // 不打印到串行监视器// int setting =2; // 值 0 - 5,将引脚值打印到串行监视器int setting =-1;void setup() { if(a0Used) pinMode(A0, INPUT); if(a1Used) pinMode(A1, INPUT); if(a2Used) pinMode(A2, INPUT); if(a3Used) pinMode(A3, INPUT); if(a4Used) pinMode(A4, INPUT); if(a5Used) pinMode(A5, INPUT);操纵杆。开始(); if(setting>=0) Serial.begin(9600);}void loop() { int value =0; int pos =0; if(a0Used){ value =analogRead(A0); pos =translateValue(value,axisLimits0[0],axisLimits0[1]); Joystick.setThrottle(pos); if(setting ==0) settingPrint(value, pos); } if(a1Used){ value =analogRead(A1); pos =translateValue(value,axisLimits1[0],axisLimits1[1]); Joystick.setRxAxis(pos); if(setting ==1) settingPrint(value, pos); } if(a2Used){ value =analogRead(A2); pos =translateValue(value,axisLimits2[0],axisLimits2[1]); Joystick.setRyAxis(pos); if(setting ==2) settingPrint(value, pos); } if(a3Used){ value =analogRead(A3); pos =translateValue(value,axisLimits3[0],axisLimits3[1]); Joystick.setRzAxis(pos); if(setting ==3) settingPrint(value, pos); } if(a4Used){ value =analogRead(A4); pos =translateValue(value,axisLimits4[0],axisLimits4[1]); Joystick.setXAxis(pos); if(setting ==4) settingPrint(value, pos); } if(a5Used){ value =analogRead(A5); pos =translateValue(value,axisLimits5[0],axisLimits5[1]);操纵杆.setYAxis(pos); if(setting ==5) settingPrint(value, pos); } delay(5);}int translateValue(int v, int f1, int f2){ // 将值转换为 0 - 1023 范围 int result =0; int 开始 =0;浮动范围 =0; if(f1  1023)结果 =1023;返回结果;}void settingPrint(int value, int pos){ Serial.print(value); Serial.print(" "); Serial.println(pos);}

    定制零件和外壳

    一种没有标签以备不时之需我使用的一种

    Sketchfab 仍在处理中。

    此文件包含 STEP 文件的所有部分 已发布_u3k8QjPXzJ.stp

    示意图

    要添加更多控件,请连接 5V 和 GRD 并使用引脚 A1 到 A5 quadrant_ZkMygPyRiE.fzz

    制造工艺

    1. LCD 动画和游戏
    2. 使用 Arduino 和智能手机的 DIY 电压表
    3. 温湿度数据记录仪
    4. FlightGear 模拟微调标签轮
    5. Python3 和 Arduino 通信
    6. 基于 Arduino 和 OLED 的元胞自动机
    7. 使用 Arduino 和 RDA8057M 的 FM 收音机
    8. 基于Arduino和谷歌电子表格的考勤系统
    9. 物联网:Windows 远程 Arduino 和通用应用
    10. MKR1000 温湿度传感器
    11. 温湿度监测系统
    12. 了解车轮平衡和车轮定位