コインを振り分ける貯金箱を作ろう!
できること:10円と100円を区別して、異なるエリアに振り分ける仕組みができる(プログラミング編)
用意するもの
- パソコン
- AIプログラミングで動くものづくりをはじめようキット × 1セット
- 単4電池 × 3本
- webカメラ × 1台
- 工作した貯金箱
※AIプログラミングで動くものづくりをはじめようキットの内容物
※貯金箱の作り方は、前のページを参照してください。
プログラミングは、4ステップで作ります。
- サーボモーターの調整
- ウェブカメラの調整
- Teachable Machineでモデル作成
- 全体のプログラミング
サーボモーターの調整
サーボモーターって?
サーボモーターは、指定した角度の向きに動かすことができるパーツです。
サーボモーターと角度は、このようになっています。
コイン振り分け貯金箱では、コイン受け皿をサーボモーターで動かします。
今回は、受け皿が水平の状態(初期位置)を90度に設定してプログラミングを行います。
サーボモーターの接続
まずはサーボモーターを動かすための準備を行いましょう。
サーボモーターはワークショップモジュールにつなげて使います。
つなげることができる場所は、こちら2箇所です。今回は、左側に接続しましょう。
コードの向きに注意!
サーボモーターのコードの色とシールの色が合うように接続しましょう。
電池を入れる
サーボモーターを動かすために、ワークショップモジュールに電池を入れましょう。
モジュールの下の方にスイッチがあります。スライドしてスイッチ横のLEDが赤く点灯したらOKです。
注意!
以降は、ワークショップモジュールのスイッチをONにしたままで作業してください。
スイッチONになっていないとサーボモーターは動きません。
サーボモーター初期位置の設定(Scratch)
今回は、初期位置(受け皿が水平な状態)を90度に設定します。
受け皿をサーボモーターから取り外す
一度、受け皿(サーボホーン)をサーボモーターから取り外して、写真の状態にしてください。
プログラミング環境の確認
こちら準備できているかチェックしてから、次に進みましょう- Scratchエディタに「micro:bit more」ブロックが追加されている →ブロック追加方法
- micro:bitがscratchと接続している →チェック方法
初期位置を設定するプログラムを作る
Scratchエディタを開き、「Aボタンを押したらサーボモーターを90度にする」プログラムを作りましょう。
「micro:bit more」ブロックを使います。ピン番号は「0」のままでOKです。※「サーボモーターの接続」で、サーボモーターをワークショップモジュール右側に接続した場合はピン番号を「8」にしてください。
受け皿を再度取り付ける
サーボモーターを90度にした状態で、再度受け皿(サーボホーン)をサーボモーターに取り付けます。
ポイント
受け皿が少し傾いてると感じたら、サーボモーターの角度「90」を「85」や「95」など、なるべく受け皿が水平になるように数字を調整してみましょう。
以上で、サーボモーターの初期位置の設定は終りです!
コインを振り分ける時の角度を決める(Scratch)
10円玉の場合は左側のペットボトルに、100円玉の場合は右側のペットボトルにコインが落ちるようサーボモーター(受け皿)を動かします。
ちょうどよいサーボモーターの角度を調べましょう。
試してみよう
まず、このプログラムで受け皿に置いたコインを振り分けることができるか確認しましょう。
micro:bitを左に傾けたら左側のペットボトルに、右に傾けたら右のペットボトルにコインが落ちたらOKです。
上手に振り分けられない場合は…
ペットボトルに落ちない場合は、「60」「120」の数字を調整しましょう。
サーボモーターの個体差や、受け皿のサイズによって異なります。何回か実験して、ちょうどよい数字を見つけましょう!
以上でサーボモーターの調整は終わりです!
ウェブカメラの調整
受け皿の中身を撮影できるように貯金箱にウェブカメラを取り付けます。
受け皿の真上にウェブカメラを設置
ウェブカメラをパソコン/タブレットに接続して、カメラレンズが受け皿を向くように取り付けます。
ウェブカメラの映像をチェック
Scratchエディタで、拡張機能「TM2Scratch」を追加するとステージにカメラ映像が表示されます。
正確にコインを振り分けるためには、受け皿全体が映ることがとても大切です。全体が映るようにカメラの画角を調整しましょう。
(「TM2Scratch」の追加方法はTeachable Machineを使ってみるを参照)
こんなときは
ウェブカメラの性能によっては、カメラと受け皿の距離が近すぎて全体を映すことができない場合があります。
その場合は、工作で残った端材などを追加で貼り付けてカメラ位置を調整しましょう。
逆に、遠すぎて受け皿が小さく映る場合は、壁を切ってカメラと受け皿の距離を短くしましょう。
以上で、カメラの取り付けは終了です!
Teachable Machineでモデルを作る
今回は、こちら3パターンの受け皿の画像を見分ける画像認識モデルを作ります。
- ①10円玉がのっている画像
- ②100円玉がのっている画像
- ③なにものっていない画像
モデルの作り方詳細はこちらを参考にしてください。
Teachable Machineにアクセス、「使ってみる」をクリック
「画像プロジェクト」をクリック
見分けたい3パターンの画像を用意します
①のときは「10円」、②のときは「100円」、③のときは「白」と出力します
画像サンプルのポイント- 10円、100円の画像サンプル
いろいろな位置にコインがある画像、コインのオモテウラ両方の画像を用意した方が正確にコインを振り分けることができます。 - 白の画像サンプル
水平だけではなく、受け皿が左右に傾いている場合の画像も用意しましょう。
- 10円、100円の画像サンプル
モデルを作成&アップロードし、「copy」をクリックしてモデルURLを取得します
次はいよいよ、全体のプログラミングです!
全体のプログラミング(Scratch)
改めてScratchエディタに戻って、プログラムを完成させましょう。
「画像分類モデルURL」ブロックを追加
先ほど取得したモデルURLを「画像分類モデルURL」ブロックに入力します。
「白」の時は受け皿を初期位置(水平)に、「10円」の時は左に、「100円」の時は右に傾けるプログラムを作りましょう。
サーボモーターの各角度は、人によって多少異なります。サーボモーターの個体差や受け皿のサイズ、コイン容器(ペットボトル)のサイズによって調整が必要です。実際に試してみながら、ちょうどよい角度を探しましょう。
以上で、完成です!