計測と制御キットD
プログラムによるセンサーカーの制御

教員用

目次
第１章

身近なプログラミング… ………………………………………………………… 3

第２章

順次処理とフローチャート… …………………………………………………… 10

第３章

車の制御… ………………………………………………………………………… 20

第４章

センサーによる車の操縦… ……………………………………………………… 28

第５章

衝突回避カーの製作… …………………………………………………………… 37

演習１

落下回避カーの製作… …………………………………………………………… 45

演習 2

ライントレースカーの製作… …………………………………………………… 51

組み立て説明………………………………………………………………………………… 57
付録…………………………………………………………………………………………… 63
確認問題集…………………………………………………………………………………… 67

部品名などの記載について
教科書では「センサ」「モータ」と表記されていますが、本テキストではソフトウェアの表記に合わせるため「センサー」「モーター」※１と表記しています。
※１：JIS 規格ではどちらでも誤りではないとされています。

2

第

1章

身近なプログラミング＜学習内容＞
・身近な計測・制御システム
・プログラミング

１. 身の回りの計測・制御
私たちの身の回りにある電気製品は、計測・制御の仕組みを使って自動的に様々な仕事をしています。決まった動作を繰り返したり、外部の情報を元に柔軟に対応したりすることができるのは、コンピューターやセンサーが使われているからです。このような計測・制御システムは、センサー／コンピューター／アクチュエータの三つの要素から構成されています。
エアコンの例を見てみましょう。

例

エアコン
センサー

コンピューター

アクチュエータ

人感センサー（赤外線センセンサーで感知・計測したコンピューターからの指令

サー）・温感センサーで人情報を処理・判断する。そを受けてモーターの回転数の位置や体温、室内の温れを元に温度や風力を設定

を変え温度の調整をする。

度を計測する。

しモーターへ指示を出す。

人感センサー

モーター

コンピューター

身近な製品でどういうものがコンピューターやセンサーを活用しているか探しましょう。

製品名

センサーで計測しているもの

計測結果からコンピューターが行う動作

風呂給湯器

水量

給湯する / 給湯を止める

お掃除ロボ

壁や障害物の有無

壁や障害物を避けるように動く

4

２. プログラミングとはエアコンの例のように、コンピューターが使われている機械はセンサーから得た情報をもとに、あらかじめ人間が決めた
手順通りにアクチュエータを動かします。

例

エアコンを動かすとき人間が決めたエアコンの動作手順
起動スイッチが押される

設定温度を読み取る

現在の温度を計測する

繰り返す

設定温度に近づくように送風する

このようにコンピューターの動作手順を示したものをプログラムと言います。プログラムは人間が話すときに使う言葉と違う特別な言葉を使って表します。この言葉をプログラミング言語といい、プログラミング言語でプログラムを書く
ことをプログラミングと言います。

▲プログラミング言語で書かれたプログラムの画面

5

３. 計測・制御システムとArtecRoboパーツの対応
ArtecRoboのパーツは以下のようなコンピューターによる計測・制御システムで使われる各要素に対応しています。

自動ドアの動作の流れ

押しボタン式信号の動作の流れ

センサー
周囲の情報を計測する

赤外線フォトリフレクタ

タッチセンサー物体の有無を調べる

押されたことを調べる

コンピューター※ Studuino（スタディーノ）基板は、計測システムを学習するセンサーで得た情報を判ために開発された Arduino 互換

断しアクチュエータに動作命令を出すStuduino( スタディーノ ) 基板のマイコンボードです。

アクチュエータ
コンピューターからの命令に従って動作する

DC モーターサーボモーター

電気を回転する力に変える

LED ライトブザー

電気を光に変える

電気を音に変える※アクチュエータとはエネルギーを動きに変えるものを指すため、動きのない LED やブザーはアクチュエータに含まれません。

6

４. プログラミング環境
この授業では、文字の代わりにブロックのような絵をつないでコンピューターへの命令をプログラミングできる「ビジュアルプログラミング言語」を使います。

①ソフトウェアの立ち上げ

カテゴリー：命令の種類を選ぶことができます

言語の選択プログラムの保存

ブロックパレット：
センサーやアクチュエータへの命令が表示されます

メニュー

文字サイズの変更

スクリプトエリア：
命令をつないでプログラムをつくることができます7

②操作方法◆ プログラムの作成
ブロックパレットにある命令をおもちゃのブロックのようにつなぐことでプログラムをつくります。この命令のひとつひとつを「ブロック」と呼びます。

ブロック

つなぐ
◆ ブロックの削除
削除するブロックをブロックパレットにドラッグ＆ドロップします。

ドラッグ＆ドロップ

ブロック
パレット

8

カテゴリーの種類について
カテゴリーは「動き」
「制御」
「調べる」
「演算」
「変数」の５種類があります。それぞれのアイコンをクリックすることで、カテゴリーを選択することができます。

◆ 動き

◆ 制御

◆ 演算

アクチュエータの動きを命令します。

命令の実行順を制御します。

計算の命令を出したり※灰色のブロックは使用できません。
後述の設定変更で使用可能になります。

◆ 調べる
センサーを指定して周りの情報を調べます。

◆ 変数
数値情報の記録に使います。

（今回は使いません）

9

条件式を作成します。

第2章

順次処理とフローチャート＜学習内容＞
・順次処理
・フローチャート

１. 順次処理のプログラム
命令を順番通りに行う処理のことを「順次処理」といいます。DCモーターを使った車を作る中で、順次処理のプログラ
ムを学びましょう。
前進する

1 秒待つ

停止する

①組み立て
58 ページの組み立て説明を見て、車を組み立てましょう。

組み立て準備

③

④

①

⑧
⑨
⑩

②

⑤ ⑥ ⑦

⑪

① Studuino（スタディーノ）基板…… 1⑤ 目玉パーツ… ………………… 1⑨ DCモーター接続パーツ……… 2② 電池ボックス（電池入）……… 1⑥ 三角ブロック

グレー………… 2⑩ タイヤゴム… ………………… 2③ 四角ブロック

白…………… 2⑦ ハーフブロック

薄水……… 11

⑪ タイヤ… ……………………… 2④ ハーフブロック

薄グレー…… 3⑧ ＤＣモーター…… ……………… 2

11

Studuino（スタディーノ）基板に接続できるパーツ
Studuino（スタディーノ）基板にセンサーやアクチュエータをつなぎ、プロ
グラムを書き込むことで簡単に計測・

D2、4、7、8、
9、10、11、12：
サーボモーターM1、2：DC モーター

制御システムを作ることができます。
パーツによってコネクターをつなぐ場
所が決められているので注意しましょ

USB ケーブル

う。

POWER：電池ボックス

A0~7：
センサー、LED、ブザー②入出力設定入出力設定でStuduino（スタディーノ）基板のどの場所にどのパーツをつないでいるかを登録します。

M1とM2につないだDCモーターを登録します。一度全てのチェックを外してから、DCモーターのM1とM2にチェックを入れて「OK」をクリックしましょう。

Studuino（スタディーノ）基板はつないだパーツを自動で認識できないので、新しくパーツをつないだり、パーツをつなぎかえたりしたときは必ず入出力設定を行うようにしましょう。

12

③テストモード
テストモードはパソコンとStuduino（スタディーノ）基板が常に通信している状態にする機能で、動作を確認しながらプロ
グラムを作ることができます。USBケーブルでコンピューターとStuduino（スタディーノ）基板をつないで、テストモードにしましょう。

USBケーブルの接続時はパソコンから電力が供給されるので、電池ボックスのスイッチをオンにしなくてもブザーやLEDを動かすことができます。ただし、DCモーターやサーボモーターはパソコンからの電力が使用できないため、必ず電池ボックスを使うことに注意しましょう。

コンピューターとStuduino（スタディーノ）基板を離して使いたいとき
プログラムを実行させる方法には「テストモード」のほかに、「プログラム作成・転送」があります。
「プログラム作成・転送」は発表などでコンピューターとStuduino（スタディーノ）基板を離して使いたいときに行います。
◆ プログラムの転送方法

テストモード

作成したプログラムを「制御スタート」につないでから・作成したプログラムはパソコン上で実行される。
動作命令

プログラムの実行

動作信号「プログラム作成・転送」をクリックします。

動作信号の出力プログラム作成・転送
・作成したプログラムはスタディーノに保存される。
・保存したプログラムはスタディーノ上で実行される。
作成した
プログラム

プログラムの転送 プログラムの保存

動作信号

プログラムの実行
動作信号の出力プログラム作成・転送は、プログラムを作るたびに転送を行う必要がありますが、USBケーブルを外してもプログラムを実行できたり、プログラムの実行や読み込みが早くなるというメリットもあります。

13

④DCモーターの動作確認
DCモーターを動かして、プログラムと動作の関係を調べましょう。
M1につないだ右のDCモーターのタイヤに注目しましょう。

DCモーターは回転の速さと向きを設定するプログラムで制御されています。どちらか一方でもプログラムが抜けているとDCモーターは動きません。DCモーターのブロックをスクリプトエリアに並べましょう。

電池ボックスのスイッチをオンにして、各ブロックをクリックすると、そのブロックの処理が行われます。

DCモーターの速度設定
DCモーターの回転する速さを100に設定するために、をクリックしましょう。
回転する速さはブロックの数値に対応しています。

速さを変えられる

最小０

設定できる数値

最大

〜

20

100

動かない

遅い

速い

※数値を変更した場合、再度をクリックしないと、変更した数値が反映されません。

14

DCモーターの回転をクリックした後、をクリックすると DC モーターが正転します。

「正転」
と
「逆転」
を変えることで、
DCモーターの回転する向きを変えることができます。

※速さを設定した後でないと、をクリックしても DC モーターは動きません。

DCモーターの停止をクリックして、DCモーターの回転を停止させましょう。DCモーターの止め方は「停止」と「解放」を選択することができます。

DCモーターを短絡させて負荷をかけ、ぴったりと止める

DCモーターにかかる電圧を0にして、惰性でゆっくりと止める※本テキストでは「解放」は使用しません。

15

⑤プログラミング
車を１秒だけ前進させるプログラムをつくりましょう。
前進する

1 秒待つ

停止する

両輪のDCモーターが同じ速さで動けば、車は前に進みます。したがって、M1とM2の速さをともに100にして、正転させましょう。

つなぐ

つぎに、制御カテゴリーにある「１秒 待つ」のブロックを先ほどのブロックの 下につなぎましょう。

16

最後に、DCモーターを停止させるブロックをつなぎまプログラムが実行される流れす。つないだブロックをクリックしてプログラムを実行しましょう。

実行されているブロック全
体が白枠で囲われる

このように上から順番に命令が行われるプログラムの処理を「順次処理」といいます。

「１秒待つ」のブロックを入れないとどうなるのか？
左のプログラムで動作をさせた場合、車はほとんど動きません。これはコン
ピューターがプログラムを非常に高速で処理していることが原因です。つまり、「DCモーターを正転」の命令の直後に、「DCモーターを停止」の命令が行われてしまうため、車が前に進む時間がありません。

「１秒待つ」を入れない場合「１秒待つ」を入れる場合

DCモーターが正転する時１秒間前進

間がないため前に進めない

前進

停止

前進

17

停止

２. フローチャート
処理の手順をあらかじめ整理しておくとプログラムがつくりやすくなります。手順を整理したり考えをまとめる方法の１
つとして、「フローチャート」という図がよく用いられます。

代表的なフローチャート記号
処理の開始・終了

一般的な処理繰り返し○回

繰り返し処理の開始

繰り返し戻る

繰り返し処理の終了

条件

No条件で処理を分ける

Yes

例

室温を２５℃に保つエアコンの動作の手順を表したフローチャート

はじめ

25℃に
なっている？

No

Yes

送風停止

25℃
より寒い？

No

Yes

温風を送る

18

冷風を送る

練習課題
次の動作の手順をフローチャートでまとめたあと、プログラムをつくりましょう。
前進する

3秒待つ

後退する

3秒待つ

停止する

DCモーターの回転する速さを途中ではじめ変更する必要がない場合は、最初に1度だけ設定します。

DCモーターM1の速さを100にする
DCモーターM2の速さを100にする
DCモーターM1を正転
DCモーターM2を正転
3秒待つ
DCモーターM1を逆転
DCモーターM2を逆転
3秒待つ
DCモーターM1を停止
DCモーターM2を停止
おわり※テストモードで動作確認を行うとつないでいるUSBケーブルが動作の妨げになるので、プログラムを作成・転送し、USBケーブルをはずしてから動作を確認してください。

19

第

3章

車の制御

＜学習内容＞
・車の制御
・繰り返し

28
cm
27

1. 車の制御26

第２章と同じ車を使い、1秒間前進させたときの距離を調べましょう。また、車をぴったり９０度曲げたり、回転させると

25

きにDCモーターを動かす時間を調べましょう。※進む距離や曲がったり回転する時間はDCモーターの個体差や電池の残量によって異なる場合があります。

直進する

曲がる

回転する

90 度右回転

24
23
22
21
20
19

90 度右折18

90 度左折前進

17

90 度左回転

16
15
14
13
12

①前進

11

１秒間前進させるプログラムを作り、ページ右側の定規に沿って車を動かし移動した距離を調べましょう。

10

テキスト

9
8
7
6
5
4

1 秒間で

cm 進む。

3
2
1

21

0

②左折
左折は右のDCモーターだけを正転させることで実現できます。イラストに合わせて、ぴったり90度左折するために必要な時間を調べましょう。

左のプログラムをつくり、「待つ」ブロックの時間を調整しましょう。

秒で 90 度左折する。

22

③右折
右折は左のDCモーターだけを正転させることで実現できます。イラストに合わせて、ぴったり90度右折するために必要な時間を調べましょう

左のプログラムをつくり、「待つ」ブロックの時間を調整しましょう。

秒で 90 度右折する。

23

④左回転
左回転は右のDCモーターを正転させ、左のDCモーターを逆転させることで実現できます。イラストに合わせて、ぴった
り90度左に回転するために必要な時間を調べましょう。

左のプログラムをつくり、「待つ」ブロックの時間を調整しましょう。

秒で 90 度左に回転する。

24

⑤右回転
右回転は左の DC モーターを正転させ、右の DC モーターを逆転させることで実現できます。イラストに合わせて、ぴったり 90 度右に回転するために必要な時間を調べましょう。

左のプログラムをつくり、「待つ」ブロックの時間を調整しましょう。

秒で 90 度右に回転する。

25

２. 繰り返しのプログラム
直進と右回転を繰り返すことで、1 周回るプログラムをつくりましょう。

②直進して90 度右回転①直進して90 度右回転

③直進して

⑤停止

90 度右回転④直進して90 度右回転①フローチャート
直進と右回転を 4 回繰り返すと 1 周回ることになります。同じ動作を複数回繰り返す場合、以下の記号を使います。動作を表すフローチャートをまはじめ
DCモーターM1の速さを100にする

とめましょう。

DCモーターM2の速さを100にする

繰り返し 4 回

繰り返し○回

繰り返し処理の開始

繰り返し戻る

繰り返し処理の終了

DC モーター M1 を正転DC モーター M2 を正転

1 秒待つ

DC モーター M1 を正転※右回転する秒数は 25 ページで確認した秒数を参考にしてください。

DC モーター M2 を逆転

秒待つ

繰り返し戻るDC モーター M1 を停止

DC モーター M2 を停止

おわり

26

②プログラミング
まとめたフローチャートをもとにプログラムをつくりましょう。同じ動きを複数回繰り返す場合、利用すると簡単にプログラムをつくることができます。

をに囲まれたブロックが指定した回数だけ繰

り返し実行されます。

回数を変える③無限に繰り返しするプログラム
同じ動きをずっと繰り返させたい場合は、を利用します。

「４回繰り返す」を「ずっと」のブロックに変更しましょう。

はじめ
DCモーターM1の速さを100にする

DCモーターM2の速さを100にする

DC モーター M1 を正転DC モーター M2 を正転

1 秒待つ

DC モーター M1 を正転DC モーター M2 を逆転「終了」がなくなり、繰り返し続けることは右のフローチャートのよう

秒待つに矢印で表します。※停止する必要がなくなるので、停止ブロックは削除してください。

終了しない

27

第

4章

センサーによる車の操縦＜学習内容＞
・条件分岐
・タッチセンサー

１. 条件分岐のプログラム
タッチセンサーを用いて、ボタンが押されたときに１秒前進する車をつくりましょう。
前進する

１秒待つ

停止する

タッチセンサーが押される

繰り返し

①組み立て
62ページの組み立て説明を見て、車にタッチセンサーを取り付けましょう。

組み立て準備①車（組立済）… ……………………………1

①
②

③

29

② タッチセンサー……………………………1③ センサーコード……………………………1

②入出力設定
A0 にタッチセンサーが追加されたので、A0 にチ
ェックをつけてタッチセンサーを選択しましょう。

③タッチセンサーの数値確認
センサーの情報は数値で表されます。テストモードを実行し、タッチセンサーが押されているときと押されていないときの数値の変化を「センサー・ボード」で確認しましょう。
「センサー・ボード」はテストモード実行中に表示され、センサーの値がリアルタイムで確認できます。

タッチセンサーがタッチセンサーが押されているときの数値

押されていないときの数値

01

タッチセンサーの数値は「調べる」カテゴリーので知ることができます。

また、をクリックすると、右の画像のようなメッセージ形式で現在の数値を知ることができます。

30

④動作の整理
動作とプログラムの関係を整理しましょう。

順番

動作

①

プログラム

DC モーターの速さを決める

DCモーター M1 の速さを100にする
DCモーター M2 の速さを100にする

タッチセンサーが押される②

タッチセンサー A0 の値 ＝ ０

前進する
DCモーター M1 を正転③

DCモーター M2 を正転

１秒待つ

④

１秒待つ

停止する
DCモーター M1 を停止⑤

DCモーター M2 を停止②～⑤をずっと繰り返す31

⑤フローチャート
フローチャートで条件によって処理を分けることを表すときは以下の記号を使います。

No

条件

条件で処理を分ける

Yes

31 ページで整理した動作を参考にフローチャートをまとめましょう。フローチャートに「終了」が存在せずに繰り返しているのは、タッチセンサーが押されているかを常に確認するためです。

はじめ
DCモーターM1の速さを100にする
DCモーターM2の速さを100にする

タッチセンサーのA0の値 ＝0
Yes

DCモーターM1を正転
DCモーターM2を正転
1秒待つ

DCモーターM1を停止

DCモーターM2を停止

32

No

⑥プログラム作成
条件で処理を分けるフローチャートは次のプログラムと同じです。

条件

条件を入れる

No

A

Yes

A

は「制御」カテゴリーにあります。

条件は「演算」カテゴリーのとを組み合わせてつくることができます。

数値を入れる

作成した条件はの空欄に入れて使うことができ、条件が成り立つときだけ囲まれたブロックが処理されるようになります。

33

⑦動作確認
つくったプログラムで想定通りに動作しない場合、次の点を確認して修正しましょう。

車が前進したあとに停止するプログラムを入れているか「ずっと」のブロックを使っているか

ステップ実行機能でプログラムの流れを可視化する条件で処理を分けると、プログラムが少し複雑になります。複雑なプログラムを作成する際に間違えてしまうことは頻繁に起こることであり、その時に誤りを素早く発見し修正すること（＝「デバッグ」）が大切です。
どのような流れでプログラムが動いているのかに注
目することは、誤りの発見に有効です。プログラムの処理の流れを可視化する機能として、「ステップ実行機能」があります。
ステップ実行を開始してプログラムを実行すると、そのとき処理しているブロックが黄色く光るようになります。
デバッグを行うときは、ステップ実行機能を活用しま
しょう。

※ステップ実行時はプログラムの処理が極端に遅くなることに注意してください。

34

「ずっと」のブロックを入れないとどうなるのか？
「ずっと」を入れない場合のフローチャートとプログラムは以下のようになります。
はじめ
DCモーターM1の速さを100にする
DCモーターM2の速さを100にする

タッチセンサーのA0の値 ＝0

No

Yes

DCモーターM1を正転
DCモーターM2を正転
1秒待つ

DCモーターM1を停止

プログラムがDCモーターM2を停止

終了する

おわり

このプログラムを動作させると、タッチセンサーを押しても全く反応しなくなります。これは、プログラムが非常に高速で処理されることで、プログラムを動作させた瞬間にプログラムが終了してしまうからです。
「ずっと」のブロックを入れることで、タッチセンサーの値を常に確認するようになるため想定通りの動作をするようになります。

はじめ
DCモーターM1の速さを100にする
DCモーターM2の速さを100にする

タッチセンサーのA0の値 ＝0

No

Yes

DCモーターM1を正転
DCモーターM2を正転1秒待つ

プログラムが終了しない

DCモーターM1を停止

DCモーターM2を停止

コンピューターはプログラム通りに動くので、思わぬ間違いで期待した動作と実際の動作が異なってしまうことがよくあります。フローチャートをまとめる段階で動作をよく考えることは間違いを避けることにつながります。

35

違うプログラムで同じ動きを実現する
以下のようなプログラムでも同じ動作を実現することができます。

はじめ
DCモーターM1の速さを100にする
DCモーターM2の速さを100にする

DCモーターM1を停止

DCモーターM2を停止

タッチセンサーのA0の値 ＝0

No

Yes

DCモーターM1を正転
DCモーターM2を正転1秒待つ

プログラムの作り方は一つとは限りません。想定する動作が実現できればどのようなプログラムでも構いません。自分なりに考えてプログラムを作ることが大切です。

36

第

5章

衝突回避カーの製作＜学習内容＞
・○○システム・赤外線フォトリフレクタ
・プログラミング

１. 衝突回避カーの製作
赤外線フォトリフレクタを利用して衝突回避カーをつくりましょう。
前進する

障害物を感知する

停止する

障害物がなくなるまで待つ

前進する

繰り返し

自動車の運転を補助するシステム
自動車にはセンサーを用いた運転を補助する様々なシステムが存在します。

自動ブレーキシステム
前を走る自動車や歩行者、障害物にぶつかりそうになったときに自動でブレーキをかけて

緊急ブレーキ

STOP

停止します。

緊急ブレーキSTOP

速度自動調整システム100km
80km

高速 道 路などで前を走る自80km

動車と安全な距離を保ちながら、自動で速さを調整します。
長い時間の運転や、渋滞中の

100km
80km

80km

負担を少なくすることができ
80km
ます。

80km
80km

80km

38

①赤外線フォトリフレクタとは赤外線フォトリフレクタは「赤外線」という光の「反射」を利用したセンサーです。中央の２つの丸い部分は透明な方が赤外線を発光し、黒い方は赤外線を検出します。発光部から出た赤外線が対象物にぶつかって反射してきたところを検出部で読み取ります。そのときの赤外線の強さで、対象物が存在するかどうかを知ることができます。
検出

赤外線を検出するところ

反射した光

検出部

対象物

センサ ー 本 体

赤外線

赤外線
発光部

赤外線を発光するところ

赤外線フォトリフレクタの使い方
・太陽光には赤外線が多く含まれています。太陽光が検出部に当たらないように注意してください。

太陽光

対象物

対象物

反射光

反射光

太陽光を強く検出してしまう

対象物で反射した光を強く検出できる

・黒系の色は赤外線を吸収しやすく反射しにくいため、反射光の検出量が少なくなります。

反射する

赤外線
発光部

ほとんど反射せずに吸収する

赤外線

白い
ブロック

発光部

39

黒い
ブロック

②組み立て62ページの組み立て説明を見て、４章で作った車のタッチセンサーを赤外線フォトリフレクタに付け替えて、衝突回避カーを組み立てましょう。また61ページを見て、障害物となるブロックも組み立てましょう。

組み立て準備

①

③

②

④

①車
（第４章のもの）………………………………………………… 1② 赤外線フォトリフレクタ… ……………………………………… 1③ センサーコード…………………………………………………… 1④ ハーフブロック 薄水…………………………………………… 3③入出力設定M1、M2にDCモーター、A0に赤外線フォトリフレクタとなるように設定しましょう。

40

④赤外線フォトリフレクタの数値確認
衝突回避カーは前に障害物が存在したときにセンサーで感知して衝突を避けるため自動で停止します。この「感知」の役割を赤外線フォトリフレ
クタで行います。テストモードにして、センサー・ボードで赤外線フォトリ
フレクタの値を確認しましょう。下のイラストに合わせて、車を置きます。
赤外線フォトリフレクタの前10cm、5cm、3cm、2cm、1cm、0cmに障害物（ブロック 薄水）があるときの値を確認しましょう。
太陽光を背に向けた状態で調べると正しい数値を確認しやすくなります。

0

距離

0cm

1

2

3

1cm

4

2cm

5

6

3cm

値

※赤外線フォトリフレクタの個体差で、同じ距離でも数値が異なる場合があります。

41

7

8

5cm

9

10

10cm

⑤しきい値の決定
赤外線フォトリフレクタの値で障害物があるときとないときを区別する場合は、２つの状態の境目となる値を決めて判断します。このような境目となる値のことを「しきい値」と言います。

0

障害物がない障害物がある100

しきい値

今回は車の前５cmに障害物があるときとないときを区別するようにしきい値を決めましょう。

障害物が5cm 前にない

障害物が5cm 前にある

しきい値42

⑥フローチャート
38 ページに示した動作を実現できるように手順を考えてフローチャートをまとめましょう。条件の部分を決めたしきい値を利用して書き換えましょう。また、「障害物が無くなるまで待つ」は赤外線フォトリフレクタの値 ＜を使いましょう。

はじめ
DCモーターM1の速さを100にする
DCモーターM2の速さを100にする
DCモーターM1を正転
DCモーターM2を正転No

赤外線フォトリフレクタのA0の値 ＞

Yes

DCモーターM1を停止

DCモーターM2を停止

赤外線フォトリフレクタA0の値 ＜DCモーターM1を正転

DCモーターM2を正転

43

まで待つ

まで待つ

⑦プログラミング「制御」カテゴリーにあるを使ってプログラムをつくりましょう。

たすまでプログラムの処理を待つことができます。

衝突回避カーの別解以下のプログラムでも衝突回避カーの動作が実現できます。

はじめ
DCモーターM1の速さを100にする

DCモーターM2の速さを100にする

DCモーターM1を正転
DCモーターM2を正転

赤外線フォトリフレクタのA0の値＞

No

Yes

DCモーターM1を停止

DCモーターM2を停止
赤外線フォトリフレクタA0の値 ＜ □まで待つ

44を使うと、条件を満

演習

1

落下回避カーの製作＜学習内容＞
・赤外線フォトリフレクタの応用

１. 落下回避カーの製作
赤外線フォトリフレクタの使い方を工夫することで、机から落下しそうになったときに後退して落下を避ける車をつくることができます。
前進する

床がなくなったことを感知する

1秒後退する

前進する

右に90度回転する

床なし

床あり

①組み立て
今回は床の有無を感知するので、赤外線フォトリフレクタの向きを下向きに付け替えましょう。

46

②入出力設定
M1とM2にDCモーター、A0に赤外線フォトリフレク
タとなるように設定しましょう。

③しきい値の決定
テストモードで床があるときとないときの赤外線フォトリフレクタの値を確認して、しきい値を決めましょう。

床があるとき床がないとき0100
床がないときしきい値

床があるとき

しきい値の決定
しきい値を 1 や3のように調べたどちらかの値の近くに決めてしまうと、赤外線フォトリフレクタの値がそこか

ら少し変わるだけで、ブロックの有無を区別してしまいます。
センサの値は周りの環境によって変わりやすいため誤って判断しないように、 2 のように調べた２つの値の中央あた
りをしきい値として決めましょう。

1

2

3

0

100

床がないときの値

床があるときの値47

④落下回避カーの動作整理
動作とプログラムの関係を整理しましょう。

順番

動作

プログラム

前進する

DCモーター M1 の速さを100にする

床なし①

DCモーター M2 の速さを100にする
DCモーター M1 を正転

床あり

DCモーター M2 を正転

床がなくなったことを感知する
赤外線フォトリフレクタ A0 の値②＜ しきい値

1 秒後退する
DCモーター M1 を逆転
DCモーター M2 を逆転

③

1秒待つ

右に90度回転する
DCモーター M1 を逆転
DCモーター M2 を正転

④

秒待つ

前進する
DCモーター M1 を正転⑤

DCモーター M2 を正転②～⑤をずっと繰り返す※右に90度回転させる秒数は25ページで調べたものを参考にしてください。

48

⑤フローチャート
48ページで整理した動作をフローチャートにまとめましょう。

はじめ
DCモーターM1の速さを100にする
DCモーターM2の速さを100にする
DCモーターM1を正転
DCモーターM2を正転

赤外線フォトリフレクタのA0の値＜
Yes

DCモーターM1を逆転

DCモーターM2を逆転

1秒待つ

DCモーターM1を逆転

DCモーターM2を正転

秒待つ

DCモーターM1を正転

DCモーターM2を正転

49No⑥プログラミング
49ページのフローチャートを参考にプログラムを完成させましょう。

落下回避カーの別解以下のプログラムでも落下回避カーの動作が実現できます。
はじめ
DCモーターM1の速さを100にする
DCモーターM2の速さを100にする
DCモーターM1を正転
DCモーターM2を正転

赤外線フォトリフレクタのA0の値＜

No

Yes

DCモーターM1を逆転

DCモーターM2を逆転

1秒待つ

DCモーターM1を逆転

DCモーターM2を正転

秒待つ

50

演習

2

ライントレースカーの製作＜学習内容＞
・赤外線フォトリフレクタの応用

１、ライントレースカーの製作
色によって赤外線の反射率が違うことを利用すると、赤外線フォトリフレクタで黒い線を認識することができます。ライントレースとは、センサーに線を認識させて線に沿って車を走らせることを言います。

車は演習１でつくったものをそのまま使いましょう。

①入出力設定M1とM2にDCモーター、A0に赤外線フォトリフ
レクタとなるように設定しましょう。

52

②しきい値の決定
テストモードで黒い線があるときとないときの赤外線フォトリフレクタの値を下のイラストを使って確認して、しきい値を決めましょう。赤外線は黒い色に反射されにくいため、黒のときは値が小さく、白のときは値が大きくなります。

黒のとき

白のとき

0

100
黒のとき

しきい値

黒のとき

白のとき

白のとき

0

100
黒のとき

しきい値

黒のとき

白のとき

白のとき

0

100
黒のとき

しきい値

53

白のとき

③ライントレースカーの動作整理
黒い線に沿って走らせる方法の一つとして、黒い線の上ではなく、黒い線のふち（黒い線とまわりとの境界線）に沿って走らせるものがあります。
黒い線のふち

黒い線のふちに沿って走らせるには、例えば線の上にいるとき（黒色）と、そうでないとき（白色）で次のようにDCモータ
ーを制御します。

線の上にいるとき（黒色）

そうでないとき（白色）

黒い線のふちに近づくように右折する

黒い線のふちに近づくように左折する

この動きを繰り返すことで、線の上（黒色）とその外（白色）を行ったり来たりしながら線のふちに沿って走るようになります。

54この動きをまとめると、以下のようになります。

線の上にいるとき（黒色）

そうでないとき（白色）状態

赤外線フォトリフレクタ A0の値

条件

＜しきい値

動作
プログラム

左の条件以外のとき

右折する

左折する

DCモーター M1 を停止

DCモーター M1 を正転

DCモーター M2 を正転DCモーター M2 を停止④フローチャート
整理した動作を実現できるように手順を考えてフローチャートをまとめましょう。今回はしきい値を超えるときと越えないときでそれぞれ違う動作をする必要があることに注意しましょう。

はじめ
DCモーターM1の速さを100にする
DCモーターM2の速さを100にする

赤外線フォトリフレクタのA0の値＜

No

Yes

DCモーターM1を停止

DCモーターM1を正転

DCモーターM2を正転

DCモーターM2を停止

55

⑤プログラミング
まとめたフローチャートをもとにプログラムを作成しましょう。
「制御」カテゴリーにあるしましょう。

を使うことに注意

を使うと、指定した条件が成り立つときと成り立たないときで処理を分けることができます。

条件を入れる

ライントレースカーの別解
以下のプログラムでもライントレースカーの動作が実現できます。
いるだけで、行っている処理はほとんど同じです。

56の代わりに、を２つ並べて組み立て
説明＜関連する章＞
・第 2 章～第 5 章
・演習

第 2 章 車の組み立て

1

ブロックを図のように組み立てます。

①②！ 突起の向きに注意！ 突起の向きに注意

②

①

③

③

③

58

2

ブロックを図のように組み立てます。

④！ 突起の向きに注意

④

⑤

⑤

！ 突起の向きに注意

3

ブロックを図のように取り付けます。

4

ブロックを図のように組み立てます。

⑥

⑥

59

5

DC モーターを図のように組み立て、取り付けます。

！ 突起の向きに注意

6

反対側も同様にします。
！

7

突起の向き
に注意

電池ボックスを図のようにのせます。

スイッチがこの位置にくるよう
にします。

！
60

プラス

マイナスの向きに注意8 コードがモーターの軸に絡まっていないか確認してください。

9

DC モーターと電池ボックスのコネクターを
スタディーノに取り付けます。
電池ボックス

左のDCモーター
右のDCモーター

M2へ

M1

M1へ

M2

障害物の組み立て

61

10 完成

第 4 章 タッチセンサーの取り付け完成

タッチセンサーにセンサーコードを接続する。

！ コネクターの向きに注意

タッチセンサーのコネクターを [A0] に接続する。

！ 灰色のコードの向きに注意

第 2 章で組み立て済みの車

第5章 赤外線フォトリフレクタの取り付け完成

赤 外 線フォトリ
フレクタにセン
サーコードを接続する。

！

コネクターの向きに注意

タッチセンサーのコネクターを [A0] に接続する。

！ 灰色のコードの向きに注意

62

付録

・その他の操作方法
・ブロック一覧表
・対比表

付録 1

その他の操作方法◆ ブロックの複製
つながっているブロックを複製できます。つなげた

右クリックして複製ブロックの一部分だけ複製したい場合は、その部分を抜き出して同じ操作を行います。

ブロックが
複製される

◆ ブロックの削除の取り消し削除したブロックを戻したい場合は、「編集」から「削除の取り消し」を選択します。

◆ プログラムの保存方法①「ファイル」から「名前を付けて保存」をクリックします。

②保存する場所を選択します。

③ファイルに名前を付けて「OK」をクリックします。

64

付録 2

ブロック一覧表

テキストで使うブロックに関する使い方の一覧表です。

カテゴリ

ブロック

使い方

DC モーターの速さを指定する

動き

DC モーターを正転・逆転させる

DC モーターを停止させる

指定した秒数待つ囲われたプログラムをずっと実行する

囲われたプログラム指定回数実行する

制御

囲われたプログラムを条件が満たされたとき実行する
条件が満たされるまで待つ
条件が満たされるまで囲われたプログラムをずっと実行する
タッチセンサーの値を調べる

調べる
赤外線フォトリフレクタの値を調べる「小なり」で値を比較する

演算「等しい」で値を比較する「大なり」で値を比較する

65

付録 3

ブロックとフローチャートの対比表

テキストで使うブロックとフローチャートの対比表です。

処理

ブロック

フローチャート

動作の処理

処理

待つ

○秒 待つ

ずっと

処理

繰り返す

繰り返し○回

指定回数

処理

繰り返す

繰り返し戻る

もし～なら

もし～なら

Yes

処理

~ まで待つ

～まで待つ

66

No

確認問題集第1章

身近なプログラミング

確認問 題① コンピューターの動作手順を記述したものを何というでしょうか。
② プログラムを作成するときに使う特別な言葉を何というでしょうか。
③ 光、音、温度などの周囲の情報を計測する装置を何というでしょうか。
④ モーターなどのコンピューターからの命令に従ってエネルギーを動作に変えて仕事をするものを何というでしょうか。
⑤ 社会の中で計測・制御の仕組みが使われている製品を１つ挙げ、その中で使われているセンサーとその役割について説明しなさい。

①

②

③

④

製品
センサー

⑤

役割

68

第2章

順次処理とフローチャート

確認問 題① 命令を順番通りに行う処理のことを何というでしょうか。
② 矢印や記号を用いて処理の手順を整理した図のことを何というでしょうか。
③ 次のA～Eの処理を表すフローチャートの記号の形をそれぞれ描きなさい。
A ： 処理の開始と終了

B ： 一般的な処理

D ： 繰り返しの終了

E ： 条件分岐C ： 繰り返しの開始
はじめ④ 次のA～Cの空欄を埋めて室温を25℃に保つエアコンの動作を表すフローチャー

No

A

トを完成させなさい。
Yes

送風停止

25℃
より寒い？

No

Yes

Ｂ

Ｃ

⑤ 車を前に３秒動かしたあと後ろに 3 秒動かすときのフローチャートを、以下の記号に「右・左」もしくは数字を入れて表しなさい。
はじめ

おわりの DC モーターを逆転

秒待つの DC モーターを正転の DC モーターの速さを 100 にするの DC モーターを停止

①

⑤

②

③

Ａ

B

C

D

E
Ａ

④

B
C

69

第3章

車の制御

確認問 題

① 車を１秒間左折させるときと１秒間右回転させるときのフローチャートを、以下の記号に「右・左」もしくは数字を入れて表しなさい。
はじめ

おわりの DC モーターを正転秒待つの DC モーターの速さを 100 にするの DC モーターを逆転の DC モーターを停止② 正方形を描くように車を動かそうと思い、プログラムをつくりました。無事、その図形のように車は動きましたが、停止のプログラムが繰り返しの中に入っているにも関わらず、途中で止まらなかったことが気になりました。その理由を正しく説明したものを選びなさい。
A：「速さ」ブロックが繰り返しの中に入っていないから
B：「正転」と「逆転」が逆になっているから
C：「停止」ブロックの後に「待つ」ブロックがないから①（１秒間右回転）（１秒間左折）

②

70

第4章

条件分岐のプログラム

確認問 題① 条件によって動作を選択する処理のことを何というでしょうか。
② プログラムの誤りを発見し、正しく動かすため修正することを何というでしょうか。
③ ボタンが押されたときのみ１秒間前進する車の動作の手順をフローチャートにまとめます。以下の情報を参考に、フローチャートに適当な値や文字を書き込みなさい。

タッチセンサーが押されていないとき

タッチセンサーが押されているとき

10

タッチセンサーの値④ ③のフローチャートを見てプログラムを作りましたが、プログラムを実行すると想定通りに動きません。フローチャー
ト通りの動作をさせるようにプログラムを修正する場合の適切な修正方法を選びなさい。
A：プログラム全体を「ずっと」ブロックで囲む
B：「もし～なら」ブロック内のプログラムを「ずっと」ブロックで囲む
C：「もし～なら」ブロックを「ずっと」ブロックで囲む

③

A

はじめ
右のDCモーターの速さを100にする

C

左のDCモーターの速さを100にする

タッチセンサーの値＝
Yes

B

右のDCモーターを
左のDCモーターを秒待つ①

右のDCモーターを②

左のDCモーターを

④

71

No

第5章

衝突回避カーの製作

確認問 題① 窓際の席で赤外線フォトリフレクタを使うことになりました。このとき、注意しなければならないことを説明しなさい。
② 前進中に障害物を5cm前で感知したときに障害物が無くなるまで停止し続ける車の動作の手順をフローチャートにまとめます。以下の情報を参考にして、フローチャートを完成させなさい。

障害物が 5cm 前にあるとき

障害物がないとき15

3

赤外線フォトリフレクタの値

①
②

はじめ
右のDCモーターの速さを100にする
左のDCモーターの速さを100にする

No

Yes

赤外線フォトリリフレクタの値＜

72

まで待つ

解答

第1章

確認問題

① プログラム② プログラミング言語③ センサー④ アクチュエータ

⑤
(例)

製品

自動ドア

センサー

赤外線フォトリフレクタ（人感センサー）

役割

人がいるかどうかを判断する

解説① プログラム・フローチャート・アルゴリズムの違いは以下のように説明できます。
手順を記述したもの

手順を図で表したもの

手順の考え方プログラム

フローチャートアルゴリズム②「プログラム言語」でも正解です。
⑤ その他別解が多数あります。

解答

①

第2章

確認問題

⑤

順次処理

はじめ
右のDCモーターの速さを100にする

②

③

開始

サーボモーターを 45 度にする

右のDCモーターを正転ＡB

左のDCモーターを正転

C

D

Ａ

1 秒待つ

3秒待つ

サーボモーターを 90 度にするE④

左のDCモーターの速さを100にする

フローチャート

1 秒待つ

サーボモーターを 135 度にする

温風を送る

C

冷風を送る

右のDCモーターを逆転
3秒待つ

25℃になっているか？

B

右のDCモーターを逆転

右のDCモーターを停止
右のDCモーターを停止

終了

おわり

解説
③ Cで「繰り返し〇回」、Dで「繰り返し戻る」と書いてあっても正解です。

73

解答

第3章

①

確認問題

（１秒間右回転）（１秒間左折）はじめ
右のDCモーターの速さを100にする

はじめ

左のDCモーターの速さを100にする

右のDCモーターの速さを100にする

右のDCモーターを逆転

右のDCモーターを正転

右のDCモーターを逆転

1秒待つ

1秒待つ

右のDCモーターを停止

右のDCモーターを停止

おわり

右のDCモーターを停止
おわり

② C

解答

第4章

確認問題

③

はじめ
右のDCモーターの速さを100にする
左のDCモーターの速さを100にする

タッチセンサーの値＝

0

No

Yes

右のDCモーターを 正転
左のDCモーターを 正転

1秒待つ① 条件分岐右のDCモーターを 停止② デバッグ

左のDCモーターを 停止④ B

解説④ この問題では、③のフローチャート通りのプログラムを作るための修正を行う必要があるため、Aの修正は不適切に
なります。

74

解答

第5章

確認問 題

① 赤外線フォトリフレクタを太陽光に向かって配置しないようにすること。
②

はじめ
右のDCモーターの速さを100にする
左のDCモーターの速さを100にする
右のDCモーターを正転
左のDCモーターを正転

赤外線フォトリフレクタの値＞15

No

Yes

右のDCモーターを停止
左のDCモーターを停止
赤外線フォトリフレクタの値＜ 15 まで待つ

右のDCモーターを正転
左のDCモーターを正転

解説① 赤外線フォトリフレクタの検出部を太陽光に向けない旨が書かれていれば正解です。
② 障害物が５cm以内にいるとき停止するので、しきい値は15にする必要があります。障害物がない場合との中間値を取った場合、「５cm以内で停止」という目的に合わないため（５cmより遠くても停止してしまう）、正解になりません。

75

計測と制御キットＤ

プログラムによるセンサーカーの制御

教員用

テキストに関するお問い合わせ
TEL：072-990-5514
E-mail：support@artec-kk.co.jp
085542

K0418