micro:bitでプログラミング×STEM vol.6 しゃくとり虫ロボット
今回の「micro:bitでプログラミング×STEM」の授業では、micro:bitでしゃくとり虫のロボットを作りました。
これまではmicro:bit単体の機能(明るさセンサー、加速度センサーなど)を 利用してJavaScriptで制御することを続けてきましたが、今回はmicro:bitの外部にサーボモータを接続して、それを制御することに挑戦しました。
サーボモータは、単純に物体をグルグルと回転させるというよりも、指定した角度分だけ動かせるような物です。これを使ってごく簡単なロボットを作ってみようという狙いです。
今回のもう1つの重要な狙いは自らの手でオリジナルのロボットを作るということです。既製品を組み立てるのとは違い、ダンボールの切り方・曲げ方、クリップの曲げ方、サーボの取り付ける位置がロボットの動きに大きく左右します。サンプルの形通りに作ったところで、歩くこともままならないのです。
STEM教育において非常に重要なことは、完成度の高い作品を作り上げることではなく、課題に対しどのようにアプローチするのか、得られた結果を踏まえどのように対処するのかということです。
STEM教育で子供達が作った作品は、一見すると「がらくた」のように見えるかもしれません。それは子供自身の手で作り上げた証拠でもあり、試行錯誤した証拠でもあるのです。
重要なのは、その過程で何を考え実践したのかということです。ですから、作品を理解するには、作者である子供に意図を聞く必要があります。
今回の製作の過程で子供達が考え、試したことにいくつもおもしろい発想がありましたので、いくつか紹介します。
ある生徒は、しゃくとり虫のコード(プログラム)の中に、サーボを動作させる時間を指定する部分があり、しゃくとり虫を早く動かしたいという理由から、動作する時間を0.5秒から0.1秒に変更しました。
作りながらこのような発想を持つことは本当にすばらしいことです。そして、それを実践できる環境にあるのが、プログラミング×STEM教育です。
実際に動かしてみると、動作する時間が短すぎて、本来指定している角度の分だけサーボ回転させることができなくなり、想像していた「早く大股で動く」のとは違い、「早く小股で動く」ようになってしまいました。
ここから試行錯誤を繰り返し、一番良い動作時間、サーボの角度を探し出していくことになります。
またある生徒が考えたのは、しゃくとりの足が滑って前進できないことを解決するために、足にテープを輪にしたものを貼り付け、摩擦を大きくすることでした。これも実際にはテーブルと足がくっついてしまい、前進することができませんでしたが、非常にいいところに着目できたと思います。その後
状態をよく観察して試行錯誤することで、問題解決を目指していきます。
今回は、ソフトの部分であるコードを変更すること、ハードであるしゃくとり虫の本体を改良することの両面から問題を解決する方法を探りました。「答えのない問題」にどう対応するのか、非常にいい時間を過ごせたと思います。
今回のコード
input.onButtonPressed(Button.A, () =>{
pins.servoWritePin(AnalogPin.P0, 0);
basic.pause(500);
pins.servoWritePin(AnalogPin.P0, 180);
basic.pause(500);
})
準備したもの
・ダンボール
・セロハンテープ、ビニールテープ
・ハサミ、ペンチ
・micro:bit、電源モジュール(単四電池3本)
・ワニ口クリップ
・サーボモーター
・ペーパークリップ