SSブログ

DSair2のコントロール画面について [DSAir]

 ゴールデンウィーク限定でPC版のファイナルファンタジーViiが900円、XとX-2が1700円ぐらいで売っていて、買おうかどうしようか迷っています。これ始めたら、数日はつぶれること間違いなしで、かなり悩みます。
 さて、DSair2のスマホとかのコントロール画面は、2本指でやるピンチで縮小拡大が可能になっているのがどうも気に入らなくて、最初からかっちりと全画面表示にならないかしらと思って、ちょっと調べていました。
 結論から言うと、出来ませんでした。今のでいい感じです。
 まずは、list.htmを眺めます。どうもviewportをいじればよさそうです。

 meta name="viewport" content="width=920,initial-scale=1"

のcontent内の部分です。("<"とか">"を書くと消えるので、省略します)
width=device-width (デバイス固有の大きさにする?)
とか
initial-scale=1.2 (1.2倍ぐらいで表示する)
とか
user-scalable=no (スケール変更を無効)
とかすればできるかと思い試していました。
ここら辺のページを参考にしています。

最初はChromeでスマホの見え方のシミュレーションができるということで、それで試していました。

ですが、あくまでもシミュレーション。ちゃんと実機で試そうと思い、
Win10のPCにはPython用にAnaconda環境を入れていたので、簡易WebServerを立てて、見方を確認してみました。ここら辺のサイトを参考にしています。

List.htmをindex.htmに名前変更します。
index.htmのあるフォルダがrootフォルダになるので、
SD_WLANフォルダの横にindex.htmを移動させてその場所でwebserverを立てています。

で、PCにスマホやipadからアクセスです。
XXX.XXX.XXX.XXX:8080とかで。
re_DSC03010.jpg

そうしたら、Chromeのシミュレーションと全然挙動違うということがわかりました。
さてどうしようという感じで、今日は終了です。
このPythonのWebserverはGetなどを取って、独自に返答を返せるので、Flashairの代わりみたいな挙動を作ることが可能なようです。(あくまでも可能性だけ)

コメント(0) 

電車でGo!コントローラをDSair2で動かすためのMasscon2kbd(全部品入り)のご案内 [DSAir]

 ほぼ生存報告です。
 先週は天皇陛下一家も試写を見られたらしいこの世界の(さらにいくつもの)片隅にを見に行きました。前作と編集を変えており、粗筋は変わりませんが、登場人物の心情が全く違った話になっていて、まあ、スターウォーズ最終作の3倍ぐらいは心を動かされました。
 今週はメイドインアビス 深き魂の黎明を見に行きました。R15+の規制があるだけあって、原作は知っておりますがなかなかの恐怖でした。初日のレイトショーを見ましたが、一番大きいシアターの8割がた席が埋まっており人気作なのだなあと思いました。心を動かされる度合いとしてはスターウォーズとこの世界の片隅にの間ぐらいですかね。

 さて、短い本題です。
 デスクトップステーション様でMascon2kbdの部品付きのキットが販売されております。部品をそろえるのが大変な方は、ぜひそちらで買っていただければと思います(OTGケーブルはついていないようです)。なお、私のほうの基板とケースのみは在庫切れですので、欲しい方がおられましたら、ご連絡いただければ、春節明けにでも中国に注文するのことは可能です。

コメント(0) 

DSAir2、Mascon2kbdのIpadでの動作確認 [DSAir]

 金曜日はスターウォーズの9作目、土曜日はぼくらの7日間戦争(3作目?)を見に行っていました。
 スターウォーズの特筆すべき点は、ストームトルーパーが空を飛んで、ついにザク並みになったとか(ザクがスターウォーズをまねて作ったという話聞きますが)、女性進出が進んで、ストームトルーパーから女性の声が聞こえたり、帝国の司令官も女性がやるようになった辺りでしょうか。気に入らなかった点は、2Dを見に行ったのに、3D前提で作られてため、見てほしい部分以外のピントをわざとぼけさせるため、背景の作りを見たい私としては、どこに視線を合わせるかを強制されるため、イラッとすることでした。
 ぼくらの7日間戦争(3作目?)は、ヒロインの女の子の声をやっていた女優さん(芳根京子さん)の声がよかったと思います。聞き取りやすかったですし。話は割と面白いと思いましたが、上映2週目なのに、スターウォーズの9作目とアナ雪の2作目に場所を取られて、上映時刻が朝とレイトショーに追いやられて、公開時期をしくじったなと感じたのと、タイトルも「僕らの7日間戦争」にあやかる必要ないと思いました。あと、こっちは、「男なんだからその荷物持ってけ!」みたいなセリフや、大人の「悪役」が全員 男で構成されているなど、日本の映画でした。

 で、長い前置きの後に、表題の件です。
 Ipadでの動作確認をしました。使ったIpadはBookOffで安く買ってきた第4世代Ipad(MD510J/A)OS Verは10.3.3。OTGケーブルは純正のLightning USB-3 カメラアダプタ[MK0W2AM/A]。最初、Amazonで互換品を買いましたが、接続中にときどき「デバイスを使用できません ArduinoMicro:接続されたデバイスはサポートされていません。」が表示されていたため、どうも、接触不良気味なのか、プロテクトなのか・・・です。純正品はそんなことはありませんでした。
 普通につなげると、まずは下記の「デバイスを使用できません Arduino Micro:接続されたデバイスは消費電力が大きすぎます。」エラーが出ます。
re_DSC02897.jpg

 これに対するおまじないの方法は、やすひろさんの方法で、Ipadに申告する電流値を下げてやることで、起きなくなります。
 その後はケーブルの接続するごとに以下の「デバイスを使用できません ArduinoMicro:接続されたデバイスはサポートされていません。」が出ます。これが互換品だと、接続中にときどき出るようでした。理由は不明です。
re_DSC02898.jpg

 と、まあ、ここまでやって、IPadにつながるようになりました。Appleの純正OTGケーブルの後にUSBハブ(手持ちのBSH4UMB04で確認)をつないで、そこから、MasconとPCのUSBキーボードに分岐してやると、Masconで動かしつつ、キーボードでF0~F19まで操作できるようになります。(F0~F9は0~9キー。F10~F19はShift+0~9キー)
re_DSC02900.jpg

 同じことは、もちろんAndroidTabletでも可能です。こっちはOTGケーブルとして先ほどのBSH4UMB04がそのまま利用可能です。
re_DSC02902.jpg

 ちょっと、複数接続時のいじわる試験をするために、何個かMascon2kbdを作りました。今度の週末の運転会?で実験しようかと思います。
re_DSC02901.jpg

 ケースの作り直しをElecrowに一週間前に頼んだのですが、発送の連絡がまだ来ません。来週前半に来るんだろうか・・・。

コメント(0) 

DSAir2用に適当スピードメーターの追加(E259系) [DSAir]

 スピードメーターで古い国鉄車両用とE217,E233らしきものは作りましたが、手元に写真のあるものでE259系用を作っていなかったので、作ってみました。
 なんで、金曜日に?の理由は、子どもがインフルエンザになってしまい、妻が仕事を休めずに私が休んだためです。私の家はマンションではありませんが、異常行動で子供が外に飛び出して事故でも起きたら、後で、悔やみきれませんし。
 で、一日中、JavaScriptをにらめっこです。と言っても、今回のモノは、ほぼE233系からパラメータを変更するだけです。
 E259系の写真は、自分のこちらの記事にありますので、似たようなもの(一部デフォルメ)を作るだけでした。
 で完成。E259系はOpenSoundはなかったっけ?というか成田エクスプレス自体はよく見るけど、ほとんど乗ったことがない。海外もほとんど行かなくなったし、行くとしても近場は羽田から行けるし・・・。
無題.png

 で、気になっているのが、スピードメーター以外の部分の背景色が変えられずに、困っています。どうしたものか。
 一応、今回のE259系も含めて、スピードメーターのスキン部分を変えられるようにしたもののソースはこちらになります。大きさの関係で、変更した部分のみです。9月のアップデートの物を使っているので、最新とは少し変わっているとは思います。SD_WLAN以下の部分をオリジナルの物に対して、上書きしてやると、スキンセレクタがメインページになりますが、いろいろなメーターで楽しめるはずです。

 
コメント(1) 

DSAir2用に適当な電車でGo!のUSBスロットルの基板を作った。 [DSAir]

 ケースをどうにかつくる気になったので、合わせて、基板も頼んでいましたが、本日Elecrowから到着しましたので、組み立てました。
re_DSC02890.jpg

re_DSC02891.jpg

結果、二か所ほど間違いがありました。
(1)DCCアライアンスのロゴが鏡になっています。この前に作ったfujigaya2 DCC Cheap Controllerは基板の表にロゴを入れるスペースが無かったので、裏にロゴを入れていたのですが、今回のは表にもスペースがあったので、そのまま裏から表に持っていったら、鏡になってしまいました・・・。バッタ物みたい。
(2)ケースの右側面用のホゾがずれていて組み立てがしづらい。

今後ですが、
(1)DSAir2のWebアプリに速度絶対値モードを付けてもらって、
(2)Apple系でのデバイスの確認(Android,WindowsPCでは普通に動くことを確認しています)
(3)複数台での運転などを確認しようかと思っております。(速度指令を頻繁に出すため複数台運転ができるのか?確認が必要だと思っています)

 欲しい方がいれば、ケースなど作り直しますが、そうでないなら、内輪で楽しみたいと思います。


コメント(0) 

適当なDSAir2用のUSBスロットルの値を絶対値で指定してWebアプリに送る [DSAir]

 今日は子供の授業参観に参加しようとしたのですが、時間が13:30~と職場が離れている身として午後半休だけで行くには難しかったため、一日休みにして、いろいろとやることにしました。
 一つ目が、少し前に作ったUSBスロットルの抵抗の値をDSAir2のWebアプリに絶対値で送るもので、ソースはこちらです。DSAir2のWebアプリで使用するには現バージョンでは。Keyboard.jsをこちらに差し替える必要があります。Versionがあがったら、そのまま使えるようになるかもです。
 単なる証拠動画としては、以下になります。


コメント(0) 

DSAir2用に適当スピードメーターの移植 [DSAir]

 昨年、DSAir用に作りつつ、忘却の彼方に忘れていたスピードメーターのスキンですが、電車でGoコントローラとの組み合わせでやる気を出したので、この頃のDSAir2用のWebアプリ用に移植です。
 前回の電車でGo!コントローラからキーボード入力するやり方で、繋ぎます。今回は2ハンドルにしてみました。
re_DSC02888.jpg
 keyboard.jsも前回のを使用します。スピードメーター部分は、appmain.jsに含まれるので、そこに以前作ったList.htmlのJavaScriptを入れていきます。前回は、List.htmlを切り替えることで、メーターも切り替えましたが、今回はそこまで作っていません。また、前回はList.htmlで画面全部を作っていましたが、今回のappmain.jsはスピードメータ部分だけなので、メーターだけ色が違うという寂しい結果になっています。appmain.jsはこちらです。
appmain_kyuukoku.js・・・旧国鉄風メーター
appmain_E217・・・E217風のメーター
appmain_E233・・・E233風のメーター
で、appmain.jsの入替でメーター部分が入れ替わります。
イメージはこうなります。
旧国鉄
kyuukoku.png

E217
E217.png

E233
E233.png

なんとなくの動画をつくりました。せっかくなので、キハ82のOpenSound(ジョイント音+変速設定)で音を出しています。

コメント(0) 

DSAir2用に適当な電車でGo!のUSBスロットルを作る [DSAir]

 さて、前回に続いて、今度は、DSAir2用のUSBスロットルの中で、電車でGo用を作ります。
 電車でGo用のスロットルですが、おそらく、現状で、DSAir2に繋ごうとすると以下が考えられます。
1、S88のDSJOYプロトコルを使った方法(S88部分にS88_Masconとかをつなぐ)。未検証らしい。(私も未検証)
2、ESP32経由でDSAirに直接命令を送る方法。(あやのさん)
3、OneCoinController(あやのさんPS版)のマイコンをArudinoNanoからArudinoMicroに換装して、適当にスケッチも変えて、スマホに繋ぐ。(これでやってしまえれば、今回私がやっているのとまったく同じものができます)
辺りだとは思います。
 で、今回は、DSAir2のWebアプリのKeyboardに適当なテキストを送って、動かすという方法を試してみます。上記方法とのコンセプトの大きな違いは、スピードメーターを近くに置く。、電車でGo!コントローラを使うのに、タブレットのバッテリーを使うため、電源要らず。(何分持つのか知らないけど)ぐらいでしょうか?
 やらなければいけないことは、
1.PS2コネクタとArduinoProMicro(700円ぐらい)を買ってきてつなぐ。(ArduinoMicroは高価(2000円)なので却下)。ファンクションはタッチパネルから操作したいので、10インチぐらいのタブレットも買っておく。(PCでもOK)
2.適当なスケッチをつくる。
3.DSAir2のWebアプリを改造して、スピードを絶対値で入れられるようにする。
4.必死にデバッグする。
5.余力があったら、基板化する。

1、<材料をそろえて、組み立て。>
 まずは材料です。PS2コネクタは昔買ったS88_Mascon用があるので、それを使います。2.54mmピッチ変換基板もパネライズして注文したら、一生分あるので、何の問題もありません。気軽に調達したい人はあやのさんの頒布が良いかと思います。ArduinoProMicroは安いものがaitendoに売っています。高級なものが欲しい方はスイッチサイエンスでどうぞ。
 あとは、ブレッドボードとジャンパピンですが、秋月に行けば、沢山あると思います。
部品は勢ぞろいでこんな感じです。
re_DSC02883.jpg

 で、これをつなぎます。写真で言うとこんな感じです。
re_DSC02886.jpg

 図面ではこうです。(6本線をつなぐだけなのでスカスカです)
Mascon2kbd_K0.PNG

2.<スケッチを作る>
 今回、あまり考えずにArduinoスケッチ側で、加速や減速をしたときのスピードを計算して、その絶対値のスピードをDSAir2のWebアプリに送るようにしました。DSAir2用のウェブアプリにはスピードを絶対値で受け取る機能はないため、適当にプロトコルを決めました。

 PXXXX:XXXXは0~1023で文字です。値が変わったときは約0.2秒のインターバルで送られます。

 最初は、SHIFT,CTRL,ALTとの複数組み合わせ+キーコードを考えたのですが、どうも、PCでデバッグをすると、どの組み合わせでも不思議なポップアップや、Window消えなどが発生するため、やめました。今後どういうショートカットが登場するかもわかりませんし。次に、掲示板のほうでやすひろさんがおっしゃっていたマウスを使う方法については、私がWebアプリのJavaScriptのマウス部分の扱いがよくわかっていないので、今回は上記の複数文字による方法にしました。
 で、昔のS88_Masconや少し前のUSBスロットルを見ながら、スケッチを作りました。こちらです。
 なお、動作ですが、
・StartキーはFWD,REVの切り替え(”Z”キー)
・SelectキーはF0(”0”キー)
・AボタンはF1("1"キー)
・BボタンはF2("2"キー)
・CボタンはF3("3"キー)
スケッチを見れば簡単に変更できますので、気に入らない方は変えていただければと思います。

3.<Webアプリの改造部分はKeyboard.js>
 かなり汚い。ベタ書きですが、きっといつか誰かが美しくしてくれるでしょう・・・。変更はR2n TEST版から、keyboard.jsに少し追記しただけのこちらです。(Analogのほうは追記していないので動きません。改造はほぼ同じで行けると思いますが)

4.デバッグは結構大変でした。そして、毎度のことながら、電車でやらずにデコーダ開発ボードでやってしまいました。
re_DSC02887.jpg

 そして、Black Fridayで10インチぐらいのAndroid TabletがAmazonで10000円ちょっとで売っていたので衝動買いしてみました。1920*1200の解像度で液晶はとても見やすいです。なおYoutubeで1080pは処理落ちして、まともな動画は見られませんでした。720pでどうにかという感じですが、DSAir2のタッチパネルとしては申し分ありません。
re_DSC02884.jpg

 今回OTGケーブルは、少し前にRaspiZero用に買ったBuffaloのUSBHubを使用しました。問題なく使用できました。やっていませんが、このHubにFullキーボードを挿したら、ファンクションとかも使えるかしら?
 で、まあ、せっかくなので、動画です。デコーダはOpenSoundのMT54の近郊型です(操作方法が間違っているかもですが)。なお、スピードメーターがわりと滑らかに動いているあたりが見てほしい所です。(最初の1分ぐらいはスロットル動かしていません)
 こうなると、次は、スピードメーターのスキンをいじりたくなってくるんですよね。(昔作った奴を入れ込み直すだけだし。多分。


5.<基板化>
 基板のガーバーまで作りましたが、アクリルケースを作っているところで、力尽きたので、また今度考えようかと思います。部品は基板も入れて、驚異の3点です。
無題.png




コメント(1) 

適当なDSAir2用のUSBスロットルを作ってみる。 [DSAir]

 一か月ぶりの更新になります。あまり、鉄道模型のことをしていなかったりしますが。近頃、「蜜蜂と遠雷」の小説を読みました。ピアノコンクールの話ですが、話の構成が昔の少年ジャンプの愛と友情の漫画(ドラゴンボールとか?)と全く一緒で、読みやすくてとても面白かったです。映画は見に行っていませんが。
 さて、数か月前に、安いDCCコントローラを作ってみました。備忘録的に、まとめに基板のことを載せています。このArduinoNanoの部分をほぼピンコンパチのArduinoMicroに変えると、DSAir2用のUSBスロットルみたいのができるはずです。
 ということで、作ってみました。
 まずは材料です。ArduinoNanoはAliExpressなどで250円程度で買えますが、USBスロットルに使えるATMega32u4が搭載されているArduinoMicroの互換機は600円ぐらいします。そして、秋葉原などで買おうとすると、例えば、What’s Next Pink (Arduino Micro互換機) で、2000円ぐらいしますが、海外通販を待つものいやだったので、秋葉原で買いました。
 で、材料はこんな感じです。(写っているうち、ピンソケットはケースに入れるときに高さが高くなるため、使いませんでした。
re_DSC02878.jpg

 ArudinoMicroはNanoより4ピン多い(SPI関連が別口で出ている関係?)ですが、ピンをニッパーで切ると、今回作った基板ではベタGNDにあたり、少し危ないような気もしたので、短絡事故防止のためピンから引っこ抜きました。また、ICSP端子もいらないのでこちらも取ってしまいました。
表から
re_DSC02879.jpg

裏から
re_DSC02880.jpg

で、基板への実装ですが、ACアダプタ、DCC出力、モータードライバ、セラコン、電解コンデンサなどはいらない。ので、スイッチとArduinoMicro(互換品)だけを実装します。
数十分で完成です。
re_DSC02881.jpg

ケースに入れて、あとはスケッチを書くだけです。
re_DSC02882.jpg

Yaasanさんのこちらの元スケッチを参考にしますが、ロータリーエンコーダで使用することを前提にしているので、スピードの指定が相対値になっています。今回のは絶対値で出てくるボリュームなので、プロトコル(というたいそうなものかどうかは置いておいて)を拡張する(というか適当に追加)必要があります。
DSAir2側は、Keyboard.jsというソース内に、英数字が入力されたら、こんな感じに動くというのが記載されていますので、そっちも見てみます。
こんな感じなようです。
---
keyboard.jsでは (スピードは0~1023)
SPACE(32) : PowerOnOff
S(83) : UP(+16)
D(68) : UP(+32)
C(67) : DOWN(-32)
X(88) : DOWN(-16)
Z(90) : FWD/REV切り替え
Q(81) : STOP
0(48) : F0 On/Off
Shift+ 0 : F10 On/Off
1(49) : F1 On/Off
Shift+0 : F11 On/Off
・・・・
1(57) : F9 On/Off
Shift+0 : F19 On/Off
---

で、掲示板に絶対値指定用の追加していい?って聞いてみましたが、反応ないので、
そのうち独自追加するとしましょう。
やることは、以下です。

---
例えば,0~1023で+128とかde
0,127,255,・・・,1023 を
b,n,m,g,h,j,t,y,uとかでスピード絶対値指定する。
---

で、USBスロットル(フジガヤコントローラ用)のスケッチはできました。こちらです。
Windowsで確認したら動作はばっちりです。
もちろん、絶対値指定するため、受けるDSAir2側がまだ存在しませんが・・・。
コメント(2) 

DSAir2のS88機能の準備をはじめる。 [DSAir]

 昨日は、池袋鉄道模型芸術祭を見てきました。レベルの高いジオラマが並んでいました。
 さて、DSAir2でS88を使用した自動運転ができるとのことで、試してみようと思い、その準備です。
 はんだ付けして、ケースに穴開けてやればすぐじゃないの?と思われるかもですが、私のDSAir2の場合はここに落とし穴があります。DSAir2の試作版基板のため、RJ45コネクタを付けるフットプリントがありません。すべて、線を引き出してやらなければならないのです・・・。
 ということで、秋月電子で、LANコネクタDIP化キット(K-05404)を買ってきました。
re_DSC02719.jpg

そして、製品の基板図面を確認しながら、どこから配線を引き出すか確認です。
 で、線を引き出して、S88_DATAには抵抗も追加して、まあ、完成です。
re_DSC02720.jpg

 この後ケースに入れていますが、ケース後ろ側は外してそこからRJ-45コネクタ用の配線を出しています。
 そして、S88 Detector 8chを付けて、DSairファームやFlashAir内のプログラムも最新にして、動作確認しようとしました。

 DSair Status画面を見ると、動いていないようです・・・。
初期状態.png
 下から3行目の「S88 data:(N/A.run s88start on BASIC)」です。
 センサは反応していますが、Web上でS88の動作が分かりません・・・。
 run s88start on BASICと書いてありますので、WikiのDSair DSbasicの辺りを確認して、s88startをDSbasicで実行しなくては行けなさそうなことがわかり、
s88start状態にする.png
この画面で、左にs88startと打ち込み、右側の下のほうの[>]の実行ボタンを押します。

すると、先ほどのDSair Status画面でS88の動作を確認できました。
s88start状態.png
S88 dataのあとにセンサ1~16までの現在の状態が表示されます。
1秒に一回ぐらいの更新になっていると思います。

これで、センサを使った自動運転をする準備が整いました・・・。(進まないなあ)

コメント(0) 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。