ＪＡ制御ヒダピオシステム教材

コンピュータ制御を学ぼう
時計付きオルゴール 版【 教師用 】

わたしたちの生活の中では、コンピュータ制御された機器が数多くあり、これらを便利に使いこなすことで、人にやさしく快適で安全な生活を送ることができます。
またエネルギー問題や環境問題に関わって、未来を大切にするために欠かせない技術を多く含んでいます。
ここでは、時計付き電子オルゴールを製作を通して、コンピュータ制御のしくみをしっか
り学習します。

年組

名前【※このテキストは”ヒダピオ学習回路番】＆

ArduBlock”に対応しています。

－

目次 －

ArduBlock とは ................................................................................................................. １「ArduBlock」をダウンロードする。..................................................................... １「ArduBlock」と「Arduino IDE」......................................................................... ２
第１章

コンピュータ制御の基礎 ............................................................................... ３制御 ........................................................................................................................................... ３
計測・制御システム ........................................................................................................... ４制御の種類 ............................................................................................................................. ６
アルゴリズムとフローチャート ..................................................................................... 7
プログラムとプログラム言語.......................................................................................... 9
マイコンとプログラム .................................................................................................... 10

第２章

時計付き電子オルゴールの製作 ..............................................................１３

第３章

プログラムによる制御 ................................................................................１９制御学習の準備をしよう ..............................................................................................１９
アルドゥブロックの基礎 ..............................................................................................２０
主なブロックのはたらき ..............................................................................................２１

1. ArduBlock(アルドゥブロック)とはこの学習で使うフリーソフトです。無料でダウンロードできますので、各家庭のパソコン
でも、学校と同じように学習できます。

2. 「ArduBlock」をダウンロードする。
①ヒダピオの専用ＷＥＢページを開きます。
「ヒダピオ」で検索してみましょう！
②メニュ―内の「ArduBlock」をクリックします。
③ファイルのダウンロードサイトをあけ、(arduino-***-ArduBlock- ***.zip)をダウンロー
ドし、任意のフォルダに保存します。
arduino-***-ArduBlock- ***.zip…

***はバージョンによって異なります。

（任意のフォルダの例：マイドキュメントや USB メモリ）
保存したファイル(arduino-***-ArduBlock- ***.zip)を解凍してください。

1

プログラムを組もう ...................................................................................................... ２３センサを使おう ............................................................................................................... ２６関数（サブルーチン）を使おう ............................................................................... ２７

第４章

いろいろな制御 ............................................................................................. ３０

デジタル数字 .................................................................................................................... ３０
信号機 .................................................................................................................................. ３２
N ゲージ ............................................................................................................................. ３４
電子オルゴール ............................................................................................................... ３５

参考資料 ............................................................................................................................. ３６
2 進数 .................................................................................................................................. ３６2 進数とコンピュータ.................................................................................................. ３７
表計算ソフトでのプログラム例 ............................................................................... ３７
HIDaspx ............................................................................................................................ ３７
ATtiny2313 とマイコンボード ............................................................................. ３８
謝辞 ...................................................................................................................................... ３８

3. 「ArduBlock」と「Arduino IDE」
Arduino は、「初心者でも簡単に扱えるマイコンボード（AVR マイコン、入出力ポートを備えた基板）」＋「C++風の Arduino 言語」と、それらの統合開発環境から構成されるシス
テムのことです。また ArduBlock は Arduino（アルドゥイーノ）の初心者向けに開発された視覚的プログラム言語で Arduino IDE のツールの一つです。
ArduBlock で「アップロード」ボタンを押すと、Arduino でスケッチと呼ばれるプログ
ラムにコンパイル（翻訳）され、さらに Arduino IDE 機械語にコンパイルされマイコンに書き込まれます。
ここで使用する ArduBlock は、HIDaspx（ヒダピオ学習回路）を使った中学校の「プログラムと計測制御」学習がスムーズに行えるように改変されています。

2

第１章 コンピュータ制御の基礎
1. 制御
制御対象と制御
発光ダイオードやモータなどの制御する機器を((

ON－OFF

制御対象)といい、スイッチを)するなどして、制御対象を希望するように動作させることを(といいます。

制御)

制御対象（モータ）
（）

【動作】

手

時計

コンピュータ
①スイッチを入れる③制御対象が動作する。

②回路に電流が流れる。

手動制御と自動制御
人がスイッチを操作する(

手動制御

やコンピュータで自動的に制御することを()の代わりに、時計やサーモスタットなどの機械

自動制御)といいます。

機械による自動制御の例
・こたつ…冷たくなれば、電流を流して温度を上げる （サーモスタット、ヒータ）・スプリンクラー…時間がくれば、一定時間水をまく （時計、ポンプ）

コンピュータ制御
最近の自動制御では(コンピュータ制御

身の回りのコンピュータ制御の多くは()が多くなっています。

マイコン呼ばれる小さなコンピュータによって制御されています。
3)と

2. 計測・制御システム
入力と出力
コンピュータに信号を送ることを(を取り出すことを(出力

入力 ：Input )するといい、コンピュータから信号：Output )するといいます。

コンピュータ制御では、人の感覚器官のかわりとなる(
LED やモータなどの(

制御対象

センサ

)からの信号を入力し、)を動作させる信号（制御信号）を出力します。

計測・制御システム
コンピュータ制御する一連の機械やソフトウェアの集まりを(計測・制御システム)と呼びます。

電気ポットの計測・制御例

アクチュエータとは「動作させるもの」を意味し、モータや油圧シリンダなど、与えられたエネルギーで機械的な動作をする部品を(アクチュエータ)といいます。

インタフェースとは
接触面、境界面の意。機械やソフトウェア、人間などの二つの異なるものを接続する機能や規格のことを(

インタフェース)といい、お互いの橋渡し的な役割をします。

センサで計測された情報は、インタフェースでデジタル化され、コンピュータに送られます。またコンピュータの命令は、制御対象が理解できる電気信号などにインタフェースで変換されます。
4

センサの種類
機械や環境の状態を計測するセンサには、いろいろな種類のものがあります。
(

CdS セル

明るさにより抵抗値が変化するセンサ)

フォトダイオード
光を検知する光エネルギーを電気エネルギーに変換するセンサ(

赤外線センサ(

ＣＣＤ)

赤外線（人の目には見えない）を検知するセンサ
多くのフォトダイオードを並べて、画像を取得できるよ)

うにしたセンサ Charge Coupled Device

サーミスタ

温度を感知する(

磁気を検知する

磁気センサ

テープ上の磁気信号を電気信号に変換するセンサ。

マイクロスイッチ

軽くふれると ONーOFF できるスイッチ。

感圧センサ

圧力が加わると抵抗が変化するセンサ。

力を検知する

温度の変化で抵抗値が変化するセンサ。

)※自動車の乗員着座感知など

アナログとデジタル
センサから得られるデータは、なめらかに連続した変化を示す(

アナログ

)信号と、

スイッチの ON-OFF のように階段状に変化
する(

デジタル

)信号があります。

Ａ/Ｄ変換
アナログ信号は、コンピュータで処理しやすいようにデジタル信号に (

Ａ/Ｄ変換

)

します。
またコンピュータで処理されたデジタル信号は、これに応じた電圧や電流に変えて利用することがあり、これをする装置のことを(

Ｄ/Ａ変換器)といいます。

量子化
例えば 0V から 5V の電圧を４ビットで処理するＡＤ
変換では、測定値を 0 から 15 の整数に変換します。
これを量子化といいます。
0～ 0.3125V → 0
0.3125 ～ 0.625V
→ 1
……
4.375
～ 4.6875V → 14
4.6875 ～ 5V
→ 15
※量子化するビット数が大きいほど精度が高くなります。

5

3. 制御の種類
シーケンス制御
あらかじめ定められた((シーケンス制御

手順)に従って工程を進めて行く制御を)といい、開ループ制御ともいいます。
制御データ

制御装置
→

時計・コンピュータ

信号
変換

→

制御対象

ON－OFF
信号→機器

フィードバック制御(

センサ)から送られてきた温度や明るさなどの( 測定値 )を( 目標値 )に近づけるようにする制御を( フィードバック制御 )といい、閉ループ制御ともい
います。
制御データ
温度データ
測定値と目標値と比較

測定器

測定値
→

センサ

制御装置

ｲﾝﾀﾌｪｰｽ

→
電圧/電流

→
信号変換

→
コンピュータフィードバック

身の回りにある制御
家庭や社会にある機械では、フィードバックのある制御がたくみに行われています。
※全自動洗濯機の例（１）スタートボタンを押す （２）洗い（３）すすぎ（４）脱水

ｲﾝﾀﾌｪｰｽ（５）終了という決められた手順でシーケンス制御されています。
しかし、例えば「すすぎ」の工程では、汚れセンサでにごりの測定値を得て、一定の目標値に近づけるまですすぎを繰り返すフィードバック制御が行われています。

6

→
信号変換

ON－
OFF
信号

制御対象
→
機器

4. アルゴリズムとフローチャート
アルゴリズム問題を解くためには、まず手順を考えます。この手順を(アルゴリズム)といいます。
このアルゴリズムを理解しやすくする
ために(フローチャート)（流れ図）

で表します。

問題解決までの流れ
アルゴリズムを考える： 問題の解決までの手順↓
フローチャートの作成： アルゴリズムを図示する↓プログラムの作成： プログラム言語で記述↓
プログラムの実行

順次、分岐、くり返し(反復)処理
問題解決のための基本的な処理には、
(
(
(

順次
くり返し
分岐

)処理、
)処理、
)処理

があります。
フローチャートでは、右の図のように表現できます。

フローチャートの図記号
フローチャートには、処理を表す図記号やその流れを示す矢印などが使われています。

端子
準備

手操作入力

処理の開始・終了
変数の宣言、初期

表示

値の設定など

処理

入出力

ータの入力
ディスプレイでのデータの表示判断などの処理
書類

以外の処理
あらかじめ定義

サブルーチン

キーボードからのデ

判断

された処理
データの入出力

ル
ル
ー
ー
7 プ
プ
始
終

ループ端

データの印刷条件により、流れが二つ以上に分岐する
くり返しの開始と終了

フローチャートを書こう

課題

朝目覚めてから、家を出るまでをフローチャートで書こう（例）朝起きて、顔を洗って、ご（例）朝起きて、顔を洗って、ご飯を食べて、傘を飯を食べて、玄関を出るまでの行持つかどうかを判断して、玄関を出るまでの行動を動をフローチャートに書いてみフローチャートに書いてみよう。

よう

はじめ

はじめ

起きる

起きる

顔を洗う

ご飯を食べる

顔を洗う

ご飯を食べる

雨が
降りそう
か？

玄関を出る

Yes
傘を持つ

おわり

玄関を出る

おわり

8

No
Y
e
s

傘を持たない5. プログラムとプログラム言語
プログラム
コンピュータに仕事をさせるための一連の手順を記述したものを（

プログラム

）とい

います。また、これを作成することをプログラミング、作成する人をプログラマといいます。

プログラム言語○プログラムを書くための言葉を（プログラム言語）といいます。

○プログラム言語は、プログラムの目的によって色々ありますが、コンピュータが理解できる言語は２進数で書かれた（

機械語

10101011101
11001110100
10101111110
11110101011）だけです。これで書かれたプログラムを理解できる人はとても限られています。

○機械語に対して、多くの人が理解しやすいプログラム言語を（水準言語といい、（

ＢＡＳＩＣ

Ｃ言語

）や（

）（

高級言語 ）または高ＪＡＶＡ ）などがあります。

機械語の例 （２進数を１６進数に変えた形で表示）

高級言語の例（ＢＡＳＩＣ）

機械語
コンピュータが理解できる唯一の言語。マシン語とも呼ばれている。実行速度は速いのですが，「０」と「１」だけの２進数で書かれているため、普通の人には理解できません。

ＢＡＳＩＣ
ＢＡＳＩＣは（初心者 ）向けの言語として開発されましたが、現在は広くプログラマに使われています。
Beginner's All-purpose Symbolic Instruction Code の略
Ｃ言語
ＯＳやアプリケーションの開発に広く使われている言語です。

ＪＡＶＡ
Java は OS やコンピュータを問わずに動作するという利点があります。Web 系にも強いなどから、Android 携帯などのアプリケーションの開発にも使われることが多くなっています。

9

6. マイコンとプログラム
マイコンとパソコンプログラム ）を書き込んで利用する小さな
コンピュータ ）です。

マイコンは（（ピンとポート参照→p.３３ピン ）と呼ばれる足が数本から数１０本あります。このうちのいく
つかのピンを通じて（ データ ）の入出力を行います。
マイコンのデータを入出力するピンのいくつかをまとめて（ ポート ）といいます。
マイコンには（マイコンとは
マイクロコンピュータまたマイクロコントローラの略。コンピュータが持つ構成要素をIC チップ（LSI）上に搭載したもので、ワンチップマイコンとも呼ばれる。小さな部品で特定機能の処理を行うことができるため、家電製品や電子機器などのコンピュータ
制御を必要とする装置に組み込まれている。マイコンという言葉は和製英語。英語では「microcomputer」「microcontroller」または略して「micro」と表現される。

コンピュータの持つ５つの構成要素
要素
制御装置

パソコン

マイコン

CPU

CPU

記憶装置

RAM、HDD、SSD

RAM

入力装置

キーボード、マウス

スイッチ、センサ(光、音、熱など)

出力装置

モニタ

LED、LCD など

演算装置

10

マイコンとプログラム言語
マイコンに書き込みできるプログラムは、（機械語）で書かれたものだけです。

ＢＡＳＩＣなどの、機械語以外の言語で書かれたプログラムは、機械語に変換（翻訳）する

コンパイル

必要があります。このように異なる言語に変換することを（）といい、またコンパイルするためのソフトウェアをコンパイラといいます。
※コンパイル前に作成されたプログラムをソースファイルと呼ぶことがあります。

プログラムの書き込み
ライタ

プログラムをマイコンに書き込む道具を（）またはプログラマといいます。

※ ヒダピオ学習回路は、スイッチを上にしてＵＳＢポートにさし直すとライタになります。

←スイッチを（右から 3 番目の LED が点灯します）

上にする。

プログラムの作成から書き込みまでプログラムをマイコンに書き込むための手順はソースファイルの

機械語へ

マイコンへ

作成

コンパイル

書き込み

【参考】 「第 3 章プログラムの作成」で使用するソフトウェアとプログラム言語の関係は作業の内容使用するソフト①ソースファイルの作成
ArduBlock②コンパイルArduino IDE

プログラム言語
グラフィック言語→

Ｃ言語(Arduino 言語)

C 言語(Arduino 言語)→③マイコンへ書き込み

hidspx

機械語

11

機械語

7. 第１章のまとめ
自己評価

計測・制御システムの基本的なしくみが理解できたか。

Ａ

Ｂ

Ｃ

Ｄ

センサの種類や信号変換が理解できたか。

Ａ

Ｂ

Ｃ

Ｄ

フィードバック制御について理解できたか。

Ａ

Ｂ

Ｃ

Ｄ

家庭や社会にある機械の制御例について理解できたか

Ａ

Ｂ

Ｃ

Ｄ

問題解決までの手順が理解できたか。

Ａ

Ｂ

Ｃ

Ｄ

順次、繰り返し、分岐処理について理解できたか。

Ａ

Ｂ

Ｃ

Ｄ

フローチャートを書くことができたか

Ａ

Ｂ

Ｃ

Ｄ

プログラム言語とマイコンの関係について理解できたか。

Ａ

Ｂ

Ｃ

Ｄ

熱心に授業に取り組めたか。

Ａ

Ｂ

Ｃ

Ｄ

感想
これまで学習して感動したことや、疑問に思って解決できたこと、将来に役立ちそうなことなどを中心に、感想にまとめよう。

12

第２章 時計付き電子オルゴールの製作
1. 概要
AVR マイコンを使った電子回路を作り、好きな曲をマイコンに書き込み、センサを使って音楽を鳴らします。

電子オルゴールの回路図

2. 部品一覧（１）スピーカ

□

（２）時計

□

（３）ＡＶＲマイコン□(ATtiny2313 または 4313)（４）ＩＣソケット 20 ピン□（５）抵抗器１００Ω(茶黒茶金)□

６８０Ω(青灰茶金)□

１５ｋΩ(茶緑橙金)□（６）ＣｄＳセル□（７）スライドスイッチ 2 個□（８）電源用スライドスイッチ□（９）LED□（10）Ｉ型ピンヘッダ 1×6□（11）電池ケース□

電池 2 本（12）リード線□
緑2本（13）はんだ

特に小さい部品は□なくさないようにしましょう！

□（14）ボックス用整形抜き板 13 枚 □（15）時計用針 3 本□（16）時計用ナット□

13

3. 部品のはんだ付け（１）抵抗器（１００Ω、６８０Ω、１５ｋΩ）をはんだ付けする。
※はんだ付け後は、余分なリード線を切り取りましょう。
抵抗は、カラーコードを確認してください！

【参考】

数値

０

１

２

３

４

５

６

７

８

９

色

黒

茶

赤

橙

黄

緑

青

紫

灰

白

（２）Ｉ型ピンヘッダ、IC ソケットをはんだ付けする。
IC ソケットの足は、
全てきちんと穴に入れましょう！
1 つのピンをはんだ付けした後、ゆがみがな
いか確かめよう！

（３）スライドスイッチを 2 個はんだ付けする。

1 本の足をはんだ付けした後、ゆがみがないか確かめよう！

（４）マイコンを取り付ける。
※マイコンは、ATtiny2313 または ATtiny4313 を使います。

マイコンは、向きを間違えないようにして、全ての足を IC ソケットにいれましょう！

14

（５）LED と CｄS をはんだ付けする。
○LED は長い方の足を「A（アノード）」側に、、
短い方の足を「K（カソード）」側に取り付ける。
○CdS はチューブをはめ、足をさす場所を間違えないようにする。
※はんだ付け後は、余分なリード線を切り取りましょう。

CｄS の足はどちらをさしてもいいけど、片方の足のさす場所に気をつけて！

（７）電源線の取り付け○スライドスイッチに電地ケースの赤（＋）の線と、赤のリード線をはんだ付けする。
○赤のリード線を基板の「＋」に、電池ケースの黒の線を「－」にさし、はんだ付けする。
※はんだ付け後は、余分なリード線を切り取りましょう。

（８）スピーカ・時計線の取り付け○スピーカに緑のリード線を 2 本はんだ付けする。
○スピーカの 2 本のリード線を基板の「SP」穴にさし、はんだ付けする○時計の 2 本のリード線を基板のスライドスイッチ上下の穴にさし、はんだ付けする※はんだ付け後は、余分なリード線を切り取りましょう。

スピーカーの線はどちらにさしてもいいですよ。
リード線の心線がむき出
しにならないようにしよう。

15

4. ボックスの仮組み立て（１）ボックス用の抜き板①～⑥を仮に組み立てましょう。

ゆるすぎないように、削りすぎに注意！

○組みあわせが合わない場合は、カッターナイフなどで少しだけ削ると上手く組み合わせることができます。
（２）仕上げ削り、塗装などをします。

5. 部品の取り付け（１）抜き板①にスピーカーをねじで取り付けます。
（２）抜き板②に、スライドスイッチをねじで取り付けます。
基板をねじで取り付けます。

（３）抜き板⑤に文字盤シールを張ります。※縦型、横型で貼り付け向きが違います。
時計ケースを、リング締め金具を使って、時計止めリングで取り付けます。
抜き板⑦⑧⑨を接着剤で取り付けます。

16

（４）抜き板⑥に電池ケースをねじで取り付けます

スピーカや時計ケースに当たらないようにとめる
位置をくふうしよう！

6. 時計針の組み立て（１）長針だけをはめて、カチッと音がするところまで回す。

（２）長針をそのまま抜いて、12 時を指すようにはめ直す。
（３）長針を回して、12 時でカチッと音がするか確認する。
※ずれているときは（１）からやり直す。
（４）長針を抜く。※回さないように注意しよう（５）短針、長針、秒針の順に12 時を指すように、順番に重ねてはめる。

7. ボックスの組み立て
各パーツを組み立てしよう。
※電池交換を考え、全てを接着剤で固定しないこと。

17

8. 第２章のまとめ
自己評価
部品の確認ができ､名称を覚えられたか。

Ａ

Ｂ

Ｃ

Ｄ

部品を、図面通りに取り付けることできたか。

Ａ

Ｂ

Ｃ

Ｄ

はんだ付けが、手際よく上手くできたか。

Ａ

Ｂ

Ｃ

Ｄ

余分な線が無いように、処理ができたか。

Ａ

Ｂ

Ｃ

Ｄ

組み立ては、無理なくできたか。

Ａ

Ｂ

Ｃ

Ｄ

ケガをしたり、しそうになったりすることが無かったか。

Ａ

Ｂ

Ｃ

Ｄ

熱心に授業に取り組めたか。

Ａ

Ｂ

Ｃ

Ｄ

感想
これまで学習して感動したことや、疑問に思って解決できたこと、将来に役立ちそうなことなどを中心に、感想にまとめよう。

18

第３章 プログラムによる制御
1. 制御学習の準備をしよう
電子オルゴールのスイッチの設定
基板の単音／和音スイッチを単音側（左側）にします。

ヒダピオ学習回路、電子オルゴールを接続
ヒダピオ学習回路のスイッチを上にしてから、電子オルゴールを接続し、パソコンの USB
ポートに接続します。

ＵＳＢケーブルをＵＳＢポートにさしたときに、「ピポッ」と音がすれば正常に動作していると判断できます。
※接続時に音がしないときは、パソコンのボリュームが小さくなっていないかチェックしよう。

19

2. アルドゥブロックの基礎
ArduBlock(アルドゥブロック)を起動する①Arduino IDE（アルディーノ

参照→p１,2

アイディイー）を起動します。

ををクリックする。
②「ツール」→「ArduBlock」で、学習を開始します。

アルドゥブロックの画面の構成初めて使用するときは①初めて使用する時は、（

マイコンとライタを指定）します。

・「ツール」→「マイコンボード」で「ATtiny2313」※マイコンに「ATtiny４313」を利用するときは「ATtiny４313」

・「ツール」→「書込装置」は「HIDaspx（トップマン製ヒダピオ学習回路）」※書込装置に自作の HIDaspx を使用する場合は「HIDaspx」②続いて（マイコンの設定）を書き変えます。

・「ツール」→「ブートローダを書き込む」で、マイコンのヒューズ設定を書き変えます。
左のメッセージが進捗表示エリアに表示されたら O K！

20

プログラムの作成①「メニューボタン」からブロックをドラッグ＆ドロップしてプログラムを作成します。
②「セットアップ・ループ」ブロックは一つだけを必ず配置します。
③ブロックのほとんどは「ループ」の中に配置します。
④不要なブロックは、画面の左側にドラッグ＆ドロップで消去します。
⑤ブロックの上で右クリックすると、ブロックをコピーできます。

プログラムの書き込み
アルドゥブロックでブロック形式のプログラムを作成したら、「アップロード」ボタンをク
リックします。すると、①C 言語（Arduino 言語）のスケッチ（プログラム）にコンパイルされ、プログラムエリ
アに表示されます。
※Arduino では、プログラムのことをスケッチと呼んでいます。
スケッチを直接操作して、書き込むこともできます。

②スケッチ（プログラム）は機械語にコンパイルされて、左のようなメッセージがマイコンに書き込まれます。

進捗表示エリアに表示されたら O K！

3. 主なブロックのはたらき
セットアップと入出力の設定
プログラムの初めのセットアップ部に（入出力の設定）をします。

・入出力(方向レジスタ)の設定
ポート B の８つのピンが、「１」の時は出力ピン、「０」の時は入力ピンになります。
「11111111」 で B0～B7 の全てのピン
が(

21

出力

)ピンになります。

出力ブロック
マイコンにある各ピンの出力値の設定をするために、(

出力)ブロックがあります。

出力ブロックには、すべてのピンの出力値を一つ一つ設定するものと、ポート B の全てのピンの出力値を設定するものとがありますピンの出力値は、次の命令があるまで変わりません。
ATtiny2313 のピン

ピン＃（ナンバー）と値を設定「PB0」でポートＢの０番ピンを「LOW」で（出力あり）に、「HIGH」で（出力なし）にします。
値はＰＢ７～ＰＢ０を一度に設定する。
「０」で「LOW」(出力あり)「１」で「HIGH」(出力なし)とピンに出力します。

「11111111」で全てのピンで出力なし「00000000」で全てのピンで出力あり「11111110」で B0 ピンだけ出力あり※エラーメッセージとその対応（１）…「ヒダピオ学習回路」が接続されていません。
→ 「ヒダピオ学習回路」を USB ポートに接続する。

…書込装置が「HIDaspx」になっています。
→ 「ツール」→「書込装置」を「HIDaspx（トップマン製ヒダピオ学習回路）」にする。

…マイコンがつながっていません。
→ 「ヒダピオ学習回路」にオルゴールを接続する。

…ヒダピオ学習回路が USB-IO モードです。

→ 「ヒダピオ学習回路」のモード切換スイッチを切り換え、USB ポートに再接続する。

22

4. プログラムを組もう
くり返し(反復)処理
プログラムの中で、同じことを繰り返し行うことを(くり返し)処理または反復処理

あるいはループ処理といいます。

無限くり返しくり返し処理の中で、永遠にくり返す処理を(

実習１

無限くり返し)といいます。

次のプログラムをループの中に組み、「アップロード」ボタンを押そう※スピーカに耳を当てて、音を確かめよう

プログラム

意

味

PB0 ピン「１」=HIGH=出力なし
待つ

1000ｍ秒=1 秒

PB0 ピン「0」=LOW=出力あり
待つ
結果

「ブッ

実習２

ブッ

1000ｍ秒=1 秒

ブッ」と断続音が続く。

次のプログラムをループの中に組み、「アップロード」ボタンを押そう
PB0 ピン「１」=HIGH=出力なし
待つ

100ｍ秒=0.1 秒

PB0 ピン「0」=LOW=出力あり
待つ

100ｍ秒=0.1 秒

結果「ブッブッブッ」の連続音が続く。

実習３次のプログラムをループの中に組み、「アップロード」ボタンを押そう
PB0 ピン「１」=HIGH=出力なし
待つ

10ｍ秒=0.０1 秒

PB0 ピン「0」=LOW=出力あり
待つ
結果

10ｍ秒=0.０1 秒「ブー」という低い連続音が続く。

23

考察

実習１～３の結果から、どうしてこのような音が鳴るのだろうか？

考察

出力の「あり」と「なし」の入れ替わるときに音がするから。

実習４次のプログラムをループの中に組み、「アップロード」ボタンを押そう
プログラム

意

味

PB0 ピン「１」=HIGH=出力なし
待つ

1ｍ秒=0.００1 秒

PB0 ピン「0」=LOW=出力あり
待つ
結果

1ｍ秒=0.００1 秒「プー」という高い連続音が続く。

課題１

待つ長さを変えて、いろんな音を確かめよう

結果
と感想

課題２

音階を入れて、チャルメラを作ろう「ヒント」ドレミーレド、ドレミレドレー

結果
と感想

課題３

救急車の音を再現しよう。
「ヒント」救急車のサイレン音は、770Hz と 960Hz

結果
と感想

24

有限くり返しプログラムを、決められた回数だけくり返すことを(

有限くり返し)処理といいます。

例えば、右のブロックの場合、ｉの値が 1 から 5 まで変化する
まで、5 回くり返します。このｉのように値が変化するものを（変数）といいます。

実習１

次のプログラムをループの中に組み、「アップロード」ボタンを押そう
5 回くり返し=「プッという音」
を無限にくり返す。

結果「プー」という高い連続音が続く。

実習２

次のプログラムをループの中に組み、「アップロード」ボタンを押そう
5 回くり返し=「プッという音」
待つ

10００ｍ秒=1 秒

を無限にくり返す。

結果

「プッ

実習３

プッ」という高い断続音が続く。

次のプログラムをループの中に組み、「アップロード」ボタンを押そう
5００回くり返し=「プ－という音」
待つ

10００ｍ秒=1 秒

を無限にくり返す。

結果「プー

プー」という高い断続音が続く。

25

5. センサを使おう
センサ（CdS セル）を使おう

入力によって動作を変えるプログラム（条件分岐）
プログラム中で、ある条件が満たされているかどうかによって次に実行するプログラムを切り替える命令を(

実習１

条件分岐

)処理といいます。

次のプログラムをループの中に組み、「アップロード」ボタンを押そう
ポート D の 6 番ピンがHIGH=入力なし（＝暗い）ならばドの音が鳴るを無限にくり返す。

結果

暗くなると「ド」が鳴る。

※プログラムをアップロードして CdS セルに手をかざすと、音が鳴ります。

実習２次のプログラムをループの中に組み、「アップロード」ボタンを押そう
ポート D の 6 番ピンがHIGH=入力なし（＝暗い）ならばドの音が鳴る
そうでなければ（＝明るい）
ミの音が鳴るを無限にくり返す

結果

暗いと「ド」が鳴り、明るいと「ミ」が鳴る。

※プログラムをアップロードして CdS セルに手をかざすと、音が変わります。
26

6. 関数（サブルーチン）を使おう
関数とはプログラム中で、一連の処理をまとめて一つの手続きとしたものを(

関数)といい、同じ処理をくりかえす場合などに使用されます。プログラム言語によってはサブルーチンなどと表現されます。

実習１

次のプログラムをループの中に組み、「アップロード」ボタンを押そう

ポート D の 6 番ピンがHIGH=入力なし（＝暗い）ならばドの音が鳴る

そうでなければ（＝明るい）

ミの音が鳴るを無限にくり返す

課題１

関数の中身を変えて、いろんな音を確かめよう

結果
と感想

27

7. プログラム総合実習

課題

自由にプログラムを考えてみよう。
ｚ※画面をハードコピーし、印刷して貼り付けよう。

結果と感想

画面のハードコピーの方法① PrintScreen キー（機種によっては Fn キー＋PrintScreen キー）を押す。
※キーボードの表示が「PrtScr」などに鳴っている機種もある※現在のウィンドゥだけをハードコピーする場合は Alt キーも同時に押す。
② 右クリックして「貼り付け」する。

28

第３章のまとめ【自己評価】
実験装置が正しく接続できたか。

Ａ

Ｂ

Ｃ

Ｄ

ソフトウェア「ArduBlock」を操作できたか。

Ａ

Ｂ

Ｃ

Ｄ

マイコンの設定の意味を理解し、設定できたか。

Ａ

Ｂ

Ｃ

Ｄ

入出力設定の意味が理解できたか。

Ａ

Ｂ

Ｃ

Ｄ

くり返し（無限、有限）のプログラムが組めたか。

Ａ

Ｂ

Ｃ

Ｄ

変数の役割とはたらきが理解できたか。

Ａ

Ｂ

Ｃ

Ｄ

センサのはたらきが理解できたか

Ａ

Ｂ

Ｃ

Ｄ

条件分岐のプログラムを理解できたか

Ａ

Ｂ

Ｃ

Ｄ

熱心に授業に取り組めたか

Ａ

Ｂ

Ｃ

Ｄ

感想
これまで学習して感動したことや、疑問に思って解決できたこと、将来に役立ちそうなことなどを中心に、感想にまとめよう。

29

第４章 いろいろな制御
1. 電子オルゴール

課題

いろいろな曲を入力して、鳴らしてみよう。またセンサを使って、明るくなると演奏するなど、試してみよう。

和音の電子オルゴール
和音／単音切り替えスイッチを和音側（右側）にして、学習しましょう。

（１）ソフトウェアの準備①mymelo（マイメロ）のコンパイラ＋書き込みソフトの圧縮ファイルをダウンロード後、解凍し、USB メモリなどに置きます。
②mymelo フォルダの中の「初めての時は、これを W クリック.vbs」をダブルクリックすると、「mymelo アップロード」などのショートカットが自動生成されます。
トラック１
ふぁ２ふぁら しらしん
トラック２
①メモ帳で右のような記述をします。
ん２んん みふぁみん②テキストファイルを拡張子 txt または mml で保存します。 トラック３↓ふぁ２ふぁ２ みふぁみん（２）ソースファイルの準備（３）コンパイル & 書込
①ソースファイルを「mymelo アップロード」にドラッグ＆ドロップします。
②後は自動的にコンパイル、書き込みされます。

（４）動作
・音楽を２度繰り返します。

（５）設定「mymelo 設定」でいろんな設定ができます。
※詳細は「ヒダピオ」の Web ページを参照。

30

単音の電子オルゴール「ヒダピオ」の「電子オルゴール」を使うと、・簡単にデータの入力
・プログラムの作成、コンパイル、保存ができます。

（１）自分の作りたいオルゴール用の音楽のテンポデータ、音符データを入力する。
① 曲の速さ（テンポ）を決めよう② 音の長さ(音符)を決めよう③ 音の高さ（音階）て決めよう（２）電子オルゴールに書き込もう① 音楽ができたら※「入力設定」にチェックをして・「＝０」にチェックすると、明るくなると音楽が鳴る・「＝０」のチェックをはずすと、暗くなると音楽が鳴る（1 曲終わるごとにセンサに反応します）② 「アップロード」をクリックする。
※プログラムの保存、コンパイル、書き込みまで、自動的に行われる。

③ 動作の確認31

2. デジタル数字
Ｂ0
Ｂ1

Ｂ5
Ｂ6

Ｂ2

Ｂ4
Ｂ3

７セグメントＬＥＤの各セグメントは、図のように B0～B6 ピンにつながっています。
※右下の点は、B7 ピンにつながっています)

プログラムの作成から動作まで「ArduBlock」でプログラムを作成する。
(例)数字「１」を１秒間点灯する(解説)Ｂ１とＢ２を「点灯」＝「０」にする。

課題

デジタル数字の１～０を表してみよう（１）下の図の各セグメントに色を塗って、出力指定数を【数字数字】内に記入しよう。

１

２

３

４

５

Ｂ0

Ｂ0

Ｂ0

Ｂ0

Ｂ0

Ｂ Ｂ6 Ｂ
1
5
Ｂ
Ｂ
Ｂ3
4
2

Ｂ Ｂ6 Ｂ
1
5
Ｂ
Ｂ
Ｂ3
4
2

Ｂ Ｂ6 Ｂ
1
5
Ｂ
Ｂ
Ｂ3
4
2

Ｂ Ｂ6
5
Ｂ
Ｂ3
4

６

７

８

９

０

Ｂ0

Ｂ0

Ｂ0

Ｂ0

Ｂ0

Ｂ Ｂ6 Ｂ
1
5
Ｂ
Ｂ
Ｂ3
4
2

Ｂ Ｂ6 Ｂ
1
5
Ｂ
Ｂ
Ｂ3
4
2

Ｂ Ｂ6 Ｂ
1
5
Ｂ
Ｂ
Ｂ3
4
2

Ｂ Ｂ6
5
Ｂ
Ｂ3
4

32

Ｂ
1
Ｂ
2

Ｂ
1
Ｂ
2

Ｂ Ｂ6
5
Ｂ
Ｂ3
4

Ｂ
1
Ｂ
2

Ｂ Ｂ6 Ｂ
1
5
Ｂ
Ｂ
Ｂ3
4
2

（２）１～０までの数字を表示するプログラムを組もう。
動作

ポートＢの値

数字表示
B6 B5 B4 B3 B2 B1 B0１

１１１１１００１

２

１０１００１００

３

１０１１００００４

１００１１００１

５

１００１００１０

６

１０００００１０

７

１１１１１０００

８

１０００００００

９

１００１００００

０

１１００００００

課題

電子さいころのプログラムを考えてみよう。
結果と感想

さいころのように明るくしたところで
数字が出る

33

3. 信号機
歩行者用
信号

Ｂ6
Ｂ7
横
断
歩
道

直交方向

Ｂ5 Ｂ4 Ｂ3
Ｂ2
Ｂ1
Ｂ0

進行
方向
※信号機ボードは車用の信号と歩行者用の信号があります。
車用の信号は進行方向が B3～B5 ピンに、直交方向に B0～B2
ピン、歩行者用信号が B6～B7 ピンにつながっています。

プログラムの作成から動作まで「ArduBlock」でプログラムを作成する。
(例)進行方向「赤」直行方向「赤」を１秒間点灯する(解説)Ｂ０とＢ３を「０」＝「点灯」にする。（上の左右どちらのブロックでもよい）

課題

実際の信号機のように、点滅時間も考えてプログラムしよう（１）最初は時間を一定にして、考えてみましょう。
動作

ポートＢの値

B5 B4

B3

B2

B1

B0 進行 直交

青

赤

青

黄

赤

黄

方向 方向

赤

赤

1000

１１１１０１１０

青1000

１１１１００１１

黄1000

１１１１０１０１

1000

１１１１０１１０1000

１１０１１１１０1000

１１１０１１１０

赤
青

時間

赤

黄

34

（２）続いて実際の信号のように時間を変えてみましょう。
動作

ポートＢの値

B5

B4

B3

B2

B1

B0 進行 直交

青

黄

赤

青

黄

赤

時間

方向 方向

赤

赤

1000

１１１１０１１０

青6000

１１１１００１１

黄2000

１１１１０１０１

1000

１１１１０１１０6000

１１０１１１１０2000

１１１０１１１０

赤赤青黄（３）歩行者用信号も使った点滅も考えてみましょう。
動作

ポートＢの値

B

B

B

B

B

B

B

B

歩 進

直

7

6

5

4

3

2

1

0

行 行

交

青

赤

青

黄

赤

青

黄

赤

者 方

方

向

向

赤 赤

赤

1000

１０１１０１１０

青6000

１０１１００１１

黄2000

１０１１０１０１

赤1000

１０１１０１１０

青 青

3500

０１０１１１１０×500

１１０１１１１０青500

０１０１１１１０×500

１１０１１１１０青500

０１０１１１１０×500

１１０１１１１０

赤 黄

2000

１０１０１１１０35

時間

4. N ゲージ
※ 線路への電力供給が B7 と B6 ピン、ポイントの切り替えが B５ピンにつながっています。
B7

B7（High,1）（Low,０）B6（High,1）

停止

右回り

B6（Low,0）

左回り

停止

プログラムの作成から動作まで①「ArduBlock」で電車を走らせるプログラムを作成する。

②B5 ピンを Low（０）にすると、ポイントが切り換わります。
③電車の走行中、雑音が発生して暴走することがあります。その時は、電源を入れなおしま
しょう。

課題１

下のプログラムを入れて、電車をゆっくり走らせてみよう。
※、電流を頻繁に ON-OFF する制御を PWM 制御といい、扇風機の回転速度の変換や、照明器具の明るさ調整などに使われています。

課題２

反対方向に走らせたり、ポイントに引き込んだりしてみよう。
結果※N ゲージ制御装置は、テクノキット社製です。

36

参考資料
1. ２進数
１０進数と 2 進数
※１０進数と１０のべき乗（例）１０進数の４２７は427＝400＋＝4×10020＋＋ 2×10

2

＋

7×1

1

＝4×10

7

＋ 7×100＋ 2×10※２進数と２のべき乗（例）２進数の１０１は

101＝1

＋

＝1×4

＋

＝1×22

0

＋

0×2

＋

＋

1

1×1

0×21

＋ 1×20２進数から１０進数への変換（例）２進数の１１０は（例）２進数の１０１０は

1×22

＋

1×21

＋

0×20

1×23

＋

0×22

＋

1×21

＋

0×20

＝1×4

＋

1×2

＋

0×1

＝1×8

＋

0×4

＋

1×2

＋

0×1

＝ 4

＋ 2

＋

0

＝ 8

＋ 0

＋

2

＋

0

＝ 6

＝( 10 )

110(2) =6(10)1010(2) =(10)(10)１０進数から 2 進数への変換
１０進数の４２７は（例）１０進数の６は（例）１０進数の１０は10）4272） 62）1010） 42

…７

2） 3

…０

2） 5 …０

10）

…２

2） 1

…１

2） 2 …１

0 …１

2） 1 …０

4

0 …４

0 …１
6(10) =(

110 )(2)10(10) =( 1010 )(2)

※１０進数を２で割っていき、余りを下から並べると２進数になります。

37

2. ２進数とコンピュータ

1010101110111
0011101001010
1111110111101
・ 電圧が高い（たとえば＋５V）
0101110111001
・ 電圧が低い（０V）
1101001010111
1110111の二つの状態の組み合わせで、いろいろな状態を表し、計算をしています。そのため、0と現在多く使われているコンピュータは、

1 の組み合わせで数値を表す２進数と相性がよいことが知られています。10 進数の 1 桁には 0 から 9 の数値が入りますが、2 進数の一桁には 0 か 1 かが入ります。この 1 桁分の情報をビットという単位で数えます。

3. 表計算ソフトでのプログラム例
プログラムは色々なところで使われます。
下の図は、表計算ソフトでプログラムを使って入力した例です。

ここでは、For～Next 文を使って、ボタンを押すと、一瞬にして「行番号の 2 倍の数を入力」しています。
また If 文を使うと、「３の倍数の行には、行番号の 2 倍の数を、それ以外には行番号の数を入力」するような、複雑なこともできます。
プログラムを知っておくと、コンピュータをより便利に利用できます。

4. HIDaspx
HIDaspx（エイチ･アイ･ディーアスペックス）とは AVR マイコンを利用した HID クラス
対応の回路で、AVR マイコンにプログラムを書き込むライタだけでなく、USB ポートを利用したパソコンによる制御（USB-IO）を可能にすることができます。

HIDaspx を使った USB-IO

38

5. ATtiny2313 とマイコンボード
マイコンには、汎用または専用のものが、国内外各社で各種生産されています。
制御学習では、操作性や価格、入手のしやすさから、初心者が利用しやすいものとして PIC（ピック）マイコンや AVR（エーブイアール）マイコンなどが利用されます。
ヒダピオシステムでは、AVR マイコンの中からピン配置が分かりやすく、安価で入手しやすい ATtiny2313（エーティータイニー・ニーサンイチサン）または ATtiny4313 を利用します。

※ATtiny４３１３は２３１３と同等の働きをし、２３１３の２倍のメモリがあります。

RST,GND,VCC,B7～B0, D6

Bポート

ヒダピオシステムで利用するマイコンボードは、ヒダピオ学習回路を使って簡単に書き込
みして、7 セグメントや LED 信号機ボード、ディスプレイボードなどを動作させることが
できます。

謝辞
ヒダピオシステムで使用する HIDaspx および周辺ツール一式は、山形県立産業技術短期
大学校情報制御システム科千秋広幸教授が中心となって、多くの方の手によって開発されました。
（開発者および経緯の詳細は hidspx 附属の説明書をご覧ください）
中学生向けの教材として、各種回路や「HAG_mini」については元大阪府立砂川高等学校
長 井本泰彦氏が、ヒダピオ専用コンパイラ「バスコンピ」は北海道業能力開発大学校電子情報技術科

谷岡 政宏氏が開発していただきました。また、「ArduBlock」の改変は大阪教育大学 光永法明准教授、教材一式の評価については三田市技術科の先生方の他、トップマン、
テクノキットなど多くの方のご援助ならびにご協力をいただきました。
これまで制御の学習をする上で、学習教材が高価であったり、取り扱いが面倒なことが障害となっていました。千秋教授をはじめとする多くの方々のお陰で、これほどまでに内容の深い学習が安価で手軽にできるようになりました。皆さま方のご研究に心から敬意を表するとともに、またご協力いただきましたことに篤くお礼を申し上げます。
ＪＡ制御ヒダピオシステム教材
監

修

著

作

コンピュータ制御を学ぼう 時計付きオルゴール 版

浅田寿展（兵庫県三田市立中学校 技術科教諭）

39【本書の無断転載を禁ず】