【embotでプログラミングを学ぼう⑩】数字を計算して使おう!:課題編
目次
- 【embotレベル】4
- 【プログラムの技】演算を使う
- 【主に使うプログラム】えん数(+、-、×、÷の計算)
解説編で知った新しいプログラムの技を使って、次の課題に挑戦してみましょう。
タブレットで手の向きを決めるプログラムをパワーアップ!
【embotでプログラミングを学ぼう⑤ 】の課題編では、「タブレットを傾けてembotの手の向きをコントロール」するプログラムを作成しました。このときは、タブレットの「ジャイロY」の値をそのままサーボの角度に使ったので、動く範囲や向きには制限がありました。
→参照:時刻や位置をプログラムの材料にする:課題編【embotでプログラミングを学ぼう⑤】
今回は、もっと思い通りに動かせるようにパワーアップさせます。画面を右側に傾けると手が0°に、左に傾けると180°に向く仕組みにしましょう。「ジャイロY」の値とサーボの角度の関係を次の図でイメージしてください。
「ジャイロY」の値をサーボの角度で使いたい数字に変身させるために演算をします。どんな演算をしたらよいか考えて、プログラムを作成してください。
プログラムの解説とポイント
まずは、演算の解説をします。次の図の通り、「ジャイロY」の値から90を引いて、その数に-1をかけると、使いたい数字に変身させられます。
これを、ひとつの式で書くと「(ジャイロYの値 -90)× -1」となります。中学生にならないと、マイナスの数字や、「-1」をかけるという計算は習わないので、式や計算の意味がわからなくても構いません。
この演算を使ってembotでプログラムを作ります。フローチャートで[start]、[function]、[end]ブロッックを1個つず置き、線でつないだら[function]ブロックを開いてください。
[function]のプログラムを作ります。まず、[+へん数]ボタンで2個変数を作ります。次に[へん数]カテゴリーの[○に○をいれる]ブロックを2個つなぎ、[えん算]カテゴリーの[○+○]ブロックを2個置いてください。
次の図を参考に、「へん数1」に「ジャイロY-90」、「へん数2」に「へん数1×-1」を入れてください。これで、「へん数2」に使いたい数字が入りました。
[モーター]カテゴリーの[サーボ1の角度を○にする]ブロックと[サーボ2の角度を○にする]ブロックを1個ずつつなぎ、角度の指定に[へん数2]を入れます。
フローチャートに戻って、タブレットを左右に傾けてからプログラムを実行してみましょう。例えば「ジャイロY」の値が-40のときは、「-40(ジャイロY)から-90を引いて-130」「-130に-1をかけて130」という演算が行われて、手の角度は130°になります。
実際に動かしている動画をご覧ください。タブレットを倒す方向と手の向かう方向が感覚的に同じ側になるので、コントロールしている実感が持てます。
まとめ
材料になる数字を演算で変身させると、角度や秒数などの指定に使ったり、条件を作るために使ったりすることができます。使いたい数字に変身させるためにはどんな計算をしたらよいか見つけるのも面白いはず。ぜひ挑戦してみてください。