子供向けプログラミング「micro:bit」の使い方(その4)!サーボモーターを動かしてみよう

  • list
  • このエントリーをはてなブックマークに追加
子供向けプログラミング「micro:bit」の使い方(その4)!サーボモーターを動かしてみよう

mb4-0-top

micro:bit』アプリを使って子供向けのプログラミングを体験していくこの連載企画、これまでスピーカーで音を出したり、NeoPixel(LED)を光らせたりとやってきましたが、今回は「サーボモーター」を動かしていきます。

 

 

サーボモーターを用意

 

サーボモーターを用意

サーボモーターを用意

 

 

サーボモーターとは、ロボットやおもちゃなどで良く使われる制御用のモーターのことで、信号を送ることで指定した位置や速度に追従させることが出来ます。

本記事では「SG90」というサーボモーターを使いました。アマゾンなどでも売っていて、数百円ほどで購入できます。

 

モーターが届いたら、3本のケーブルの先に付いているコネクタを切り落とし、「micro:bit」に接続するため「ワニ口クリップ」を付けてしまいましょう。

 

 

接続のしかた

 

接続のしかた

接続のしかた

 

 

黒いケーブルは「GND」に、赤いケーブルは「3V」に、黄色のケーブルは「0」に、それぞれ接続します。

 

 

サーボモーターを動かすために使うブロック

 

 

入出力端子ブロック

入出力端子ブロック

 

 

サーボモーターを動かすために使うブロックは、左側のメニューを展開した所にある、“◎”のような赤いアイコン(入出力端子)のところにあります。

 

ここで使うのは主に2つ、「デジタルで出力する」と「数値をマップする」です。

「最初だけ」ブロックに、「デジタルで出力する」ブロックを入れてみてください。それだけでサーボモーターが動くはずです。

 

ちなみに今回は「ずっと」ブロックを使います。削除せずに置いといてください。

 

 

「温度計」をプログラムする

 

 

温度を取得してみる

温度を取得してみる

 

 

さて、ただサーボモーターを動かすだけでは物足りないと思いますので、ここでは温度センサーから得られる数値を使って、「アナログ風の温度計」を作ってみましょう。

 

まず、温度センサーから得られる数値を確認するため、左側メニューの一番上“水色”のアイコン(基本)から「数を表示」ブロックと、上から2つ目“むらさき色”のアイコン(入力)から「温度(℃)」ブロックを持ってきて、「最初だけ」のブロックに入れましょう。

 

こうすることで、「micro:bit」を起動したとき、そしてリセットボタンを押したときに何度のデータを得たか、の確認をすることができます。あまり使い道のない「micro:bit」搭載のLEDですが、このようにデバッグ用に使うと便利です。

 

 

数値のマップを使う

数値のマップを使う

 

 

次に、「デジタルで出力する」ブロックをもう一つ出してきて、「ずっと」ブロックの中にセットします。そして、値「0」の部分を、「数値をマップする」ブロックと置き換えます。

この「数値をマップする」ブロックが超絶便利で、これを使うことで何も計算することなく、サーボモーターの針を指定した角度に動かすことができるのです。

 

 

数値のマップ(拡大)

数値のマップ(拡大)

 

 

「数値をマップする」の使い方

・元の下限 → 温度センサーから得られる数値のうち、想定する最低値を入れます「0℃」など

・元の上限 → 温度センサーから得られる数値のうち、想定する最高値を入れます「40℃」など

・結果の下限 → サーボモーターを動かす角度のうち、下限の角度を入れます「180度」など(※)

・結果の上限 → サーボモーターを動かす角度のうち、上限の角度を入れます「0度」など(※)

 

(※)設置するサーボモーター上下の向きによって値が逆転しますのでご注意。

 

 

アナログ風の温度計を制作

 

 

サーボモーターを埋め込んだ温度計の制作

サーボモーターを埋め込んだ温度計の制作

 

 

上記の写真は実際に小学生の息子がダンボールで作った「温度計」の箱です。

ダンボールに穴をあけて、サーボモーターを埋め込みました。

 

先ほどプログラムで書いた上限と下限の「温度」と「角度」を合わせて目盛りを描けば、完成です。

針の中心から扇状に目盛りを設置するのに苦労していましたが、なんとか完成しました。

 

ちなみに、温度センサーは「micro:bit」のオンボードに乗っているため、実際よりも若干高めの温度が得られます。そこらへんは「引き算」のブロックを使って、-2℃〜-4℃くらいで調整してあげるとピッタリになりますのでお試しください。

 

 

終わりに

 

今回制作した「アナログ風の温度計」は、冬休みの自由研究として小学生の息子が作ったものです。

子供に作らせるとき、プログラムが少し難しくなってくると「どこまでヒントを与えるか」が判断しにくいポイントになってきます。

 

使うブロック(今回は「デジタルで出力する」「数値をマップする」など)がどれか、という点だけを教えてあげて、あとはパズル感覚で組み合わせを試すように作らせてあげると良いと思います。

 

「このブロックはこんな機能だからここにこれを入れるんだよ。。」などと説明しても、その知識は「micro:bit」を動かすためだけに必要な汎用性のない知識であるため、覚えたとしてもあまり意味がありません。

とにかくプログラムは簡単で、完成したら動くんだという達成感と「自己効力感」を育ててあげるといいかな、と思います。

 

 

さて、次回はいよいよ最終回『micro:bit』アプリと連携するプログラムを作ってみよう!です。お楽しみに!

 

 

  • list
  • このエントリーをはてなブックマークに追加