計測と制御キットC
プログラムによる自動ゲートの制御

教員用

目次
第１章

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

第２章

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

第３章

繰り返すプログラム… …………………………………………………………… 19

第４章

条件分岐のプログラム… ………………………………………………………… 23

第５章

自動ゲートの製作… ……………………………………………………………… 32

演習１

踏切の製作… ……………………………………………………………………… 40

演習 2

踏切の改良… ……………………………………………………………………… 47

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

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

2

第

1章

身近なプログラミング＜学習内容＞
・身近な計測・制御システム
・プログラミング環境の基本操作

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

例

エアコン
センサー

コンピューター

アクチュエータ

人感センサー（赤外線センセンサーで感知・計測したコンピューターからの指サー）・温感センサーで人情報を処理・判断する。そ令を受けてモーターの回の 位置や体温・室内の温れを元に温度や風力を設定

転数を変え温度の調整を

度を計測する。

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

する。

人感センサー

モーター

コンピューター

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

製品名

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

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

風呂給湯器

水量

給湯する / 給湯を止める

お掃除ロボ

壁や障害物の有無

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

4

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

例

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

設定温度を読み取る

現在の温度を計測する

繰り返す

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

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

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

5

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

自動ドアの動作の流れ

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

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

赤外線フォトリフレクタ

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

押されたことを調べる

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

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

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

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

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

LED ライトブザー

電気を光に変える

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

6

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

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

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

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

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

メニュー

文字サイズの変更

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

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

ブロック

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

ドラッグ＆ドロップ8

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

◆ 動き

◆ 制御

◆ 演算

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

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

計算の命令を出したり※灰色のブロックは使用できません。

後述の設定変更で使用可能になります。

◆ 調べる

◆ 変数

センサー上を指定して数値情報の記録に使います。

周りの情報を調べます。

（今回は使いません）

9

条件式を作成します。

第2章

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

１. 順次処理のプログラム
命令を順番通りに行う処理のことを「順次処理」といいます。サーボモーターを使ってゲートをつくる中で、順次処理のプログラムを学びましょう。
サーボモーターを 0 度にする

1 秒待つ

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

サーボモーターについて・プログラムで回る角度を決めて動かすモーターです。

空回りする・回る角度は０度から１８０度の間で指定します。

プログラムで動く・手でゆっくり回したときに重たく感じる側がプログラムで動きます。
※無理やり回したり、はげしく動かしたりせずに、ゆっくりと手で回すようにして
ください。

①組み立て
59 ページの組み立て説明を見て、ゲートを組み立てましょう。

組み立て準備① Studuino（スタディーノ）基板 ……………………1①② 電池ボックス（電池入） ……………………………1②③ ハーフブロック

薄水 ………………………………3④ サーボモーター ……………………………………1

③

④

11

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

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

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

ましょう。

POWER：電池ボックス

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

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

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

12

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

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

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

◆ プログラムの転送方法

テストモード

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

プログラムの実行

ログラム作成・転送」をクリックします。

動作信号

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

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

動作信号

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

13

④サーボモーターの動作確認
サーボモーターを動かして、プログラムと動作の関係を調べましょう。サーボモーターの角度は、側面の刻印で確認することができます。

刻印

側面

サーボモーターのブロックをスクリプトエリアに並べましょう。電池ボックスのスイッチをオンにして、サーボモーターの角度を上下の矢印で変え、ゲートの位置とサーボモーターの角度の関係を調べましょう。

角度を上下の矢印で変える

ゲートが左のときゲートが真ん中のときゲートが右のとき

0度

90 度

180 度

14

⑤プログラミング
サーボモーターが 0 度→ 90 度と動くようにプログラムをつくりましょう。

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

1 秒待つ

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

サーボモーターを 0 度に動かすプログラムをつくりましょう。数値はキーボードでも、数字をクリックしたときに表示されるパッドでも入力可能です。

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

15

最後に、サーボモーターを９０度に動かすブロックをつなぎます。つないだブロックをクリックしてプログラムを実行しましょう。プログラムの実行中は実行されているブロックが白枠で囲われます。

プログラムが実行される流れ

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

「１秒待つ」のブロックを入れないとどうなるのか？
以下のプログラムで動作をさせた場合、サーボモーターは９０度からほぼ動きません。

これはコンピューターがプログラムを非常に高速で処理していることが原因です。
「サーボモーターを０度にする」命令の直後に、「サーボモーターを９０度にする」命令が行われてしまうため、想定している動作になりません。

◆ 「１秒待つ」を入れない場合
90 度へ

0 度へ

モーターの角度が変わる時間がないため９０度の位置から動かない◆ 「１秒待つ」を入れる場合
0 度へ

90 度へ

1 秒待つ

1 秒待つ

16

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

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

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

繰り返し処理の開始

繰り返し戻る

繰り返し処理の終了

条件

条件で処理を分ける

No

Yes

例

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

はじめ

25℃に
なっている？

No

Yes

送風停止

25℃
より寒い？

No

Yes

温風を送る

17

冷風を送る

練習課題
次の動作をフローチャートを使ってまとめたあと、プログラムをつくりましょう。

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

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

1 秒待つ

1 秒待つ

はじめ

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

1 秒待つ

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

1 秒待つ

サーボモーター D9 を 90 度にする

おわり

18

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

第3章

繰り返すプログラム＜学習内容＞・繰り返し１. 繰り返しのプログラム
サーボモーターが４５度と１３５度に交互に 5 回動くプログラムをつくりましょう。
第２章と同じゲートを使いましょう。

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

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

1 秒待つ

1 秒待つ

5 回繰り返す①フローチャート
同じ動作を複数回繰り返す場合、以下の記号を使います。動作を表すフローチャートをまとめましょう。

繰り返し○回

繰り返し処理の開始

はじめ

繰り返し戻る

繰り返し処理の終了

繰り返し 5 回

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

1 秒待つ

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

1 秒待つ

繰り返し戻るおわり

20

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

回数を変える

回数だけ繰り返し実行されます。

③動作確認と修正完成したプログラムを動かすと、想定通りに動かないことがあります。そのときのプログラムは以下のようになっているのではないでしょうか。

このプログラムを繰り返しブロックを使わずに書いてみると、赤枠部分で 135 度にするブロックの直後に45 度にするブロックが存在しており、135 度にする
時間がないことがわかります。

21

コンピューターはプログラムを組んだ通りに動きます。そのため、プログラムをつくる前にフローチャートを使って動作を予測し、間違った動きをする恐れがないかを確認することが大切です。

はじめ

繰り返し 5 回

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

1 秒待つ

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

1 秒待つ

入れる

繰り返し戻るおわり④無限に繰り返すプログラム
同じ動きをずっと繰り返させたい場合は、を利用します。
はじめ「５回繰り返す」を「ずっと」のブロックに変更しましょう。
サーボモーター D9 を 45 度にする

1 秒待つ

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

1 秒待つ

このとき、フローチャートは右のように「終了」がなくなり、繰り返し続けることを矢印で表します。

22

終了しない

第

4章

条件分岐のプログラム＜学習内容＞
・条件分岐
・タッチセンサー

１. 条件分岐のプログラム
タッチセンサーを用いて、押しボタン式のゲートをつくりましょう。

ゲートを閉じる

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

ゲートを開くゲートを閉じる

5 秒待つ

①組み立て
60 ページの組み立て説明を見て、ゲートにタッチセンサーを取り付けた押しボタン式ゲートを組み立てましょう。

組み立て準備① ゲート（組立済）… ……………………………………1② センサーコード…………………………………………1①③ タッチセンサー… ……………………………………1

②
③

24

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

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

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

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

01

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

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

25

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

順番

動作

プログラム

ゲートを閉じる

サーボモーター D9 を①

0 度にする

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

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

ゲートを開くサーボモーター D9 を③

90 度にする

５秒待つ

④

5 秒待つ

ゲートを閉じる

サーボモーター D9 を⑤

0 度にする②～⑤をずっと繰り返す26

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

条件

条件で処理を分けるNo

Yes

26 ページで整理した動作を参考に、フローチャートをまとめましょう。

はじめ
サーボモーター D9 を 0 度にする

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

No

Yes

サーボモーター D9 を 90 度にする
5 秒待つ
サーボモーター D9 を 0 度にする

フローチャートに「終了」が存在せずに繰り返しているのは、タッチセンサーが押されているかを常に確認するためです。

27

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

条件

条件を入れる

No

A

Yes

A

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

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

数値を入れる

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

28

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

ゲートが開いたあとに「ずっと」のブロックを使っているか

閉じるプログラムを入れているか

ステップ実行機能でプログラムの流れを可視化する条件で処理を分けると、プログラムが少し複雑になります。複雑なプログラムを作成する際に間違えてしまうことは頻繁に起こることであり、その時に誤りを素早く発見し修正すること（＝「デバッグ」）が大切です。

どのような流れでプログラムが動いているのかに注
目することは、誤りの発見に有効です。プログラムの処理の流れを可視化する機能として、「ステップ実行機能」があります。
ステップ実行を開始してプログラムを実行すると、そのとき処理しているブロックが黄色く光るようになります。
デバッグを行うときは、ステップ実行機能を活用しま
しょう。
※ステップ実行時はプログラムの処理が極端に遅くなることに注意してください。

29

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

はじめ

サーボモーター D9 を 0 度にする

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

No

Yes

サーボモーター D9 を 90 度にする

5 秒待つ

サーボモーター D9 を 0 度にする

このプログラムを動作させると、タッチセンサーを押しても全く反応しなくなります。これは、プログラムが非常に高速で処理される

おわりことで、プログラムを動作させた瞬間にプログラムが終了してしまプログラムがうからです。
「ずっと」のブロックを入れることで、タッチセンサー

終了するの値を常に確認するようになるため想定通りの動作をするように
なります。

はじめ

サーボモーター D9 を 0 度にする

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

No

Yes

サーボモーター D9 を 90 度にする

5 秒待つ

サーボモーター D9 を 0 度にする

コンピューターはプログラム通りに動くので、思わぬ間違いで期プログラムが終了しない

待した動作と実際の動作が異なってしまうことがよくあります。フローチャートをまとめる段階で動作をよく考えることは間違いを避けることにつながります。

30

違うプログラムで同じ動きを実現する
以下のようなプログラムでも押しボタン式ゲートを実現することができます。

はじめ

サーボモーター D9 を 0 度にする

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

No

Yes

サーボモーター D9 を 90 度にする

5 秒待つ

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

31

第

5章

自動ゲートの製作＜学習内容＞
・赤外線フォトリフレクタ

１. 自動ゲートの製作
赤外線フォトリフレクタを利用して自動ゲートをつくりましょう。

ゲートを閉じる

物を感知する

ゲートを開くゲートを閉じる

5 秒待つ

基本的な動作の流れは第４章でつくった押しボタン式ゲートと同じですが、タッチセンサーの代わりに赤外線フォトリ
フレクタを使用します。

自動ドアの種類
身近なところで使われている自動ドアのセンサーには様々な方式があり、代表的なものに、タッチ方式と光反射方式があります。
タッチ方式はタッチセンサーで実現でき、光反射方式は赤外線フォトリフレクタで実現することができます。
タッチ方式

光反射方式

ドアに取り付けられた

ドアの上に取り付けられたセンサーから出る

タッチスイッチを押すと開く

光を反射するものがあると開く

33

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

赤外線を検出するところ

反射した光

検出部

対象物

センサ ー 本 体

赤外線

赤外線
発光部

赤外線を発光するところ

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

太陽光

対象物

対象物

反射光

反射光

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

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

・黒系の色は赤外線を吸収しやすく反射しにくいため、他の色に比べて値が小さくなります。

反射する

赤外線
発光部

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

赤外線

白い
ブロック

発光部

34

黒い
ブロック

②組み立て４章でつくった押しボタン式ゲートのタッチセンサーを赤外線フォトリフレクタに付け替えます。60 ページの組み立て説明を見て、自動ゲートを組み立てましょう。

組み立て準備① ゲート（第４章のもの） …………………… 1② センサーコード……………………………… 1①③ 四角ブロック④ 赤外線フォトリフレクタ …………………… 1②③

白 ………………………… 2④③入出力設定D9 にサーボモーター、A0 に赤外線フォトリフレクタとなるように設定しましょう。

35

④赤外線フォトリフレクタの数値確認
自動ゲートはゲートの前に人が立ったときにセンサで感知してゲートを開きます。この「感知」の役割を赤外線フォトリフレクタで行います。テストモードにして、センサー・ボードで赤外線フォトリフレクタの値を確認しましょう。
下のイラストに合わせて、Studuino（スタディーノ）基板と白いブロックを置きます。赤外線フォトリフレクタの前に白いブロックがないときとあるときの数値の変化を確認しましょう。
太陽光を背に向けた状態で調べると正しい数値を確認しやすくなります。

白いブロックを白いブロックを置いていないときの数値置いているときの数値※赤外線フォトリフレクタの個体差で同じ距離でも数値が異なる場合があります。

36

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

しきい値より小さければ0

しきい値より大きければブロックがない

ブロックがある

10

しきい値

しきい値は、36 ページで調べた結果から考えます。

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

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

1

2

3

0

100

ブロックがないときの値ブロックがあるときの値

ブロックがない

ブロックがある37

⑥フローチャート
33 ページに示した動作を実現できるように手順を考えてフローチャートをまとめましょう。基本的なフローチャートの構造は４章でつくったものと同じで、センサーをタッチセンサーから赤外線フォトリフレクタに変更しただけです。条件の部分を決めたしきい値を利用して書き換えましょう。

はじめ
サーボモーター D9 を 0 度にする

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

サーボモーター D9 を 90 度にする
5 秒待つ
サーボモーター D9 を 0 度にする

38

No

⑦プログラム作成
不等号のブロックを使うことに注意して、プログラムをつくりましょう。

自動ゲートの別解
以下のプログラムでも自動ゲートの動作が実現できます。

はじめ
サーボモーター D9 を 0 度にする

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

No

＞
Yes

サーボモーター D9 を 90 度にする
5 秒待つ

39

演習

1

踏切の製作

＜学習内容＞
・踏切の製作

１. 踏切の製作
赤外線フォトリフレクタを使って踏切をつくりましょう。

踏切を開ける

電車を感知する

踏切を閉める

踏切を開ける

電車が通過するまで待つ41

①組み立て61 ページの組み立て説明を見て、踏切と電車を組み立てましょう。

組み立て準備① Studuino（スタディーノ）基板 …… 1③②

② 電池ボックス（電池入） …………… 1③ サーボモーター …………………… 1④④ 赤外線フォトリフレクタ …………… 1①⑤⑥⑤ ハーフブロック

薄水 ……………… 5⑥ 四角ブロック

白 ………………… 2⑦ センサーコード……………………… 1⑧ ハーフブロック⑦⑧②入出力設定D9 にサーボモーター、A4 に赤外線フォトリフレクタとなるように設定しましょう。

※ A0 は演習 2 で使うため、ここでは赤外線フォトリフレクタを A4 に接続します。

42

薄水 ……………… 7

③しきい値の決定
テストモードで電車が赤外線フォトリフレクタの前にいるときといないときの値を下のイラストを使って確認し、しきい
値を決めましょう。

電車がいるときの値

電車がいないときの値

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

43

④踏切の動作の整理
順番

動作

プログラム

踏切を開く

サーボモーター D9 を①

90 度にする

電車を感知する

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

踏切を閉じるサーボモーター D9 を③

0 度にする

電車が通過するまで待つ

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

④

＜

まで待つ

踏切を開く

サーボモーター D9 を⑤

90 度にする②～⑤をずっと繰り返す44

⑤フローチャート作成③で決めたしきい値と④で整理した動作をもとにフローチャートをまとめましょう。また、「電車が通過するまで待つ」
は赤外線フォトリフレクタの値＜を使いましょう。

まで待つはじめ
サーボモーター D9 を 90 度にする

No

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

サーボモーター D9 を 0 度にする

赤外線フォトリフレクタ A4 の値 ＜まで待つ

サーボモーター D9 を 90 度にする

45

⑥プログラム作成
まとめたフローチャートをもとにプログラムをつくりましょう。

を使うことに注意しましょう。

を使うと、指定した条件が成り立つまでブロックの処理が行われるのを止めるようになります。

条件を入れる

46

演習

2

踏切の改良

＜学習内容＞
・LED
・ブザー
・踏切の改良１. 踏切の改良
演習 1 でつくった踏切をより事故の起こりにくいものに改良しましょう。現実の踏切はたくさんの工夫がされて、便利なものになっています。

スピーカー
踏切警票

踏切警光灯

列車進行方向指示器

LED とブザーを取り付けて、開いているときや閉まっているときを光や音でも表しましょう。

踏切を開ける、LED 青点灯

電車を感知する

踏切を閉める、LED 赤点滅、警報音

踏切を開ける、LED 青点灯

電車が通過するまで待つ48

①組み立て62 ページの組み立て説明を見て、演習 1 の①の踏切に赤と青の LED とブザーを追加しましょう。

組み立て準備① 踏切（演習 1 のもの）………… 1② LED 青 ………………………… 1③ ハーフブロック

青 …………… 2④ LED 赤 ………………………… 1⑤ 四角ブロック

白 …………… 1⑥ ブザー ………………………… 1⑦ センサーコード………………… 3①⑧ 電車（演習 1 のもの）………… 1

②
③
④
⑤

⑦
⑧

⑥

②入出力設定D9 にサーボモーター、A4 に赤外線フォトリフレクタ、A0 と A1 に LED、A2 にブザーとなるように設定しましょう。

49

③ブザーの使い方
ブザーのブロックは「動き」カテゴリーにあり、出力と停止の 2 種類のブロックがあります。出力ブロックでは音の高さを決めることができます。

数字を直接変えるだけでなく、数字の横の▼をクリックしたときに表示される鍵盤でも音の高さは変更できます。

フローチャートをもとにブザーを 60（ド）の高さで３秒鳴らすプログラムをつくりましょう。

はじめ

ブザー A2 から 60 を出力する

3 秒待つ

ブザー A2 の出力を停止する

おわり

50

④ LED の使い方
LED のブロックは「動き」カテゴリーにあり、点灯と消灯を選ぶことができます。

また、今回 LED は赤と青の２種類あるため、どちらを光らせるか選択する必要があります。どちらの色の LED をどの
コネクターに接続したかを確認しておきましょう。

赤の LED のコネクター

青の LED のコネクター

A0

A1

フローチャートをもとに赤の LED を５回点滅させるプログラムをつくりましょう。
はじめ

繰り返し 5 回

LED A0 を点灯

1 秒待つ

LED A0 を消灯

1 秒待つ

繰り返し戻るおわり

51

⑤踏切の音と光のプログラム
今回は以下のような動作を行う踏切をつくます。

踏切の状態

踏切が開いているとき

踏切が閉まっているとき

秒待つ

0.5

LED と
ブザーの
動作

青の LED が点灯する

赤の LED が点灯し、「ド」が鳴る

赤の LED が消灯し、「ミ」が鳴る

踏切が閉まっているときの動作が複雑なので整理しましょう。
はじめ

繰り返し 5 回

写真を見て閉まっているときの LED とブザーのフローチャー
トを作成して、プログラムをつくりましょう。
「ド」は 60 の音、「ミ」は 64 の音であることに注意しましょう。

LED A0 を点灯

ブザー A2 から 60 を出力する

0.5 秒待つ

LED A0 を消灯

ブザー A2 から 64 を出力する

0.5 秒待つ

繰り返し戻るおわり

52

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

電車が踏切を通過していないとき

踏切開く

サーボモーター D9 を 90 度にする

LED 青

点灯

LED A1 を点灯

LED 赤

消灯

LED A0 を消灯

ブザー

鳴らない

ブザー A2 の出力を停止する

電車が踏切を通過しているとき

踏切

閉まる

サーボモーター D9 を０度にする

LED 青

消灯

LED A1 を点灯
LED A0 を点灯

LED 赤

点滅

LED A0 を消灯
を 0.5 秒ごとに繰り返す

LED A0 が点灯時に「60（ド）」ブザー

点滅に合わせて鳴る

LED A0 が消灯時に「64（ミ）」で鳴る

条件

赤外線フォトリフレクタ A4 の値がしきい値を超えているとき53

まとめた動作を時系列順に並べると、以下のようになります。

踏切と電車の状況

サーボモーター

LED

ブザー

90 度

青点灯

鳴らない

はじめの状態①

近づいたとき②

もし電車が踏切に近づいたら

青消灯

0度

赤点滅

鳴らない

通過しているとき

③

点灯時→ド
消灯時→ミ

電車が踏切を通過するまで
通過し終わったとき

④

90 度

青点灯

電車が踏切を通過するまで繰り返す

0度

鳴らない

表から、赤の LED の点滅とブザーからの音は、電車が踏切を通過し終わるまで繰り返す必要があることがわかります。
「踏切を通過し終わるまで繰り返す」は、制御カテゴリーの
できます。

54

を使うことで表現することが⑦フローチャート作成⑥でまとめた動作を参考にフローチャートを完成させましょう。

はじめ

サーボモーター D9 を 90 度にする

LED A1 を点灯

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

サーボモーター D9 を 0 度にする

LED A1 を消灯

赤外線フォトリフレクタ A4 の値＜まで繰り返すLED A0 を点灯

ブザー A2 から 60 を出力する

0.5 秒待つ

LED A0 を消灯

ブザー A2 から 64 を出力する

0.5 秒待つ

繰り返し戻る
ブザー A2 の出力を停止する

サーボモーター D9 を 90 度にする

LED A1 を点灯

55

No

⑧プログラム作成⑦でまとめたフローチャートをもとに、プログラムを完成させましょう。

を使うことに注意しましょう。

条件を入れる

うまく動かない場合、以下のことを確認しましょう。

LED のコネクターを間違えていないか点灯させた LED を消灯させるのを忘れていないか
ブザーの出力を停止することを忘れていないか

ブザーの出力を停止するブロックを入れる場所を間違えていないか

しきい値を使って表した条件で不等号が逆になっていないか※ステップ実行機能でプログラムを実行していると、プログラムの読み込み速度が落ちるため踏切を閉じているときの挙動が遅れることがあります。

56

プログラムの別解
以下のプログラムでも同様の動作が実現できます。今回の改良では他にも色々なプログラムが考えられます。⑥で整理した動作が実現できていればすべて正解なので、フローチャートをよく考えて自分なりのプログラムを完成させましょう。

はじめ

サーボモーター D9 を 90 度にする

LED A1 を点灯

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

サーボモーター D9 を 0 度にする

LED A1 を消灯

赤外線フォトリフレクタ A4 の値＜まで繰り返すLED A0 を点灯

ブザー A2 から 60 を出力する

0.5 秒待つ

LED A0 を消灯

ブザー A2 から 64 を出力する

0.5 秒待つ

繰り返し戻る
ブザー A2 の出力を停止する

57

No

組み 立 て説明＜関連する章＞
・第 2 章～第 5 章
・演習問題

第 2 章 ゲートの組み立て
サーボモーターのコネクターを「D9」に接続する。

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

電池ボックスのコネクターを「Power」に接続する。

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

！

プラス

マイナスの

向きに注意

完成

59

第 4 章 押しボタン式ゲートの組み立て
タッチセンサーにセンサーコードを接続する。

！ コネクターの向きに注意
第 2 章で組み立て済みのゲートタッチセンサーのコネクターを [A0] に接続する。

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

第 5 章 自動ゲートの組み立て
第 4 章で組み立て済みのゲートから
タッチセンサーを外したもの

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

！

コネクターの向きに注意

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

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

60

演習 1 踏切と電車の組み立て
サーボモーターのコネクターを「D9」に接続する。

！

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

赤 外 線フォトリ
フレクタにセン
サーコードを接続する。
赤外線フォトリフレクタのコネクターを [A4] に電 池
ボックスのコネクターを [Power] に接続する。

！

コネクターの向きに注意

完成！ 灰色のコードの向きに注意！ コネクターの向きに注意

電車61

演習 2 踏切の改良
演習 1 で組み立て
済みの踏切

LED 赤

LED 赤・LED 青・ブザーにそれぞれセンサーコードを
接続する。

LED 青
ブザー

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

LED 赤を [A0]・LED 青を [A1]・ブザーを [A2] に
接続する。

完成

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

62

付録

＜学習内容＞＜掲載内容＞
・○○システム・その他の操作方法
・プログラミング・ブロック一覧表

付録 1

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

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

ブロックが
複製される

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

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

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

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

64

付録 2

ブロック一覧表

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

カテゴリ

ブロック

使い方

サーボモーターを指定した角度にする

指定した高さの音を鳴らす

動き
音を止める

指定した LED を点灯・消灯する

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

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

制御

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

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

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

65

付録 3

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

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

処理

ブロック

フローチャート

動作の処理

処理

待つ

○秒 待つ

ずっと

処理

繰り返す

繰り返し ○回

指定回数

処理

繰り返す

繰り返し戻る

もし～なら

もし～なら

Yes

処理

~ まで待つ～まで待つ～まで繰り返す

～まで

処理

繰り返す

繰り返し戻る

66

No確認問題集第1章

身近なプログラミング

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

①

②

③

④

製品
センサー

⑤

役割

68

第2章

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

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

B：一般的な処理

D：繰り返しの終了

E：条件分岐④ 次のA～Cの空欄を埋めて室温を25℃に

C：繰り返しの開始
はじめ

保つエアコンの動作を表すフローチャート

No

A

を完成させなさい。
Yes

送風停止

25℃
より寒い？

No

Yes

Ｂ

Ｃ

⑤ サーボモーターを１秒おきに 45 度→ 90 度→135 度の順番で動かすときの処理の手順を以下の記号を用いて、フローチャートで表しなさい。

はじめ

おわり

サーボモーターを

①

⑤

②

③

Ａ

B

C

D

E
Ａ

④

B
C

69

度にする

秒待つ

第3章

反復のプログラム確認問題① 同じ処理を回数や条件を満たすまで繰り返すことを何というでしょうか。
② サーボモーターを１秒おきに 45 度と 135 度に交互に 5 回動かすときの処理の手順を以下の記号を用いて、フローチャートで表しなさい。
はじめ

おわり

サーボモーターを
繰り返し

度にする
回

③ サーボモーターを１秒おきに 45 度と 135 度に交互に 5 回
動かしたいと考え、右のようなプログラムをつくりました。
しかし、プログラムを実行すると考えた通りに動きません。
その理由を正しく説明したものを選びなさい。
A：「45 度に動かす」ブロックと「135 度に動かす」ブロックの順番が逆だから
B：「ずっと」のブロックがないから
C：「135 度に動かす」ブロックの後に「１秒待つ」ブロックがないから

②

①
③

70

秒待つ
繰り返し戻る第4章

条件分岐のプログラム

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

01

ゲートが閉じているときゲートが開いているとき

090

タッチセンサーの値

サーボモーターの角度④ ③のフローチャートをもとにプログラムを右のようにつくりました。しかし、プログラムを実行すると考えた通りに動きません。その理由を正しく説明したものを選びなさい。
A：タッチセンサーの条件が間違っているから
B：ずっと繰り返しタッチセンサーの値を確認する処理になっていないからC：「もし～なら」のブロックの中の「90 度に動かす」ブロッ
クと「0 度に動かす」ブロックの順番が逆だから

①

③
はじめ

②

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

タッチセンサーの値＝
Yes

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

秒待つ
サーボモーターを

71

度にする

No

第5章

自動ゲートの製作① 窓際の席で赤外線フォトリフレクタを使うことになりました。このとき、注意しなければならないことを説明しなさい。
② ブロックがあるかどうかを赤外線フォトリフレクタで判断します。ブロックがある場合の値が７０で、ない場合の値が１０のとき、しきい値はどのような値にすればいいでしょうか。適当な値を答え、また、その値を選んだ理由も述べなさい。

0

10

70
ブロックがない100

ブロックがある③ 人を感知したときのみ５秒間開くゲートの動作の手順をフローチャートにまとめます。以下の情報を参考にして、フローチャートに適当な不等号や値を書き込みなさい。

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

サーボモーターの角度

人がいるとき人がいないとき7010

ゲートが閉じているときゲートが開いているとき

0

90

①
値
②
③

理由

はじめ
サーボモーターを度にする

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

Yes

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

秒待つ
サーボモーターを

72

度にする

No

解答

第1章

確認問題

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

⑤
(例)

製品

自動ドア

センサー

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

役割

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

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

手順を図で表したもの

手順の考え方プログラム

フローチャートアルゴリズム②「プログラム言語」でも正解です。
④ エネルギーを動きに変えるものだけをアクチュエータと言う場合もあります。
⑤ その他別解が多数あります。

解答
①

確認問題

⑤

順次処理

②

③

第2章

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

フローチャート
Ａ

B

C

D

1 秒待つ

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

E
Ａ

④

開始

1 秒待つ

25℃になっているか？

B

温風を送る

C

冷風を送る

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

終了

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

73

解答

第3章

確認問題

解説

②
はじめ

② 繰り返しの記号を使
わず に５回 処 理を書繰り返し 5 回

く形でもフローチャー
トとしては正解です。

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

1 秒待つ

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

1 秒待つ

繰り返し戻る

①
③

反復

おわり

Ｃ

解答

第4章

①

条件分岐

②

デバッグ

④

Ｂ

確認問題

解説

③

④ プログラムは上からはじめ
サーボモーターを順番に非常に高速で0処理されるため、繰り度にする返しプログラムを動作させてタッチセンサー

タッチセンサーの値＝

0

瞬でプ ログラムが 終サーボモーターを

90 度にする

0

了してしまい考えた動作が実現できません。

秒待つ

サーボモーターを

74の 値を確 認させる処
理 にしな け れ ば、 一

Yes

5

No

度にする

解答
①

②

第5章

確認問題

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

40

理由

周りの環境の影響で誤作動を起こしにくくするため③

はじめ
サーボモーターを0度にする

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

No

＞40

Yes

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

5秒待つ

サーボモーターを

0

度にする

解説
① 赤外線フォトリフレクタの検出部を太陽光に向けない旨が書かれていれば正解です。
② 解答では、しきい値をブロックがあるときとないときの値の中間を取って 40 としています。誤作動を避けることが目的ですので、30 ～ 50 の値であれば正解として問題ありません。理由は誤作動を避けること・正確に判断することを目的にしている旨が書かれていれば正解です。
③ しきい値は②の問題と同様に考えます。ゲートが開くときは、人を感知したときであるので、「赤外線フォトリフレク
タの値 ＞ しきい値」の条件を使います。

75

計測と制御キット C

プログラムによる自動ゲートの制御

教員用

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

K0518