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

2019年02月11日

DSbasic over DSair2 その4

脱線しますが、最近は、BASICも一部で流行ってます。電波新聞社の電子工作マガジンを見るとよく分かると思いますが、Arduino対抗のIchigoJamや、ニンテンドーDS等で動かせるゲーム機向けのSMILE BASICなど、復刻しているところもあります。ラズパイ3で動かせるPi STARTERというBASICもあります。

なんでBASICを取り入れたかと言えば、多くの人に愛されたプログラミング言語だから、と言うのが理由です。私も、プロとして(組み込み)ソフト開発にずっと携わってますが、BASICを仕事に使ったことなど1度もありません。逆に言えば、仕事向けのプログラミング言語(C言語)を、サクッと動かすためのお遊びで使うには、なかなか面倒くさい点も多いです。BASICは、老若男女問わず、サクッといじるには、非常にやりやすいです。デジタル鉄道模型も、サクッとBASICで動かせたら、絶対楽しい!と思った次第です。

たとえば、アドレス3のロコを動かそうとするときは・・・。

spd 3,100 'アドレス3を速度100(1023がMAX)で走行
sleep 1000 '1秒待つ
spd 3,0 'アドレス3を停止

と言う具合に、サクッとプログラミングで書けば、その通りに動きます。これは非常に楽と思います。C言語で書こうと思うと、セミコロン付けないといけないとか、文法的な面倒なルールが多くて、プログラミングに慣れない人は、投げ出すことも多いでしょう。そこが大きな差です。

さて、DSair2のBASIC機能を実装しています。とりあえず、S88の部分はまた後でと言うことで、時間制御で自動運転ソフトを書いてみました。

PCで動かしてますが(ブログやwikiにコピペするのに便利なので)、ブラウザ上で動かしてますので、当然ながらスマホやタブレットでも全く同じく動かせます。USBキーボードをつければ、問題無くプログラムを記述できますし、ソフトキーボードで頑張ってもいいと思います。

DSbasic_5_shuttle2.jpg

操作画面(Chromeの画面):

DSbasic_5_shuttle1.png

動かしているビデオ:


BASICプログラムは以下です。このプログラムは、スマホ上でも問題無く動作します。問題があるのは、スマホ上で、このBASICプログラムをどのようにコピペするかです。ベーマガよろしく、がんばってソフトキーボードで書き写すのも手ですが、BASファイルからのロードなどができないか、UIの設計面で考え中です。

-------------------
screen(7)
print "Start BASIC Shuttle Control"
pwr 1
print "Power on"
fnc 69,0,1
fnc 69,1,1
print "F0,F1 on"

dir 69,1
fnx 69,2

print "Go FWD!"
spd 69,0
sleep 6000
spd 69,100
sleep 8000
print "Run 200/1023"
spd 69,200
sleep 5000
spd 69,100
sleep 5000
spd 69,0
sleep 3000
print "Stop"

dir 69,2
fnx 69,2

print "Go REV!"
spd 69,0
sleep 6000
spd 69,100
sleep 8000
print "Run 200/1023"
spd 69,200
sleep 5000
spd 69,100
sleep 5000
spd 69,0
sleep 3000
print "STOP! Finish!"
-------------------

残りのTodoはまだまだあります・・・。

・BASファイルのロード(SDカードから) →MP3リストからロードする案が有力。
・BASファイルの保存(SDカードへ)
・S88のセンサ状態取得処理(共有メモリへの配置が未)
posted by yaasan at 16:43 | Comment(4) | 鉄道模型
この記事へのコメント
PCのブラウザにてwebアプリに接続して作成したプログラムをsaveした物をスマホやタブレットからも開いて実行可能なのでしょうか?
Posted by LOCKE at 2019年02月11日 17:13
今のところ、スマホ側にどう渡すかは悩ましいところですが(できないことはないですが)、全く同じ事が出来ます。

なお、現状のSAVE機能はスマホのメモリに保存されるため、他の端末へ共有させる機能になっておりません・・・。

BASICのプログラムは、JavaScriptに変換されて実行しているだけなので、どうにかして、画面上のエディタにBASICプログラムをコピペできれば、PCと全く同じ事が出来ます。

SDカードへの保存などの処理の実装をどうするか、悩んでいるところですので今後、検討します。
Posted by Yaasan at 2019年02月11日 20:06
DSshieldAUTOスケッチは、自動運転には使いやすかったのですが、DSair2では採用されないのでしょうか?また、S88_Mascon用のDSJoyスケッチの移植予定はありますか?よろしくお願いします。
Posted by 秋葉宏 at 2019年02月12日 00:22
コメントありがとうございます。
DSair2は、DSShiledとコンパチで製作しておりますので、S88のピン割り当てを変えれば、問題無く動作します。後ほど、記事にまとめさせていただきます。
Posted by Yaasan at 2019年02月12日 06:53
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

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