デジタル鉄道模型フォーラム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) | 鉄道模型
この記事へのコメント
私はトリニトロン使いなので、四角の方が良いと思います。
Posted by スマイラー at 2019年02月09日 10:32
がんばってブラウン管画像作ったので、四角にするのはツラいです!
Posted by yaasan at 2019年02月09日 16:17
レイアウト画面での操作や表示とのスクリプト連携も可能になると描画が楽になって表示もし易くて良いと思いますけど、如何でしょうか?
Posted by LOCKE at 2019年02月09日 18:38
BASICの実行エンジンは、裏側で動作できるようにするつもりですので、レイアウト画面との連携(というよりはポイント操作の制御)は、できるようにしたいと思っております。
Posted by Yaasa at 2019年02月09日 18:59
初期のBASICは整数演算で配列100個程度しか出来ませんでした
MicrosoftBASICでようやく浮動小数点演算可能になり配列制限も大幅に広がった思い出が有ります
ビルゲイツ様々ですね
Posted by らすと〜ぶ at 2019年02月10日 14:23
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。