2019年06月30日

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

妙に反応の薄い、EducationPlatformですが、DesktopStationを立ち上げて、一番の目的となっているものであることや、DesktopStationの自動運転コンセプトを示す重要なプロジェクトなので、つまらんと言われ続けようと、(私が)満足するまでやり続けます。

いじればいじるほどバグが出てきて、すみませんがr2m14 r2m15をリリースしました。

r2m13->r2m14変更点:
・EducationPlatformのみの変更です。
・バグの修正(引数指定型ブロックがまともに動かないバグ。止まれ、走れのブロック)
・速度の単位を全て%に固定。0〜100%の値を入れて動くようにしました。内部で0〜1023に計算し直します。
・MM2モード、DCCモードのブロックを追加(デフォルトはDCCなので、DCCを使う場合はブロック配置不要)
・ハイライトしなかったので、するように改良
・「はじまり」ブロックを追加。と言っても、機能としてはダミーです(無くても良い)。
・ロジックブロックに「もし〜でなければ」(If-else, If-If else-else)構文の2つを追加が使えます。

r2m14->r2m15変更点:
・ファンクションのモメンタリ動作(OFF->ON->OFF)を行うブロックを追加
・S88在線検出センサの命令からSleep2を削除
・でんげんブロックにSleep2秒を内蔵、チェックではなくプルダウンに変更
・メニューをひらがなで分かりやすくした
・進行方向の向きをプルダウンに変更(まえ、うしろ)

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

■画面の定義

以下のように画面を定義することとしました。

block5_hiroba.png

■「関数」ブロックの使い方

関数に引数を追加して、汎用性を高めたブロックを書いてみました。

「関数ブロック」に歯車のアイコンが付いていると思います。これを押すと、引数(関数に数値や情報を与えるもの)を追加できるのです!ここでは、addr(アドレス)を追加しています。名前は自由に変更できます。

block5_2.png

引数は、以下のようにブロックの引き出しから使えるようになります。

block5_3.png

spdという引数も追加し、以下のように「関数:何かする」を変更してみました。

block5_4.png

「関数:何かする」は、以下のように使う事になります。引数に数字を入れると、「関数:何かする」を使い回していろいろな車両を動かす事ができます。

block5_5.png

以上をまとめて、以下のようなブロック図になりました。

block5_1.png

ブロック図ファイル:
userseqs (13).xml
posted by yaasan at 09:32 | Comment(2) | 鉄道模型

2019年06月29日

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

EducationPlatformにアナログ鉄道模型(PWM)を動かす機能を追加し、実際に動かしてみました。

注:ファームウェアのページはアナログ関数を追加したりバグを直したr2m13に更新済みです。



ブロック図のデータは以下の通り。

example_pwm.png

userseqs (9).xml

こんなに簡単に、自動運転が作れます。

次に、フライシュマンのDCC車両(ZIMOサウンド搭載)でDCCアドレス69(SHORT)を動かします。

動画:


ブロック図:
example_ED69shuttle.png

ブロック図データ:
userseqs (11).xml
posted by yaasan at 09:17 | Comment(0) | 鉄道模型

2019年06月28日

DSair2 ファームウェア r2m12にアップデート

DSair2のファームウェアをアップデートしました。今回から、2つの新アプリが正式追加されました。

■ダウンロード

ファームウェアページへ

■変更点

Education Platformというブロック図で自動運転プログラミングできるツールを追加。子供向けプログラミングツールで有名なスクラッチ風のデザインと、DCC鉄道模型の融合です。
・SimpleControl(縦型操作ツールの試作版)を正式追加。バグを直してとりあえず動くようにしました。
・サウンド一覧が表示されないバグの修正
・アプリの起動をボタンに変更し見やすくした

blockapp2.png

EducationPlatformについて

スマホやタブレットでも実は使えます。マウスとキーボードを差し込めば、バリバリとプログラミングできます。DesktopStationShopでコッソリ売っている、USB OTG(On-The-Go)アダプタ(Type-C, micro)を使えばこの通り。

AndroidWithMuse.jpg
posted by yaasan at 08:19 | Comment(0) | 鉄道模型

2019年06月26日

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

最近、ずっとEducation Platformしかいじってませんが、S88センサ周りの動作チェックと表示機能を追加。
Arduinoをスクラッチで動かすS4Aのように、センサ状態を常に表示するようにして、特に自動運転を作る場合の使い勝手をよくしました。

ほぼ見た目は完成形に近づいたと思いますが、細かい機能がまだまだ作り込めてないので、実装していかないといけません。

block4_2.png

DSbasicで自動運転するのもツラいという方には、強力な代替手段となることは間違いないでしょう。
posted by yaasan at 07:42 | Comment(0) | 鉄道模型

2019年06月25日

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

今日も作り込みを行いました。JavaScriptインタプリタを実装しました。
使用したのは、AcornのJavaScriptインタプリタです。とても実装しやすく、Blocklyとの相性も抜群でした。

block3_1.png

電源オン、ファンクション、運転操作、ポイント動作は確認してます(DSwatchで)。
他はまだまだできてないです・・・。まずはDSair2で操作できるようになった!というレベル。

■ダウンロード

・テスト版ファームウェア一式(ExternalAppからブロック図プログラミングツールを起動可能)
DSairFirmware_r2m11.zip

・サンプルのブロック図例
userseqs (6).xml

■todo

・S88周りの動作確認
・ステータス表示機能(S88、電源状態はブロック図中に出したい)
・MP3再生のバグ修正
・メモリ保存機能、自動復帰
posted by yaasan at 19:12 | Comment(0) | 鉄道模型