「CPU 組み立てキット」 CPU1738
製作手順書
ver 1.0

2020/04/13※本手順書は，トランジスタ技術 2020 年 5 月号（CQ 出版）の特集「大解剖！CPU はこうやって動いている」とあわせて読まれることを前提としています．

目次
1. 使用する工具 ..................................................................................................................... 2
2. テスタによるダイオードの極性確認方法 ......................................................................... 33. 電源 .................................................................................................................................... 4
4. 動作チェッカを作る .......................................................................................................... 5
5. 論理ゲート回路（ディジタル回路ブロック）を作る ....................................................... 6
6. CLOCK & STATE MACHINE 基板を作る ................................................................... 10
7. ROM 基板を作る .............................................................................................................. 13
8. I/O 基板を作る ................................................................................................................. 15
9. Program Counter 基板を作る ......................................................................................... 16
10. ALU 基板を作る ............................................................................................................. 16
11. A Register 基板を作る.................................................................................................... 16
12. B Register 基板を作る ................................................................................................... 16
13. Instruction Decoder 基板を作る ................................................................................... 16
14. 回路図 ............................................................................................................................ 16
15. 各基板のレイアウト ...................................................................................................... 16
16. 全体を接続する ............................................................................................................. 18
17. プログラム例 ................................................................................................................. 19
18. モータ・ドライバ基板を作る........................................................................................ 22
19. ロボット部分を作る ...................................................................................................... 23
20. ロボットのプログラム例 ............................................................................................... 26

1

1. 使用する工具
・はんだごて （図 1 のような温度制御機能付きのはんだごてをおすすめします．
）
・はんだ・フラックス （例えば図 2 のようなもの．
）
・ピンセット （先の細い，図 3 のようなものがおすすめです．）
・ルーペあるいは双眼実体顕微鏡 （10 倍から 40 倍程度．例えば図 4 のようなもの．
）
・やすり （小基板の端面を整えるために使います．無くても構いません．
）
・フラックス・リムーバ （例えば図 5 のようなもの．無くても構いません．
）
・キムワイプ （フラックスを拭き取るために使います．無くても構いません．）
・プラスドライバー
・ペンチ
・ニッパ
・はさみ
・テスタ （抵抗レンジがあるもの．ダイオードの極性チェックに使います．
）
・マスキング・テープ （部品の仮止めに使います．例えば図 6 のようなもの．）

図 3： ピンセットの例．
HOZAN “P-891”
図 1： はんだごての例．

図 2： フラックスの例．

本体： HAKKO “FX-951”

HAKKO “FS-200”

こて先： HAKKO “T12-B”

図 6： マスキング・テープの例．
図 4： ルーペの例．

図 5： フラックス・

モノタロウ “L-15X”

リムーバの例．
HAKKO “017”2

モノタロウ 6mm 幅．

2. テスタによるダイオードの極性確認方法●ダイオードは左右対称な形状で，極性があります
本キットで使用するチップ部品には，抵抗，ダイオード，トランジスタ（MOSFET）があります．このうち，抵抗には極性がないので取り付け方向に指定はありません．また，
トランジスタはパッド形状が非対称なので極性を間違えて取り付ける可能性は低いと考えられます．
これに対して，ダイオードは左右対称な形状にもかかわらず極性があるので，誤って逆方向に取り付けてしまう可能性があります．基本的にはカソード・マークを目視確認して取り付けますが，ここではテスタを使って電気的に極性を確認する方法を紹介します．

●ディジタル・テスタの場合
ディジタル・テスタの場合は，図 7 のように「アノードにテスタのプラス端子，カソードにテスタのマイナス端子」を接続したときに抵抗値が小さくなります．これは，ダイオードの順方向に電圧が印加されるためです．

図 7： 「ディジタル・テスタ」の抵抗測定モードを使って LED の極性を判定する方法．

●アナログ・テスタの場合
アナログ・テスタの場合は，図 8 のように「アノードにテスタのマイナス端子，カソードにテスタのプラス端子」を接続したときに抵抗値が小さくなります．これは，アナログ・テ
スタの抵抗測定モードではマイナス端子の電位がプラス端子よりも大きくなっているからです（抵抗レンジとその他のレンジ（電圧，電流）では，測定値の大きさに対するメータの針の動き方が逆になるため）．

図 8： 「アナログ・テスタ」の抵抗測定モードを使って LED の極性を判定する方法．
3

3. 電源●電池を使う場合
本キットの標準電源電圧は 3 (V) です．
「CLOCK & STATE MACHINE」基板に単 3 乾電池 2 本用の電池ボックスを取り付けて，電源として使用してください．

●AC－DC アダプタを使用する場合「I/O」基板には，AC－DC アダプタ用のジャックを取り付けられます．AC－DC アダプ
タを使用する場合は，3.3 (V) 品を推奨します．5 (V) 品も使用可能です（電源電圧を大きくした場合に最初に故障するのは発振回路の部分です）．

●電源スイッチ「CLOCK & STATE MACHINE」基板には，電池の経路の電源スイッチが付いています．
また，「I/O」基板には AC－DC アダプタの経路の電源スイッチが付いています．両方のスイッチが同時に ON 状態にならないように注意してください．

●動作確認用の電源端子
各基板への電源供給は，基板間を接続するフラット・ケーブルに含まれる電源ラインを通して行われます．これとは別に，各基板には単体で動作確認をするための電源端子がついています．図 9 のようにシルクで“VDD”および“GND”と書かれている箇所にスズメッキ
線（あるいは部品のリードの余りなど）をはんだ付けして使用してください．あくまでも動
作確認用なので，必須ではありません．

図 9： 各基板の動作確認用電源端子の使い方．

4

4. 動作チェッカを作る●部品リスト
最初に「動作チェッカ」を作ります．基板上のシルクと部品の対応を表 1 に示します．
表 1： 「動作チェッカ」基板のシルク表示と実装部品リスト．

#

シルク

1 R1
2 R2
3 R3
4 R4
5 R5
6 R6
7 R7
8 R8
9 D1 (X3)
10 D2 (X2)
11 D3 (X1)
12 D4 (/Y)
13 D5 (Y)14 SW115 SW216 SW3
17 J1
18 J2

部品

極性

1 kΩ カーボン抵抗 （茶黒赤金）
1 kΩ カーボン抵抗 （茶黒赤金）
1 kΩ カーボン抵抗 （茶黒赤金）
10 kΩ カーボン抵抗 （茶黒橙金）
10 kΩ カーボン抵抗 （茶黒橙金）
10 kΩ カーボン抵抗 （茶黒橙金）
1 kΩ カーボン抵抗 （茶黒赤金）
1 kΩ カーボン抵抗 （茶黒赤金）
LED φ5，赤LED φ5，赤LED φ5，赤LED φ5，青LED φ5，緑
トグル・スイッチ
トグル・スイッチ
トグル・スイッチ
ピン・ヘッダピン・ヘッダ

なし
なし
なし
なし
なし
なし
なし
なし
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
なし
なし
なし
なし
なし

●完成図
完成した動作チェッカを図 10 に示します．電源電圧は 3 (V) で使用してください．
このチェッカに取り付けた論理ゲート（ディジタル回路ブロック）が“1”を出力した場
合は，“𝑌”の LED（緑）が光ります．また，論理ゲートが“0”を出力した場合は“𝑌̅”のLED（青）が光ります．

図 10： 組み立てた「動作チェッカ」．
5

5. 論理ゲート基板（ディジタル回路ブロック）を作る●基板の数を確認する「ディジタル回路ブロック」は，いくつかの基板が面付けされた形になっています．手で折り曲げて，切り離してください．端面をやすりで整えると綺麗に仕上がります．
表 2 に，各基板の個数を示します．実際に CPU で使用するのは，「使用数」の欄に書かれている個数です．面付けの都合により，いくつかの基板が余ります．余った基板は予備として扱ってください．
表 2： 「ディジタル回路ブロック」の基板リスト．

#

論理ゲート名

使用数 内容数 予備数

1 NOT
2 Schmitt Trigger
3 2 NAND
4 2 NOR
5 2 AND
6 2 OR
7 3 NAND
8 3 NOR
9 EXOR
10 Tri-State Buffer

19
11
128
34
19
2
85
7
15
16
336

合計

20
12
130
36
20
4
90
8
16
18
354

1
1
2
2
1
2
5
1
1
2
18

●各基板に実装する部品「ディジタル回路ブロック」の基板には，MOSFET（NMOS と PMOS），LED，抵抗，
ピン・ヘッダを実装します．実装部品の種類は，すべての基板で共通です．これを表 3 に示します．
表 3： 「ディジタル回路ブロック」に実装する部品．

#

部品名

1 N型 MOSFET
2 P型 MOSFET
3 赤色 チップLED
4 緑色 チップLED
5 1kΩ チップ抵抗
6 100kΩ チップ抵抗
7 3pin ピン・ヘッダ

型番

極性

備考

BSS138BSS84
1608サイズ1608サイズ1608サイズ1608サイズ2.54mm ピッチ

あり （パッド形状に従う）
あり （パッド形状に従う）
あり （下側がカソード）
あり （下側がカソード）
なし
なし
なし

SOT-23パッケージ．
SOT-23パッケージ．
インチ規格なら0603．
インチ規格なら0603．
LEDの電流制限抵抗．
入力プル・ダウン抵抗．

6

●手順 1： 表面のパッドにはんだを付ける
以下，「ディジタル回路ブロック」の組み立て手順を説明します．手順はすべての基板で同じです．ここでは「2 NAND」基板を例にして説明します．
まずは図 11 のように，1 つの部品あたり 1 箇所ずつパッドにはんだを付けます．

はんだを
付けておく

図 12： MOSFET をはんだ付けする．

図 11： 表面にはんだを付ける．

●手順 2： MOSFET をはんだ付けする
シルクで“P”と書かれている箇所には PMOS の“BSS84”を取り付けます．シルクで“N”と書かれている箇所には NMOS の“BSS138”を取り付けます（図 12）．
MOSFET を取り付けるときは，先に 1 端子だけはんだ付けして仮止めし，続いて残りの2 端子をはんだ付けする方法がおすすめです．
はんだ付けした後に位置を調整したいときは，すべての端子にフラックスを塗り，
MOSFET の端子全体が埋もれるくらい多めにはんだを付けます．この状態ではんだを溶かすと，表面張力によって MOSFET が動いて各端子がパッドの中心に移動します．

●手順 3： LED をはんだ付けする
図 13 のように，LED をはんだ付けします．入力側（X1，X2）は赤色の LED，出力側（Y）は緑色の LED を使用します．
「基板の下側」にカソードがくるようにはんだ付けしてください．LED の極性は，図 14 に示すとおりです．なお，LED の品種は変更される場合があります．ご了承ください．

アノード

カソード

図 14： LED の極性．

図 13： LED をはんだ付けする．

7

●手順 4： 裏面のパッドにはんだを付ける
図 15 のように，基板の裏面にも 1 部品あたり 1 箇所ずつはんだを付けておきます．
裏面の作業をするときは，図 16 のように「動作チェッカ」を治具として利用すると便利です．なお，図 16 ではピン・ヘッダを挿入して基板を固定していますが，この時点ではまだピン・ヘッダをはんだ付けしません．

はんだを
付けておく

図 15： 裏面のパッドにはんだを付ける．

図 16： 「動作チェッカ」を基板固定用の治具として利用する．

●手順 5： 抵抗をはんだ付けする
シルクで“1 k”と書かれている箇所には 1 (kΩ)のチップ抵抗を取り付け，“100 k”と書かれている箇所には 100 (kΩ)のチップ抵抗を取り付けます（図 17）．

図 18： ピン・ヘッダをはんだ付けする．

図 17： 抵抗をはんだ付けする．

●手順 6： ピン・ヘッダをはんだ付けする
表面・裏面両方の部品実装が完了したら，図 18 のようにピン・ヘッダをはんだ付けして完成です．このときも，「動作チェッカ」を治具として使用します．

8

●間違ってはんだ付けした部品を取り外す場合取り外す部品のすべての端子にフラックスを塗り，はんだを多めに流し込みます．部品全体がはんだで埋まる状態にしても構いません．この状態ではんだごてを当てて，そのままゆっくりと持ち上げます．すると，はんだの表面張力によって部品と溶けたはんだが一緒にはんだごての先についてきます．ピンセットでこて先から部品を回収します．

●大量にはんだ付けする場合
本キットには，大量の「ディジタル回路ブロック」基板が含まれています．効率良く作業を進めたい場合は，同じ工程をまとめて実行することをおすすめします（表面の予備はんだ作業をまとめてやる，NMOS を取り付ける作業をまとめてやる，など）．

●動作チェックをする「ディジタル回路ブロック」の基板が完成したら，「動作チェッカ」を使って動作確認をしてください．下記に，各論理ゲートの真理値表を示します．もし真理値表のとおりに動作しない場合は，端子の接触不良か部品の取り付け方向ミスが考えられます．
表 4： NOT

表 5： Schmitt Trigger

表 6： 2 NAND

表 7： 2 NOR

の真理値表

の真理値表

の真理値表

の真理値表

X

X

Y

0
1

0
1

1
0

Y

X2

X1

Y

X2

X1

Y

1
0

0
0
1
1

0
1
0
1

1
1
1
0

0
0
1
1

0
1
0
1

1
0
0
0

表 8： 2 AND

表 9： 2 OR

の真理値表

の真理値表

X2

X1

Y

X2

X1

Y

0
0
1
1

0
1
0
1

0
0
0
1

0
0
1
1

0
1
0
1

0
1
1
1

表 10： 3 NAND

表 11： 3 NOR

表 12： EXOR

表 13： Tri-State

の真理値表

の真理値表

の真理値表

Buffer の真理値表

X3

X2

X1

Y

X3

X2

X1

Y

X2

X1

Y

E

X

Y

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

1
1
1
1
1
1
1
0

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

1
0
0
0
0
0
0
0

0
0
1
1

0
1
0
1

0
1
1
0

0
0
1
1

0
1
0
1

High-Z
High-Z
01

9※High-Z の場合，
動作チェッカの緑・青 LED は両方とも光りません．

6. CLOCK & STATE MACHINE 基板を作る●部品表
表 14 に，シルクと部品の対応表を示します．

表 14： CLOCK & STATE MACHINE 基板のシルクと部品の対応表
#

シルク

1 R1
2 R2
3 R3
4 R4
5 R5
6 R6
7 R7
8 R8
9 R9
10 R10
11 C1
12 C2
13 C3
14 C4
15 C5
16 C6
17 D1
18 D2
19 D3
20 D4
21 J1
22 SW123 SW224 SW325 SW426 SW527 SW628 SW72930-

部品
2.2 kΩ カーボン抵抗 （赤赤赤金）
2.2 kΩ カーボン抵抗 （赤赤赤金）
10 kΩ カーボン抵抗 （茶黒橙金）
1 kΩ カーボン抵抗 （茶黒赤金）
330 Ω カーボン抵抗 （橙橙茶金）
10 kΩ カーボン抵抗 （茶黒橙金）
1 kΩ カーボン抵抗 （茶黒赤金）
330 Ω カーボン抵抗 （橙橙茶金）
330 Ω カーボン抵抗 （橙橙茶金）
330 Ω カーボン抵抗 （橙橙茶金）
1000 pF フィルムコンデンサ （102）
1 uF 積層セラミックコンデンサ (105)
10 uF 無極性電解コンデンサ
100 uF 無極性電解コンデンサ
10 uF 電界コンデンサ
10 uF 電界コンデンサ
LED φ5 赤 （CLOCK）
LED φ5 緑 （RESET）
LED φ5 黄 （HALT）
LED φ5 青 （STATE)
5pin x 2列 ピンヘッダ
トグルスイッチ
トグルスイッチ
トグルスイッチ
プッシュスイッチ 赤 （CLOCK)
トグルスイッチ
プッシュスイッチ 黒 （RESET)
トグルスイッチ
3pin ピンソケット
電池ボックス 単3 x 2

極性
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
あり （上側がプラス）
あり （上側がプラス）
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
なし
なし
なし
なし
あり
なし
あり
なし
なし
-

備考

0.1 uF （104）と間違わないように注意．

押した時に上側の2端子間がON．
押した時に上側の2端子間がON．
すべての論理ゲートに取り付ける．
ねじで基板に取り付ける．

●抵抗，コンデンサ，LED，ピン・ヘッダを取り付ける
表 14 にしたがって，抵抗，コンデンサ，LED，ピン・ヘッダなど，背の低い部品を先に取り付けます．

10

●ピン・ソケットを取り付ける
続いて，ピン・ソケットを取り付けます．ピン・ソケットは 1 つ 1 つはんだ付けしても構いませんが，次の手順でまとめて取り付けることをおすすめします．
1. ピン・ソケットをすべての箇所に挿入する．
2. 図 19 のようにマスキング・テープで仮止めする．
3. 各ピン・ソケットの中央のピンだけはんだ付けする．
4. マスキング・テープを外す．
5. 1 つ 1 つのピン・ソケットの角度を調整する（はんだを溶かしながら）．
6. すべての端子をはんだ付けする．

図 19： ピン・ソケットをマスキング・テープで仮止めしてはんだ付けする．
※ピン・ソケットのパッドのうち，GND に接続するパッドは熱容量が大きいのではんだが付きにくくなっています．念入りにはんだを流し込むようにしてください．

●スイッチを取り付ける
トグル・スイッチおよびプッシュ・スイッチを取り付けます．プッシュ・スイッチには向きがあるので注意してください．基板をシルクの文字が読める向きに置いたとき，プッシュ・スイッチの「押したときに導通する 2 端子」が基板の上側にくるように取り付けてください（図 20）．念のため，テスタでチェックしてください．

角が無い部分を基板の下方向にする．
図 20： プッシュ・スイッチの取り付け方向．
11

●電池ボックスを取り付ける
電池ボックスを基板にねじで固定します．ねじ穴は 3 つあります．使用する穴の位置は自由に選択してください．
電池ボックスを固定したら，電池スナップを基板にはんだ付けします．

●「ディジタル回路ブロック」を取り付ける
シルクに合わせて，「ディジタル回路ブロック」をピン・ソケットに挿入します．

●動作確認
・リセット
CLOCK & STATE MACHINE 基板単独で，電源を入れてください．続いて，ピン・ヘッ
ダ“J1”の“N_HALT”端子を“1”（VDD 電位）にしてください．この状態で“RESET”のプッシュ・スイッチを押すと，緑色の“RESET”LED が光り，黄色の“HALT”LED が消えた状態になることを確認してください．

・クロックの“AUTO”モード
“SW1”
，
“SW2”
，
“SW3”をすべて ON（上側）にします．このとき，発振回路の部分
が約 2 (Hz)で動作することを確認してください．ここで，“CLOCK SELECT”のスイッチ
を“AUTO”側にすると，赤色の“CLOCK”LED が点滅することを確認してください．また，クロックの 2 倍の周期で青色の“STATE”LED が点滅することを確認してください．

・クロックの“MAN”モード“CLOCK SELECT”スイッチを“MAN”側にして，“CLOCK”のプッシュ・スイッチを押すと，それに合わせて赤色の“CLOCK”LED が光ることを確認してください．

・“HALT”動作の確認
ピン・ヘッダ“J1”の“N_HALT”端子を“0”（GND 電位）にしてください．この状態
でクロックを入れると，黄色の“HALT”LED が点灯することを確認してください．

●クロック周波数の切り替え
クロック周波数は以下のように変更できます．
・SW1，SW2，SW3 すべて OFF： 約 200 (kHz)・SW1 だけ ON： 約 200 (Hz)・SW2 だけ ON： 約 20 (Hz)・SW3 だけ ON： 約 2 (Hz)
上記以外のスイッチ設定にした場合は，それぞれの周期の足し合わせになります．

12

7. ROM 基板を作る●部品表
表 15 に，基板上のシルクと部品の対応表を示します．
表 15： ROM 基板のシルクと部品の対応表

シルク
R1 - R128
R129 - R136
D1 - D128
D129 - D256
SW1 - SW16

部品

極性

1 kΩ チップ抵抗 （1608サイズ）
なし
10 kΩ チップ抵抗 （1608サイズ）
なし
赤色 チップLED （1608サイズ）
あり （上側がカソード）
ショットキ・バリア・ダイオード BAT43XV2 あり （右側がカソード）
8連 DIPスイッチ
あり （字が読める方向）●表面実装部品のパッドに予備はんだを付ける「ディジタル回路ブロック」を作るときと同じ要領で，表面実装部品（R1－R136，D1－
D256）のパッドにはんだを付けておきます．はんだは，1 つの部品あたり 1 箇所だけ付けるようにします．

●ショットキ・バリア・ダイオード（D129 から D256）を取り付ける
シルク番号 D129 から D256 の位置には，ショットキ・バリア・ダイオード（BAT43XV2）を取り付けます．このダイオードには，図 21 に示すようにカソード側に白線が付いています．基板上をシルクが読める向きに置いたとき，カソード・マークが基板の右側になるように取り付けます．

図 21： BAT43XV2 の極性．

図 22： BAT43XV2 は，先に極性をそろえて並べてから一度に取り付けると良い．
13

図 23： 基板上に並べた BAT43XV2 の極性をルーペで確認している様子．
BAT43XV2 を取り付けるときは，図 22 のように 1 ブロック（8 個）のダイオードの極性を揃えて並べておき，まとめてはんだ付けすることをおすすめします．ダイオードの極性確
認は，図 23 のようにルーペ（あるいは顕微鏡）を使って目視するか，テスタを使って行ってください．
はんだ付け後も，念のためテスタを使って極性確認をしてください．なお，はんだ付けの後はフラックスがダイオードの表面に付着するため，目視による確認が難しくなります．フラックスを取り除きたい場合は，フラックス・リムーバを使用してください．

●赤色 LED（D1 から D128）を取り付ける
LED をはんだ付けします．シルクの文字が読める向きに基板を置いたとき，基板の「上側」のパッドがカソードになります．

●1 kΩ抵抗（R1 から R128）を取り付ける
1 kΩのチップ抵抗を取り付けます．

●10 kΩ抵抗（R129 から R136）を取り付ける
10 kΩのチップ抵抗を取り付けます．

●DIP スイッチを取り付ける
DIP スイッチを，文字が読める向き（スイッチを上側にしたときに“ON”になる向き）に取り付けます．DIP スイッチの一番右側のビットが LSB（最下位ビット）です．

●ピン・ヘッダ，ピン・ソケット，ディジタル回路ブロックを取り付ける
残りのピン・ヘッダおよびピン・ソケットをはんだ付けします．最後に，シルクに合わせて「ディジタル回路ブロック」を取り付ければ完成です．
14

8. I/O 基板を作る●部品表
表 16 に，基板上のシルクと部品の対応表を示します．
表 16： I/O 基板のシルクと部品の対応表

#

シルク

1 R1
2 R2
3 R3
4 R4
5 R5
6 R6
7 R7
8 R8
9 R9
10 R10
11 R11
12 R12
13 C1
14 C2
15 C3
16 C4
17 C5
18 D1
19 D2
20 D3
21 D4
22 D5
23 D6
24 D7
25 D8
26 SW1
27 J1
28 J2
29 J3
30 J4

部品
330 Ω カーボン抵抗 （橙橙茶金）
330 Ω カーボン抵抗 （橙橙茶金）
330 Ω カーボン抵抗 （橙橙茶金）
330 Ω カーボン抵抗 （橙橙茶金）
330 Ω カーボン抵抗 （橙橙茶金）
330 Ω カーボン抵抗 （橙橙茶金）
330 Ω カーボン抵抗 （橙橙茶金）
330 Ω カーボン抵抗 （橙橙茶金）
1 kΩ カーボン抵抗 （茶黒赤金）
1 kΩ カーボン抵抗 （茶黒赤金）
1 kΩ カーボン抵抗 （茶黒赤金）
1 kΩ カーボン抵抗 （茶黒赤金）
欠番
0.1 uF 積層セラミックコンデンサ （104）0.1 uF 積層セラミックコンデンサ （104）0.1 uF 積層セラミックコンデンサ （104）0.1 uF 積層セラミックコンデンサ （104）
赤 LED φ5赤 LED φ5赤 LED φ5赤 LED φ5赤 LED φ5赤 LED φ5赤 LED φ5赤 LED φ5
トグル・スイッチ
2 x 5 ピン・ヘッダ
1 x 6 ピン・ヘッダ
1 x 6 ピン・ヘッダ
DCジャック

極性
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
なし
なし
なし
なし
あり （シルクに従う）●抵抗，コンデンサ，LED，ピン・ヘッダ，DC ジャックを取り付ける
表 16 に従って，抵抗，コンデンサ，LED，ピン・ヘッダ，DC ジャックを取り付けます．

●ピン・ソケットおよび「ディジタル回路ブロック」を取り付ける
ピン・ソケットをはんだ付けし，シルクに従って「ディジタル回路ブロック」を取り付けます．
最後に背の高いトグル・スイッチを取り付けて，完成です．

15

9. Program Counter 基板を作る●ピン・ヘッダ，ピン・ソケット，「ディジタル回路ブロック」を取り付ける
ピン・ヘッダとピン・ソケットを取り付けます．ピン・ソケットを取り付けたら，シルクにあわせて「ディジタル回路ブロック」を取り付けてください．

10. ALU 基板を作る●ピン・ヘッダ，ピン・ソケット，「ディジタル回路ブロック」を取り付ける
ピン・ヘッダとピン・ソケットを取り付けます．ピン・ソケットを取り付けたら，シルクにあわせて「ディジタル回路ブロック」を取り付けてください．

11. A Register 基板を作る●ピン・ヘッダ，ピン・ソケット，「ディジタル回路ブロック」を取り付ける
ピン・ヘッダとピン・ソケットを取り付けます．ピン・ソケットを取り付けたら，シルクにあわせて「ディジタル回路ブロック」を取り付けてください．

12. B Register 基板を作る●ピン・ヘッダ，ピン・ソケット，「ディジタル回路ブロック」を取り付ける
ピン・ヘッダとピン・ソケットを取り付けます．ピン・ソケットを取り付けたら，シルクにあわせて「ディジタル回路ブロック」を取り付けてください．

13. Instruction Decoder 基板を作る●ピン・ヘッダ，ピン・ソケット，「ディジタル回路ブロック」を取り付ける
ピン・ヘッダとピン・ソケットを取り付けます．ピン・ソケットを取り付けたら，シルクにあわせて「ディジタル回路ブロック」を取り付けてください．

14. 回路図
全基板の回路図を別途添付します．

15. 各基板のレイアウト
図 24 に，各基板のレイアウト概要を示します．回路図と合わせて，動作確認の参考にしてください．

16

図 24： 各基板のレイアウト概要．

17

16. 全体を接続する●平面に展開する場合
各基板のピン・ヘッダ付近のシルクに従い，各基板を接続します．全体の接続関係を図25 に示します．

図 25： 全体の接続関係．

●上下方向に積層する場合
スペーサを使って基板を積み重ねる場合は，図 26 のような順序にします．

図 26： 8 枚の基板を縦に積層する場合の順序．

18

17. プログラム例●命令一覧
表 17 に，CPU の命令一覧を示します．
表 17： CPU の命令一覧#

カテゴリ

二モニック・コード

1
LD A, [Data]
2
データ
LD B, [Data]
3
転送
LD A, B
4LD B, A
5
ADD A, B
6
SUB A, B
算術演算
7
ADD A, [Data]
8
SUB A, [Data]
9
OUT A
10
データ
OUT B
11
入出力 OUT [Data]
12
IN A
13
JUMP [Address]
分岐
14
JNC [Address]（ジャンプ）
15JNZ [Address]
16 動作制御 HALT

バイナリ （機械語）
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

動作

[Data]A ← [Data][Data]B ← [Data]x x x x A←Bx x x x B←Ax x x x A←A+B
x x x x A←A-B[Data]A ← A + [Data][Data]A ← A - [Data]x x x x OUT ← A
x x x x OUT ← B[Data]
OUT ← [Data]x x x x A ← IN
[Address] PC ← [Address][Address] PC ← [Address] (if NOT Carry)[Address] PC ← [Address] (if NOT Zero)x x x x HALT

●加算プログラム（ループなし）
リスト 1 に，
“1 + 2 + 3 + 4 +5 = 15”を計算して OUT レジスタに出力するプログラムを示します．
リスト 1： 加算プログラム（ループなし）

#
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

アドレス

アセンブリ言語

0000 LD A, 0001
0001 OUT A
0010 ADD A, 0010
0011 OUT A
0100 ADD A, 0011
0101 OUT A
0110 ADD A, 0100
0111 OUT A
1000 ADD A, 0101
1001 OUT A
1010 LD A, 0000
1011 LD A, 0000
1100 LD A, 0000
1101 LD A, 0000
1110 LD A, 0000
1111 OUT 0000

19

バイナリ

コメント

0000 0001
1000 0000
0110 0010
1000 0000
0110 0011
1000 0000
0110 0100
1000 0000
0110 0101
1000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
1010 0000

1をロード．
出力．
2を加算．
出力．
3を加算．
出力．
4を加算．
出力．
5を加算
出力．
待機．
待機．
待機．
待機．
待機．
出力をクリア．

●加算プログラム（ループあり）
リスト 2 に，
“1 + 2 + 3 + 4 +5 = 15”を計算して OUT レジスタに出力するプログラムを示します．このプログラムを実行するときは，IN ポートと OUT ポートを 6 芯の「コネク
タ付きケーブル」で接続してください．
リスト 2： 加算プログラム（ループあり）※このプログラムを実行するときは，IN ポートと OUT ポートをケーブルで接続する．
#

アドレス

0
1
2
3
4
5
6
7
8
9
10

アセンブリ言語

0000 LD A, 0000
0001 LD B, 0101
0010 ADD A, B
0011 OUT A
0100 LD A, B
0101 SUB A, 0001
0110 JNZ 1000
0111 HALT
1000 LD B, A
1001 IN A
1010 JUMP 0010

バイナリ

コメント

0000 0000 Aレジスタをクリア．
0001 0101 「加算の回数」を定義．ここでは5回．
0100 0000 加算を実行．
1000 0000 OUTレジスタに値を出力．
0010 0000 B ← B - 1 (1)0111 0001 B ← B - 1 (2)1110 1000 計算結果が0でなければ1000番地へ飛ぶ．
1111 0000 終了．OUTレジスタに結果が残る．
0011 0000 B ← B - 1 (3)1011 0000 OUTレジスタの値をAレジスタに読み込む．
1100 0010 ループ．

1周目

2周目

3周目

4周目

5周目

A=0
B=5
A=5, B=5
OUT=5
A=5
A=4
JUMP

A=9, B=4
OUT=9
A=4
A=3
JUMP

A=12, B=3
OUT=12
A=3
A=2
JUMP

A=14,B=2
OUT=14
A=2
A=1
JUMP

A=15,B=1
OUT=15
A=1
A=0

B=4
A=5

B=3
A=9

B=2
A=12

B=1
A=14

終了

●乗算プログラム
リスト 3 に，“4 × 3 = 12”を計算して OUT レジスタに出力するプログラムを示します．
このプログラムを実行するときは，IN ポートと OUT ポートをケーブルで接続してください．
リスト 3： 乗算プログラム※このプログラムを実行するときは，IN ポートと OUT ポートをケーブルで接続する．

# アドレス
0
1
2
3
4
5
6
7
8
9

アセンブリ言語

0000 LD A, 0000
0001 LD B, 0011
0010 ADD A, 0100
0011 OUT A
0100 LD A, B
0101 SUB A, 0001
0110 LD B, A
0111 IN A
1000 JNZ 0010
1001 HALT

バイナリ

コメント

0000 0000 Aレジスタをクリア．
0001 0011 「かける数」を定義．今回は3．
0110 0100 「かけられる数」を加算する．今回は4．
1000 0000 OUT レジスタに途中経過を格納．
0010 0000 B ← B - 1 (1)0111 0001 B ← B - 1 (2)0011 0000 B ← B - 1 (3)1011 0000 OUTレジスタの値をAレジスタに読み込む．
1110 0010 Bレジスタの値が0になるまで繰り返す．
1111 0000 終了．

20

1周目

2周目

3周目

A=0
B=3
A=4, B=3
OUT=4
A=3
A=2
B=2
A=4
JUMP

A=8, B=2
OUT=8
A=2
A=1
B=1
A=8
JUMP

A=12, B=1
OUT=12
A=1
A=0
B=0
A=12
終了

●除算プログラム
リスト 4 に，“9 ÷ 2 = 4 あまり 1”を計算するプログラムを示します．商の“4”はOUT レジスタに，剰余の“1”は A レジスタに格納されます．
このプログラムを実行するときは，IN ポートと OUT ポートをケーブルで接続してください．
リスト 4： 除算プログラム※このプログラムを実行するときは，IN ポートと OUT ポートをケーブルで接続する．
#
0
1
2
3
4
5
6
7
8
9
10
11
12

アドレス

アセンブリ言語

0000 LD A, 1001
0001 LD B, 0000
0010 SUB A, 0010
0011 JNC 1010
0100 OUT A
0101 LD A, B
0110 ADD A, 0001
0111 LD B, A
1000 IN A
1001 JUMP 0010
1010 IN A
1011 OUT B
1100 HALT

バイナリ

コメント

0000 1001 「わられる数」を定義．今回は9．
0001 0000 Bレジスタをクリア．
0111 0010 「わる数」を引き算する．今回は2．
1101 1010 値が負なら割り算終了．
1000 0000 途中経過をOUTレジスタに格納．
0010 0000 B ← B + 1 (1)0110 0001 B ← B + 1 (2)0011 0000 B ← B + 1 (3)1011 0000 OUTレジスタをAレジスタに読み込む．
1100 0010 繰り返し処理に戻る．
1011 0000 剰余をAレジスタに格納．
1001 0000 商をOUTレジスタに格納．
1111 0000 終了．

21

1周目

2周目

3周目

4周目

A=9
B=0
A=7, B=0 A=5, B=1 A=3, B=2 A=1,B=3
OUT=7
A=0
A=1
B=1
A=7, B=1
JUMP

OUT=5
A=1
A=2
B=2
A=5, B=2
JUMP

OUT=3
A=2
A=3
B=3
A=3, B=3
JUMP

5周目
A=-1,B=4
JUMP

OUT=1
A=3
A=4
B=4
A=1, B=4
JUMP
A=1
OUT=4
終了

18. モータ・ドライバ基板を作る●部品表
表 18 に，基板上のシルクと部品の対応表を示します．
表 18： モータ・ドライバ基板のシルクと部品の対応表．

#

シルク

1 R1
2 R2
3 R3
4 R4
5 R5
6 D1
7 D2
8 D3
9 D4
10 Q1
11 Q2
12 Q3
13 Q4
14 RL1
15 RL2
16 RL317 RL4
18 J1
19 J2

部品
1 kΩ カーボン抵抗 （茶黒赤金）
1 kΩ カーボン抵抗 （茶黒赤金）
1 kΩ カーボン抵抗 （茶黒赤金）
1 kΩ カーボン抵抗 （茶黒赤金）
1 kΩ カーボン抵抗 （茶黒赤金）
1N4148 （汎用ダイオード）
1N4148 （汎用ダイオード）
1N4148 （汎用ダイオード）
1N4148 （汎用ダイオード）
2N5551L-B-T92-K
2N5551L-B-T92-K
2N5551L-B-T92-K
2N5551L-B-T92-K
ATX201
ATX201
ATX201
ATX2016pin ピン・ヘッダ
6pin ピン・ヘッダ

極性
なし
なし
なし
なし
なし
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
あり （シルクに従う）
なし
なし

●完成図
すべての部品をはんだ付けした状態を図 25 に示します．この回路の電源は 3 (V)です．
単 3 電池 2 本の電池ボックスを接続して使用してください．

図 27： 完成したモータ・ドライバ．

●制御端子
・M1 ON/OFF, M2 ON/OFF： モータの ON/OFF を制御する端子です．
・M1 F/B， M2 F/B： モータの正転・反転を制御する端子です．

22

19. ロボット部分を作る●ギヤボックスを組み立てる「ウォームギヤーボックス HE」を 2 つ組み立てます．ここではギヤ比を「336:1」にするものとします．後でタイヤと接続するために，図 28 のようにストッパーがついている出力シャフトを選びます．

図 28： ウォームギヤーボックス HE を組み立てる．ギヤ比は 336:1 とする．

●タイヤを組み立てる「スポーツタイヤセット」を組み立てます．軸受けは，「ウォームギヤーボックス HE」のストッパーと噛み合うものを選んでおきます．

図 29： スポーツタイヤセット．

●ボールキャスターを組み立てる「ボールキャスター」を組み立てます．今回は 2 つとも使用します．

図 30： ボールキャスター．

23

●シャーシに各パーツを取り付ける
図 31 のように，各部品をシャーシ（ユニバーサルプレート L）に取り付けます．
・スペーサ（25mm）： 表面．シャーシの四隅の穴に取り付けます．
・ボールキャスター： 裏面．スペーサと干渉しないように取り付けます．
・ギヤボックス： 裏面．スペーサと干渉しないように取り付けます．
・モータ・ドライバ基板： 表面．ギヤボックスと干渉しないように取り付けます．
・電池ボックス： 表面．ギヤボックスと干渉しないように取り付けます．
・ユニバーサルプレート（小）： 表面．モータ・ドライバ基板およびボールキャスターと干渉しないように取り付けます．

表面

裏面

図 31： 各部品をシャーシに取り付ける．

●マイクロ・スイッチを取り付ける
マイクロ・スイッチをユニバーサルプレート（小さい方）の先端に取り付けます．取り付けに使用する金具は，L 字の金具と同じ袋に入っています．

図 32： 金具と M2 ネジを使ってマイクロ・スイッチを固定する．

24

●マイクロ・スイッチを縦に取り付ける場合 （任意）L 字の金具を使うと，図 33 のようにマイクロ・スイッチを立てた状態で取り付けることができます．お好みで選択してください．

図 33： L 字の金具を使うとマイクロ・スイッチを立てた状態で固定できる．

●モータをモータ・ドライバ基板に接続する
左右のモータを，モータ・ドライバ基板の“M1_A”，“M1_B”および“M2_A”，“M2_B”
端子に接続します．
モータの極性は，“M1 ON/OFF”および“M2 ON/OFF”に“1”（VDD 電位）を印加したときに車体が前に進むようにしてください．

●マイクロ・スイッチをモータ・ドライバ基板に接続するケーブルを使って，マイクロ・スイッチをモータ・ドライバ基板の“SW”端子に接続します．マイクロ・スイッチの端子は，「押したときに ON」になる 2 端子を使用してください．モータ・ドライバ基板側の“SW”端子には極性はありません．

●CPU とモータ・ドライバ基板を接続するロボットのシャーシ部分が完成したら，シャーシ部分と CPU 本体を合体させます．
I/O 基板の穴とシャーシ側のスペーサのネジ部分の位置を合わせて挿入し，スペーサ用ナ
ットで固定してください．続いて，6 芯の「コネクタ付きケーブル」でモータ・ドライバとCPU の I/O ポートを接続します．モータ・ドライバ基板のモータ制御端子は CPU の“OUTポート”に，モータ・ドライバ基板のスイッチ端子は CPU の“IN ポート”に接続してください．

図 34： モータ・ドライバ基板と CPU 本体を 2 本のケーブルで接続する．
25

20. ロボットのプログラム例●自動方向転換ロボットを作る
ロボットは，OUT ポートにデータを出力することでコントロールできます．ここでは例
として，図 35 のような動作をする「自動方向転換ロボット」のプログラムを紹介します．

図 35： 「自動方向転換ロボット」の動作．
リスト 5： 自動方向転換ロボットのプログラム．クロック周波数は 20 (Hz)を選択．
※ウォームギヤーボックスのギヤ比を“336:1”とした場合．

#
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

アドレス

アセンブリ言語

0000 OUT 0101
0001 IN A
0010 SUB A, 0000
0011 JNZ 0001
0100 OUT 1111
0101 LD A, 1001
0110 SUB A, 0001
0111 JNZ 0110
1000 OUT 0000
1001 LD A, 0011
1010 SUB A, 0001
1011 JNZ 1010
1100 OUT 0111
1101 LD A, 1100
1110 SUB A, 0001
1111 JNZ 1110

バイナリ

コメント

1010 0101 前進．
1011 0000 スイッチをチェック．
0111 0000
1110 0001 ループ．
1010 1111 後退．
0000 1001 時間稼ぎ．値は適宜調整．
0111 0001
1110 0110
1010 0000 停止．
0000 0011 時間稼ぎ．値は適宜調整．
0111 0001
1110 1010
1010 0111 右回転 （右モータ逆転，左モータ正転）．
0000 1100 時間稼ぎ．値は適宜調整．
0111 0001
1110 1110

26