マイクロコントローラー

Last-modified: 2021-01-06 (水) 23:16:57

マイクロコントローラーとは

micon.jpg
複数のゲート群を組み合わせて、単一のチップとして構成される高性能な論理回路。
StormWorksではクラフト画面で作成することができる。ゲートを設定してその入出力に対し既存のLOGIC回路といくつかの論理回路を設定、配線して作成する。
以下マイクロコントローラー = マイコンと表記する

マイクロコントローラー作成

まずはワークベンチからクラフト画面に入り、さらにマイコンのクラフト画面に入る。
20190126microcontroller.png


新しくマイコンを作成する時の各タブ画面
   <DESIGN>

20190126microcontroller2.png
 
  • Properties
    名前、説明、サイズを設定できる
  • Logic
    入出力を設定できる。
  • Symbol
    contents画面でのマイコンの見た目をeditできる。設置した際の見た目には影響しない。
 

   <LOGIC>

20190126microcontroller3.png
 

DESIGNタブのLogicで追加された入出力がデフォルトで画面上に配置される。
加えて下のcontentsから各LOGICを選択して画面上に配置し、ドラッグで自由な位置に配置する。
配置されたLOGIC同士を配線して入力と出力を接続することで所望のゲートを作成することができる。


マイコンの作成
まずはDESIGNタブのLogicでノードを追加する
20190126microcontroller5.png
右側のを押すとノードを追加することができる。各ノードについて「名前」「説明」「on/off , number , composite , video , audio」「input , output」
タイプと入出力の設定は当然として、名前も設定しておくと後のLOGICと、通常クラフトでのLOGICで役立つ

 
 

各ノードに任意のLOGICを追加して配線を行う
20190126microcontroller4.png

マイクロコントローラーの使用

conponentsの一番下の段に表示される。表示されてない場合はDESIGNタブのPropertiesでcomponentsへの非表示設定がオンになっていないか確認

マイクロコントローラーの再編集

選択ツールで選択時の左側メニューに表示されるマイコン名の右側に再編集用のボタンが表示される。
また再編集時のマイコン画面でも戻るの右側にアップデートのボタンが有効となっていて、再配置せずに内容の変更を可能としている。
再編集時は保存したマイコンとは別扱いでその機体のセーブ内のみに存在するデータとなる。
マイコンを改善出来た場合は上書き保存、失敗した時はマイコンを再読み込み。または、機体ごとのマイナーチューンといった使い方もできる。
改善したマイコンデータを保存し忘れたまま機体とともに削除…と言うことも十分あり得るため、管理は慎重に。

マイクロコントローラーの値の保持に関する制限

マイクロコントローラーの要素であるロジックゲートには値を保持できるものがある。*1

on/off値:JKフリップフロップ、SRラッチ、プッシュトゥトグル
数値:アップダウンカウンター

これらのロジックゲートはゲームをセーブした後ロードする、あるいはこのロジックゲートを使用しているビークルを遠方に置き去りにしてアンロードした後再接近してリロードすると、保持している値を忘れてしまう。すなわち、on/off値なら必ずoffになり、リセット値が設定できるアップダウンカウンターならリセット値になる。
一方で、同名のパーツ(ビークルに直接配置できる方)は、それらのロードを挟んでも値が保持される。また、トグルボタンやスロットルなどのパーツもそれら自身の保持している値を同様に保持できる。
数値を保持するメモリーレジスターは例外で、ロジックゲートとパーツのどちらもロードを挟んで値を保持できる。

この問題は、マイコンで特定の向きや位置にロボティックピボットやリニアトラックを移動させておいて、その先にコネクターを介して別のビークルを接続した場合などに、ロード直後初期位置に戻ろうとするピボットやトラックによって接続されたビークルが盛大に吹き飛ぶなどの重大な事故を招くことがある。これを回避するには、ロジックゲートで状態を記憶せず、外部のパーツで記憶するように工夫しよう。

例えば、リニアトラックを初期位置0mと移動先5mのどちらかの位置に動かすマイコンを作ったとして、現在の状態が移動先か初期位置かをトグルボタンのon/offに対応させておけば、現在の状態はトグルボタンに記憶されるので、この問題は発生しない。これを二つのプッシュボタンで操作して、マイコンの中にSRラッチを置いてそこで現在の状態を記憶するように作ると問題が生じる。
そのように二つのプッシュボタンを使いたい場合でも、マイコンの中ではなく外にパーツのSRラッチを置けば同じロジックのままで記憶を保持できる。


*1 本項の値の保持の可否などの動作はver.1.0.26で確認しました。タイマー、ブリンカー、キャパシターなどの経過時間を保持するロジックゲートの動作は未調査です。