找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 16324|回复: 32

[外设交流] 用ARDUINO NANO 做的小实验, 襟翼状态指示

  [复制链接]
发表于 2013-10-18 17:45:17 | 显示全部楼层 |阅读模式
用Arduino Nano单片机做的一次小实验。原理:用LUA写了个小程序,将FSX中的襟翼变量转换成角度值,然后发送到串口,用Nano从串口读取值,然后驱动舵机。
经试验,舵机转动和FSX的襟翼指示器是完全同步的,下一步,可以用Nano来做一些FSX的机械仪表和指示器了。
ArduinoNanoTop.jpg SERVO.jpg

 楼主| 发表于 2013-10-18 17:45:18 | 显示全部楼层

RE: 用ARDUINO NANO 做的小实验, 襟翼状态指示

回复

使用道具 举报

发表于 2013-10-18 17:55:06 | 显示全部楼层
哈,这个有点意思。大学毕业设计的时候用的就是Arduino,2560的板子

点评

不过LZ的技术要高很多啊,用舵机指令  发表于 2013-10-18 17:56
回复

使用道具 举报

 楼主| 发表于 2013-10-18 21:34:19 | 显示全部楼层
本帖最后由 yuheyan 于 2013-10-18 21:35 编辑

公布源代码供大家测试:
lua程序拷贝到FSX的module目录中,在FSUIPC4.INI文件中增加一条语句:
[Auto]
1= Lua flaptest


ino文件用arduino的IDE烧录到arduino UNO或者是nano板子上都可以,mega2560没测试过。

flaptest.lua源程序如下:
speed = 9600
handshake = 0
dev = com.open("COM36", speed, handshake) // 根据arduino的实际端口改

while 1 do
        FlapRight = ipc.readSD(0x0BE4)
        RFA = FlapRight * 180 / 16383
        com.write(dev, string.format("%03d",RFA).."\n")
        ipc.sleep(10)
end

arduino烧录程序如下:

String readString;
#include <Servo.h>
Servo myservo;  // create servo object to control a servo

void setup() {
  Serial.begin(9600);
   myservo.attach(7);  //the pin for the servo control
}

void loop() {
  while (Serial.available()) {
    char c = Serial.read();  //gets one byte from serial buffer
    readString += c; //makes the string readString
    delay(2);  //slow looping to allow buffer to fill with next character
  }
Serial.flush();
  if (readString.length() >0) {
    int n = readString.toInt();  //convert readString into a number
      n = 180 - n;
      myservo.write(n);
    }

    readString=""; //empty for next input
  }


压缩包见附件




flaptest.zip

918 Bytes, 下载次数: 135, 下载积分: 金币 -1

回复

使用道具 举报

发表于 2013-10-18 22:17:31 | 显示全部楼层
都是串口的,包括我自己做的也是串口的,请问有没有人会做USB口的呢?

点评

要支持HID的mcu才行吧  发表于 2019-7-6 11:21
arduino用的是USB口传输的。  发表于 2013-10-18 23:24
回复

使用道具 举报

发表于 2013-10-18 22:24:56 | 显示全部楼层
不错 支持一下
回复

使用道具 举报

发表于 2013-10-18 23:27:02 | 显示全部楼层
支持一下哈哈。
回复

使用道具 举报

发表于 2013-10-19 09:58:50 | 显示全部楼层
啊见到大神了,我毕设时能不能找你帮忙啊
回复

使用道具 举报

发表于 2013-10-19 10:13:43 | 显示全部楼层
这个是脚本吗?寡闻了
回复

使用道具 举报

发表于 2013-10-19 15:30:11 | 显示全部楼层
支持啊~不久的将来就可以出现整个驾驶舱了~
回复

使用道具 举报

 楼主| 发表于 2013-10-20 00:25:27 来自手机 | 显示全部楼层
本帖最后由 yuheyan 于 2013-10-20 01:10 编辑

其实arduino可以做的事情很多,利用FSUIPC的lua plugin,几乎可以完成所有的实体座舱,包括插件机都行。涉及到的控制器,包括开关,按钮,各种轴,编码器,熔断器,告警灯,数码管,机械表等等都是可以的。这个实验只不过是抛块砖和大家分享一下arduio+FSUIPC的应用。
回复

使用道具 举报

 楼主| 发表于 2013-10-20 01:15:00 来自手机 | 显示全部楼层
同样的道理,利用lua export将DCS的数据导出,做lock on的实体舱更有意思些。
回复

使用道具 举报

发表于 2013-10-30 21:09:52 | 显示全部楼层
很强大,请问楼主 FSX的数据是怎么输出到串口的?
回复

使用道具 举报

 楼主| 发表于 2013-10-31 13:12:04 | 显示全部楼层
O点坐标 发表于 2013-10-30 21:09
很强大,请问楼主 FSX的数据是怎么输出到串口的?

com.write(dev, string.format("%03d",RFA).."\n")
回复

使用道具 举报

发表于 2013-10-31 19:25:16 | 显示全部楼层
yuheyan 发表于 2013-10-31 13:12
com.write(dev, string.format("%03d",RFA).."\n")

楼主我最近在做usb输出的硬件,有兴趣加入群里一块讨论吗?146546402
回复

使用道具 举报

发表于 2014-1-13 05:03:01 来自手机 | 显示全部楼层
牛人就是牛人,软硬件通吃,佩服楼主的精神。
回复

使用道具 举报

发表于 2014-1-13 13:43:51 | 显示全部楼层
不知楼主是否在PMDG上使用过FSUIPC  我之前做的一个程序 在FSX重置(reset)或重启后 PMDGNGX的参数就取不到了
回复

使用道具 举报

发表于 2014-1-13 15:41:51 | 显示全部楼层
牛人啊,佩服!
回复

使用道具 举报

 楼主| 发表于 2014-1-14 18:03:21 | 显示全部楼层
donot 发表于 2014-1-13 13:43
不知楼主是否在PMDG上使用过FSUIPC  我之前做的一个程序 在FSX重置(reset)或重启后 PMDGNGX的参数就取不到 ...

不是很清楚你的问题,你用LINDA去找一下PMDG NGX的内部命令集,写LUA脚本调用,跟FSX是否重置没关系呀。
回复

使用道具 举报

发表于 2014-1-15 08:44:44 | 显示全部楼层
yuheyan 发表于 2014-1-14 18:03
不是很清楚你的问题,你用LINDA去找一下PMDG NGX的内部命令集,写LUA脚本调用,跟FSX是否重置没关系呀。
...

我用的是FSUIPC提供的Offset做的,没有用它的lua脚本,我回头试试lua的方式,方便加个qq不? 393470738
回复

使用道具 举报

发表于 2014-1-15 15:39:42 | 显示全部楼层
前方就是油门联动 {:soso_e179:}
回复

使用道具 举报

发表于 2014-2-13 11:56:08 | 显示全部楼层
本帖最后由 yiyp77 于 2014-2-13 13:23 编辑

这个真不错,谢谢分享。
SimTools 可以把游戏信息读出,然后用arduino+串口+舵机可以做仪表;
Link2FS 可以制作MCU控制面板;
回复

使用道具 举报

发表于 2015-1-10 08:42:46 | 显示全部楼层
有视频吗,还有fsuipc要怎么设置啊
回复

使用道具 举报

发表于 2015-1-10 08:51:07 | 显示全部楼层
舵机接在哪个口上
回复

使用道具 举报

发表于 2015-1-13 11:32:25 | 显示全部楼层
以前就是学单片机的~~~早就全丢了
回复

使用道具 举报

发表于 2017-7-16 23:51:00 | 显示全部楼层
求FSUIPC中的设置,,,,
回复

使用道具 举报

发表于 2017-7-18 15:51:47 | 显示全部楼层
楼主知不知道动态座舱变量在哪里找
回复

使用道具 举报

发表于 2018-8-5 22:10:12 | 显示全部楼层
有点意思~
回复

使用道具 举报

发表于 2019-8-22 13:15:41 | 显示全部楼层

舵机红色(正极)连接arduino的5v,黑色(负极)连接arduino的GND,黄色(PWM)连接到arduino的7号Pin口(数字量)
回复

使用道具 举报

发表于 2019-9-10 18:58:32 来自手机 | 显示全部楼层
哈哈,有点意思
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表