なるべく安くて本格的なロボットプログラミング教材を作ってみた(プログラミング編)

Pocket

前回作成したムシロボットを実際にプログラミングして動かしてみます。ちなみにIchigoJam操作の基礎についてはやった事がある前提ですすめます。もし自信がなければ、PCN原秀一さんが執筆されたマイナビニュースの「プログラミング一年生」の第6回ぐらいまでをやってみてください。プログラム自体は難しく無いので、LEDをチカチカさせた事があるぐらいでオッケーです。

マイナビニュース【連載】プログラミングいちねんせい!~IchigoJamでロボットを動かそう~

それでは大まかな流れは以下の様になります。

  • IchigoJamにモニタ、電源、キーボードをつなぐ
  • プログラムを作る
  • 大まかな動作を確認してプログラムを保存する
  • モニタ、電源、キーボードを外してロボットを動かす

少しステップが多いですが、難しくは無いので一つずつ確認していきましょう。

IchigoJamにモニタ、電源、キーボードをつなぐ

IchigoJamに対してプログラミングを行うときの一般的な接続です。MaypleSyrupが乗っかっていますが、全く気にせず接続してください。注意点は一つだけ。IchigoJamを電源に接続した場合は、電池ボックスのスイッチを必ずオフにしてください。電池ボックスからMaypleSyrup経由で電源を供給しつつ、IchigoJamを電源につないでスイッチを入れると、最悪IchigoJamが壊れてしまいます。電池ボックスから電源供給されているかは、MaypleSyrupのLEDからも確認できます。

電源供給されている時


電池供給がされていない時

もし不安であれば、IchigoJamを電源につながず、MypleSyrupと電池ボックスだけで電源供給しながらプログラミングすることも可能ですが、その場合電池の消耗が若干激しくなるので気をつけてください。あと、電池が少なくなってくるとIchigoJamでプログラミングはできるのに、ムシロボットは動かないという事が発生します。これはIchigoJamを動かす為に必要な電圧が、モーターを動かす為に必要な電圧に比べて少ないために、電池の電圧低下によってIchigoJamだけ動くという状態が発生する為です。故障と誤認しやすいので注意してください。動きがおかしいなと思ったら一度電池を替えてみてください。

プログラムを作る

さあ、プログラミングをしましょう。今ムシロボットの両足のモーターはMaypleSyrupにつながっています。MaypleSyrupにはモータードライバというチップが搭載されていて、IchigoJamから命令を出す事でそれぞれのモーターを正回転・逆回転させる事ができます。モーターが正回転すると足が前に動き、逆回転すると足が後ろに動きます。それぞれの対応コマンドは


OUT 1,1 (右足を前に)
OUT 2,1 (右足を後ろに)
OUT 5,1 (左足を前に)
OUT 6,1 (左足を後ろに)

となります。それぞれの足を止める時には、カンマの後ろの数字を0にします。例えば

OUT 1,0 (右足を止める)

となります。すべての足を止める時には

OUT 0

で一斉に動いている足が止まります。それではまずは1秒間前に進むプログラムを作ってみましょう。


10 OUT1,1
20 OUT5,1
30 WAIT60
40 OUT0

このプログラムの意味は、右足と左足を前に動かし(正回転させて)、1秒後に止めるというものです。それぞれの行が


10 OUT 1,1 (右足を前に)
20 OUT 5,1 (左足を前に)
30 WAIT 60 (1秒=60ミリ秒待つ)
40 OUT 0 (両足を止める)

 

大まかな動作を確認してプログラムを保存する

つくったプログラムの大まかな動作を確認する為に実行してみましょう。

RUN

を入力して最後にエンターを打つとプログラムが実行されます。この時ロボットをすこし持つか、お腹の下にものをおいて足を少しうかせておいてください。結構勢い良く動くので、そのまま動かすと大変な事になります。

さあ、両足が1秒間動きましたか?あとは動かし方を自分の中で想像しながらプログラムを作っていきます。右足だけ動かすとどうなるだろう?左足だけ動かすとどうなるだろう?足を動かした後は適切にWAITを入れて動かす時間を調整してください。WAITコマンドはミリ秒単位で指定できます。60だと1秒、180だと3秒になります。

作ったプログラムをIchigoJamに保存します。保存する場所は0番という領域です。コマンドは

SAVE 0

となります。IchigoJamは標準で3つのプログラムを保存できますが、ロボットを実行する場合はかならず0番に保存してください。0番は特別な保存場所で、IchigoJamにモニタやキーボードをつながない状態で、RUNコマンドを打たずにプログラムを実行する事ができる領域です。

 

モニタ、電源、キーボードを外してロボットを動かす

プログラムを保存するコマンドが成功したら、IchigoJamの電源を切ります。つづいてIchigoJamにつながっている電源コード、キーボード、モニターのコードをすべて外します。ロボットがすべてのケーブルから解き放たれましたね。次に電池ボックスのスイッチをオンにします。
MaypleSyrupのLEDが点灯したら電源供給の準備ができました。

さあ実行してみましょう。さっそくIchigoJamの電源を入れるのですが、このときIchigoJam本体のタクトスイッチを押しながら電源を入れてください。このタクトスイッチを押した状態で電源を入れる事で、0番に保存したプログラムが自動で実行されます。電源を入れてからプログラムが実行されるまでほんの少し時間があるので、その間に手を離してください。

さあ、思い通りに動いたでしょうか?動く距離や曲がる角度、最初は上手く動かないかもしれません。何が違うかを考えて、もう一度モニタやキーボードをつないでIchigoJamのプログラムを修正してください。モニタやキーボードをつないだら


LOAD 0
LIST

と入力すると、0番に保存したプログラムを確認する事ができます。なんども繰り返して思い通りにロボットを動かす事で、どんどん複雑な動きをさせる事ができます。また、このロボットを改造してセンサーをつけることで、本当の虫のように自立的にロボットを動かす事ができます。

 

子供と楽しむためのヒント

このムシロボットは有線リモコンで動いていたものをIchigoJamから制御しているだけですが、非常にコミカルに動くので子供達は喜ぶのですが、思い通りに動かすためには色々な命令を書く必要があり、比較的長いプログラムを書くことになっていきます。小学校低学年だと長いプログラムは混乱しやすくなってくるので、あまり複雑なゴールを目標にしないほうが良いかなと思います。4年生ぐらいから少し長め(20行程度)のプログラムを上手く扱える子が増えてくるという感覚です。もちろん教え方次第なところもあって、動きを大きな紙の上に描いておいてい、それぞれの命令をそこに書き込んだ上でプログラムに落とし込んでいったりすると長いプログラムを理解しやすくなります。ビジュアルプログラミングを事前に紙の上(アンプラグド)でやるわけですね。このあたりの教え方はカード化したりだとか、まだまだ工夫の余地があります。

また、ロボットと言ったらやっぱり自動制御なんじゃないかというのがみんな頭に浮かぶ改造です。当然そういった改造も可能で、実際にやっている人もいらっしゃるようです。ただし、ハードルは高い。詳しく解説したサイトは今のところありません。じゃあ私がやれば良いのですが・・・少々お待ち下さい。なるべく簡単にできる方法を試行錯誤中です。そんなの待てないという方のためのヒントとしては・・・またもや登場!マイナビニュースの「プログラミング一年生」の第13回からの連載がヒントになります。

プログラミングいちねんせい! ~IchigoJamでロボットを動かそう~

13 「paprika」を改造して「目」をつけよう(前編)
14 「paprika」を改造して「目」をつけよう(後編)

Paprikaを対象に書かれていますが、この虫ロボットでも基本的なところは同じです。

本当にこの記事は良記事。とんでもない労力を注ぎ込んでらっしゃると思うのですが、報酬的に報われているのか心配になるレベルです。きっと報われて無いんだと思うのですが、そのあたりの問題を次のエントリーにしたいと思います。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です