体の動きでロボットを動かそう!

こんにちは! 宗村です。 48回目の神楽坂プログラミング教室は「体の動きでロボットを動かそう!」というタイトルで実施しました。

どんなロボットかというと、ジャンケンができるロボットハンドです。指の形をセンサーで読み取って同じジャンケンの手を再現します。

ジャンケンロボット

このロボットの構造を簡単に説明すると、指にはひもがつけられていて、ひもを引っ張ることで指が曲がります。 ジャンケンをする上では、人差し指・中指グループと、親指・薬指・小指グループ、2つのグループを動かせば、グー・チョキ・パーの手が作れてしまいます。 ただ、今回はモーターの負荷を軽くするためと、親指を曲げるタイミングを調整可能にするために、親指グループ 人差し指・中指グループ 薬指・小指グループの3つに分けてそれぞれモーターで引っ張る構造にしました。

後は指の形を判定するために曲げセンサーを指に装着しています。

switch-education.com

micro:bitと指センサー
モーターが3つなので、センサーも3つあるとより手の情報が詳しく伝えられますが、3つ用意するのはお財布にやさしくないので2つだけ使いました。

では、最後にワークショップで行ったことを簡単にご紹介します。

今日参加してくれたのは何度もワークショップに参加してくれて、モーターやセンサーの使い方に慣れている子が多かったですが、 念のためみんなでサーボモーターの使い方からおさらい。みんな言われなくても使いこなしちゃってましたね。

サーボモーターの使い方

次は今回のもう一つの主役、センサーの使い方を勉強します。

センサーを曲げるとどうなるかな?

センサーのついたmicro:bitとロボット側のmicro:bitは無線通信を行いますので、続いて無線通信のやり方も勉強します。といっても、今日の参加者さんは無線通信ももう過去のワークショップで体験しているのでこれも楽々。

センサー・モーター・無線通信の3つの要素がそろったので、まずはセンサー1つ、モーター1つを用意してそれぞれを連動する方法を考えてもらいます。 これはさすがにちょっと苦戦するかな?と思っていたのですが、みんなきちんと自分で考えてプログラムを作成していました。閾値を設けてセンサーが一定値以上だったらサーボモーターを動かしたり、センサーの角度に応じてサーボモーターの角度が細かく変化するようにしてみたり。思い思いに無事プログラムが完成していました。

最後にいよいよ、センサーとモーターの数を増やしてロボットを動かします。数を増やしただけなので、一見なんてことはないような気もしますが、プログラミングに慣れていない人はこの辺もそこそこ難しいんですよね。 同じ要素を組み合わせて使うこのポイントを今回の最後の山場として設定していましたが、これも難なく突破されてしまいとても嬉しかったです。

プログラムが完成したら後はみんなセンサーの値などを調整して指を自由に動かしてくれていました。

一つ僕のミスがありまして、子供の手の小ささを見誤っていました。センサーの取り付けパーツのサイズを大人より一回り小さいくらいかな?と思って設計していたんですが、実際に取り付けようとしたら指のサイズが想定より小さかった…  普段見ているはずなのに…

子供の手だとちょっと動作が安定しない所がありましたが、ギリギリ無事に動いてくれました。

youtu.be

センサーの使いの勉強中にシリアル通信についていろいろと質問してくれる子がいたので、9月のワークショップはシリアル通信をメインのテーマにして実施してみようかな。

それでは次回もよろしくおねがいします~。

神楽坂プログラミング教室についてはこちらです。