プログラムレポート
センサーで感知!ミニロボプログラミング 講座の様子(2022年8月1日開催)
公開日:2022年08月08日
-
しごと・ものづくり講座
8月1日は株式会社アイエイアイ様のご協力で「ミニロボプログラミング」の講座を開催しました。
ミニロボについてはこちら!
ミニロボは株式会社アイエイアイの石田徹社長が「静岡の子供達にものづくりに興味を持ってほしい」「理科離れを防ぎたい」と感じて、開発されたロボットです。
組み立てにはドライバー、ニッパー、ピンセットなどの道具を使用し、難しい部分もありますが、完成すると「できた!!」という達成感を感じることができます。
また、機械の仕組みを理解し、「もっと速く走らせたい」「シュート力を強くしたい」などの改造が可能で、大会も開催されています。
プログラムって何でしょう?
プログラムを始める前に、アイエイアイの先生から産業用ロボットのお話がありました。
産業用ロボットとは、人間の代わりに工場での組み立てや検品などの作業を行う機械装置です。
アイエイアイでは色々な産業用ロボットを作っています。
皆さんの生活の中にも、色々なプログラムで動く仕組みがたくさんありますね。
「指示した温度で指示した量だけお風呂にお湯を止めるプログラム」
「チャンネルの番号を押したら、テレビの電源を入れてそのチャンネルに切り替えるプログラム」など家の中はプログラムだらけです。
お買い物をする時のレジも、機械のプログラムが入ってくることで、どんどん進化してきました。
「商品を入れたら合計金額が出る」って、一体どういうプログラムなんでしょうね?
ここで、「歯磨き」のことを思い出してみましょう。
「歯磨き」ひとつとっても、色々な動作や判断がありますね。
これらを一度全部書き出してみます。
そして順番に並べてみます。
歯磨きのプログラムを上手に動かすためには、行動の順番や、何をどれだけ繰り返すかや、どこまでやったら次の動作にするかなど、あらかじめ決めておかなくてはいけません。
この様に、順番に動かす「順次処理」、ある条件によって実行する内容を変かえる「分岐処理」、ある処理を繰り返し実行する「反復処理」の3つがプログラムの基本になっています。
micro:bitでミニロボを動かそう!
さて、今回はいつものミニロボと少し違う、ミニロボが登場しました。
ミニロボの前の部分に何やら丸い筒が2つ、その後ろに何かをさしこむスリットがついています。
そうです!
今回は小さなコンピュータ「micro:bit」に入れたプログラムでミニロボを制御してみようというわけです。
まずはmicro:bitの基本のプログラムから学んでいきましょう。
まず初めに、ボタンを使ったプログラムです。
micro:bitにはAとBの2つのボタンがついています。
Aボタンを押したらLEDを点灯させて、Bボタンを押したら消えるようにプログラムを作りました。
簡単に出来ましたね。
次に「加速度センサー」を使って、micro:bitを「振る」とLEDを点灯させて、「表向きにして置く」と消えるようにしました。
これも、さっきはAボタン、Bボタンだったきっかけが、「加速度センサー」に置き換わっただけなので、簡単に出来ましたね。
今度は「磁力センサー」を使ってみましょう。
試しに「磁力センサーが0μT(マイクロテスラ)よりも大きな磁力を感知したら、LEDを点灯させる」プログラムを作りました。
すると、LEDはずっと光ったままになってしまいました。
これは地球という大きな磁石の影響を常に受けているからなんですね。
試しに感知する磁力の数値を大きくしてみると、LEDは消えて、磁石を近づけたときに光るようになりました。
近付ける距離によって、感知する磁石の力は変化するので、近づける距離によってLEDの表示を変えるプログラムも作ってみました。
もし、指定した数値より大きかったら、小さかったらなど「数値の大きさ」という条件によって、実行する内容を変える。これが「分岐処理」です。
今度は、磁力を使ってミニロボを走らせてみましょう。
ミニロボに、micro:bitをセットして、micro:bitに磁石を近づけてみましょう。
今回はサッカーゴールの上のところに磁石がつけてあるので、ゴールを近づけて試しました。
センサーが感知する磁力が、設定した数値を超えると、ミニロボが走り出しました。
ミニロボの前のところに磁石を乗せてしまうと、ずっと走るようになりました。
距離を測る時は「超音波センサー」を使います。
今回のミニロボの前の部分についている丸い筒が超音波センサーです。
一方の筒から超音波を出して、物にぶつかって跳ね返ってきた超音波をもう一方の筒で受け止めます。
この時間の差を測ることで、物との距離を測っています。
試しに、超音波センサーの前に物がある時に走るプログラムを作ってみました。
超音波センサーが、近くに物があることを感知すると前に進むプログラムなので、すぐに自分の手が邪魔になってしまいますね。
では今度は、反対に超音波センサーを上手く使って、物にぶつからずに走るミニロボを作ってみましょう!
どうやったらできるでしょうか?
ミニロボには、とにかく「前進」するようにプログラムをしておきます。
さらに、超音波センサーを使った条件で「もし物が近くになったらカーブをする」というように「分岐」させることで、壁にぶつからずに走るミニロボが完成しました。
お掃除ロボットも、こんな風にしてぶつからないでお掃除しているのかな?
最後に、今まで習得した技術を全部使って、ミニロボを動かしてゴールにサッカーボールパッドをシュートさせてみましょう!
ミニロボは壁の前にあるサッカーボールパッドをキャッチして、壁の前でカーブをします。
カーブをしたら磁力が出ているゴールに進んで行き、シュートをさせて止まらせます。
果たして、どんなプログラムを作れば上手くいくんでしょうか。
カーブさせる距離はどのくらいが良いのか、どのくらいゴールに近づいて磁力の数値が増えたらシュートするのがいいのか。
難しいところは先生も協力して考えてくれました。
プログラムを作ってみて、何度も試して、失敗をして、プログラムを直してを繰り返します。
何度かのチャレンジを経て、ついに成功しました!
成功した人には先生が最後の課題を用意してくれました。
「壁づたいにミニロボを走らせて、ぐるっと回ってシュートを決める」プログラムです。
時間いっぱい考えながらチャレンジしていました。
惜しい!でも何度も繰り返してプログラムを調節することがとても大切だと分かりますね。
最後に先生がプログラムを作る時の考え方を教えてくれました。
壁との距離を一定に保つには、壁から近い時は離れるように、遠い時は近づくように、そうでないときはそのままを維持するように、3つの「分岐」が必要なんですね。
自分がミニロボだったら、どういう動きをしたらいいか、そのためには何を感知して、どう動けばいいか、体を使って考えることも大切ですね。
その他、余った時間で色々なプログラムを作ってミニロボを動かしてみました。
プログラムの基本を学びながら、ミニロボを動かす新鮮な体験でしたね!