2019年06月24日

Blocklyを使って自動運転プログラムができないか? その4

ちょくちょくと実装してきました。ソフト名は、「DesktopStation Education Platform」という長い名前なので、略してどう呼ぶか考え中です。DSEPとか頭文字だけなのはセンス無いので、愛称的な名前にすると思います。そのうち決めます。

実装状況ですが、XMLファイルでのエクスポート、インポートができるようになりました。また、コード表示や実際の実行部分の実装もかなり進んできています。次はインタプリタの実装になりそうですが、サンプルがたくさん有り、シンプルなので数時間で実装できてしまいそう。

今週末には、実際にDSair2で動かせるレベルにまで到達すると思います。

block2_1.png

ブロック図から生成したコードの表示:

block2_2.png

新規作成の問い合わせ:
block2_3.png

デジタル車両の命令一覧:
block2_4.png

■ダウンロード

今日現在の実装したソフト。

block_20190624.zip

■残り作業

・インタプリタの実装
・ウェイト処理の実装(インタプリタと一緒に実装)
・ステップ実行の実装
・生成コードのダウンロード機能の実装
・アナログ制御機能の実装
・サンプル一覧の作成
・DSair2での動作確認

block2_5.png
posted by yaasan at 08:16 | Comment(0) | 鉄道模型

2019年06月22日

Blocklyを使って自動運転プログラムができないか? その3

ここ数日でハマっているDCC自動運転プログラム用のブロック図プログラミングツールです。

まだ操作部分しか作り込んでいませんが、コード生成部分とカスタムブロックはだいたい終わったので、以下に置いておきます。セーブ機能も、DSair2のコマンド送信も付けてないので、あくまでもブロックで遊ぶだけの機能試作です。

block.zip

■画面

DSblox_1.png

上記のブロック図をJavaScriptに変換した結果

DSblox_2.png

■あとやること

・コード生成結果の画面内表示
・S88センサ状態の表示(16個分だけ)
・インタプリタ実行機能(ステップ実行)
・ロード・セーブ機能
・DSair2へのコマンド送信機能
・関数実行のウェイト調整(早く実行しすぎると処理が追いつかなくてまずいので)
・アナログPWM操作機能はいるか?いらんかな?
・CV読み書きもいるかな?
posted by yaasan at 09:26 | Comment(0) | 鉄道模型

2019年06月21日

オープンサウンドデータ・亀屋さん書込サービス&サウンドデータ提供のお願い

オープンサウンドデータは、既に第三弾まで提供を行っており、第四弾も準備を進めております。

2019年7月21日より、大阪の鉄道模型ショップの亀屋さんが、オープンサウンドデータの書き込みサービス(有償)を開始します。関西圏の方には、日本型DCCサウンドを気軽に楽しむ手段が増えるということで、大きな力になることでしょう!サービス開始まで、今しばらくお待ち頂ければと思います!

オープンサウンドデータの書き込みサービスの協力店がどんどん増える中、DesktopStationとしては、もっともっとオープンサウンドデータの輪を大きくしていきたいと思っております。クリエイターの数を増やして、もっとDCCサウンドの楽しさ、奥深さ、自動運転と組み合わせたときの感動を一緒に共有したいと思っております。

つきましては、オープンサウンドデータをベースに派生したサウンドを作っていて、著作権に問題が無い場合(自分で録音したデータを使用、もしくは録音した人が明らかで、オープンサウンドデータの趣旨に賛同している場合)には、オープンサウンドデータへの提供をお願いしたいです。

なお、提供が確定した場合には、薄謝(DesktopStation商品での代替提供も可)を提供させて頂いております。ぜひとも、当方までメールを気軽に頂ければ幸いです。

オープンサウンドデータの発展は、ユーザーや協力者、クリエイターによって支えられています。DCCサウンドでもっともっと模型を楽しくするには皆様のご協力が不可欠です。日々のご協力、感謝いたします。
posted by yaasan at 20:30 | Comment(0) | 鉄道模型

2019年06月20日

Blocklyを使って自動運転プログラムができないか? その2

Blocklyの公式ツールを使って、カスタムブロックを作成してみました。

block_gen.png

作ったカスタムブロックを使って、ただいま開発中のスクラッチ風なブロック図による自動運転プログラムの作成ツール。こんな感じで漢字を使わずに、ひらがなで分かりやすく、小学生でも自動運転プログラムが作れることをコンセプトにツールを少しずつ作成中です。

block_gen2.png

ちゃんと関数化もできて、発進と停止をこのように2つに分けて書きやすくブロックを組めます。

block_gen3.png

これらのブロック図から、JavaScriptのコードが非常に簡単に生成できます。DSbasicも実はBASICからJavaScriptに変換して実行しているだけです。つまり、DSbasicでできる機能の全てが使い回しできるわけです。

ブロック図では、それほど複雑な構造は作り込めませんが、サクッと動かす事は問題ないです。

DCC自動運転を、ブロック図で小学生でも簡単に実現できることを目指して、明快な機能を作り込んでいきたいと思います。

S88、スロットの速度取得、ポイント操作など関数を増やしていきたいと思います。これはもしかすると、キラーアプリになるかも!と思います。DSbasicDesktopStationSoftwareのイベントスクリプトとは明らかにハードルが下がるためです。
posted by yaasan at 20:41 | Comment(0) | 鉄道模型

2019年06月18日

Blocklyを使って自動運転プログラムができないか?

GoogleのスクラッチのようなツールであるBlocklyを使って、自動運転プログラムを簡単にブロック図で作れないか考えてます。

BASICすらイヤだと言われると、もうちょっと勉強してよと言いたくなりますが、一方でこれからを担う子供達に気軽にDCC自動運転で遊んでもらうにはツラいものがあるのも事実であります。

最初はS4Aベースに考えていたんですが、開発環境がSmalltalk、しかも結構古いバージョンベースで、妙な癖のあるインターフェースで投げ出してしまいました。

BlocklyだとフルJavaScript実装で、DSbasic(同じくGoogleのwwwbasicベース)と似たように、クライアントサイド(=ユーザーのブラウザ上)で100%動作(=外部にサーバー要らない)なのでFlashAir上に置いても何も問題ありません。ブロック図をポチポチ置いて、JavaScriptに変換させて動かす仕組みを作れば良いかなと思います。

テストアプリを作って、動きを見ていきたいと思います。スマホやPCのブラウザ上だけで完結するので、汎用性も高く、安全性も担保できてブロック図プログラミングとしては最適解の一つになるかも知れません。

DCC自動運転は、基本的には教育とか勉強の方向に持っていきたいですね。鉄道模型ユーザーって限定すると、マーケットは狭いですし、アナログ命の方も多いですから、もっと範囲を広くして行く必要があると思っております。

もともと鉄道模型よりも、インタプリターとかトランスパイルとか実行エンジンとかは大好物なのでこっちの方が気になっているのも事実であります。ブロック図からコード生成なんて、DCCサウンドレベルで胸が熱くなります。
posted by yaasan at 08:37 | Comment(1) | 鉄道模型