●リモコンを使う(2)

前回のプログラムに少し追加してLEDをON/OFFしてみます。「Blockly@rduino」で"ms06"を開いて"ms07"で名前を付けて保存します。

"1"ボタンでON、"2"ボタンでOFFです。
「受信データ」をシリアル出力していた部分を「もし」ブロックに置き換えて、「受信データ」が"12"("1"ボタンが押された)ならLEDをON、「受信データ」が"24"("2"ボタンが押された)ならLEDをOFFします。

●ヒント
・「もし」ブロックの歯車印をクリックして「それ以外でもし」を「もし」の下に追加します。
・「もし」の条件は、"「受信データ」 = 12"(12はリモコン1ボタンの信号データ)のようになります。
プログラム例

microsaurus_tutorial_visual_7-1

うまくいきましたら次はリモコンでロボットの歩行をコントロールしてみます。"1"ボタンで前進、"2"ボタンでストップです。現状のプログラムに以前作ったサーボのプログラム部分(ms05-1)を足していきます。LED ON/OFFのブロックを開いている状態で「Load project」ボタンを押して"ms05-1"を選んで開き、ブロックを置き換えるかどうかと聞かれたら「キャンセル」ボタンを押します。
不要な(重複した)ブロックを捨てながら組み立てていきます。

microsaurus_tutorial_visual_7-2

なお、リモコンでサーボの周期動作をさせる場合にはLEDのON/OFFのときと同じやり方をすると失敗します。リモコン信号受信の「もし」の中にサーボの動作ブロックを入れてしまうと、1周期動作して終わりになってしまうからです。この対策として、「action」という変数を使って各動作に数値を割り当て、サーボの動作ブロックにはリモコンの受信に関係なく毎回くるようにしています。

●練習問題

前進、後退、右旋回、左旋回、停止をリモコンボタンに割り当ててコントロールできるようにしてください。
ヒント:リモコンボタンのデータコードは"ms06"を実行して確認できます。
参考:各動作への割り当て
 action 停止:0 前進:1 後退:2 左旋回:3 右旋回:4
 リモコンボタン 停止:5 前進:2 後退:8 左旋回:1 右旋回:3 音声:4 LED ON:7 LED OFF :9

microsaurus_tutorial_visual_7-3

歩行のブロックは右クリックで横長表示にしています。
"ms07"で保存します。

<= マイクロサウルス チュートリアル ビジュアル版(6)
チュートリアルベース
マイクロサウルス チュートリアル ビジュアル版(8) =>