目次
1.

はじめに............................................................................................................................... 3

1.1.

本書の目的 ..................................................................................................................................................... ３

1.2.

授業計画 ......................................................................................................................................................... 42.

計測・制御システム演習の準備 【事前準備】 ......................................................................... 5

2.1.

ArtecRobo とは ............................................................................................................................................... 5

2.2.

Studuino（スタディーノ）のセットアップ.............................................................................................................. 5
パソコンをインターネットに接続して プログラムをダウンロードする ................................................................................... 5
USB デバイスドライバのインストール ............................................................................................................................. 6
Studuino ソフトウェアのインストール ............................................................................................................................. 7

3.

プログラムの役割・機能 ........................................................................................................ 8
プログラムの順番を書く （個人作業 5 分） ..................................................................................................................... 8

3.1.

処理の手順 【読み合わせ 計 15 分】 ............................................................................................................... 8計測・制御の手順（読み合わせ 5 分） ........................................................................................................................... 8
仕事の流れ （読み合わせ 10 分） ................................................................................................................................ 8

3.2.

ArtecRobo テストシステム 【グループ作業 計 30 分】 ....................................................................................... 9
テストシステムの組み立て （グループ作業 10 分） ......................................................................................................... 9
入出力設定 （グループ作業 5 分） ............................................................................................................................. 10
タッチセンサの動作確認 （グループ作業 5 分）............................................................................................................11
処理の手順とフローチャート （グループ作業 5 分） ......................................................................................................11
ブロックプログラミング（グループ作業 5 分） ................................................................................................................. 12

3.3.

ブロックプログラミング演習 【授業時間外】 ...................................................................................................... 13
ブロックプログラミングの編集テクニック ........................................................................................................................ 13
条件くり返し型............................................................................................................................................................ 13
条件分岐型 ............................................................................................................................................................... 14

4.

モータカーの制御 ............................................................................................................... 15
プログラムを利用して，モータカーをどのように制御するか （グループ作業 5 分） .......................................................... 15

4.1.

目的や条件の設定【グループ作業 計 5 分】 ................................................................................................... 15
壁に沿って簡単なコースを走る ................................................................................................................................... 15
コースの準備（グループ作業 5 分） ............................................................................................................................. 151

プログラムによる計測・制御

4.2.

モータカーのしくみや動かす手順を考える 【グループ作業 計 40 分】 ............................................................. 16
センサの働きを確認する（グループ作業 15 分） .......................................................................................................... 16
モータカーを動かしてみる（グループ作業 10 分） ........................................................................................................ 17
モータカーが一周する手順を考える（グループ作業 10 分） ......................................................................................... 19

4.3.

ブロックプログラミング環境の命令語を調べる【グループ作業 10 分】 ............................................................... 19

4.4.

プログラムを作成する【グループ作業 10 分】 .................................................................................................. 20

4.5.

プログラムの実行と修正【グループ作業 計 20 分】 .......................................................................................... 21
プログラムの実行（グループ作業 10 分） ..................................................................................................................... 21
確認と修正（グループ作業 10 分） .............................................................................................................................. 22

活用例：指定したコースを走らせるプログラムをつくろう ................................................................................................. 23
まとめよう ................................................................................................................................................................... 23

5.

ライントレースカーの制御 .................................................................................................... 24

5.1.

しくみを調べる 【グループ作業 計 25 分】 ...................................................................................................... 24

5.2.

動きを考える 【グループ作業 計 5 分】 ........................................................................................................... 25

5.3.

プログラムを作成する 【グループ作業 計 10 分】 ............................................................................................ 25

5.4.

確認と修正 【グループ作業 計 10 分】 ........................................................................................................... 25

6.

３個のモータを持つロボットの制御 ....................................................................................... 26

6.1.

しくみを調べる【グループ作業 計 20 分】 ........................................................................................................ 26
DC モータとサーボモータ ........................................................................................................................................... 26
３モータロボットの組み立て ......................................................................................................................................... 26

6.2.

動きを考える【グループ作業 計 5 分】 ............................................................................................................. 28

6.3.

プログラムを作成する【グループ作業 計 15 分】 .............................................................................................. 29

6.4.

確認と修正【グループ作業 計 10 分】 ............................................................................................................. 30

７.

付録................................................................................................................................... 31

7.1.

身の回りの計測・制御 ..................................................................................................................................... 31
炊飯器の例................................................................................................................................................................ 31

7.2.

計測・制御システムと ArtecRobo の対応 ........................................................................................................ 32

7.3.

計測グリッド .................................................................................................................................................... 33

7.4.

モータカーの組み立て ................................................................................................................................... 34

8.

トラブルシューティング ........................................................................................................ 35
編集協力／芝浦工業大学 准教授 長澤純人先生
2

1. はじめに1.1. 本書の目的
本書は平成 24 年度中学校技術家庭科 技術分野教科書の参考書です。
平成 20 年に学習指導要領が改訂され，平成 24 年 4 月から新学習指導要領が全面実施されました。中学校技術家庭
科 技術分野には，新たに「情報に関する技術」の中にプログラムによる計測・制御について，（ア）コンピュータを利用した計測・制御の基本的な仕組みを知ること，（イ）情報処理の手順を考え，簡単なプログラムが作成できることという２つの目標が付け加えられました。
現代の高度に発達した情報化社会を生きていく子供たちにとって，情報に関する技術を正しく理解し，安全に便利に活用していく能力は必要不可欠です。情報に関する技術の進歩はまさに日進月歩であり，ハードウェアの性能はもちろん，その性能を活かすためのソフトウェアやアプリケーションも目まぐるしく発達しています。情報機器の単純な操作方法などの表面的知識は，すぐに役に立たなくなってしまうのが情報機器の大きな特徴です。情報に関する技術の本質を理解するためには，その基本的な仕組みを知り，どのように情報処理が行われているか，手を動かして体験することが大切です。
新学習指導要領の改訂は，まさにこの点を考慮したものですが，中学教諭にとって本項を教えることは非常に大きな負担となります。教科書に記載されている概念を生徒に理解させ，演習として実際に実施するためには，情報機器のハード
ウェアやソフトウェアに関して高度な知識が要求されます。また，大変な手間をかけて授業を立ち上げても，年々変化する
情報機器環境に対応して適切にアップデートし続けなくてはなりません。
本書では，株式会社アーテックが開発した ArtecRobo シリーズを用いて，情報機器の利用で，つまずきやすい箇所を丁寧に解説していますのでスムーズな授業準備が可能です。
多くの生徒が情報に関する技術に実際に触れ，その仕組みに興味を持ってもらえれば幸いです。

3

プログラムによる計測・制御

1.2. 授業計画

配当
時間

本書
ページ数

1

P．8－14

1

P．15－191

Ｐ．19－23

ライントレースカーの制御

1Ｐ．24－25

3 個のモータを持つロボットの制御

1Ｐ．26－30

実施内容
処理の手順，ArtecRobo テストシステム
ブロックプログラミング演習（授業時間外）
目的や条件の設定
モータカーのしくみや動かす手順を考える
ブロックプログラミング環境の命令語を調べる，プログラムを作成するプログラムの実行と修正プログラムの役割・機能 では簡単な構成の ArtecRobo テストシステムを作成し，フローチャートに対応したプログラム命
令語で置き換えることで，プログラムの作成手法と ArtecRobo の基礎的な使い方を習得します。
モータカーの制御 では，モータカーで本格的に ArtecRobo を使いながら，コンピュータによる計測・制御の方法を学びます。このため，モータカーは２時限かけて，生徒にじっくり理解させます。その後，さらに理解を深めるための実習例としてライントレースカーや３モータロボット制御を計画しています。各セクションには実施の目安時間を設定しています。実施
内容を取捨選択して調整して下さい。

4

2. 計測・制御システム演習の準備 【事前準備】
2.1. ArtecRobo とはArtecRobo とは株式会社アーテックが開発した，形も動きも自由自在に作れるロボットキットです。縦・横・斜めに自由に挿し込めるアーテックブロックで形を自由に作れます。また，センサやアクチュエータもブロックに自由に接続でき，ロボット
学習用に設計されたコンピュータ基板である Studuino（スタディーノ）を使って制御します。

 アーテック ホームページ http://www.artec-kk.co.jp/

ArtecRobo メインページ http://www.artec-kk.co.jp/artecrobo/downloads.html

2.2. Studuino（スタディーノ）のセットアップ
パソコンをインターネットに接続して プログラムをダウンロードする
本書では Windows パソコンを使います。Studuino（スタディーノ）のセットアップ・プログラムはインターネット経由でダ
ウンロードしますので，パソコンをインターネット接続して下さい。
Studuino ダウンロードページ（http://www.artec-kk.co.jp/studuino/ja/studuino.php）にアクセスします。セットアップ
が終われば，パソコンは必ずしもインターネットに接続されている必要はありません。
5

プログラムによる計測・制御

USB デバイスドライバのインストール
USB デバイスドライバ欄から「Windows 版ダウンロード」ボタンをクリックし，ファイルをダウンロードします。

ダウンロードしたファイル（usb_driver.zip）を解凍します。以下のファイルがあることを確認して下さい。
※ご使用の PC の設定によっては、拡張子（.zip, .vbs）が表示されない可能性があります。

setup.vbs をダブルクリックし，手順に従ってインストールを実行します．

ここまでの作業で USB ドライバはパソコンにインストールされました。Studuino 基板を正しく認識できるか確認します。

6

USB ケーブルで Studuino 基板とパソコンを接続します。モニタ右下に「デバイス ドライバー ソフトウェアが正しくインストールされました。」というメッセージが出れば正常に認識されています。
これまでの作業で Studuino 基板が正しく認識されないときには,http://www.artec-kk.co.jp/studuino/ja/studuino.phpの『デバイスドライバのインストール方法』 を参照し，各パソコンの環境ごとの作業をして下さい。

このメッセージが出れば，正しく認識されています。
Studuino ソフトウェアのインストール
Studuino ソフトウェア Windows ボタンをクリックし，ファイルをダウンロードします．

ダウンロードしたファイル（setup_jp.exe）をダブルクリックし，手順に従ってインストールを実行します．
本ソフトウェアを使用するためには「Microsoft .NET Framework 4.5」が必要です。パソコンに.NET Framework 4.5 がインストールされていない場合は自動的にインストールされ，終了後に本ソフトウェアのインストールが始まります。

① インストールで開始します。

② Studuino ソフトウェアをダウンロ
ードしながらインストールします。

③ インストールが終了すると Studuino
プログラミング環境が起動します。

次回以降は，スタートメニュー（Windows XP/ Vista/ 7）やスタート(メトロ)画面（Windows 8/ 10）から起動できます。

7

プログラムによる計測・制御

3. プログラムの役割・機能
３プログラムの順番を書く （個人作業 5 分）

５分 [ 計 5]

学習テキストを使い，電話をかける動作を順番に書き出させます。余裕がある生徒には，手順がある動作が他にもないかを考えさせるとよいでしょう。
 人間が無意識に行っている情報の処理手順を明確にする
 コンピュータに仕事させるためには手順を覚えさせる（＝プログラム）必要がある

3.1. 処理の手順 【読み合わせ 計 15 分】
計測・制御の手順 （読み合わせ 5 分）

３

５分 [ 計 10]① コンピュータにどのような仕事をさせるかを決め,実現のための仕事の手順を考えます。
② 仕事の手順から，フローチャートを作成する。（フローチャートは仕事の手順をわかりやすくする図式化手法です。仕事の手順をフローチャートにすると，各要素に対応したプログラム言語の命令に置き換えることで，プログラムを作成することができます。）③ 作成したプログラムをパソコンに入力し，実行します。目的通りに仕事が実行できるまでプログラムを修正します。

仕事の流れ （読み合わせ 10 分）

３

10 分 [ 計 20]

仕事の手順を図式化するフローチャートを生徒に理解させます。フローチャートの基本的な記号は以下の通りです。
端子

処理の開始・終了

判断

条件で流れが二つ以上に分岐する処理

処理

一般的な処理ループ開始端くり返しの開始

定義済み
処理

予め用意された処理

ループ終了端くり返しの終了

仕事の流れには，三つの基本的な流れがあります。これらを上手に組み合わせることで，複雑な仕事でも実現できます。
はじめ

はじめ

仕事１

仕事１

判断

判断

仕事２

仕事２

おわり

おわり

はじめ
仕事１
仕事２
おわり

(A) 順次処理型(B) 条件くり返し型

仕事３(C) 条件分岐型
8

条件判断は，以下のような表現が可能です。

A=B

No

A：B

<

Yes

>=

条件が成立しているか

２つの数の大小関係

>

A：B

A

<

A=1
A=2

=

A=3
…

２つの数の大小関係（３分岐）

条件による多分岐

3.2. ArtecRobo テストシステム 【グループ作業 計 30 分】
ArtecRobo テストシステムで LED をアクチュエータに見立て，光らせる演習をします。このテストシステムはとても簡単な構成ですので，ここで ArtecRobo の基本的な使い方を覚えます。
センサ・コンピュータ・アクチュエータに，どの部品が対応するのかを確認させます。

①計測する：センサ

テストシステムの構成②情報を判断・命令する：コンピュータ③仕事をする：（アクチュエータ）押されたことを調べる：タッチセンサ

Studuino （スタディーノ）

光る：LED

テストシステムの組み立て （グループ作業 10 分） ３

10 分 [ 計 30]

各種センサ，LED，ブザーは専用のケーブルで図の A0～A7 の８個のコネクタに接続します。

タッチセンサを A2，LED を A4 にそれぞれ接続します。灰色コードの向きに気を付けて下さい。
9プログラムによる計測・制御

LED とタッチセンサを Studuino のケースに固定し，USB ケーブルでパソコンと接続します。USB ケーブルから電力が供給されて Studuino の基板上の赤い LED が点灯します。以上で組み立て完了です。

入出力設定 （グループ作業 5 分） ３

5 分 [ 計 35]

Studuino プログラミング環境を起動し，ブロックプログラミング環境を選択します。

コンピュータに接続したセンサやアクチュエータの情報を設定します。「編集」から「入出力設定」を開きます。「チェックを全て外す」をクリックします。使用するセンサ・アクチュエータをさしたコネクタにチェックをいれ，プルダウンメニューからセンサ・アクチュエータを選択して下さい。ここでは，[センサー/LED/ブザー A2] をチェックし，プルダウンメニューからタッ
チセンサを選択します。同様に[センサー/LED/ブザー A4] をチェックして LED を選択し，最後に OK ボタンを押します。
これで入出力設定は完了です。

10タッチセンサの動作確認 （グループ作業 5 分） ３

5 分 [ 計 40]

テストモードを利用して，タッチセンサの動作を確認します。図のように「実行」から「テストモード開始」を開きます。テスト
モードは起動までに少し時間がかかります。テストモードが起動すると，『センサ・ボード』が現れて現在の各センサの値がわかります。A2 に接続したタッチセンサは，押されない間は１ですが，押されると０に変化することを確認して下さい。

「実行」から「テストモード終了」でテストモードを終了します。ここまででテストシステムのハードウェア準備は完了です。

処理の手順とフローチャート （グループ作業 5 分）

３

5 分 [ 計 45]

ここでは ArtecRobo テストシステムを加工機械に見立てて，使用表示灯の制御を考えます。使用表示灯は，周囲に加工機械が稼働中であることを知らせる大切な安全システムです。加工機械の電源が ON になると点灯し，加工機械が稼働している間は点灯し続けます。加工が終了して「加工終了ボタン」が押されると消灯します。

使用表示灯の仕事手順をフローチャートにします。順番に仕事をしていく流れなので，基本型のうちの（Ａ）順次処理型です。加工機械を ArtecRobo テストシステムで見立てると「使用表示灯」は LED，「加工終了ボタン」はタッチセンサです。
それぞれの処理に相当するプログラム言語（ブロックプログラム言語）の命令語は以下のようになります。

加工機の電源ON

Studuinoリセット

使用灯の点灯LED点灯

加工終了ボタンが押されるまで待つ

タッチセンサが押されるまで待つ

使用灯の消灯LED消灯

加工機の電源OFF

おわり

Studuino リセット

ＬＥＤ（A4 接続）点灯
タッチセンサ（A2 接続）が押されるまで待つ
ＬＥＤ（A4 接続）消灯

次節のブロックプログラミングでは，これらのプログラム言語の命令語を実際に記述する方法を説明します。

11

プログラムによる計測・制御

ブロックプログラミング（グループ作業 5 分）
① 「動き」パレットから，② 「制御」パレットから，①

３5 分 [ 計 50]をドラッグ＆ドロップして，の下に接続します。

をドラッグ＆ドロップして，の下に接続します。

②③「演算」パレットから，④「調べる」パレットから，をドラッグ＆ドロップして，の中に入れます。

をドラッグ＆ドロップして，の左辺に入れます。

右辺にはタッチセンサが押された状態である 0 を代入します（タッチセンサの動作確認の節を確認）。
③⑤④「動き」パレットから，をドラッグ＆ドロップして，続します。接続したブロックのプルダウンメニューで点灯から消灯に変更し，⑤の下に接の状態にします。

⑥ 「実行」から「プログラム作成・転送」を選択してプログラムを Studuino へ転送，実行します。まず LED が点灯
し，タッチセンサを押すと消灯することを確認して下さい。

12

3.3. ブロックプラグラミング演習 【授業時間外】
ブロックプログラミングに慣れるためには，授業時間外で演習などを行うと効果的です。ハードウェアはテストシステムそのままで使って，プログラムだけ変更します。
ブロックプログラミングの編集テクニック
 ブロックの複製方法① 右クリック② 選択
ブロックが複製されます ブロックの削除方法「編集」から「削除の取り消し」が可能

条件くり返し型
タッチセンサが押されるまで LED の点滅をくり返し，タッチセンサが押されたら終了するプログラムを考えます。プログラ
ムの最初と最後には，わかりやすいように３秒間長く点灯させます。本プログラムは演習用のため，前節の「使用表示灯」のような意味合いはありません。フローチャートと対応する命令語からプログラムを作成して実行して下さい。
Studuino リセット

３秒間 LED 点灯
タッチセンサが押されるまでくり返す

１回 LED 点滅

３秒後 LED 消灯

13

プログラムによる計測・制御

条件分岐型
タッチセンサが押されているかどうかで LED の点滅速度を変えるプログラムを考えます。プログラムの最初には３秒間点灯させ，LED が消灯するタイミングでタッチセンサが押されているか否かを判断します。タッチセンサが押されていれば0.2 秒間隔の速い点滅を 25 回行い，押されていなければ１秒間隔の遅い点滅を５回行います。最後に３秒間点灯させ，消灯して終了します。フローチャートと対応する命令語からプログラムを作成して実行して下さい。
Studuino リセット

３秒間 LED 点灯

タッチセンサの状態を調べて分岐

１秒間隔でLED 点滅 5 回
0.2 秒間隔でLED 点滅 25 回
３秒後 LED 消灯
 条件くり返し型，条件分岐型の解答例

条件くり返し型

条件分岐型

さらにブロックプログラミングを詳しく勉強したいときには，http://www.artec-kk.co.jp/studuino/ja/studuino.phpの『ブロックプログラミング環境（前編）・（後編）』 を参照して下さい。

14

4. モータカーの制御プログラムを利用して，モータカーをどのように制御するか （グループ作業 5 分） ４

5 分 [ 計 5]システムを構成するセンサ・コンピュータ・アクチュエータの３つがどのように働くかを考えながら，各グループで学習テキストにどのように制御するかを考えさせます。
どのように制御するか
簡単なコースを走るセンサ
タッチセンサで壁を調べる

障害物を避けて走る

タッチセンサで障害物を見つける
タッチセンサで壁を見つける

壁の前で停止する…

コンピュータ
壁がなければ前進壁があれば右にまわる
障害物がなければ前進
障害物があれば右にまわる
壁がなければ前進壁があれば止まる…

…

アクチュエータ
モータで前進・回転
モータで前進・回転
モータで前進・停止…

4.1. 目的や条件の設定 【グループ作業 計 5 分】
壁に沿って簡単なコースを走る
図のように壁に沿って簡単なコースを１周する動作を考えます。この動作をするためには，壁を調べるセンサと，自由に動くためのモータが必要です。本書では ArtecRobo を使ったモータカーを使います。

ArtecRobo モータカー
コースの準備（グループ作業 5 分）

イラスト

４

簡単なコースを走る例

5 分 [ 計 10]

コースは角材などを使用して製作して下さい。モータカーがある程度動き回れる広さが必要です。モータカーのセンサは地面から２ｃｍ程度の高さに取り付けますので，壁の高さは余裕をもって５ｃｍ以上あるとよいでしょう。図は棚の仕切り板として販売されている板です。これを４枚使うと，モータカーのコースを簡単に作ることができます。

棚の仕切り板
15

仕切り板を４枚使った簡単なコース

プログラムによる計測・制御

4.2. モータカーのしくみや動かす手順を考える 【グループ作業 計 40 分】
センサの働きを確認する（グループ作業 15 分） ４

15 分 [ 計 25]

センサは様々な種類があり，目的によって最適なセンサを選択します。赤外線フォトリフレクタは何かが近づいたことを調べるセンサです。Studuino のテストモードで赤外線フォトリフレクタの働きを調べます。赤外線フォトリフレクタを
Studuino の A0 コネクタに接続します。次に Studuino 基板のポート情報を設定します。「編集」から「入出力設定…」を選択し，入出力設定を表示させます。「チェックを全て外す」をクリックします。使用するセンサ・アクチュエータをさしたコネ
クタにチェックをいれ，プルダウンメニューからセンサ・アクチュエータを選択して下さい。ここでは，[センサー/LED/ブザー
A0] をチェックし，プルダウンメニューから赤外線フォトリフレクタを選択します。

赤外線フォトリフレクタ

Studuinoパソコン

mini-USBA0

USB ポートに接続

適当な所に
固定する

センサの値を調べるだけですのでプログラムは不要です。「実行」から「テストモード開始」を選択してテストモードを起動します。センサ・ボード内の A0 のところに，赤外線フォトリフレクタの現在値が表示されます。赤外線フォトリフレクタと壁までの距離を少しずつ変えながら，センサの値を記録しましょう。赤外線フォトリフレクタのセンサ面を計測グリッドと一致させます。また，センサ面は壁と平行になるように注意します。（計測グリッドは P.33 付録についています）

壁との距離が離れていくと，赤外線フォトリフレクタの検出値は小さくなります。また，図に示したように壁に近過ぎてしまうと赤外線フォトリフレクタは正しい値を検出できません。赤外線の反射光は壁の材質などによっても変わりますので，距離と検出値の関係は，あらかじめ調べておく必要があります。
検出できず

検出
赤外線
検出器

反射光

赤外線
LED

適正な場合

赤外線
検出器

反射光

赤外線
LED

近過ぎる場合

ここでモータカーを組み立てます（グループ作業 15 分）。「モータカーの組み立て」は付録 7.4.（P．34）を確認して下さい。
なお，学習テキストには含まれていませんので，印刷してご使用ください。
16

モータカーを動かしてみる（グループ作業 10 分）

４

10 分 [ 計 50]組み立てたモータカーを実際に動かしてみます。左右の DC モータの動かし方と，モータカーの動き（前進・後退・方向転換）がどのように対応するのかを確認しましょう。「編集」から「入出力設定」を開き，図のように設定します。

まず，左右の DC モータを正転させて前進するプログラムを作成します。「動き」パレットから，「DC モーターM1 の速さを100 にする」 ブロックをドラッグして，「制御スタート」ブロックに接続します。同様に必要なブロックを接続していきます。
「1 秒待つ」ブロックは「制御」パレットにあります。

左右 DC モータを動かしますので，各２つめのブロックの DC モータを M2 に変更します。以上で左右の DC モータを正転させて前進するプログラムは完成です。プログラムは上から順に実行されていきます。

17

プログラムによる計測・制御

プログラムをテストモードで実行して，モータカーの動作を確認します。Studuino とコンピュータが USB ケーブルで接続されていることを確認して下さい。DC モータを動かす場合には，電池ボックスのスイッチを ON にする必要があります。
「実行」から「テストモード開始」を選択してテストモードを起動して下さい。

※ テストモードでは USB ケーブルでコンピュータとStuduino が接続されたままですので，モータカー
を動作させるときには十分注意して下さい。

テストモードが起動すると，センサ・ボードが表示されます。その右上の「緑の旗」をクリックするとプログラムが実行されます。モータカーが１秒間だけ前進して停止します。

テストモードでは，各ブロックの数値や回転方向を変更することができます。数値や回転方向を変更した後，再び「緑の旗」をクリックすることで変更されたプログラムが実行されます。DC モータの動かし方とモータカーの前進・後退や方向転換などの対応を確認して下さい。
モータカーの動作

前進

左旋回

後退

右旋回

左側モータ

右側モータ

速さ 100 で正転
速さ 100 で逆転
速さ 50 で正転
速さ 100 で正転

速さ 100 で正転
速さ 100 で逆転
速さ 100 で正転
速さ 50 で正転

モータカーの動作

左側モータ

右側モータ

停止

旋回

速さ 100 で正転

速さ 100 で正転

速さ 100 で逆転

ピボットターン

その場旋回
スピンターン DC モータの回転速度は 100 が最大です。
 DC モータの回転速度を低く設定しすぎると，力が足りずに回転できなくなります。
動作の確認ができたら，「実行」から「テストモード終了」でテストモードを終了します。

18

モータカーが一周する手順を考える（グループ作業 10 分）

５

10 分 [ 計 10]

モータカーを壁伝いにコースを右回りで１周させる手順を考えます。手順を考えたら，動作との対応を確認させながら，各グループでフローチャートを描かせます。

①少しずつ前進②センサが反応③数秒間後進④数秒間右回転壁に近づいたことをセンサ
が検出

順次処理型

条件分岐型

90°回転

順次処理型

順次処理型

⑤：①～④の動作を4回くり返す 条件くり返し型
それぞれの動作を，3.1.節で説明した３つの基本的な仕事の流れの分類型に対応させて考えることで，これらを組み合わせて具体的なフローチャートが作成できます。
 順次処理型

2 秒後進

順番に処理される仕事の流れ。

90°右回転 条件くり返し型

センサの反応Yes

No

条件によって処理がくり返される
仕事の流れ。

0.5 秒前進 条件くり返し型（無条件）無条件にくり返される場合も条
件くり返し型に分類されます。

モータカーを壁伝いにコースを右回りで１周させる処理のフローチャートの例。３つの仕事の流れの基本型を組み合わせてできています。

 条件分岐型
条件によって処理される仕事が変化する仕事の流れ。

センサの反応No

Yes※今回はこの型はありません。

処理１

処理２

4.3. ブロックプログラミング環境の命令語を調べる【グループ作業 10 分】 ５ 10 分 [ 計 20]
アーテック ブロックプログラミング環境は，MIT（マサチューセッツ工科大学）メディアラボによって開発された Scratch（スクラッチ）とよばれるプログラム言語をカスタマイズしたものです。文字ではなくグラフィックによる記述と，マウスによる操作で直観的にプログラムを作成できます。フローチャートに対応した命令語が用意されていますので，フローチャートができていれば比較的簡単にプログラムに変換できます。壁伝いにコースを１周するために必要なモータカーの動作とフロー
チャート，それに対応するブロックプログラミング環境の命令語を調べましょう。
19

プログラムによる計測・制御

動作

実行する処理と命令語両輪が正転し前進する。

前進
両輪が逆転し後進する。

後進
左車輪が正転し，右車輪が逆転し，右回転する。

右回転
どちらかのセンサが反応するまで直前の動作をする。

センサ
どちらか

モータカーが動作する時間を設定する。
指定した位置からここまでの命令語をくり返す。

両車輪を停止させる。

停止

4.4.

プログラムを作成する【グループ作業 10 分】

５

10 分 [ 計 30]

調べた命令語を利用して，フローチャートをプログラムに変換します。

はじめ

はじめ

くり返し
4回

くり返し
4回

センサの反応Yes
0.5 秒前進No

90° 右回転

センサの反応があるまでくり返す

0.5 秒前進

2秒後進

プログラムのはじめとモーターの速さの初期設定

変換

2秒後進

90°(1秒)右回転

センサに反応があった場合、
2秒間後進して90°右回転する

くり返し
もどる

くり返し
もどる

4回くり返すおわり

おわり

両輪のモーターを停止してプログラムのおわり

20

4.5. プログラムの実行と修正【グループ作業 計 20 分】
プログラムの実行（グループ作業 10 分）

５

10 分 [ 計 40]

モータカーとパソコンを USB ケーブルで接続します。プログラムを実行するには２つの方法（モード）があります。
テストモードパソコン上でプログラムを実行して，USB ケーブルで接続された Studuino を直接制御

メリット モータの速さなどの設定値をすぐに変更して実行できる
 センサの現在値を調べることができる
転送モード

デメリット
 パソコンと Studuino は USB ケーブルで接続されていなければならない（動くときには特に注意）

プログラムを Studuino に転送してから，Studuino 上でプログラムを実行・制御

メリット
 パソコンと Studuino が接続されていなくてもよい 電源を切ってもプログラムは残ったまま
 プログラムを高速に実行できるデメリット
 最初の 1 回だけ，パソコンと Studuino を USB ケ
ーブルで接続してプログラムを転送する必要がある
 センサの現在値を調べられない

今回はコース上をモータカーが動き回りますので，Studuino 基板がパソコンと USB ケーブルで接続されていては動けません。転送モードでプログラムを実行してみましょう。最初にパソコンと Studuino 基板が USB ケーブルで接続されているか確認して下さい。メニューバーの「実行」から「プログラム作成・転送」を選択します。

パソコンと Studuino が USB ケーブルで接続されていることを確認して下さい。
プログラムの転送中は Studuino 基板上のオレンジの LED が点灯します。赤の LED が消えたら，Studuino 基板から
USB ケーブルを抜きます。電池ボックスのスイッチを ON にし※，Studuino 基板上のリセットボタンを押して，プログラムを最初から実行させます。

※ プログラムは転送した後すぐに実行されるため，電池ボックスのスイッチを ON にした瞬間にモータが動き出すことがあります。十分に注意して下さい。

21

プログラムによる計測・制御

確認と修正（グループ作業 10 分）

５

10 分 [ 計 50]

コース内で動作させたとき，いろいろな原因でモータカーが思うように動かないことがあります。
■ うまく９０°右回転しない
右回転のときには，動作時間で回転角度を調整しています。１秒間では動作時間が短すぎます。実際のコースで９０°
右回転するために必要な時間を調整する必要があります。
■ 右回転中に壁にぶつかってしまう
センサが壁を検出したあとの２秒間の後進は，右回転中に壁にぶつからないための動作です。もし右回転中に壁にぶつかるようであれば，後進時間を長めに調整して下さい。
■ 前進や後進のときにまっすぐ進まない
左右車輪の２つの DC モータは，いろいろな原因があり，同じ大きさの電流を流しても同じ速さで回転するとは限りません。左右車輪の DC モータの回転の速さに差があると，モータカーはまっすぐには進みません。左右の DC モータの回転の速さを調整して下さい。
■ 壁に衝突してしまう
今回のプログラムではセンサは 0.5 秒毎に壁があるか調べます。前進の速さが速すぎる場合，この 0.5 秒の間に壁に衝突してしまうことがあります。前進の速さを遅くするか，センサの壁を調べる時間間隔を短くして下さい。
■ 壁を検出できない
モータカーで壁を調べているセンサ（赤外線フォトリフレクタ）は 4.2 節で説明したように，壁に近過ぎる場合には正しい値を検出できません。このため，0.5 秒前進の間に壁に近づき過ぎてしまった場合，壁を検出できないことがあります。センサの検出値を，センサを壁に押し当てたときの値よりも低く設定すれば，必ず壁を検出できます。例題プログラムでは25 を設定していますが，これは 4.2 節の赤外線フォトリフレクタの実験結果から，壁の約３ｃｍ手前まで接近するか，もしくは壁に押し当てられた状態の両方で検出できる値として設定しています。
■ 壁のかなり手前でセンサが反応してしまう
センサの検出値を低く設定してしまうと，壁のかなり手前でセンサが反応してしまうことがあります。壁の材質によっても赤外線の反射光の強さは変わりますので，最適なセンサの検出値を探しましょう。
■ 同じコースと同じモータカーなのに，教室の場所によって，うまく動いたり動かなかったりする
赤外線フォトリフレクタは，照明や太陽光など，周囲のいろいろなものから影響を受けます。場所によって動作が変わってしまう場合，周囲をよく観察しましょう。照明を ON・OFF したり，太陽光をカーテンで遮ったりして，テストモードでセンサが読み取っている値を確認すると，原因を探すことができます。

実際のコースでモータカーを動かしていると，これらの他にも意図しない動作が現れます。グループで原因をよく考察し，プログラムをどのように修正すれば改善できるか話し合いましょう。また，どこまで速く・正確にコースを１周できるか，グルー
プで競争してみましょう。

22

活用例：指定したコースを走らせるプログラムをつくろう■目的
左のコースでスタート地点からゴール①まで走行する。
その後，ゴール②まで走行する。
■考え方
スタート地点には壁がないので，９０°右回転から始める。壁を検出するまで前進し，壁を検出したら９０°左回転することを２回くり返す。１回目でゴール①に到達する。また，その後
２回目のくり返しでゴール②まで走行できる。

はじめ

はじめ

プログラムのはじめとモーターの速さの初期設定

90°(1秒)右回転

90°(1秒)右回転

スタート地点で 90°右回転

くり返し
2回

くり返し
2回

センサの反応Yes

No
0.5 秒前進

センサの反応0.5 秒前進があるまでくり返す

変換

センサに反応があった場合、
2秒間後進して90°左回転する

2秒後進

2秒後進

90°(1秒)左回転

90°(1秒)左回転

くり返し
もどる

くり返し
もどる

2回くり返すおわり

おわり

両輪のモーターを停止してプログラムのおわり

まとめよう
計測・制御システムによる技術に関して，便利な点，注意する点，工夫した点をまとめましょう。

23

プログラムによる計測・制御

5. ライントレースカーの制御
ライントレースカーは，床に描かれた黒い線を検出しながら，その線に沿って動くこと（ライントレース）ができるシステムです。本章では ArtecRobo 作例集 http://artec-kk.co.jp/artecrobo/list.html の『ライントレーサー』と組み立て説明書
内の専用コース（コースのみ A3 サイズ出力）を利用します。

5.1. しくみを調べる 【グループ作業 計 25 分】

６

25 分 [ 計 25]

ArtecRobo 作例集の組み立て説明書 http://artec-kk.co.jp/artecrobo/pdf/jp/LineTracer.pdf を参照して，ライント
レースカーを組み立てて下さい。ライントレースカーは床の黒い部分と白い部分を認識するために赤外線フォトリフレクタを使っています。赤外線フォトリフレクタは，赤外線 LED と赤外線センサが並んだ構造になっており，赤外線 LED から出た赤外線が，床にあたってはね返ってきた強さを調べることができます。

テストモードを使って，床の黒い部分と白い部分を調べてみましょう。入出力設定とテストモードへの移行は，4.2 節と同じです。油性ペンで自由なコースを描くこともできます。使用する紙やインク・トナーなどによって赤外線フォトリフレクタの測定値は変わりますので，必ず用意したコースを使った確認が必要です。
出力方法

油性ペン

ﾚｰｻﾞｰﾌﾟﾘﾝﾀ

黒い部分

23

17

白い部分

85

85

ｲﾝｸｼﾞｪｯﾄﾌﾟﾘﾝﾀ

左表に測定結果の例を示します。油性ペンとレーザ

83 （染料系インク）ープリンタでは，黒と白い部分で明らかに値が異な

13 （顔料系インク）

ります。これに対して，インクジェットプリンタは注意が必要です。インクの種類によっては黒い部分で85

も，白い部分とほとんど同じになってしまい，区別できないことがあります。

ブロックプログラミング環境を起動し，次のライントレースカーのシステム接続図を参考に入出力設定をしておきます。

24

5.2. 動きを考える 【グループ作業 計 5 分】

６

5 分 [ 計 30]

ライントレースカーがどのように黒い線をたどっていくのかを考えましょう。赤外線フォトリフレクタの検出値が暗い（値が小さい）場合は右前方向に進み，明るい（値が大きい）場合は左前に進むようにすることで，黒い部分と白い部分の境界をたどっていくことができます。内側境界を進む場合は時計回り，外側境界を進む場合は反時計回りになります。
進行方向

内側境界を進む（時計回り）

外側境界を進む（反時計回り）

暗い場合：
右前方向に進む

暗い場合：
右前方向に進む明るい場合：
左前方向に進む明るい場合：
左前方向に進む5.3. プログラムを作成する 【グループ作業 計 10 分】

６

10 分 [ 計 40]

ライントレースカーの動きをフローチャートで考え，プログラムに変換します。右前進と左前進は，左右の DC モータに速度差を設定することで実現しています。教科書では右前進・左前進は 0.5 秒となっていますが，このライントレースカーでは，うまく黒い線をたどれるように 0.1 秒にしています。

はじめ

床が黒いか？

はじめ
No

床が黒いか？
Yes

Yes

右前進
秒

床が白いか？

No

右前進
秒

No

変換

床が白いか？
Yes

Yes

左前進
秒

左前進
秒

5.4. 確認と修正 【グループ作業 計 10 分】

No

６

10 分 [ 計 50]

4.5 節を参考にして，プログラムをライントレースカーに転送して実行しましょう。思い通りに動かないときには，その原因を考え，プログラムを修正します。
25

プログラムによる計測・制御

6. ３個のモータを持つロボットの制御
ライントレースカーにアーム機構を取り付けて，

アーム機構

３つのモータを持つロボットを作ります。アーム機
構にボールを持ってスタートし，ボールを落とさないようにライントレースをしながらゴールに到達し

ライン
トレース

ます。ゴールの壁を検出したら，アーム機構をゆっくりと倒してボールをゴールに入れます。３モー

前面
壁検知用
センサ

ライントレースカー

タロボットは DC モータを左右の駆動車輪（走行シュート系）として２個，サーボモータをアーム機構の駆動アクチュエータ（作業系）として１個使います。

6.1. しくみを調べる【グループ作業 計 20 分】

壁検出 ゴール

７

20 分 [ 計 20]

DC モータとサーボモータ
DC モータは電流を流すと回転するアクチュエータです。同じ方向に何周でも回転でき，電流を逆方向に流せば逆回転します。電流の強さで回転の強さや速さを変えることができるので，扇風機や洗濯機などに使われています。一方，サーボモータは指定された
角度を維持するアクチュエータです。指定する角度をコンピュータなどから与えれば，同じ動作を繰り返し正確に行えるので，ロボットの関節などに適しています。

DC モータサーボモータ３モータロボットの組み立て
３モータロボットを組み立てましょう。基本は前章のライントレースカーです。右図の２つの部品（アーム機構，前面壁検知用センサ）を追加で作ります。前面壁検知用センサは，床読
み取り用センサと同じ赤外線フォトリフレクタを使います。4.2
節で，壁までの距離と赤外線フォトリフレクタの測定値の関係を調べましたので，赤外線フォトリフレクタを使えば，壁までの距離を正確に検知できるからです。それぞれの部品について組み立て方を説明します。

26

まず，ゴールの壁を検知する前面壁検知用センサを作ります。下の写真をよく見て組み立てて下さい。ブロックの方向は接続ピンの位置と方向，接続穴の位置をよく確認すると間違いがなくなります。

サーボモータは角度を維持するアクチュエータなので，角度が狂っていると思い通りに動きません。そのため，サーボモー
タの角度の調整を行います。この作業のことを角度校正といいます。サーボモータを D9 コネクタに接続します。下図をよく見て灰色のコードの位置に気をつけて下さい。Studuino とパソコンを USB ケーブルで接続します。サーボモータを接続しましたので，『編集 ⇒入出力設定』で D9 コネクタのサーボモータにチェックを入れて下さい。OK ボタンを押して入出力
ダイアログを閉じます。次に電池ボックスも Studuino に接続して電源を ON します。Studuino に残っているプログラム
によってはライントレースカーが動き出す可能性がありますので注意が必要です。

『編集 ⇒サーボモーター角度校正』でダイアログが開きます。ダイアログ中の D9 コネクタの角度を調整して，サーボモー
タの駆動軸とボディが平行になるように調整します。この角度がサーボモータの基準角度（90 度）です。OK ボタンを押してダイアログを閉じ，電池ボックスの電源を OFF にします。

次にアーム機構を作ります。ボールを持つバスケット部分はボールを落とさないようにしっかりとした構造になっています。

27

プログラムによる計測・制御

アーム部分とバスケット部分の位置関係を確認して接続します。アーム機構の完成です。

それぞれの部品を，写真をよく見てライントレースカーに取り付けます。前面壁検知用センサの赤外線フォトリフレクタはA1 コネクタに接続します。アーム機構のサーボモータは D9 コネクタに接続します。これで３モータロボットの完成です。

次の３モータロボットのシステム接続図を参考に，入出力設定をしておきます。
床読み取り用
赤外線ﾌｫﾄﾘﾌﾚｸﾀ
前面壁検知用
赤外線ﾌｫﾄﾘﾌﾚｸﾀ

アーム機構
サーボモータUSB ポート
に接続
パソコン

D9

A0

mini-USB
POWER

A1
M1

M2

右側 DC
モータ

Studuino
電池ボックス

左側 DC
モータ

6.2. 動きを考える【グループ作業 計 5 分】

７

5 分 [ 計 25]

３モータロボットの動きを考えましょう。ライントレースに関しては基本的に 5 章と同じですので，新しく追加されるアームを使った動作を詳細に考えます。まず，①アームを上向きにしてボールを受け取ります。ボールを受け取ってライントレースを始めるまでは少し待ち時間があった方が良いでしょう。②ライントレースをしながらゴールまで到達し，前面のゴールの壁を検知します。③車体を停止し，アームを倒してボールをゴールに入れます。
難しいのは②のときで，ライントレースをしながら前方の壁を検知しなくてはなりません。つまり，『ライントレース』と『前方壁検知』の２つの仕事を同時に行わなくてはなりません。複数の仕事を同時に行うことをマルチタスクといいます。どちらの仕事もうまく働くように，仕事の流れを考える必要があります。
28

6.3. プログラムを作成する【グループ作業 計 15 分】

７

15 分 [ 計 40]

２つの仕事を同時に行うには，どのようにプログラムすればよいのでしょうか。コンピュータのプログラム実行速度は非常に高速です。２つの仕事を交互に切り替えながら実行すれば，人間にはまるで２つの仕事が同時に実行されているように見えるのです。ライントレースで床読み取り用の赤外線フォトリフレクタを１回測定するとき，前面壁検知用の赤外線フォトリフ
レクタも１回測定すれば，２つの仕事が交互に実行されます。下図がフローチャートと，それを変換したプログラムです。

Yes
Yes
No
No

No

Yes

Yes

0.1秒

0.1秒

No

No

Yes

Yes

変換
0.1秒

0.1秒

DC

29

プログラムによる計測・制御

6.4. 確認と修正【グループ作業 計 10 分】

７

10 分 [ 計 50]

4.5 節を参考にして，プログラムを３モータロボットに転送して実行しましょう。思い通りに動かないときには，その原因を考え，プログラムを修正します。
■ アームとゴールの壁がぶつかってしまう
３モータロボットのアームは長めに設計されていますが，なんらかの理由で前面壁検知センサの壁検知タイミングが少し早くなってしまうと，アームを振り下ろした場所がちょうどゴールの壁の位置でぶつかってしまうことがあります。前面壁検知センサの壁検知の測定値を調節したり，壁を検知した後に少し前に動いてから停止するなどの工夫をして下さい。
■ アームの角度がおかしい
３モータロボットは，最初にボールを受けとれるように，アームを上に向けて３秒間静止した後で，ライントレースを開始します。このとき，アームが真上を向かない原因はサーボモータの角度がずれてしまっていることが考えられます。数度くらいの狂いであれば，6.1 節のサーボモータの角度校正で修正できますが，大きくずれてしまっている場合は，ArtecRoboのホームページの『ブロックプログラミング環境(後編)』の 29 ページからの解説を参考に調整して下さい。
http://www.artec-kk.co.jp/studuino/docs/jp/Studuino_tutorial_block_2.pdf■ アームを振り下ろしてもボールがシュートされない
ライントレース中にボールを落とさないように，アームのバスケット部分は深く設計されています。このため，シュートのときにはアームは９０度まで前回転するようにプログラミングされていますが，９０度ではボールが落ちないことがあります。アームは１００度程度までなら車体とぶつからない設計になっていますが，あまり前回転しすぎるとゴールの壁とアームがぶつかる可能性があります。各自の状況を確認しながら，最適な回転角度を調整して下さい。

30

7. 付録7.1. 身の回りの計測・制御
私たちの身の回りにある電気製品は，計測・制御の仕組みを使って自動的にさまざまな仕事をしています。決まった動作
をくり返したり，外部の情報を元に柔軟に対応したりすることができるのは，コンピュータやセンサが使われているからです。
炊飯器の例を見てみましょう。
炊飯器の例

31

プログラムによる計測・制御

7.2. 計測・制御システムと ArtecRobo の対応
ArtecRobo では以下の部品がコンピュータによる計測・制御の情報の流れに対応しており，日常の様々なところに使われています。

32

7.3. 計測グリッド□に測定した赤外線フォトリフレクタの値を記録しよう。

33

プログラムによる計測・制御

7.4. モータカーの組み立て① DC モータにタイヤを取りつけます。左右対称に１組作って下さい。

② DC モータを Studuino 基板台座の裏面に取りつけます。右側のモータを M1，左側を M2 のコネクタに接続します。

③ 電池ボックス固定具を Studuino 基板台座に取りつけます。電池ボックスを固定して POWER コネクタに接続します。

④ 赤外線フォトリフレクタの取りつけ台座とキャスターを作成し，それぞれ写真のように取りつけます。

⑤ 赤外線フォトリフレクタをそれぞれ A0（左側），A1（右側）に接続し，モータカーの完成です。

34

8. トラブルシューティング

35

プログラムによる計測・制御

36

37

プログラムによる計測・制御

38

39

プログラムによる計測・制御

40

41

プログラムによる計測・制御

42

計測と制御キット B
プログラムによる計測と制御
教員用

発行 株式会社アーテック【本社】大阪府八尾市北亀井町３－２－２１
ＴＥＬ：０７２－９９０－５５０９【支社】東京都千代田区丸の内１－８－１
丸の内トラストタワーＮ館 17Ｆ
ＴＥＬ：０３－５２０８－１８８２

067356
K0817
43