まさはる's Weblog

まさはる's Weblog
Macintoshとオーディオの話題
2015年11月

2015年11月23日

PRISON ARCHITECT(その6)

Category : Game 5 / Posted at 2015年11月23日 11:08

 前回からの続きで、Prison Architectのロジック回路の遅延ネタの話題です。

 初期の頃、うまく動作しなかった4つのNANDゲートを使った簡単なJKフリップフロップですが、もしかして後段のゲートの出力が初段に帰ってくる前に初段のゲートを閉じれば正常に動作するかもと思い、実験してみました。

JK Flip-Flop
クロックの1の幅を短くしたJKフリップフロップ回路

 結論から先に言うと、この回路はゲーム内で正常に動作します。これは、クロックを奇数個のNOTゲートで反転・遅延させてANDゲートを通すため、クロックの1の幅が短くなっており、初段のゲートを早めに閉めるというものです。
 ちなみに、入力された信号は初段と後段のNANDゲートを3つ通過して戻ってくるため、その前に初段ゲートを閉めようとするとNOTゲートは3つではなく1つが正しいような気がしますが、このゲームでは1つでは正常に動作しませんでした。

 動作させてみて思いましたが、この回路はクロックの1の幅が短くなっているため、その短い時間内に信号が来ていないとフリップフロップとして機能しません。よりシビアな使い方を求められそうなので、幾つかの回路を組み合わせて使う場合には考えものです。

 さて、JKフリップフロップがだんだん分かってきたので、ポジティブでマスタースレーブ型でないものを探していたところ、Texas Instrumentsのデータシートにポジティブエッジトリガー・JKフリップフロップのSN74LS109Aの回路図があったので、真似て作ってみました。

 ...で、20年前の鉛筆書きのような回路図を真似たのですが、正しく動作しない...。諦めて寝ようかと思っていたところ、回路図の1つ前のページのプリセットの記号が、回路図と違っていることに気づきました。あの回路図、プリセットの上のバーがかすれて消えているw。Qの上のバーも消えていますがそっちは置いといて、回路図のプリセットをバー付きにしたら正常に動作しました。

Positive Edge-triggered JK Flip-Flop
ポジティブエッジトリガー・JKフリップフロップ回路

 もともと回路図が複雑な上に、シンメトリーじゃないので作りにくいのが難点です。色々と作ってみましたが、このゲーム的に作りやすいのは単純作業でできるマスタースレーブ型のようです。なお、今回の2つの回路図は、クリアとプリセットが不要な場合は、単純に消してしまって構いません。

このページのトップに戻る

2015年11月22日

PRISON ARCHITECT(その5)

Category : Game 5 / Posted at 2015年11月22日 07:41

 最近、囚人をほったらかしにして論理回路にハマっている、Prison Architectの話題です。

 ネットを眺めていたら、Texas Instrumentsのデータシートにネガティブエッジトリガー・JKフリップフロップのSN74LVC112Aの回路図があったので、真似て作ってみました。

Negative Edge-triggered JK Flip-Flop
ネガティブエッジトリガー・JKフリップフロップ回路

 前々回に、JKフリップフロップは、マスター・スレーブ型は正常に動作すると記載したのですが、マスター・スレーブ型ではない、この回路図でも正常に動作します。ちなみにこの回路図は、データシートに記載されている回路図から(1)左右開きを上下開きに変更、(2)遅延回路をNOTゲートを4つ使用したものに変更しています。
 最初、データシートにある左右開きの回路図が分かりにくかったので、上下開きの左から右への回路図に変更すれば、あの魚を開いて干物にしたような回路図よりも見栄え的に改善されるだろうと思っていたのですが、結果は干物を横にしただけというものになりましたw。あと、この回路図は結構ゴチャゴチャしていますが、プリセットとクリアが不要であれば、この回路図の場合は単純に消してしまって構いません。

 なお、このゲーム内での実験では、4つのNOTゲートを2つに減らすと正常に動作しません。3つの場合は正常に動作しましたが、4つにしておくのが無難だと思います。

 この回路のように遅延回路を使えば、ループする回路でも発振させずに正常に動作させられるということが分かりました。へぇーって感じです。このゲームで論理回路を始めた頃、JKフリップフロップが正しく動作しないと悩んでいた時に、これを知っていればもう少し早く、解決策が見つけられたような気がします。

 話変わって、前回まで作っていたあのカウンタ、タイマーを使って定時にクリアする回路を作ってみました。

Counter Clear
タイマーを使用したカウンタ・クリア回路

 このゲームにあるタイマーは、1時間毎に1か0の出力を設定できるので、シフトレジスタを使用して、今の状態と1クロック前の状態を比較し、違っていれば1クロック分のクリア信号が出るようになっています。なお、この回路図のDフリップフロップは、次の図のものを使用しています。

Positive Edge-triggered D Flip-Flop
ポジティブエッジトリガー・Dフリップフロップ回路

 Dフリップフロップはこの図のものでなくてもいいのですが、クロックの立ち上がりか立ち下がりで動作するタイプでないと、シフトレジスタが正常に機能しないので、注意が必要です。

このページのトップに戻る

2015年11月17日

PRISON ARCHITECT(その4)

Category : Game 5 / Posted at 2015年11月17日 21:44

 またまたまた前回からの続きで、Prison Architectの話題です。

 前回、10進数2桁のアップカウンタ回路を作って終わったわけですが、あれだと2進数の表示しかできないし...ということで、やっぱりというか案の定、あれに手を出してしまいました。

BCD to 7-Segment Decoder
BCD to 7-Segment Decoder

 最初は、メジャーなところのデコーダICの回路図でも真似しようかと思っていたのですが、見てみたら良くわからんw。何がどこに繋がっているのかよく分からない上に、余計な機能が付いています。そこで、ネットでいくつか見つけた、学校の教科書にあるような2進数の0000〜1001を0〜9に変換する機能のみの単純な回路を作ってみました。
 この回路図は、接続する記号を書いてあるので配線の軌跡を追う必要は無く、記号を見て配線できるようになっています。なお、実際のゲーム画面はこんな感じです。

カウント表示
実は雨ざらし...

配線状況
配線状況はラッピングのよう

 随分と開きスペースがあり悠長なつくりになっているのは、配線間違いがないように回路図どおりの部品配置にしているためです。うまく動作すれば、部品配置を考えて省スペースにしてみるのも良いかもしれません。

このページのトップに戻る

2015年11月15日

PRISON ARCHITECT(その3)

Category : Game 5 / Posted at 2015年11月15日 17:42

 前回からの続きで、Prison Architectの話題です。

 前回、RSフリップフロップがうまく動作したので、JKフリップフロップを作ろうとしていたのですが、何度作り直しても正しく動作しません。4つのゲートを使った簡単な回路は、どうやら発振してしまうのか無理なようです。そこで、マスター・スレーブ型のJKフリップフロップにしてみました。

Master-Slave JK Flip-flop
JKフリップフロップ回路

 この回路は正しく動作します。これができればと言う事で、他にいろいろ作ってみました。

Master-Slave D Flip-flop
Dフリップフロップ回路

Master-Slave T Flip-flop
Tフリップフロップ回路

 上の絵のTフリップフロップは、JKフリップフロップのJとKをつないでTにしただけなので、JKフリップフロップと殆ど変わりありません。

4bit Up Counter
4bitアップカウンタ回路

 Tフリップフロップを4つ使って4bitのアップカウンタを作ってみました。使い方は、Clock端子にカウントしたい対象物(例えばPressure Padの出力)を入れれば、Q0〜Q3に2進数で出力されます。
 この回路は4bitなので、0000から1111までの0〜15を出力するものですが、10になったら桁上げしたいという変な衝動に駆られて改良してみました。

4bit 0-99 Up Counter
10進数2桁アップカウンタ回路

 10進数の9は2進数で1001なので、Q00とQ03の出力が1になったら次の回路のClock端子に1を入れて桁上げをしています。なお、2桁目は2進数でQ10からQ13に出力されます。
 ここまで出来てボーと動作を眺めていると、やっぱり欲しくなるのがカウンタを0に戻すクリア機能です。

Master-Slave T Flip-flop
Tフリップフロップ回路(クリア付)

 ネットで色々と調べてみましたが、クリアの接続の仕方はあまり詳しく書かれていない上に、みんな違うw。Texas Instrumentsのデータシートでは、どうやらJの入口のゲートと、Qバーへの出口のゲートと、その他2箇所にクリアが接続されているようなので、試行錯誤の上、クリアをマスター側の2箇所に接続しました。ネットではスレーブ側に接続している回路図を見かけるのですが、あれだとマスター側が情報を記憶していて、クリア解除後に以前の状態に戻ってしまうと思うけど...。

 さて、2進数ですが00〜99までカウント出来るようになったし、次はやっぱりあれですかね。でもあれは配線が大変そうだし。そもそも、このゲームで立派なカウンタを作っても、使い道があまり無いような...w。

(おまけ)
 この手の実験にはクロックを発生させる発信器が必要なので、下図のものを使用しています。NOTをループさせれば発振するので、クロック出力の周波数が丁度良くなるよう、Dフリップフロップを2つ使って1/4にしています。

Clock
f/4のクロック回路
このページのトップに戻る

2015年11月 3日

PRISON ARCHITECT(その2)

Category : Game 5 / Posted at 2015年11月 3日 09:22

 前回からの続きで、Prison Architectの話題です。

全体の平面図
今回の話題は赤色で囲ったあたり

 このゲーム、進めていくと土地を拡張できるようになるわけですが、右側の拡張は道路を挟むため鬼門です。上の絵は、Lサイズマップで土地の拡張を左側1回、右側1回したものですが、右側にこれだけ広い土地があると、囚人を道路の向こうに渡したくなるものです。
 囚人に脱走されないよう、ロードゲートを使えば簡単に右側の土地と接続できるのですが、トラックや外部の人が来てロードゲートが開くタイミングと、囚人の脱走のタイミングが合うと、簡単に脱走されてしまいます。そこで、簡単には脱走されない仕組みを考えてみました。

ゲート付近の拡大図
赤字の数字とアルファベットはゲートです

 このゲートの動作は次のとおりです。なお、Road Gate 1とRoad Gate 4はDoor Controlにより遠隔操作がされており、車や人がゲートの前に来ると警備員がゲートを開けるようになっています。

1) 常時はRoad Gate 1, 2, 3, 4は閉まっており、Large Jail Door a, b, c, dは開いています。
2) Road Gate 1が開くと、Road Gate 2とRoad Gate 3は順次開きます。また、Large Jail Door a, b, c, dは閉まります。
3) 車の通過中は、Road Gate 1, 2, 3は時間の経過と共に順次閉まりますが、Large Jail Door a, b, c, dは閉じたままです。
4) Road Gate 4が開くと、Large Jail Door a, b, c, dは開きます。
5) 車が通過し終わるとRoad Gate 4が閉まります。

 これは鉄道の踏切に似ていて、Road Gate 1に列車が来るとLarge Jail Door b, cが閉まり、Road Gate 4に列車が到達するとLarge Jail Door b, cが開く仕組みです。踏切と違うのは脱走防止のため、ゲートが2重になっているところでしょうかw。

回路図
回路はこのようになっています

 この回路はRSフリップフロップ回路(Wikipedia - フリップフロップ)を使用しており、Sに1が入るとQが1、Qバーは0に、Sが0になってもQとQバーの値は保持され、Rに1が入るとQが0、Qバーは1になるというものです。

(必要なもの)
1) Road Gate x 4
2) Large Jail Door x 4
3) Door Servo x 8
4) Door Control x 1
5) Logic Circuit x 4

 なお、このゲームでは、信号を出すアイテムから受けるアイテムに向かって配線する必要があるので注意が必要です。上の回路図の場合は、左のほうから右に向かって配線すればいいでしょう。また、Logic Circuitは右クリックで論理ゲートの種類が変わるので、NOTとNANDにする必要があります。ちなみに、ここではNOTとNANDを2個づつ使っていますが、2個のNORでも同じことができます。その場合はSとRが逆さまになります。

 使ってみると分かるのですが、囚人が「開けてー」って言うと、警備員がゲートを開けに行くし...w。まぁ、でも大体いい感じです。とりあえず今のところ脱走はありません。

このページのトップに戻る