OOPicは、オブジェクト指向プログラマブル集積回路(Object Oriented Programmable Integrated Circuit )の略です。Savage Innovations社が開発したこのPICマイクロコントローラには、 BASIC、Java、C言語 に基づく構文でのプログラミングをサポートするIDE(統合開発環境)が付属しています。
市場に最後にリリースされた3つのバージョンは、OOPic-R、OOPic-S、そして前者の小型版であるOOPic-Cです。最も古いモデルはOOPic Iで、ファームウェアのバージョンはA.2です。
建築
OOPicファームウェアは、カスタムメソッドやプロパティを提供できる多数の組み込み「オブジェクト」を定義しています。これらのオブジェクトは、外部赤外線センサーや内蔵LEDなどのハードウェアのラッパー、あるいは分周器や論理ゲートなどのロジックヘルパーとなる場合があります。
OOPic では「仮想回路」も利用されており、プログラマーはオブジェクトのプロパティ間のリンクを作成できます。
サンプルプログラム
以下は、1 Hz ごとに周期する組み込みクロックを LED にリンクする、BASIC 構文で記述されたコードの例です。
' LEDは単一のI/Oラインとして定義されます
。Dim Red As New oDio1
' ここでは仮想ワイヤを作成します。ワイヤは、
出力値またはフラグ値を
入力値にリンクするために使用されます。Dim
W As New oWire
' すべてのOOPicプログラムは「メイン」サブルーチンを定義する必要があります。
' これはOOPicの電源がオンになったときに実行されるものです。Sub
Main ( ) ' ここでI/Oラインのピン番号を指定します。' オンボードの赤色LEDはピン7にあります。Red . IOLine = 7
' LEDはボタンとしても使用できるため、
ピンから読み取るかピンに書き込むかを指定する必要があります。' (cvOutputは定数値) Red . Direction = cvOutput
「これでワイヤーリンクを設定できます! 」ワイヤーの
入力には、内蔵の「1Hzタイマー」を使用します。W.Input.Link (OOPic.Hz1 )
' ワイヤーの出力をLEDに送ります。 ' 実際には
LEDの「値」プロパティに送ることに注意してください。これがLEDが点灯するかどうかを決定するからです。W . Output . Link ( Red . Value )
' 残っているのは
、ワイヤーに操作するように指示することだけです。あとは OOPic がやってくれます! ' (cvTrue は定数値です) W . Operate = cvTrue
終了サブ
この仮想回路の振る舞いは、プログラマーにかなりの制御力と柔軟性を与え、「イベント」のおかげでリアルタイムな振る舞いへのより優れた反応を可能にします。OOPicは実際には、ユーザーのコードをループ処理するよりも、仮想回路の更新に多くの時間を費やします。そのため、プログラマーにとって、従来のプログラミング手法よりも仮想回路を可能な限り頻繁に使用することが最善の利益となります。
その他の意味
OOPIC はObject Oriented Particle In Cell の略で、バークレーで書かれた、パーティクル イン セルとして知られるプラズマ物理シミュレーションの特定のメソッドのオブジェクト指向実装です。
参照
外部リンク
- 「OOPic (tm): 「ハードウェアオブジェクト」」。1999年10月12日時点のオリジナルよりアーカイブ。2004年8月2日閲覧。—OOPicを販売している会社が作ったサイト。
- OOPic Yahooグループ - OOPicに関するほとんどの議論はここで行われます。 - 廃止
- OOPic Googleグループ - これはooPicの新しいディスカッション/ユーザーサポートグループです。2008年9月現在
- PTSG グループ - これは、OOPIC プラズマ シミュレーション コードの作成者であるバークレーのプラズマ理論およびシミュレーション グループの Web サイトです。