アナログ回路

「アナログ回路」の編集履歴(バックアップ)一覧に戻る

アナログ回路 - (2011/07/21 (木) 16:38:33) のソース

*アナログ回路
&bold(){注意}
この項目は少し難しい内容になっています。
**この項目で使ってる用語
少し専門的な用語が多いので、補足しておきます
回路素子・・・サーキットボード上に置けるチップのうち、入力された信号に対して、別の信号を出力するものの総称です。
立ち上がり・・・信号がオフからオンに切り替わる瞬間の事です。
立ち下り・・・信号がオンからオフに切り替わる瞬間の事です。
微分回路・・・立ち上がりや立下りなど、信号の強さが変わったことを検出する回路です。
パルス・・・一定時間だけオンになる信号のことです。LBP的には単発信号と言うと分かりやすいと思います。
RAM、保持回路・・・メモリ、記憶素子の事です。オンやオフなどの状態を記録しておく為の回路です。
遅延・・・信号の変化を、一定時間遅らせて次に伝える事を言います。
絶対値・・・マイナスの値の場合、その符号を取るということです。
100進数・・・ひとつの桁に0~99の数値を持つ数字の表記方法です。足し算の繰り上がりの際は、100以上になるとその100をひとつ上の桁に1としてプラスします。
**アナログ回路とは?
アナログ回路とは、マイクロチップ内の回路のうち、アナログ信号を専門に処理する回路のことです。

マイクロチップ上の回路を流れる信号には、大きく分けて2種類の情報が含まれています。
ひとつはオン・オフ情報で、配線や素子が光っていればオン、消えていればオフの信号が流れていることを表しています。また、オンの状態には更に正と負の二つの状態(デジタル符号)が存在しており、一度オフになってしまうと符号は保存されません。オフの状態にも通常オフとnaturalと呼ばれる2種類があり、一部の入力特性に関係しています。これを便宜上デジタル信号と呼びます。
もう一つは目に見えない情報で、-100%から100%までの数値が含まれています(実際は小数点以下の数値も存在する)。これを便宜上アナログ信号と呼びます。 
このアナログ信号は曲者で、素子によっては入力情報がリセットされてしまったり、マイナスが取れてしまったりします。
さらに配線上では見えないデータなので、光っていない配線にも情報が流れている場合があります。回路設計のときはモーターをスピードレベルに設定して、逐一信号の強さを確認するようにしましょう。
これらの扱いにくい点の反面、アナログ回路には大きなメリットも沢山あります。この回路をマスターすれば、LBPの回路を意のままに操れるようになるでしょう。
**回路素子
詳しい入出力特性は[[ガジェット毎の解説]]にて
***ANDゲート
ANDゲートの出力はややこしく、出力の絶対値はインプット側の信号の中で一番小さい値となります。問題は符号で、出力がオンの場合、デジタル符号が正かオフの時は正に、デジタル符号が負のときは負になります。オフの場合は、入力の内番号が一番大きいもののデジタル符号に応じて符号が決定します。ANDのデジタル符号に対する振る舞いはデジタル回路の項を参照してください。
***ORゲート
ORゲートの出力は、入力信号のうち一番大きい信号を符号を保存して返します。論理積とは違い、符号にはデジタル値は関係しないので、混同しないように注意しましょう。
***XORゲート
基本的にはORゲートと同じですが、全入力中二箇所以上のデジタル信号がオンになっているときは、アナログ信号も0になります(全てOFFの場合はORと同じ振る舞い)。
***NOTゲート
入力信号の絶対値を、100から引いた値を返します。丁度50を中心として反対側の数値を返している感じです。AND,OR,XORの出力を反転設定にした場合は、それぞれの回路の出力の次にNOTをつないだ場合と同じ出力結果になります。
***バッテリー
 -100から100までの1刻みの定格の出力を行います。ただしゼロの場合はデジタル信号もオフになります。
***マイクロチップ
デジタル回路の場合と変わりはありませんが、動作側の入力はデジタル信号にのみ反応し、回路内のアナログ信号には干渉しないので、デジタル信号による制御に利用できます。
***スイッチ
デジタル信号にのみ反応し、出力値も0か100のみです。
***カウンター
入力側のアナログ信号に関わらず、(現在のカウント数/最大数)×100の値を返します。
***タイマー
スピードレベル設定のときのみ、アナログ信号の値によってスピードが変化します。正の値の場合はカウントアップ、負の値の場合はカウントダウンします。
出力はカウンターと同じく(現在の時間/最大時間)×100の値を返します。
***ランダムチック
0か100しか出力しません。
***方向分割ツール
アナログ信号が正の場合、プラス側には入力値をそのまま、マイナス側には信号値0を返します。
負の場合は、プラス側には信号値0を、マイナス側には入力値の絶対値を返します。
***方向結合ツール
万能ツールその1
アナログ電子回路の万能ツールであるオペアンプによく似た性質を持ったツールです。
プラス側のアナログ信号の絶対値から、マイナス側のアナログ信号の絶対値を引いた値を出力します。
これを応用することによってアナログ演算が可能になります。アナログ演算ではひとつの配線上で大きなデータをやり取りできるので、回路の大幅な節約が可能になります。
***セレクター
こちらも入力値の信号に関係なくアナログ値100でオンの信号かアナログ値0でオフの信号しか出力しません。
アナログ回路上で利用したい場合は、後述のアナログスイッチと組み合わせて利用しましょう。
***シーケンサー
万能ツールその2
アナログ信号に対しては多彩な反応を見せるツールで、スピードレベル設定のときはタイマーのようにシーケンスのスピードが変化します。
特筆すべきは位置設定(ループ×)にしたときで、信号の絶対値によってシーケンスの位置が0~100で固定されます。
これとバッテリーを組み合わせれば、アナログ信号が好きな値のときだけオンのデジタル信号を出力させることが出来ます。
さらに0か100の状態の限定した検出も可能であり、応用すればアナログ信号の正負を確認する回路も作ることが出来ます。
***コントロールギア
コントロールギア内のアナログ信号はそれぞれ
○△□×R1L1L3ボタン・・・0か100
R2L2トリガー・・・0~100までの値
左右スティック、六軸・・・-100~100までの値
十字キー・・・方向に応じて-100,0,100のいずれか
なお、各値の0のときはデジタル信号もオフになります。
**基本複合回路
***アナログスイッチ
回路上を流れる信号のアナログ値を通したり遮断したりするスイッチです。
マイクロチップ上に反転したNOTゲートなどを置き、インプットとアウトプットを設定します。
スイッチしたい信号をこの間に通し、チップの作動端子に制御信号を送ります。
こうする事で信号に干渉せずスイッチを行うことが出来ます。
***ON&0出力回路
デジタル信号はオンなのにアナログ信号は0という特殊な信号を出す回路です。
アナログ回路は主要な装置である方向分割・結合ツールの性質上計算出力のデジタル信号が不安定になりやすくなっています。
そこで出力をこの回路と共にOR回路に繋いでやると、安定してオン状態の信号が得られます。
そのほかにも応用が利く回路なので、マイプランに入れていつでも呼び出せるようにしておくことをお勧めします。
#image(ON&0.jpg)
作成は、クリエイトモードでプレイ状態にして以下の動作を行ってください。
まずバッテリーを二つ用意して、一方を100、もう一方を絶対値が99以下の負の数にしておいて、最初にマイナスのほうだけをOR回路に繋ぎます。
その出力を方向分割ツールに繋ぐと、当然マイナス側がオンになるのですが、ここでさらにOR回路に100のバッテリーを繋ぐと、相変わらずマイナスがオンのままですが、信号がゼロになっています。
***定格入力検出回路
入力の絶対値が特定の値の時だけオンのデジタル信号を出力する回路です。
シーケンサとバッテリーだけで非常にシンプルに作れます。
まずシーケンサを位置設定(ループ×)にして、シーケンサ板の横の長さを100まで伸ばします。検出したい値の座標を跨ぐようにバッテリーを配置すれば完成です。シーケンスの位置が座標に対応しているので、求めたい値の時だけバッテリーがオンになってくれます。
また、左はじにはみ出るようにバッテリーを配置すれば、ゼロ値検出回路になります。演算などの時非常に便利な回路なので、回路設計時は常に用意しておきましょう。
***コンパレータ(比較器)
コンパレータとは比較回路の事で、入力AがB以上のときにオンのデジタル信号を出力します。
以下に実装例を示します。
#image(コンパレータ.jpg,width=500)
インプットは上がA、下がBとなっています。
A≧BならA-B≧0なので、方向分割ツールのマイナス側の出力は0になり、ゼロ値検出回路でオンのデジタル信号を出力します。
***アナログ減算機
アナログ値の減算機です。単純な減算ならば合体ツールひとつで出来てしまうのですが、ここで紹介する回路は繰り下げ要求(上の桁から100を借りてくる要求)とその受領処理(減算結果から更に1を引く処理)が出来る実用回路になっています。
以下が実装例です。
#image(減算器.jpg,width=720)
インプットは上から順に、被減数、減数、繰り下げ入力、アウトプットは上が繰り下げ出力、下が差となっています。
シーケンサはゼロ以外で強度1のバッテリーをオンにするタイプで、マイクロチップの中身はNOT回路です。
使い方は、桁の小さいほうの繰り下げ出力を上の桁の繰り下げ入力に繋ぐ形に直列していきます。一番上の桁の繰り下げ出力に関しては、出力があった場合は計算結果が負数になるので、入力を反転させる機構を用意してそれをオンにしてください。
***アナログ加算機
アナログ値の加算機です。LBPのアナログ値の性質上、100進加算機となっています。0~99の入力に対して加算結果と繰り上げの有無を返します。
以下が実装例です。
#image(加算機.jpg,width=720)
シーケンサはゼロ値検出回路、マイクロチップの中身はNOT回路です。
被加数をA、加数をB、繰り上げ入力をC、左から2番目の方向合体ツールの出力値をXとします
インプットは上から順に、B、A、C、アウトプットは上が繰り上げ出力、下が和となっています。
X = {(100-A)-C}-B = 100-(A+B+C)
繰り上げが起きるのはA+B+C≧100すなわち100-(A+B+C) = X≦0のとき
X≦0すなわちゼロ値検出回路がオンのとき、和はX、繰り上げ出力はオン
X>0すなわちゼロ値検出回路がオフのとき、和はNOT(X)、繰り上げ出力はオフ

***DRAM
#image(RAM.jpg,width=720)
保存したいアナログ信号をデジタル値がオンの状態で入力しておきます(入力D)。この時下の入力にクロックを与えると、デジタル信号の立ち上がり時に内部データをリセットし、立ち下がり時にDの値を保存してくれます。以下が実装例です。
***フラッシュRAM
クロックされたアナログ値を、次のクロックがあるまで保存する回路です。以下が実装例です。
#image(Flash RAM.jpg)
インプットは上が保存したいアナログ信号、下がクロックとなっています。
ORのアウトプットをインプットに繋ぐと、もう片方のインプットの入力値が大きくなったときだけ出力値が変化します。
DIFUが出力するアナログ信号は0か100しかないので、ANDと組み合わせることでアナログスイッチになります。

***アナログ微分回路(信号変化検出器)
アナログ信号の変化を検出する回路です。デジタル側には変化があればパルス波を、アナログ側には信号の変化率をそれぞれ出力します。以下が実装例です。
#image(微分器.jpg)
マイクロチップは、信号を1フレーム(30分の1秒)遅延させて伝えるためのものです。
現在のアナログ信号から30分の1秒前のアナログ信号を引くことで、30分の1秒間にどれだけ信号が変化したかを計測します。

**応用複合回路
***十進コンバータ
アナログ信号は100進数でもあるので、10進数とは非常に相性がよくなっています。ヒューマンインターフェイスを考える上では10進数は欠かせない要素なので、アナログ回路を扱う上で大きなメリットです。
ここではアナログ信号を10進数に変換する回路を紹介します。以下が実装例です。
#image(十進数変換.jpg,width=720)
複雑な回路ですが、やっていることは単純です。求める信号を10n+mとすると、まず下のシーケンサでnの値別に振り分けて、それを0~9までの数値で出力。そのnの値を使って10nの信号を呼び出し、入力信号からオペアンプで引いてmを求め、そのまま出力。これで入力信号がnとm二つの十進数に変換されます。
***ADコンバータ
***DAコンバータ