So-net無料ブログ作成
前の10件 | -

XP11 那覇空港シーナリーをカスタマイズ [X-Plane]

次は東京、大阪、、、のはずがなぜか那覇空港。
外出もできないし、なんとなく南国いいなーという軽いノリで。

宮崎に続き、今回もみん空オブジェクトを変換して使ってます。

デフォ:xporgからダウンロードしたシーナリー
OVD:オーバーランドみんなの空港シーナリー


まずはデフォ。
カクカクの四角いよくあるオブジェクトです。
ROAH_xporg.png

次にOVD単独。
やっぱりいいっすね。全然ターミナルオブジェクトが違います。
Taxi ラインなどの基本情報(apt.dat)ファイルがないのでこのまま使えません。
ROAH_OVLND.png

何も考えずに両シーナリーをCustomシーナリーフォルダに併存させた場合。
ROAH_同居.png

これが一番いい感じなので、デフォベースにOVDのオブジェクトを乗せ、不要な方をそれぞれ削除していく手順で進めます。

WEDで編集するために、XPORGのシーナリーフォルダにOVDのオブジェクトとdsfファイルを読み込ませてマージしました。
ROAH_混合WED取り込み状態.png

◆備忘録にマージ手順
①OVDシーナリーをFS2004にインストール
②上記をFS2XPlaneを使ってXP用にコンバート
③XPのcustomシーナリーフォルダ内に展開したxporgのデフォシーナリーフォルダ「ROAH」にOVDのオブジェクトフォルダを丸ごと移動。
④WEDでROAHを開いて、デフォシーナリーのdsfファイルとOVDのdsfファイルを読み込み。

これで両シーナリーが混合状態で、かつWED編集が可能に。
オブジェクト配置もほぼ問題なしなので、お気に入りのオブジェクト、テクスチャを選択していきます。

以下が今回編集した内容。

・Taxiライン
シーナリーのエクスポートターゲットを11以上にするとエラーが出るため、Taxiラインが担当するDepartureとArrivalの滑走路情報をそれぞれ追加して解消。

・エプロンテクスチャ
個人的にOVDの白っぽい明るいのが好みなので、こちらを採用。
TAXIラインはデフォを残してデフォエプロンオブジェクト(濃いめのテクスチャ)をがばっと削除し、OVDのエプロンオブジェクト「ROAH_EP_Conc-SMS_Concrete_01.obj」を残す。
上記Concreteオブジェクトは変更前は「ROAH_EP-Naha_EP4_1.obj」の直下にあって、ヒエラルキー的にターミナルオブジェクトが見えなくなるので、順序を「ROAH_T1-ROAH_Roof3.obj」の直下まで下げる。

・エプロンライト
デフォの方(紅白縞々の背が高いやつ)が明るくてよいのでこちらを残します。

残すもの(デフォ)
lib/airport/landscape/apron_light.obj

非表示にするもの(OVD)
Ltwがついているオブジェクトを非表示に。
※画像参照

ROAH_表示しないライト.png

・地形テクスチャ
OVDのテクスチャ(.pol)がしょぼいので、空港内の一部を除いて削除
※画像参照

roah_orthophotos.png

・空港トラフィック
トラフィックルートを追加して、構内車両を適当に配置。
※ターゲットバージョン11以上でシーナリーエクスポートする必要あり。

・道路のライン消去
OVLDの道路線は以下のものを非表示にする。
エプロンのライン ROAH_EP_Line-ROAH_Line1.obj
道路のライン ROAH_EP_R_Line-ROAH_Line2.obj

・Autogate設置
デフォシーナリのゲートウェイオブジェクトを消去
ROAH_Gate-ROAG_Gate1.obj
ROAH_Gate-ROAG_Gate2.obj

後はひたすら各ゲートにAutogateを配置。

・Japanpro
https://forums.x-plane.org/index.php?/files/file/49095-japan-pro/
なぜかJapanproシーナリーは東京と那覇のオブジェクトが入っているのでこちらも入れておきます。

WEDでJapanproのapt.datを取り込み、dsfファイル取り込んで東京タワーとスカイツリーを削除しておきます。(これは東京オブジェクトの競合対策)

◆完成形
ROAH_OVD_完成版.jpg

いい感じ!!

夜景
ROAH_混合WED取り込み状態_night.png

orthoを入れると建設中の第二滑走路が登場します。
ROAH_混合WEDortho第二滑走路.png

シーナリ触るのやっぱり楽しくて結構時間を忘れちゃいますねぇ。。。


nice!(0)  コメント(0) 

XP11 宮崎空港シーナリーをカスタマイズ [X-Plane]

結局たまに手を出すシーナリーですが、だんだんWEDの使い方がわかってきたので、手始めにVATSIMの管制トレーニングでよく利用する宮崎空港を改修しました。

XPのGatewayで公開されているシーナリー(https://gateway.x-plane.com/scenery/page/RJFM)を入れるとこんな感じです。

RJFM_xpgateway.jpg

特徴があるターミナルだけに、オブジェクトが寂しいです。。。

というわけで、以下の手を加えてみました。

・ターミナルビル等のオブジェクトをOverlandのオブジェクトに変更
・空港内トラフィックの追加(XP11デフォルト機能)
・Autogate(FSでいうところのAES)の追加
・ゲートナンバー等マーキングの追加
・Ortho4xp

ターミナルのオブジェクトは、FS2004で大変お世話になったシーナリー「みんなの空港」の宮崎空港を変換して配置。

ひとまず完成形がこちら。
RJFM_ovd.jpg

夜景
RJFM_ovd_night.jpg

こうして遠目で見ると全然いいです。
テクスチャがもう少し綺麗だと文句ないですが、10年以上前のオブジェクトだと思うとほんとよくできてます。

空港カスタマイズ作業のタイムラプス


FSXやP3Dと比べるとシーナリーの変更も非常に容易。

作りは正直荒いですが、これでも雰囲気出るのでなかなかよいです。
この調子で、主要な空港を順次いじりつつ、VATSIMでフライトを楽しんでいこうと思います。

とりあえずは、RJTT羽田とRJOO大阪あたりかな・・・。
気が変わってまたHWに戻るかもですが(笑)

nice!(0)  コメント(0) 

音声によるXplane 機体制御プラグイン(ZIBO737) [Home Cockpit VR]

何年か振りにVATSIMで飛ぼうと思い、VR+入出力デバイス+VATSIM管制+音声制御で快適に飛べる組み合わせを探しています。

VR+VATSIM管制で1人で飛行するにあたり、いろいろと忙しいのでCoパイ(?)が欲しいと思って探したのがこのプラグイン。

X-Plane-Voice-Control(github)
https://github.com/Najsr/X-Plane-Voice-Control


英語音声認識が必要ですが、インストールは簡単でセットアップ不要。

■手順
①EXtPlane pluginをダウンロードしてXP11pluginフォルダへコピペ
https://github.com/vranki/ExtPlane/releases

②X-Plane-Voice-Controlをダウンロード

③X-Plane-Voice-Controlのexeファイルを実行
xp11を起動後、Connectすると音声認識開始。

Plane Command(https://planecommand.com/)という音声制御用の有償($27)ソフトウェア(基本操作は無料)もありますが、個人的にはこっちの方がライトで使いやすいです。

自分のVR+VATSIMでのフライト時は以下のコマンドが役に立ちそう。

■離陸時
・transponder mode on
・Landing Lights on
・gear up
※Strobe Lights onがあるとよかった・・・。フラップは物理的にデバイス(OCUSBMAPPER)を割り当てているため音声での操作は使用しません。


■飛行時
・set comX to XXX decimal XXX
・swap comX
・set navX to XXX deciimal XXX
・heading XXX
・set altitude to XX thousand XX hundred feet
※MCPのコマンド系はほぼほぼ操作可能なのに、なぜかスピードコントロールがない・・・。


■着陸&Taxi時
・langing lights off
・transponder mode off
・probe heat off
・APU on
・Taxi Lights off
※本当はここにStrobeのSteady、Autobrake offがあると非常に楽だった・・・

インストールから実際の音声制御の模様はこちら。



nice!(0)  コメント(0) 

FDS SYSボードをXPlaneへ接続 [Home Cockpit VR]

今回はFlightDeck SolutionsのSYSボードをXP11のZIBOへ直接接続してみます。

SYSボードを接続できれば、MIP、オーバーヘッドあらゆるスイッチ、LEDが接続できます。
今回も特に問題なく接続できました。
opencockpitsはまだ未接続ボードが残ってますが、SISMO以外はほぼ行けそうです。


■接続済
・YOKE ACE ジョイスティック接続
・Rudder Saitek ジョイスティック接続
・TQ Revolutionsim Products plugin経由で接続(Ocusbmapper)
・CDU Flightdeck Solutions plugin経由で接続(FDStoXP)
・MIP Flightdeck Solutions plugin経由で接続(FDStoXP) ⇒今回接続完了

■検証中/未検証
・FLAP Gauge Opencockpits plugin経由で接続(Ocusbmapper)
・AFT OVHD Opencockpits plugin経由で接続(Ocusbmapper)
・MCP Cpflight 有料ソフトウェアで対応(Midwest)
・FWD OVHD SISMO 難しそう。。。これ無理かも。


SYSボードはFDS-SYS4です。
入力64、出力128でMIPに利用するとちょっと入力が不足します。

IMG_0008.JPG

◆手順◆
①FDStoXPをダウンロード、インストール
例によってpikitangaさんのプラグインです。
https://forums.x-plane.org/index.php?/files/file/51240-fdstoxp/

②luaスクリプトを書いて機体のpluginフォルダへ保存
スクリプトというほどでもなく、SYSボードにインプットNoとアウトプットNoにそれぞれXPLANEのdatarefをあてがうだけです。

--*************************************************************************************--
--** CONSTANTS **--
--*************************************************************************************--

--デバイス番号宣言
BOARD4102_DEVICE = 0

-- 4102 Annunciators SYSボードのLED出力番号宣言
ANN_AUTO_BRAKE_DISARM = 1

-- 4102 Switches SYSボードの入力スイッチ番号宣言
SW_AUTOBRAKE_RTO = 1
SW_AUTOBRAKE_OFF = 2
SW_AUTOBRAKE_ONE = 3
SW_AUTOBRAKE_TWO = 4
SW_AUTOBRAKE_THREE = 5
SW_AUTOBRAKE_MAX = 6


--*************************************************************************************--
--** FIND CUSTOM DATAREFS **--
--*************************************************************************************--


--SYSボードのインプット、アウトプットをdatarefに関連付け

board4102DR_input = find_dataref("pikitanga/fdstoxp/board4102_" .. BOARD4102_DEVICE .. "/input")
board4102DR_output_leds = find_dataref("pikitanga/fdstoxp/board4102_" .. BOARD4102_DEVICE .. "/output/leds")

B738DR_ann_auto_brake_disarm = find_dataref("laminar/B738/annunciator/auto_brake_disarm")
B738DR_autobrake_pos = find_dataref("laminar/B738/autobrake/autobrake_pos")

--*************************************************************************************--
--** FIND CUSTOM COMMANDS **--
--*************************************************************************************--

--オートブレーキを動かすコマンドを宣言

B738CMD_autobrake_dn = find_command("laminar/B738/knob/autobrake_dn")
B738CMD_autobrake_up = find_command("laminar/B738/knob/autobrake_up")


--*************************************************************************************--
--** SYSTEM FUNCTIONS **--
--*************************************************************************************--

--オートブレーキノブが動かされた場合の挙動をプログラム

function process_knobs()

-- Autobrakes

if (board4102DR_input[SW_AUTOBRAKE_RTO] == 1 and B738DR_autobrake_pos > 0.1) then
B738CMD_autobrake_dn:once()
end

if (board4102DR_input[SW_AUTOBRAKE_OFF] == 1 and B738DR_autobrake_pos > 1.1) then
B738CMD_autobrake_dn:once()
end

if (board4102DR_input[SW_AUTOBRAKE_OFF] == 1 and B738DR_autobrake_pos < 0.9) then
B738CMD_autobrake_up:once()
end

if (board4102DR_input[SW_AUTOBRAKE_ONE] == 1 and B738DR_autobrake_pos > 2.1) then
B738CMD_autobrake_dn:once()
end

if (board4102DR_input[SW_AUTOBRAKE_ONE] == 1 and B738DR_autobrake_pos < 1.9) then
B738CMD_autobrake_up:once()
end

end

function process_annunciators()

-- auto brake disarm オートブレーキアナウンシエーターの状態を取得してLEDへ出力

if (B738DR_ann_auto_brake_disarm >= 0.5) then
board4102DR_output_leds[ANN_AUTO_BRAKE_DISARM] = 1
else
board4102DR_output_leds[ANN_AUTO_BRAKE_DISARM] = 0
end

end


--*************************************************************************************--
--** XLUA EVENT CALLBACKS **--
--*************************************************************************************--

function before_physics()

process_knobs()
process_annunciators()

end



③ボード接続
OCUSBMAPPERとは違い、USBを挿すだけで勝手に認識します。
SYS4ボード(4102)は3枚まで認識できるようなので、オーバーヘッド等への拡張も可能ですね。


◆接続動画◆


あとはopencockpitのボードがいくつかあるのでこれらをちまちま接続していこうと思います。


nice!(0)  コメント(0) 

ZIBO737用 グラスコックピット ZHSI [Home Cockpit VR]

P3DだとProsimのように機体、アビオニクスが1セットになったソフトウェアが結構なお値段で販売されていますが、XPLANEの場合は無償で配布されています。

正直素人の自分にはどっちが無料かわからないくらいの素晴らしい出来栄え。

ハードウェア接続用のプラグインを開発、配布されているpikitangaさんのプラグインで、彼はもうホームコックピットビルダーの神とあがめられてます笑

■ZHSI
https://forums.x-plane.org/index.php?/files/file/53660-zhsi/

導入したのが以下。
Untitled.jpg

■インストール・設定動画


terrain、weatherレーダーも実装されており、AIRACも読んでくれます。
ZIBO737、ZHSI、OCUSBMAPPERの3点セットでPROSIMのXPLANE版って感じですね。





nice!(0)  コメント(0) 

Flightdeck SolutionsのCDUをXP11に接続する [Home Cockpit VR]

XP11でホームコックピットを構築するために既存手持ちデバイスを順次接続中です。

以下確認状況。

■接続済
・YOKE ジョイスティック接続
・Rudder ジョイスティック接続
・TQ Revolutionsim Products plugin経由で接続(Ocusbmapper)
・CDU Flightdeck Solutions plugin経由で接続(FDStoXP) ⇒今回接続完了

■検証中/未検証
・MIP Flightdeck Solutions plugin経由で接続(FDStoXP)
・FLAPゲージ Opencockpits plugin経由で接続(Ocusbmapper)
・AFT OVHD Opencockpits plugin経由で接続(Ocusbmapper)
・MCP Cpflight 有料ソフトウェアで対応(Midwest)
・FWD OVHD SISMO 難しそう。。。これ無理かも。

今回はFDSのCDUをXP11(ZIBO)へ接続します。
これもOpencockpitsカードのpluginと同様、有志が配布してくれているFDStoXPというpluginで簡単に接続できましたので手順をメモします。

■FDStoXP
https://forums.x-plane.org/index.php?/files/file/51240-fdstoxp/

カードも以下のようにほぼサポートしてます。
・FDS_CDU_V9 (331A) x 2
・FDS_737_EL_MX_MCP & EFIS (3311)
・JetMAX_737_MCP_V2 & EFIS (3404)
・FDS-CONTROLLER-MCP (330A)
・FDS-CONTROLLER-EFIS-CA (330B)
・FDS-CONTROLLER-EFIS-FO (330C)
・JetMAX_737_MCP (330F)
・FDS_OM1 (3323) x 2 - forward overhead annunciators, switches, dials, push buttons & solenoids
・FDS_OE1 (3324) x 2 - forward overhead displays & encoders
・JetMAX_737_RADIO (3401)
・JetMAX_737_XPNDR (3402)
・IIT_HIO_32_64 (4101) x 2 - aft overhead switches, push buttons & annunciators
・IIT_HIO_64_128 (4102) x 3 - mip annunciators, switches, dials, push buttons
・IIT_HIO_128_256 (4103) x 2
・INTERFACEIT_BOARD_FDS737NGNAVCOMM (4C5A) x 5 - vhf1, vhf2, nav1, nav2, adf1
・FDS_XPNDR (3305) - xpndr
・FDS_MCOMM (3318) x 2 - vhf1, vhf2

■インストール手順
1."FDStoXP"をダウンロードして"...\X-Plane 11\Resources\plugins"へコピー
2."interfaceIT API v2.0.1 (64 Bit)"を"https://www.tekworx.com/downloads.php"からダウンロードしてインストール。
"...\Program Files\TEKWorx Limited\interfaceIT API x64\Sample\C\Bin\interfaceITAPI x64.dll"を次のフォルダへコピー"...\X-Plane 11\Resources\plugins\FDStoXP\64"
3.X-Planeを起動後、終了
4.以下ファイル"...X-Plane 11\Output\preferences\FDStoXP.prf"が生成されるので、Destination IPにCDUのモニターを接続しているリモートPCのアドレスをセット。
5.ZIBOのpluginフォルダ "...X-Plane 11\Aircraft … B737-800X\plugins\xlua\scripts\" に "...\FDStoXP\Script"フォルダ内にあるキャプテン側CDUスクリプト ”B738X.fds_cdu_cpt” をコピペ
6.リモートPCを起動して、”...\FDStoXP\Java Client”内の”CDUClient.jar”を起動
7.X-Plane起動

■インストール手順動画


上記手順でXPLANEを起動すると、リレースイッチのカチッという音とともにリモートPCのCDU画面が起動し、CDUのバックライトが点灯。
機体の電源をを入れるとCDU画面が表示され、操作可能になります。

IMG_4354.jpg

XP11への手持ちハードウェア資産の接続は、いまのところSISMO以外は行けそうな感じ。
SISMOのボードはSC-PascalでIOCP経由で通信するのでこれはかなり難しそう。
場合によってはOVHDのボードをOpencockpitsかFDSに交換かも。。。
これはやりたくないなぁ。。。


nice!(0)  コメント(2) 

Saitekラダーが壊れた

今度はSaitekラダーが破損。。。
こういうのは続くもんです。

スロットル入れても機体が前進しないなーと思って足元を見たら、右足ラダーのブレーキが踏んだまま戻ってない。

触ってみると明らかにふにゃふにゃ。
バネでも外れたか?と思って開けてみると、やっぱり外れてた。
だけならまだよかったけど、バネをひっかける部分が折れてるではないか。

IMG_4262.jpg

これが正常な左のラダー。

IMG_4261.jpg

バネが結構強度が強いものなので簡易なものでは耐えられそうにない。
ものすごくチャチな作りでがっかり。
買い換えてもまた中身これなんだよなーと思うともう買いたくないし。

元々購入時も初期不良で交換してもらったという経緯もあり、Saitekに対する信用落ちまくり。
なにか手ごろなラダーを手に入れねば。

とりあえず輪ゴムで回避(笑)
IMG_4263.jpg

nice!(0)  コメント(0) 

PCの不具合メモ

FDSのCDUをセットアップしようと2年ぶり引っ張り出してきたPCが起動しない。

真っ暗。
モニター、ケーブルは正常。
何も映らない。入力そのものがない。

PC本体が怪しい。
電源を入れるとCPUファン、HDDは回転する。
HDDアクセスランプが点灯しない。

CMOS電池切れを疑いコンビニでCR2032を購入。
交換してCMOSクリアするも症状変わらず。

グラボ外しても変わらず。
メモリをすべて外して1枚ずつスロットを変えて挿すも変わらず。
ASUSについてるMEMOK!ボタンを押すも変化なし。
スピーカーを引っ張り出してきて接続。まったく無音。

これはもうCPUの起動そのものに失敗している気配。

やけくそになって筐体から全部取り出し、すべてばらしてみることに。
以前、CPUグリスの劣化で起動しなかったことがあるので、近くのドスパラでCPUグリスを買ってきて塗布。

CPU、メモリだけの最低限の構成でMEMOK!をプッシュ。

IMG_4280.jpg

すると、MEMOK!のLEDが消えるという初めてみる症状に。
なんかBIOS起動している気配。

P8P67はグラフィックがオンボードされてないので、やむを得ずグラボに6pin電源を接続してMBへ挿し再起動。

IMG_4281.jpg

映ったー!
ようやく映った。。。

IMG_4282.jpg

BIOSが起動すればあとは何とかなる。。。
よかった。

ということで自作PCを放置しとくとこういうトラブル起こるのでメモがてら。

とにかくいったんばらして掃除。
最小限構成から少しずつ追加してはチェックを繰り返すっていうのが今回の教訓。

---追記---
なぜかケースにマザーボードを戻してボルトで固定すると起動しない症状が再現。
またばらして戻す際に、ボルト固定をしないと無事起動。
マザーボードと筐体の接触か、マザーボード自体が固定時に曲がってしまうのか、何らかの影響で起動しなくなるっぽい。

解決方法としては、固定用のボルトに絶縁体をかませて緩めに筐体へ固定したところ問題なく起動。
これは初めての経験なので備忘。。。


nice!(0)  コメント(0) 

XP11 ZIBOにRevsim TQを接続する その5 [Home Cockpit VR]

OCUSBMapper経由でRevsimを接続する件も、今回が最後。
スピードブレーキです。

日本語でプログラムを書くとこんな流れ。

◆デバイス入出力値
dcmDR_input_analog[4] :revsimスピードブレーキポテンショメーターからの取得値 0-164
dcmDR_input_analog[5]:revsim 左TQポテンショメーター位置 0-242
dcmDR_output_motor[0]:スピードブレーキのDCモーターへの入力値 0:停止、120:展開、220:格納

◆プログラム上の変数
revsim_sb_pos:revsimポテンショメーターからの取得値 0-1
simDR_sb_in:シム上のスピードブレーキ位置(入力先)
sb_arm:スピードブレーキアーム状態 0:disarm、1:arm
simDR_rev_full:リバーサーの状態 0.06:フルリバース
sb_sit:スピードブレーキの状態追跡変数 0:初期状態、1:フル展開中、2:フル展開モーター停止、3:格納中


◆流れ
1.revsim_sb_posが0.303804よりも小さく0.203804よりも大きい場合はスピードブレーキをアーム
2.上記範囲外の場合は、revsimPOTの値をシミュレーターへ入力してアナログ操作を可能に。同時にスピードブレーキをディスアーム
3.スピードブレーキがアームされていて、かつリバーサーがフル状態になったら、スピードブレーキを展開(モーター稼働)
4.スピードブレーキがフル展開されたらモーター稼働停止
5.フル展開状態で左TQが10%程度まで入ったらスピードブレーキ格納(モーター稼働)
7.格納されたらモーター停止。スピードブレーキアーム変数、状態追跡状態変数リセット

本来なら、「接地」でスピードブレーキが展開されるところなんでしょうが、その値がどこで取得できるかわからなかったので、とりあえずリバーサーを操作したら展開するようにしてます。
たたむときはスロットルを入れると自動格納するようにしてみました。

◆動作状況(動画)


◆オイル
ちなみに、しばらくオイルをさしてなかったら動かなくなってしまっていたので、チェーンソー用オイルを購入してスピードブレーキの接点部に塗布してみました。
粘度が適度にあってちょうどいいです。



◆ソースコード(スピードブレーキ該当部のみ)

--*************************************************************************************--
--** 					               CONSTANTS                    				 **--
--*************************************************************************************--

DCMOTORS_DEVICE = 0

--*************************************************************************************--
--** 				             FIND X-PLANE DATAREFS            			    	 **--
--*************************************************************************************--

simDR_sb_pos		= find_dataref("sim/cockpit2/controls/speedbrake_ratio")
simDR_sb_in		  = find_dataref("laminar/B738/flt_ctrls/speedbrake_lever")
simDR_rev_full		= find_dataref("laminar/B738/flt_ctrls/reverse_lever1")

--*************************************************************************************--
--** 				              FIND CUSTOM DATAREFS             			    	 **--
--*************************************************************************************--

dcmDR_input_analog	= find_dataref("pikitanga/ocusbmapper/dcm" .. DCMOTORS_DEVICE .. "/input/analog")
dcmDR_output_motor	= find_dataref("pikitanga/ocusbmapper/dcm" .. DCMOTORS_DEVICE .. "/output/motor")

--*************************************************************************************--
--** 				                 SYSTEM FUNCTIONS           	    			 **--
--*************************************************************************************--

function process_speedbrake()

	-- revsim speedbrake position
	revsim_sb_pos = dcmDR_input_analog[4] / 160

	-- speed brake deproy
	if (revsim_sb_pos > 0.303804) then
			simDR_sb_in = revsim_sb_pos
			sb_arm = 0
	end

	-- speed brake detract
	if (revsim_sb_pos < 0.203804) then
			simDR_sb_in = revsim_sb_pos
			sb_arm = 0
	end

	-- speed brake arm
	if (sb_arm == 0) then
		if (revsim_sb_pos > 0.203804) then
			if (revsim_sb_pos < 0.303804) then
				simDR_sb_in = 0.0889
				sb_arm = 1
			end
		end
	end

	-- speed brake deproy in landing
	if (sb_arm == 1) then
		if (simDR_rev_full == 0.06) then
			dcmDR_output_motor[0] = 120
			sb_sit = 1
		end
	end

	-- speed brake motor off
	if (sb_sit == 1) then
		if (revsim_sb_pos > 0.9) then
			dcmDR_output_motor[0] = 0
			sb_sit = 2
		end
	end

	-- speed brake detent after landing
	if (sb_sit == 2) then
		if (dcmDR_input_analog[5] > 50) then
			dcmDR_output_motor[0] = 220
			sb_sit = 3
		end
	end

	-- speed brake motor off
	if (sb_sit == 3) then
		if (revsim_sb_pos < 0.1) then
			dcmDR_output_motor[0] = 0
			sb_sit = 0
			sb_arm = 0
		end
	end

end


--*************************************************************************************--
--** 				               XLUA EVENT CALLBACKS       	        			 **--
--*************************************************************************************--

function before_physics()

	process_speedbrake()

end




nice!(0)  コメント(0) 

XP11 ZIBOにRevsim TQを接続する その4 [Home Cockpit VR]

OCUSBMapperもシリーズその4になりましたが、今度はトリムインジケーターとトリムホイールを動作させます。
トリムはシム上のデータを取得してモーターを駆動するだけなのでシンプルです。

1.ZIBO→デバイス
①シム上のトリムインジケーター位置を読み取る。
②Revsim上のインジケーター位置と異なる場合はモーターを前後に駆動させる。
③トリム調整中はトリムホイールのモーターを前後に駆動させる。

2.デバイス→ZIBO
①YOKEのトリムスイッチが押されたらシム上のZIBOにインプット



--*************************************************************************************--
--** 					               CONSTANTS                    				 **--
--*************************************************************************************--

DCMOTORS_DEVICE = 0


--*************************************************************************************--
--** 				             FIND X-PLANE DATAREFS            			    	 **--
--*************************************************************************************--

--シム中のトリムインジケーターの位置とトリム操作状況を読み取る。
simDR_trim_ind		= find_dataref("laminar/B738/flt_ctrls/trim_wheel")
simDR_trim_up		= find_dataref("sim/cockpit2/annunciators/autopilot_trim_up")
simDR_trim_down		= find_dataref("sim/cockpit2/annunciators/autopilot_trim_down")

--*************************************************************************************--
--** 				              FIND CUSTOM DATAREFS             			    	 **--
--*************************************************************************************--

--opencockpitcardのデバイス設定
dcmDR_input_analog	= find_dataref("pikitanga/ocusbmapper/dcm" .. DCMOTORS_DEVICE .. "/input/analog")
dcmDR_output_motor	= find_dataref("pikitanga/ocusbmapper/dcm" .. DCMOTORS_DEVICE .. "/output/motor")

--*************************************************************************************--
--** 				                 SYSTEM FUNCTIONS           	    			 **--
--*************************************************************************************--

function process_trim()

	-- trim position

  --revsimポテンショメーターとシム内の値の整合性を取る
	revsim_trim_pos = 2.4244 * dcmDR_input_analog[3] / 170 - 1.4244
 
  --トリムインジケーターの前後位置セット
	trim_pos1 = simDR_trim_ind + 0.03
	trim_pos2 = simDR_trim_ind - 0.03

	--trim indicator

	-- trim up

  --revsimがシム位置より小さい場合はモーター前進回転。位置を超えたら停止。
		if (trim_pos1 > revsim_trim_pos) then        
			dcmDR_output_motor[5] = 10
			if (trim_pos2 < revsim_trim_pos) then
				dcmDR_output_motor[5] = 0
			end   
		end

  --revsimがシム位置より大きい場合はモーター後進回転。位置を超えたら停止。        
	-- trim down
		if (trim_pos2 < revsim_trim_pos) then        
			dcmDR_output_motor[5] = 150
			if (trim_pos1 > revsim_trim_pos) then
				dcmDR_output_motor[5] = 0
			end   
		end

	-- trim wheel

    --トリム動作状況判断用変数セット
		trim_sit = simDR_trim_up + simDR_trim_down
    
    --トリムが動作中、かつdown方向ならモーターダウン方向へ回転。逆はアップ方向へ回転
		if (trim_sit > 0) then
			if (simDR_trim_down == 1) then
				dcmDR_output_motor[3] = 124
			end
			if (simDR_trim_up == 1) then
				dcmDR_output_motor[3] = 250
			end
		end

    --トリムが動作が停止中の場合ホイールモーターは停止。
		if (trim_sit == 0) then
			dcmDR_output_motor[3] = 0
		end

end


--*************************************************************************************--
--** 				               XLUA EVENT CALLBACKS       	        			 **--
--*************************************************************************************--

function before_physics()

	process_trim()

end




動作状況はこちら↓


次回はシリーズ最後でスピードブレーキです。


nice!(0)  コメント(0) 
前の10件 | -