中学 3 年生

モータの異常検知システムをつくってみた

中学 2 年生

micro:bit によるモータのトルク制御（プログラミングによる電気の制御）

単元：中学校 2 年生 電流（電流・電圧と抵抗、電気とそのエネルギー）
中学校 3 年生 科学技術と人間（エネルギーと物質）
目標：中学校 2 年生：回路をつくり，回路の電流や電圧を測定する実験を行い，回路の各点を流れる電流や各部に加わる電圧についての規則性を見いだして理解することができる。モータを回転させる実験を行い，モータが駆動する対象に応じて電力に違いがあることを見いだして理解することができる。
中学校 3 年生：様々なエネルギーとその変換に関する観察，実験などを通して，日常 生活や社会では様々なエネルギーの変換を利用していることを理解することができる。
＜材料＞
・回路カードセット（プラダン付き回路カード、電池、豆電球、モータ、導通部品）
・プログラム部品（micro:bit、電磁リレー（TFabworks 製プログラム制御スイッチ）・ワニ口：2 本
・電流・電圧を測定するテスター（電流・電圧プチメーター（ナリカ）など）
時間

生徒の学習活動

指導上の留意点

導入身の回りでモータにかかる力を利用したり・利用した方が良さそうな機械はなんだろう？
力を調べて役立たせてい生徒があげた事例に対して実社会の機械を紹介する。

る機械や、調べないと危な◇事例１：電動アシスト自転車をこぐとき、ペダルを踏む「力」を感じてモータを動かしアシストする。
◇事例２：手術ロボットを医者が操作するとき、医者の手にロボットハンドからの力が返ってこないとどんなことが起こりそうか？
◇事例３：宇宙でロボットハンドを操縦するとき、手に力が返ってこないとどんなことが起こりそうか？

い機械が身の回りに数多くあることを理解する。

整理すると、、、・自動車、自転車、エレベーター、エスカレーターなど移動を助ける機械
・手術用のロボットハンド、宇宙、災害（原発含む）、深海など人が行けない場所（極限環境）での作業を行う機械

1

テーマを伝える。
「モータで動く機械を安全に制御するためにどうすればよいだろう？」

モータにかかる力（負荷）をどのように調べたらよいのだろう？
・人間の体のしくみと機械とを置き換えながら考えるよう促す。
人間がどのように力を感「人間はどうやって力加減をしているのだろう？」

じているか再確認する。

「力を感じられなかったら、上手に生卵を割ることはできるのか？」
人間は手でものを動かすとき、脳が手の筋肉に対して、ものを動かすのに必要な力を出すように指令をだします。力加減はものが手に与える力を感じ取って、それを基に行います。

【豆知識】
離れた場所にあるロボットハンドなどの機器を制御することを「マスタ・スレーブ制御」といいます。
特に離れた場所の駆動部にかかる「力」を操縦元に返しながら制御する方式を「バイラテラル制御」と呼び、ロボットハンドを動かすモータなどの駆動部品にかかる負荷を操縦者に返したり、また無理な力が対象物にかからないように負荷を制御する代表的な制御方法としてしられています。

「モータの回転を指で止める！その力をどのように調べたらよいのモータに力がかかったとだろう？」

きの変化方法を、これまでヒント：モータに力がかかると、何かが時間的に変化する。の理科の知識をもとにいくつか方法を考え出す。

想定される方法：


回転がかわる！（位置の変化）→軸が回転する角度の変化を見れば良い！
・【実社会で使われているもの】ロータリーエンコーダ
・（原理）一定周期で回るスリット光のパターンの変化を読み取る・（課題）スリットの感覚が荒いと荒くしか読めない。読み取る光受光素子の反応速度も重要

2・・・

【実社会で使われている者】カメラで測定（原理）画像の時間的な変化（課題）カメラで撮影するタイミングが重要。ハイスピードカメラでも 1 秒間に千枚程度。さらに撮った画像から位置変化を調べる画像処理が必要で処理に時間とマシンパワーが必要。
軸に力がかかってるはず！→軸にかかる力（トルク）を読めばよいのでは？
・【実社会で使われているもの】歪ゲージ・（原理）金属が伸ばされたり押しつぶされることによる抵抗値の変化
・（課題）軸からゲージが剥がれないように接着しないといけない。微弱なノイズに負けないようにすることが重要。
モータが熱くなるのでは？→熱を測ればよい。力に比例して熱はあがるのだろう
か？熱はどうして発生するのだろう？（軸の摩擦熱、コイルから発生するジュール熱）
磁力の変化も起こるのでは？
電気的な変化が起こるのでは？→今回の実験につながります。

「（電気が変化するとすれば」電流、電圧、抵抗のどれがどのように変化するのだろう？」

展開
実験①:

モータの回転を指で止めると、回路に流れる電気はどのように変化するのだろう？

回路カードでモーターと回路カードを使って図のような回路をつくることを指示する。

豆電球を直列につないだ回路をつくる。
モータの回転を指で止めると何が起こるか観察する。

皆が豆電球の変化を確認したところで、、「なぜ豆電球が光ったのだろう？」
実験②モータの回転を指で止めようとした時の、回路に流れる電流や、電圧は？

各部品間の電流や電圧が１）テスターやプチメーターを使って部品間の電圧を調べるよう指どのように変化するか予示する。特に下記の 3 パターンで確認すると良い。

想する。

a)全体の電圧 Vb)豆電球の電圧 V 豆c)モータの電圧 V モ

プチメーターをつないだ状態でモータの回転を指で止める

3直列回路の方程式をたて、「電流や電圧がどのように連動して変化しているのか？」

再度、モータの回転を指でヒント：直列回路の方程式を立てて考える。

止めながら電圧・電流の変ポイント：豆電球は、小さな一定の抵抗 R 豆に置き換えられる。

化を式に照らし合わせてもう一度確認する。

実験③

マイクロビットをテスター代わりにプログラミングして、モータ間の電圧を測ってみよう！

マイクロビットのサンブ【手順１】自分のマイクロビットに「サンプルコード①」を書き込ルコード①を書き込み、マむように指示する。

イクロビットの GND 端子

書き込み終わったら、マイクロビットのＧＮＤ端子がテスターの黒に黒色ミノムシクリップ色側（マイナス）、Ｐ０端子が赤色側（プラス）になります。

を、P０端子に赤色ミノム【手順２】マイクロビットを回路カードにつなぐ。

シクリップをつなぐとテスターの完成です。

モーター間にミノムシクリップをはさみ、先と同様にモーターの回転を指で止めながらそのときの電圧の変化をマイクロビッ
トの LED 表示で確認しま
しょう。

マイクロビットのつなぎ方
ヒント：・ マイクロビットは端子に入力された電圧 0～3v を、０～1023の数値に変換することができます。なおこのようにアナログに変化する電圧をデジタル信号に変換することを A/D 変換といい

4（余力があれば）ます。

実験②と同じようにプ

ポイント：

チメーターなどで電流・ マイクロビットを緑色のスイッチ回路基盤から外しておくとミや電圧を測りながら数値の変化と比較する。

ノムシクリップをつけやすい。
・ ミノムシクリップは端子にきちんとつなぐこと、隣の端子に接触すると LED におかしなドットが表示される場合があります。
【発展プログラム】「電圧の変化をグラフ表示するにはどうすればよいのだろう？」
ヒント：「サンプルコード②」を書き込む。プログラム中の「最大値」の数値をモータ電圧の最大値の数値になるように調節する。

実験④

自分のモータ間の電圧の変化を他のマイクロビットに無線で送ろう！

送信側と受信側が必要な【手順１】2 人 1 組になり、「サンプルコード③」を利用するよう指ため 2 人 1 組になります。

示する。

「サンプルコード③」の＜一人は【送信側コード】をもう一人は＜受信側コード＞を書き込む。

送信側コード＞を一人に、【手順２】送信、受信を交代して、それぞれのモータが数値を送れ

もう一人は＜受信側コーているか？どのぐらいの数値で送られているのか確認する。

ド＞を書き込みます。

送信側のモータ電圧の数値が受信側に送れるか確認する。

5

まとめコンテスト：警告豆電球を点灯せよ！誰が一番敏感なトルクセンサーを作れるのか？
「サンプルコード④」を元

ヒント：に、軽い力で豆電球が光る

・ 「サンプルコード④」を元に、軽い力で豆電球が光るようプログようプログラムを改良する。

ラムを改良するように指示する。
・ 「もし●●より数値が小さければ」の●●を実験しながら調整する。

【発展】「相互に力を送りあうためにはどのようにプログラムすればよいのだろう？」→バイラテラル制御の入り口→力覚を伝え合うコミュニケーション手段

6

サンプルコード① P0 端子の電圧を数値で表示＜できること＞・ P0 の電圧を、0 から 1023 の数値で表示できる。
＜makecode のヒント＞「アナログ値を読み取る」ブロックは「高度なブロック」→「入出力端子」にあります。

https://makecode.microbit.org/_cUwH8c9piY6s
サンプルコード② P0 端子の電圧をグラフで表示＜ヒント＞
・ 数値 1023 は約 3.3V です。
・ 「棒グラフ」ブロックは「LED」の中にあります。

https://makecode.microbit.org/_ecY8Jx5zjMju

7

サンプルコード③ P0 端子の電圧を他のマイクロビットに送信する＜できること＞・ 送信側のマイクロビットは電圧を数値で表示、受信側のマイクロビットには送信側の電圧を棒グラフで表示する。
【送信側コード】＜ヒント＞ 送信側と受信側のグループは同じ番号にすること。

https://makecode.microbit.org/_918X2Ac6445E【受信側コード】

https://makecode.microbit.org/_9D8MDvW4gHjf
サンプルコード④

送信側のモータに力がかかったら、受信側の豆電球が光る（ようにスイッチをONOFF する）＜できること＞・ 受信側のマイクロビットからある数値が送られてきたら、数値に応じてスイッチ（P1 端子が 1 だとON、０だと OFF）を ONOFF することができる。
【送信側コード】 サンプルコード③と同じ

8

【受信側コード】

https://makecode.microbit.org/_F43F1M0g88kv
サンプルコード⑤ モータにかかる力（トルク）をマイクロビット同志で通信しあうプログラム＜できること＞・ P0 の電圧を、0 から 1023 の数値で表示できる。
・ 送りたい相手に、数値を送ることができる。
・ 自分宛てに送られた、数値をグラフで表示することができる
・ A ボタンでスイッチを ON（P1＝1）、B ボタンでスイッチを OFF（P1＝０）できる。
＜事前準備＞
・ 自分の名前と、送りたい相手の名前をいれておくこと

https://makecode.microbit.org/_EJRJp1darf2e9

サンプルコード⑥ 力の情報で相互にスイッチを ONOFF するプログラム＜できること＞・P0 の電圧を、0 から 1023 の数値で表示できる。
・送りたい相手に、数値を送ることができる。
・自分宛てに送られてきた、数値をグラフで表示することができる
・自分宛てに送られてきた、数値に応じてスイッチを ONOFF できる。
・A ボタンでスイッチを ON（P1＝1）、B ボタンでスイッチを OFF（P1＝０）できる。
＜事前準備＞
・自分の名前と、送りたい相手の名前をいれておくこと
・自分宛てに送られてきた数値の ONOFF の境目をきめておくこと。

https://makecode.microbit.org/_ccu1qxbAED8r10