回路図鑑

現在編集中
このページでは、AUTOMATION系ブロックを用いた様々なテクニックや活用法を紹介する。
各ブロックの説明はAUTOMATIONを参照。

目次


センサー


物体を検知する

最も基本的な動作。そのまま設置するだけで、検知範囲内にブロック/地面/オフジェクトがあるときデフォルト[C]を出力する。
「反転」オンで、範囲内に何もないとき出力。
「静的物体を無視する」オンで、完全に動かない岩・壁・地形/地面などを無視する。

(活用例)自動ハンドル

サンプルでは自動的に前進し[→]キーでハンドルを切る基本的な車をセンサーが操作する。センサーが壁を検知すると[→]キーが出力され、車体が回転しする。
https://scrapbox.io/files/63e99dd4b59cb0001b9614e4.bsg

(活用例)地面を検知する

サンプルでは下向きのセンサーが何かを検知したとき[O]を出力してフライングブロックで減速する(右サンプル)。
速度計と併用し論理ゲートのAND(どちらも入力)で出力するようにすると、高速落下時のみ作動し、地面の上では信号出力しない。(左サンプル)。
※センサーが2つついているのは、重量バランスのため。
https://scrapbox.io/files/63e9a4196d024b001b4493db.bsg

(活用例)対人ターレット

サンプルでは「静的物体を無視」がオンになっており、自動的に回転するターレットの正面に的が来たとき[C]が出力され、クロスボウが発射される。
https://scrapbox.io/files/63e9abdb1af088001bdadd01.bsg

(応用)距離の測定

二つ以上のセンサーを併用する。正面に「距離の長いセンサーA」と「距離が短く、範囲内に何もないことを検知する反転センサーB」を設置。ABが同時に信号出力しているときは、ブロックはAの範囲内かつBの範囲にはいないので前進する。Bが検知状態(出力無し)の時は親機に近づきすぎているので停止する。これにより、対象と一定の距離を保つような動作を行える。

(活用例)子機が親機を追従する

サンプルでは自動ハンドルとの併用で、親機が左右にそれたときにはハンドル操作を、離れたときには前進し、一定距離に近づいたときには停止する。(子機の方を少し早くしないと、親機に振り切られるので注意)
親機は[↑↓←→]で操作、子機は混線を避けるために[1234]で動作する。
https://scrapbox.io/files/63e9b126af23fe001ce62b24.bsg


(応用例)動的物体を無視する

通常センサーは地面や壁など「静的物体を無視する」ことしかできないが、工夫すれば兵士など「動的物体」の方をを無視することができる。
方法としては、同じ場所を監視している「すべての物体を検知するセンサーA」と「静的物体を無視する反転センサーB」を併用する。
全検知のセンサーAが検知しているのに静的無視のBが検知していない(=反転信号がでている)のならそれは静的物体である。
❶センサーAが物体を検知する(この時点では対象が同的なのか静的なのかわからない)と[a]キーで反転センサーBを起動。
❷反転センサーBは物体を検知していない(それが静的物体である)ときに信号出力する。
※対象が動的であるときはBは信号を出さないし、範囲内に何もないときはBはオフになっている。

(活用例)壁掴み

サンプルではグラバーの前に静的物体があるときのみ、[V]を出力して物体をつかむ。
(図)


速度計


一定速度より速い(遅い)ことを検知する

最も基本的な動作。そのまま設置するだけで一定速度時以上の時デフォルト[C]を出力する。
「反転」をオンにすると一定速度以下の時出力。

(活用例)高速状態での衝突を検知する

(活用例)定速走行

サンプルでは一定速度以下の時に[Y]を出力し、ウォーターキャノンを作動させて加速する。指定速度で加速が消えるので、一定以上には加速せず、速度計の速度を維持するようになる。
(図)


高度計


地面に対する高度しか取れないので、バレンの山など地面の起伏を検知できない。マシンによってセンサーでの地面検知と使い分ける必要がある。

一定高度より高い(低い)ことを検知する

最も基本的な動作。そのまま設置するだけで、一定高度以上であるときデフォルト[C]を出力する。
「反転」オンで、一定高度以下の時に信号出力。

(応用例)落下を検知する

設定した高度を上から下に通過(落下)したことを検知する。同じ高度に設定した、高度計A反転高度計Bを併用する。高度計に限らずAUTOMATIONの信号は出力までほんのわずかにラグがあることを利用したテクニック。
❶特定高度(仮に10に設定)以上を検知する高度計Aが作動しているとき、[a]を出力して高度計Bを起動。
❷高度10を上から下に通過するとき、本来であれば高度計Aの信号[a]は途切れ、代わりに高度計Bが[b]を出力するはずだが、前述の信号ラグによってAの遮断が遅れ、ほんの一瞬だけAB両方が検知状態になる。
❸論理ゲートのANDでABの信号が両方出たことを検知して、最終的な信号[c]を出す。
※高度計Aの方を反転にしてBの反転をオフにすれば、「特定高度を下から通過」も可能。

(活用例)落下に合わせて段階的な逆噴射

サンプルでは3組6個の高度計を使いマシンに負荷をかけずに減速。論理ゲートの信号は一瞬だけなので、タイマーで指定時間に増幅する。
(図)


タイマー


信号を時間差で出力する

最も基本的な動作。信号入力から指定時間後に指定秒間デフォルト[C]を出力する。
「キーを離すと停止」オンで、入力が途切れるとキャンセル。
「停止を許可」オンで、2回目の入力でキャンセル。
「自動」オンで、シミュレーション開始時に入力状態になる。

(活用例)キー入力のプログラムを組む

サンプルでは、「↑↓←→」で操作可能な車を、複数のタイマーが順番に出力することで自動運転する。
(図)

(活用例)キーを交互入力する

歩行機の作り方→交互信号タイマー




論理ゲート


[AND/どちらも入力]

入力Aと入力Bがどちらも入力されている状態で信号出力。

[OR/どちらか入力]

入力Aと入力Bのどちらかが入力されている状態で信号出力。

[応用例]キー入力を仮想キーに変換

例えばキー入力[↑]を[up]という名前の仮想キーに変換したい場合、入力Aに[↑]を、入力Bは[なし]にし、出力に仮想キー[up]を設定する。

[NOT/入力がない]

入力がないときに信号出力。センサー等から入力する場合は、これを使うよりも[反転]を活用した方が回路がシンプルになる。

[応用例]シミュレーション開始時からずっと出力し続ける

入力キー[なし]でNOTにすると、シミュレーション開始直後からずっと出力し続ける。タイマーやホイール、ドリル、フライングブロックなどでいう「自動」がすべての機構/武器ブロックに対して実行できる。ロボットの目を光らせたり、ウォーターキャノンから水を出しっぱなしにしたい時などに有効。



仮想キー


仮想キーはAUTOMATIONを非常に便利にしてくれる機能であるが、使わなくても問題はない。
  • 回路が複雑化しすぎて整理したい
  • キーボードのキーが足りなくて困る
等の問題が発生するまでは、無理に使う必要はない。

(図)
仮想キーはAUTOMATIONブロックが指示を出したり受けるための専用コマンドである。
キー割り当て欄の右上にある吹き出しアイコンから仮想キーに切り替えることで、キーボードに存在しないキー入力を無限に作り出すことができるようになる。仮想キーは「;」で区切って複数使用可能。
例えば[go;back]という仮想キーをエミュレートするセンサーが作動すると、[go][back]という仮想キーが割り当てられたフレイムスロワーが動作する(下図)。これはキーボード[↑]入力で[↑]が割り当てられたホイールが動作するのと同じである。
(図)
注意点として
  • シミュレーション中に仮想キーをキーボードで入力することはできない。([move]を割り当てたホイールは直接キーボードで操作できない)
  • 仮想キーに切り替えると、通常のキー入力設定は無効化する。([↑]と[move]は併用不可)

タグ:

+ タグ編集
  • タグ:
最終更新:2023年03月06日 18:03
|新しいページ |検索 |ページ一覧 |RSS |@ウィキご利用ガイド |管理者にお問合せ
|ログイン|