こんにちは、ナチュロボです。マインドストーム、5記事目でございます。前回の記事では、無事にモーター+無線での動作をさせることに成功しました。
今回の記事では、それをちょっといじって、スピードを調整したり、直線+回転を組み合わせてぐるっと戻ってくるような動作をやってみます。内容は、引き続き本の「4.motion」の部分です。それでは、どうぞ~。
スピード変化を実感してみる
前回同様、緑色のモーターブロックを使います。
左下の記号が変わっていますが、これは、「1」と書かれた秒数のところの分、動作するという意味のようですね。そして、スピードは、100(最大値)を入力!
矢印の部分の数値は「0」なので、うまくいけば、まっすぐ、高速に進んでくれるはずです。では、動作の動画を以下でどうぞ!
これまでとは違う、スピード・モーター音、いずれも最大で進んでくれました!小さい部屋で遊んでいるので、秒数が短くしていますのは、あしからず…。
では、このスピードの部分が「0」になるとどうなるのか?も実験してみました。以下の動画です。
う~ん、予想どおり、指令をおくっても、まったく動作することはございませんね。
これはこれで、予定通りの動きをする、ということを確認するという意味では重要でございました。
直進+180度回転
ではでは続いて、スピードについても学習したところで、次は直線+回転動作をつなげて実施してみます。
緑ブロックの左部分が直進のためのブロック、右側のブロックが回転のためのブロックです。直進ブロックでは、スピード50にて、タイヤを6.8回転させます。
回転ブロックでは、スピード40で、425度回転です。425はタイヤの回転角度を示しているようですが、この数値をいれることで、うまいこと180度ターンをしてくれるようです。それでは、このプログラムを2回動作させてみた動画です。
おお、個人的最長距離直線動作、加えてUターン、という動作を2回実施することで、もとの場所に戻ってきてくれました。
では続いて、この動作にループブロックを加えて、四角形を描くようなプログラムにしてみます。
(直線+90度回転動作)を4回繰り返し、四角形を描く
さきほどのブロックのパラメータを少し変更して、そのブロックを挟むように、オレンジ色のループブロックを配置します。ループブロックの右下に「4」という数値がありますが、この数値の回数だけ、中の動作を繰り返す、という意味になりますね。
右にちゃんとしっかりまわるのかどうか不安でしたが、動作してみた結果がこちらです。
不安的中(笑)。直線動作+回転動作を合計4回実施する、というのはうまく実施できていますが、きれいな正方形を描くような動作になってはいませんでした。
どうやら、この数値でうまく90度回転できるかどうかは床材の状態にもよるようで、調整が必要なようですね。加えて、カーペットがやや凸凹している関係上、毎回の回転角度も結構違っています汗。
つまり、正確な4角形を描くには、その地形に応じたパラメータ調整をするか、センサを使ったフィードバック等が必要になりそうですね。
今日の感想
今回は、単純動作から一歩進展して、直線動作、回転動作を連続して行いました。しかし、結果的には床材の素材や凸凹に左右されて、きれいな四角形を描くには至りませんでした。
まさに、こういう課題が実験後にわかって、ではどうしたらよいか、を考えるのもプログラミングの醍醐味ですね!うまくいかないときばっかりだと苦しいですが、考えて、うまくいって、の成功体験を積み重ねることが大事だな、と思います。
では次回は、「4.motion」の最後の部分、リフトアームの実験を実施してみますよ~。
それでは、また!
ナチュロボより