【マイクラ】レッドストーン回路で足し算できる電卓を作る!? 基本の作り方を徹底解説!

その他解説系

 どうもどうも! EIEIです!

 今回は、マイクラのレッドストーン回路を用いて、電卓を作る方法を紹介したいと思います!

 Youtubeなどで、すごく大きな電卓の回路を動かす動画なんかを見たことがある人もいると思います。

マイン
マイン

マイクラというゲームの中で、電卓を作れるのはすごいですよね!

 …とはいえ、あんな大きなものは1つの記事で解説するのは大変なので、

 今回は「足し算のできる電卓」を作っていこうと思います!

 実は、足し算を実現するだけならそこまで巨大な回路にはなりませんよ!

EIEI
EIEI

回路が苦手な方でも作れるように、分かりやすい画像を添えて解説していきます!

 また、実は今回解説する内容は、専門学校や大学なんかで教えている知識なので、

 思考力なんかを鍛える勉強としてもおすすめです!

 もちろん、小学生などの方でも分かるように、丁寧に解説させていただきます!

 本日もLet’sマイクラ!

スポンサーリンク

電卓を作る前に、デジタル回路の基礎知識!

 ここから、電卓を作るにあたってフワッと理解しておきたい、

 デジタル回路の基礎知識について紹介します。

マイン
マイン

マイクラのレッドストーン回路も、ゲームの中の存在ではありますがデジタル回路ととらえられます。

 「難しいことは読みたくない!」「早く電卓をマイクラで作りたい!」という方は、

 「1桁の足し算をできる電卓! 半加算器の作り方!」まで飛ばしてくださいね。

デジタル回路の基本の「き」

 ここからは、現役で高専の情報科に通っている筆者が、高専で習ったことをかみ砕いて説明いたします!

 デジタル回路には、「ON」と「OFF」の2種類の状態があります。

 レッドストーン回路でも、信号が通っている「ON」と、信号が通っていない「OFF」の状態がありますよね。

EIEI
EIEI

回路の状態として、この2種類がありますよ~

 この記事では、ONのことを「1」、OFFのことを「0」として書いていきますね。

↑いくつか呼び方や名前がありますが、この記事では「0」と「1」、「入力」と「出力」とさせていただきます。

 また、こちらから与える信号のことを、「入力」と言います。

 足し算をする電卓であれば、足したい2つの数を「入力」しますよね。

マイン
マイン

この記事では、レッドストーン回路のレバーを「入力」として使っていきます!

 勘の良い方は察せるかもしれませんが、出てくる信号のことを「出力」と言います!

 電卓であれば、計算結果が「出力」されますよね~

2進数の知識! いつも使う「10進数」との違い!

 皆さんは、「2進数」というものを聞いたことがあるでしょうか?

 コンピューターも2進数で動いており、デジタル回路やコンピューターにとっては、便利な数の数え方なんです!

EIEI
EIEI

普段僕らが日常生活で使っているのは、10進数という数え方ですよ。

 10進数であれば、0から9までの「10」個の数字を数えたら、桁が上がりますよね!

 一方2進数だと、0と1のみしか数字がなく、「2」個数字を数えたら桁が上がります!

マイン
マイン

10進数だと「0、1、2、3、…、8、9、10、11、…」ですが、

2進数では「0、1、10、11、100、101、…」となります!

 この記事では、10進数での0から7までの数字を、2進数の形で扱います。

 なので、10進数と2進数の対応表を置いておきますね!

10進数の数2進数で表すと
00
11
201
311
4100
5101
6110
7111

 記事中で都度、解説を入れているので、上の表を覚えていただく必要はありません。

 「回路では変な数の数え方をするんだな、」程度に思っていただければ結構です。

EIEI
EIEI

ちなみに、普段「06」と書かれたら「6」に直せるように、2進数でも「010」など余分に0を付けることがありますよ。

スポンサーリンク

AND回路の作り方!

 ここから、電卓を作るために必要な回路の作り方を、部品に分けて解説していきます!

マイン
マイン

実際にマイクラのスクリーンショットを使って、作り方を紹介します!

 まずは、AND回路です! これは、2つ(以上)の入力があり、すべて1の時のみ出力が1となる回路です。

 AND回路に限らず、何パターンか作り方があるのですが、今回はそのうちの1つを紹介します。

↑金ブロックの部分は、不透過ブロック(普通のブロック)にしてくださいね!

 今回使うのは2入力ANDと呼ばれる、入力が2つあるものです。入力と出力の対応表が下になります。

入力1入力2出力
000
010
100
111

 実際にAND回路を作って、レバーをガチャガチャすると動作がよく分かります。

EIEI
EIEI

下の画像でも、入力が2つとも1じゃないと、出力が1になっていないのが分かるかと思います!

↑AND回路に4パターンの入力を加えました!
スポンサーリンク

XOR回路の作り方!

 次に、XOR回路です! この回路、いくつか名前を持っていて、本やサイトによっては「EOR」と書いていることなどもあります。

 XOR回路は、2つある入力のうちどちらかが1の時のみ、出力が1になる回路です!

マイン
マイン

どちらも1の時は、出力は0になるんです!

↑XOR回路は、AND回路より少し大きくなりますが、こんな感じに作れます!

 XOR回路の、入力と出力の対応表は下のようになります!

入力1入力2出力
000
011
101
110

 実際に動かしてみると、下の画像のような感じです。

↑右奥の、どちらも入力が1の時は、出力は0となっています。これがXOR回路のポイント。

 今回は電卓を作っていくわけですが、このXOR回路の動作が足し算にピッタリなんですよね!

 なぜなら、2進数で「01 + 01」をすると、桁上がりが発生して「10」となるからです。

 一番下の桁が1と1なのですが、これを足すと0になります。XOR回路の動作と一致します!

EIEI
EIEI

2進数での「01 + 01 = 10」は、10進数で表現すると「1 + 1 = 2」です!

 「そろそろ難しくて分からない…!」という方は、「XOR回路は足し算を作る時に便利!」と認識していただければOKです♪

OR回路の作り方!

 今回使う回路の部品としてはラスト! OR回路です!

 OR回路は、2つ(以上)ある入力のうち、どれか1つ以上が1ならば、出力が1になる、という回路です!

マイン
マイン

1つだけ1でもいいですし、2つとも1でも出力は1になります。

 OR回路をマイクラで作る際も、いくつか作り方があるのですが、

 何と言ってもOR回路は、その単純な機構ゆえ、回路を接続するだけで成立します!

↑これも立派なOR回路。みなさんが普段何気なく作っている回路なんかも、実はOR回路が入っているかもしれませんよ。

 入力と出力の対応表は以下の通り。

入力1入力2出力
000
011
101
111

 レッドストーン回路に少し触れたことのある方なら想像できるかと思いますが、

 実際に動かしてみると下の画像のようになります!

↑いずれかの入力が1の時、出力が1となっていますね!

 実は、足し算をする電卓であればこの3つの部品を組み合わせることで作れます!

マイン
マイン

これだけで電卓を作れちゃうの!?

EIEI
EIEI

ここからは、これらの回路を組み合わせて、電卓を作る方法を解説しますよ〜!

 普段使っているような、10進数で足し算もかけ算もできる、みたいな電卓はもっと複雑なのですが、

 2進数の足し算をデジタル回路で実現するには、これだけで十分なんです。

スポンサーリンク

1桁の足し算をできる電卓! 半加算器の作り方!

 まずは、1桁の足し算をすることができる、「半加算器」という大きな部品の作り方を紹介します!

 半加算器は、XOR回路とAND回路を組み合わせることで作成できる、2入力2出力の部品です。

EIEI
EIEI

2つの回路を用いるので、少し大きくなってしまいますが、

下の画像のように作れます!

 スペースや見やすさの都合で、画像ではガラスの下に配線を通して、交差させています。

 実際にご自身で作る場合、こちらの画像をそのまま真似して頂いても構いませんし、

 配線など気に入らない部分があれば、レッドストーン信号の強度と、余計な干渉に気をつければアレンジしていただいても大丈夫です♪

↑画像の上側にAND回路が、下側にXOR回路が入っているのが分かりますでしょうか?

 半加算器には、「出力A」と「出力C」の2種類の出力があります。

 これらには意味があり、「出力A」はその桁の計算結果を表していて、

 「出力C」は桁上りの有無を意味しています! 小学校では繰り上がりと、習った方もいるかもしれないですね。

マイン
マイン

2進数での「01 + 01」の答えは「10」のように、

10進数と同じような桁上りがあるんですよね。

 そのため、今後「出力C」と書いてある部分は、桁上りがあるんだな、と覚えておいてください。

 余談ですが、桁上りは英語で「carry」と書きます。なので、出力「C」なんですね。

 以上を踏まえたうえで、半加算器の入力と出力の対応表をどうぞ!

入力X入力Y出力A(計算結果)出力C(桁上りの有無)
0000
0110
1010
1101

 これを実際に動かしてみると、下の画像のようになります。

 少し分かりづらいかもしれませんが、なんとこれだけで、1桁の足し算であれば実現しています!

EIEI
EIEI

2桁以上の足し算では、このあと説明する「全加算器」を用いますよ〜

↑出力AはXOR回路、出力CはAND回路となっています! これをスルッと理解できる方は回路に強いかも…?

 ただ、半加算器だけでは1桁しか足し算できません。

 それだと物足りないので、お次に「全加算器」を紹介させていただきます!

スポンサーリンク

2桁以上の足し算を実現!? 「全加算器」の作り方!

 「全加算器」とは、半加算器と似ているのですが、下の桁からの桁上げを受け取る必要があるため、

 「入力C」を加えた、3入力2出力の大きな部品です!

 全加算器は、半加算器2個とOR回路1個でできています。

マイン
マイン

下の画像を見ていただければ分かりますが、結構大きいんですよね〜!

 ここからは、画像が分かりやすくなるように、以下のように回路を装飾していますよ。

 画像を見て実際に作られる場合、この装飾は別のものに変えたり、なくしてしまっても構いません。

  • 入力X(1つ目の数) …ラピスラズリブロック
  • 入力Y(2つ目の数) …エメラルドブロック
  • 出力A(計算結果) …ダイヤモンドブロック
  • ガラス …この下に配線を通して交差していますよ、の合図

 下の回路を作られる場合、レッドストーン信号の強度が弱まってしまうため、リピーターをところどころ入れている点に注意してください!

↑XOR回路の出力の位置をちょっと変えたりしていますが、ここまで記事を見てきてくださった方にとっては、見たことある回路たちのはず。

 かなり複雑な表になってしまいますが、入力と出力の対応表もどうぞ。

入力X入力Y入力C出力A出力C
00000
00110
01010
01101
10010
10101
11001
11111
EIEI
EIEI

「入力C」で、下位(小さい)桁の桁上げを受け取れます。

ということは…?

 なんと、1桁目の計算は半加算器、それ以降の桁の計算は全加算器で、というふうに回路をつなぐと、

 これで足し算をすることができる電卓の回路が完成します!

マイン
マイン

桁を増やしたければ、全加算器をどんどん増やせばいいんですね!

↑画像では、半加算器のあとに全加算器を2つ接続した、3桁の足し算ができる電卓です!

 「回路がよくわからないよ!」という方も、上の画像の回路をそのまま真似していただいたり、

 これまでに解説した部品ごとの画像を参照して、同じものを組んでくださればOKです!

EIEI
EIEI

実際にできた電卓を使ってみましょう!

 入力X(ラピスラズリ)と、入力Y(エメラルド)にそれぞれ、数字を入力しましょう!

 2進数で入力する必要があるのに注意です。入力は0と1の2種類しかありませんからね。

 例えば、入力Xに「011」、入力Yに「010」を入力したのが下の画像です!

↑2進数で正しく電卓が動作していることが分かります! 10進数に直しても、ちゃんと計算できていますよ〜
マイン
マイン

すごい! 足し算を作るだけなら、意外とレッドストーン回路でも簡単に作れますね!

 しかし、1つ注意したいことが、作った桁以上の計算結果は正しく表示できないことです。

 実際の電卓でも、ものによるかもしれませんが、桁がオーバーするとエラーとなってしまいますよね…。

 下の画像では、3桁で表すことのできない計算を入れてみた結果です。

↑10進数での「6 + 5」です。11にならなければいけませんが、桁が足りずに3となってしまっています。

 このエラーを、オーバーフローと呼びます。

 これを解決するためには、全加算器を増やして桁数を大きくしたりする必要があります。

EIEI
EIEI

ちなみに、全加算器を9個作ると、10進数での1023まで計算できます。

全加算器が15個あれば、10進数での65536まで計算できます!

 同じ回路を何個も作るので、ブロックのコピーができるストラクチャーブロックを使うと便利だと思います!

 ストラクチャーブロックの使い方は、下の記事で解説させていただいていますよ〜

↑いちいち回路を手で置き直すのは大変なので、ストラクチャーブロックを使うのがおすすめ!

 とはいえ、桁数が多くなればなるほど、今回の作り方ではレッドストーン回路の特性上遅延も発生したりするのは注意です。

 さて、今回はマイクラで、足し算のできる電卓の作り方を紹介しました!

 計算機をレッドストーンで作るとなると難しいですが、これだけなら案外、少し時間をかければ組めそうな感じですよね♪

マイン
マイン

ぜひ、計算機を作って動かしてみたい! という方は参考に!

 それでは皆さん、バイバ〜イ!

コメント