TOPPERS 活用アイデア・アプリケーション開発
コンテスト

部門

：

アプリケーション開発部門

作品のタイトル： LED-heart

作成者：共同作業者：

対象者：

使用する開発成果物

：

岡山 直樹

asp-gr_peach_gcc-mbed

目的・狙い
1. プログラミングの学習（タスクの概念も含む）
2. OS の利用価値の説明のためのツールとしての利用

アイデア/アプリケーションの概要
画面にチップを配置してプログラミングをします。一番左上のチップからプログラ
ムは開始します。配置したチップをクリックすると四隅のどこかに青いボックスが出てきます。チップを実行し終わると、その方向へチップを実行します。配置画面の外へ青いボックスを伸ばすと左上のチップへ戻り、ループ実行します。

概要

GR-PEACH 向けの、LED の点灯や滅灯、IF や変数などの役割をもったチップを組み合わせてプログラムの作成を行うツールです。並行実行するためのチップもあります。
上記チップを配置して GENERATE をクリックすると、ソースコードが生成・ビルドされます。生成されたコードは asp-gr_peach_gcc-mbed で動作する Arudino スケッチライクのソースコードとなっています。

導入方法
https://github.com/cel54521/LED-heart
上記 URL にソースコードがあるため$ git clone git://github.com/cel54521/LED-heart.git
として git clone します。。もしくは zip で落としてきて展開します。
ファイル構成は以下のようになっていますLED-heart|- LED-heart_EXE||- index.html（本体）||- main.js（electron のメイン）||- code.js（コード生成部）||- drag.js（ドラッグアンドドロップ機能）||- package.json||- （チップの画像ファイル一式）||- orizin.clip（画像ファイルの CLIP STUDIO 用ファイル）|- led_hearts|- exe.bat（make、書き込み用のバッチファイル）
このディレクトリの中に、GR-PEACH 用の TOPPERS/ASP カーネルを落としてきます。
https://github.com/ncesnagoya/asp-gr_peach_gcc-mbedにあるので$ git clone git://github.com/ncesnagoya/asp-gr_peach_gcc-mbedとして落としてきます。もしくは zip で落としてきて展開します。
そして、LED-heart 直下にあった led_hearts というディレクトリ asp-gr_peach_gcc-mbed/exsample/
以下に配置します。

ファイル構成は以下のようになっていますLED-heart|- LED-heart_EXE||- index.html（本体）||- main.js（electron のメイン）||- code.js（コード生成部）||- drag.js（ドラッグアンドドロップ機能）||- package.json||- （チップの画像ファイル一式）||- orizin.clip（画像ファイルの CLIP STUDIO 用ファイル）|- asp-gr_peach_gcc-mbed||- exsample|||-led_hearts|- exe.bat（make、書き込み用のバッチファイル）後は、http://gnuarmeclipse.github.io/toolchain/install/ を参考に ARM の ToolChain を入れてください。
led_hearts のディレクトリに移動して$make dependを実行します。
今回の LED-heart は、Javascript で実装され、electron で実行されます。
http://electron.atom.io/から electron の実行環境をダウンロードして展開してください。
electron.exe に、LED-heart_EXE のフォルダをドラッグアンドドロップすると起動します。

プログラムする
画面にチップを配置してプログラミングをします。一番左上のチップからプログラムは開始します。
配置したチップをクリックすると四隅のどこかに青いボックスが出てきます。チップを実行し終わると、その方向へチップを実行します。配置画面の外へ青いボックスを伸ばすと左上のチップへ戻り、ループ実行します。
LED ON

LED を光らせます。RED、GREEN、BLUE の３色を選べます。
LED OFF

LED を消灯します。RED、GREEN、BLUE の３色を選べます。
DELAY

指定した msec 間プログラムを停止します。

VALUE

変数を操作するチップです。変数への操作として、代入、加算、減算、乗算、除算を選べます。変数は VALUE1、VALUE2、VALUE3 の３つが選択でき、起動時に 0 クリアされます。
NOP

何もしません。
IF

分岐です。入力した条件が TRUE なら青いブロック（下）のほうへ、FALSE なら赤いブロック（右）のほうへ実行します。条件は「VALUE1 == 0」や「VALUE2>=VALUE3」のように指定します。このブロックは実行方向の切り替えができません。
PARALLEL

並行実行のブロックです。このブロックは一番左上にしか配置することができず、青いブロック（下）の方向へ伸ばしたプログラムと、赤いブロック（右）の方向伸ばしたプログラムを別タスクで実行して並行実行します。

SWITCHGR-PEACH 上の SWITCH の状態を取得します。取得した状態は、sw という変数となります。

実行するGENERATE ボタンをクリックすると、下記の★マークのディレクトリの中にソースコードが生成されて、make されて、E ドライブにソフトが転送されます。
ドライブ変えたい方は、exe.bat を書き換えてください。
make -f Makefile -C asp-gr_peach_gcc-mbed\examples\led_hearts\
copy asp-gr_peach_gcc-mbed\examples\led_hearts\asp.bin E:\LED-heart|- LED-heart_EXE||- index.html（本体）||- main.js（electron のメイン）||- package.json||- （チップの画像ファイル一式）||- orizin.clip（画像ファイルの CLIP STUDIO 用ファイル）|- asp-gr_peach_gcc-mbed||- exsample|||-led_hearts★

|- exe.bat（make、書き込み用のバッチファイル）

サンプル

赤い LED を 200msec 周期に、緑の LED を 300msec 周期に、並行実行するプログラムです。赤、緑、黄色、消灯みたいな感じに光ると思います。
これと同じような動作をするプログラムを PARALLEL ブロックなしに作成すると、タスクのうれしさのがわかるかもしれません。

今後下記の機能追加を行いたい。
・

パネルの拡張機能の追加

・

プログラムの保存と読み込み・自走式ロボット用命令チップの追加 + ハードウェアの用意

・

UI の整備