デジタル鉄道模型フォーラムDCC・メルクリン等のデジタル鉄道模型の話題でコミュニケーションできる場です。登録・利用は無料です。
デスクトップステーション(DesktopStation)のページはこちら
・無料の日本型超高品質DCCサウンドデータをWebで配布中!
・鉄道模型をスマホで簡単制御!国産で革新的なコマンドステーション DSair2はこちらから。

2019年02月09日

DSbasic over DSair2 その2

DSbasic for DSair2を少しずつ作ってます。

なお、BASICって何?って人は以下の記事を参照ください。

誕生から50年を迎えたプログラム言語BASICの歴史、その精神とは - GIGAZINE
BASIC - wikipedia

実は、非常に歴史は古く、BASICというプログラミング言語を最初に習った人(記憶にあるかどうかはさておき)は、非常に多いはず。小学校で2020年プログラミング必修とか言ってますが、自分が小学生の時に、少ない時間でしたが、学校にPC-9801があって、BASICで簡単なプログラミング授業やってました。

個人的には、今流行りのブロック図プログラミングのScratchよりはBASICの方が良いと思ってます。何よりシンプル、マウスでは無くキーボードを叩けば良いというのは、紙と鉛筆を愛する学校には合っていると勝手に思います。

脱線しましたが、BASICの時代はブラウン管だろ、ということで、今日のDSbasic(for DSair2)の実装では、ブラウン管を彷彿させるような画面形状にしてみた。

DSbasic_2.png

スマホでBASIC、超見にくいだろうなあと今、思ってます。スマホをタブレットにするか、テレビにつないでもらうのが前提かも知れません。

■14:40 追記
ACC,SPD,FNC,FNX(モメンタリ),DIR,PWR,MP3PLAY,MP3STOPを実装。S88はまだ未実装だが、時間制御だけでも、自動運転は出来ると思います。

flashair_(Pixel 2).png

----------------------------
pwr 1
spd 69,0
fnc 69,0,1
fnc 69,1,1
dir 69,1
mp3play "Horn.mp3"
FOR i = 1 to 10
COLOR i, 0
PRINT "Speed=" + i*10
spd 69,i*10
sleep 500
NEXT i

FOR i = 1 to 10
COLOR i, 0
PRINT "Speed=" + (100-i*10)
spd 69,100-i*10
sleep 500
NEXT i

spd 69,0
dir 69,0
----------------------------

■16:13

まだまだ未完成ですが、試してみたい人向けにアップロード。完全にテスト版です。
wwwbasicのサンプルと、Wikiを見ながら試してみてください。なお、NEW,LOAD,SAVEは実装してないので、要注意。

DSairFirmware_r2j_TEST7.zip (2.7MB)

コツ・ポイント:
・sleepを使って、徐々に上げていくと実感的になります。

■21:16

配置変更。セーブロード機能追加。

DSbasic_3.png

DSairFirmware_r2j_TEST8.zip

■残りtodo

・BASIC画面時のキーボードスロットル操作無効処理の追加
ポイントデータ取得関数(GETACC)→実装だけ完了。未チェック。
・S88状態取得関数
・実行トリガ(常に実行、起動時だけ実行、手動で実行など)の設定機能
NEW、LOAD、SAVEの実装

BASIC機能は、皆様がスマホで操作する部分の一部を肩代わりすることも想定します。
たとえば、適当なポイントアドレスにルート信号機能を割り付けて、操作するとあるルートが開通するとか、ルートの開通状態を監視して、信号機を自動操作するとか、いろいろと動かせるようになります。

特に行数に制限はございませんので、好きなだけ長く、プログラムを実装して好きな処理を動かす事が出来ます。いわば、LokProgrammerが、LokSoundの機能を色々いじれるのと同じ事を、BASICプログラミングで、DSair2も行えると言うことです。

イベントスクリプトに相当するものとして、今後はDSbasicをご活用頂けるように機能を実装します。

----------------------------

なんかこう、どんどん世界のコマンドステーションと遠ざかる変な方向へ突っ走っているような・・・まあ、自分の好きな世界観のコマンドステーションに仕上がっているので個人的には嬉しいところ。ハッキリ言って、世の中のコマンドステーションはツマラナイ。もっと、遊び心や改造魂を燃え上がらせるものにして欲しいですが、そんなものはどこを探しても無いので自分で作るしかない。
posted by yaasan at 08:56 | Comment(5) | 鉄道模型

デジタル鉄道模型の双方向通信規格

今現在は、DCCやメルクリンデジタルの2方式が大きなデジタル鉄道模型の規格として生き残っています。

信号の紹介は以下が分かりやすいです。
https://people.zeelandnet.nl/zondervan/digispan.html

1990年代に登場した、DCCと、メルクリンデジタルの旧方式であるメルクリンモトローラフォーマットの2つです。DCCは、拡張されて4桁アドレス(ロングアドレス)、F28やSppedStep128などをサポートしていきました。メルクリンモトローラは、旧仕様と完全互換を維持しながら、MM2という名前で、80-255のアドレスサポート、SpeedStep28のサポート、ファンクションのF16拡張(この拡張は、かなり無理矢理ですが・・・)を実施していきました。

この次の世代として、DCCについてはLenzのRailcomをベースにしたBiDi(ほとんどこういう言い方しませんが・・・)が規格化され、ています。さらに拡張したRailcom+をESUとLenzが共同で策定しています。
一方でメルクリンデジタルは、mfxと呼ばれるメルクリンモトローラと互換性の無い仕組みが策定されました。

つまりは、デジタル鉄道模型の最新の双方向通信規格としては、mfxとRailcom+の2つが存在していると言うことになります。

しかしながら、このRailcom+とmfxの2つの規格、困ったことに正式な仕様書が公開されていません。また、mfxの方は、ソフトウェア無線?のIC等のハードウェアの追加も必要です。ただし、詳細は分かりませんが、ソフトウェア実装できるテクニックがあるかもしれません・・・。

DesktopStationとしては、Railcom+やmfxは静観です。と言うのも、デコーダのサポートもマチマチ、ユーザーも各社のデコーダをごちゃ混ぜで使用していることや、対応コストの問題、そもそもアメリカとヨーロッパでも、サポートの方針がバラバラで、とてもではないですが対応する段階ではありません。

と言うことで、DSair2は今の基本機能のままで、ITやWebなどの新機能の実装を最優先としていきたいと思ってます。
posted by yaasan at 07:10 | Comment(6) | 鉄道模型