2015年2月18日水曜日

pi4j

raspberrypiのGPIOをJAVAでいぢくれる!!!
だがしかし、英語苦手なんですわ・・・
ということで、PI4J仕様の翻訳をグーグル先生にご依頼してみた。
http://pi4j.com/usage.html

インポートPi4Jパッケージ

Pi4Jを実装するには、プロジェクトのクラスにPi4Jパッケージの数を含める必要があります。 以下のリストは、あなたが必要があるだろうPi4J輸入の大半が含まれています。 おそらくあなたは、未使用のインポートを削除することができ、あなたのプロジェクトでこれらの輸入のすべてを必要としません。
import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPin;
import com.pi4j.io.gpio.GpioPinDigitalInput;
import com.pi4j.io.gpio.GpioPinDigitalOutput;
import com.pi4j.io.gpio.PinDirection;
import com.pi4j.io.gpio.PinMode;
import com.pi4j.io.gpio.PinPullResistance;
import com.pi4j.io.gpio.PinState;
import com.pi4j.io.gpio.RaspiPin;
import com.pi4j.io.gpio.trigger.GpioCallbackTrigger;
import com.pi4j.io.gpio.trigger.GpioPulseStateTrigger;
import com.pi4j.io.gpio.trigger.GpioSetStateTrigger;
import com.pi4j.io.gpio.trigger.GpioSyncStateTrigger;
import com.pi4j.io.gpio.event.GpioPinListener;
import com.pi4j.io.gpio.event.GpioPinDigitalStateChangeEvent;
import com.pi4j.io.gpio.event.GpioPinEvent;
import com.pi4j.io.gpio.event.GpioPinListenerDigital;
import com.pi4j.io.gpio.event.PinEventType;

コントローラのインスタンスを作成します。

Pi4Jと対話する前に、まず新しいのGPIOコントローラのインスタンスを作成する必要があります。 GpioFactoryは GPIOコントローラを作成するためのcreateInstanceメソッドが含まれています。 あなたのプロジェクトは、単一のGPIOコントローラのインスタンスをインスタンス化する必要があり、そのインスタンスは、プロジェクト間で共有されるべきである。
// create gpio controller instance
final GpioController gpio = GpioFactory.getInstance();

ピン番号

プロビジョニングピン

GPIOピンにアクセスするには、まずプロビジョニングピンなければなりません。
プロビジョニングは、あなたがそれを使用する方法に基づいて、ピンを設定します。 自動的にピンをエクスポートすることができプロビジョニング、割り込みベースのイベントのための任意のエッジ検出をその方向を設定し、セットアップ。
次の例は、どのようにプロビジョニング入力端子に示しています。 入力端子は、プログラムが状態変化を監視または必要なときに状態を問い合わせますピンである。 入力ピンはスイッチ等、センサのために使用される
// provision gpio pin #02 as an input pin with its internal pull down resistor enabled
// (configure pin edge to both rising and falling to get notified for HIGH and LOW state changes)
//その内部プルダウン抵抗付きの入力端子として提供GPIOピン#02が有効
//(両方の立ち上がりとハイとローの状態の変化のために通知を受けるために落下する端子のエッジを設定)
GpioPinDigitalInput myButton = gpio.provisionDigitalInputPin(RaspiPin.GPIO_02,             // PIN NUMBER
                                                             "MyButton",                   // PIN FRIENDLY NAME (optional)
                                                             PinPullResistance.PULL_DOWN); // PIN RESISTANCE (optional)

次の例は、プロビジョニング出力端子に示しています。
出力端子は、プログラムが状態の変化を制御する端子です。 出力ピンを制御するリレーなど、LEDは、トランジスタのために使用される
  //提供GPIOピンは、出力端子#04を確認して、起動時にLOWに設定されている
GpioPinDigitalOutput myLed = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04,   // PIN NUMBER
                                                           "My LED",           // PIN FRIENDLY NAME (optional)
                                                           PinState.LOW);      // PIN STARTUP STATE (optional)
注:計算モジュールでは、使用するRCMPinの代わりにクラスRaspiPinをプロビジョニング方法にピンアドレスを提供するとき。

コントロール端子状態

P14JはGPIOピンに状態を制御または書き込むための便利なメソッドを多数提供しています。
以下の例では、GPIOピンで起動できる制御方法のいくつかを実証する。
        // explicitly set a state on the pin object
        //明示的にピンオブジェクトで状態を設定
       myLed.setState(PinState.HIGH);

        // use convenience wrapper method to set state on the pin object
        //ピンオブジェクトで状態を設定するために便利なラッパーメソッドを使用します
        myLed.low();
        myLed.high();

        // use toggle method to apply inverse state on the pin object
        //ピンオブジェクトを逆の状態を適用する方法トグルを使用
        myLed.toggle();

        // use pulse method to set the pin to the HIGH state for
        // an explicit length of time in milliseconds
        //ハイ状態にピンを設定するためにパルス法を使う
        //ミリ秒単位の時間の長さを明示的
        myLed.pulse(1000);
GPIOピンの制御を実証する完全なサンプルプロジェクトが提供されてここに 。

端子状態を読む

P14JはGPIOピンに現在の状態を問い合わせる/読み取るための便利なメソッドを多数提供しています。
以下の例では、GPIOピン上で呼び出すことができます読み取り方法のいくつかを実証する。
       // get explicit state enumeration for the GPIO pin associated with the button
       // ボタンに関連付けられたGPIOピンのための明示的な状態の列挙を取得
       PinState myButtonState = myButton.getState();

        // use convenience wrapper method to interrogate the button state
        //ボタンの状態を調べるための便利なラッパーメソッドを使用します
        boolean buttonPressed = myButton.isHigh();

ピン変更のリッスン

Pi4JはGPIOピンの割り込みを監視するための実装を提供します。 これは積極的に常にポーリング対端子の状態を監視し、端子状態を問い合わせるためのはるかに効率的な方法である。
あなたはGpioListenerインタフェースを実装するクラスを作成する必要があります。 このインタフェースは、単にピン変更イベントが発生したときにリスナクラスを通知するために使用される単一のメソッドpinStateChanged(GpioPinStateChangeEventイベント)を含む。
次のスニペットは、単純なリスナーの実装を示しています。
public static class GpioUsageExampleListener implements GpioPinListenerDigital {
    @Override
    public void handleGpioPinDigitalStateChangeEvent(GpioPinDigitalStateChangeEvent event) {
        // display pin state on console
        System.out.println(" --> GPIO PIN STATE CHANGE: " + event.getPin() + " = "
                + event.getState());
    }
}
セットアップあなたのリスナーに、あなたがピンとリスナーを登録し、リスナーのimplをインスタンス化する必要があります。
  // GPIOピンリスナーを作成および登録
myButton.addListener(new GpioUsageExampleListener());
GPIOピンの状態の変化のためのリスニングを実証する完全なサンプルプロジェクトが提供されてここに 。

ピンのシャットダウン

Pi4Jは、アプリケーションが終了すると自動的にGPIOピンの状態を設定するための実装を提供します。 これはGPIOは状態がアクティブまたはプログラムがシャットダウンされる場合、一部の活動が従事して残していないピンことを確実にするのに便利です。
あなたは、単に適用されることが望まシャットダウン動作を設定するには、GpioPinインスタンスsetShutdownOptionsメソッドを使用することができます。 次のスニペットは、シンプルなGPIOピンシャットダウン設定の実装を示しています。
 //ピンのシャットダウンの動作を構成します。これらの設定は次のようになります 
 //アプリケーションが終了するときに自動的にピンに印加される
 //アプリケーションがシャットダウンされたときにLEDがOFFになっていることを確認してください
myLed.setShutdownOptions(true, PinState.LOW, PinPullResistance.OFF);
GPIOピンのシャットダウン設定を実証する完全なサンプルプロジェクトが提供されてここに 。

ピントリガー

Pi4Jは別のピンの状態変化に基づいて、GPIOピン上のアクションを実行することができGpioTriggersのシリーズを提供します。 独自のカスタム·トリガーを拡張し、作成できるようにする拡張可能なインターフェイスを提供することもトリガします。 次のスニペットは、単純な ''フォローミー」をトリガーの実装を示しています。
  //入力ピン上のGPIO同期トリガを作成
 //入力状態の変化は、また同じ状態にGPIOピンを制御するLED設定すると
myButton.addTrigger(new GpioSyncStateTrigger(myLed));
GPIOピンのトリガーを実証する完全なサンプルプロジェクトが提供されてここに 。
(この例では、利用可能なすべての提供のトリガーが含まれています。)

シリアル通信

Pi4Jはラズベリーのパイのシリアルポートを使用してデータを送受信する単純化されたAPIを提供します。
次のサンプルプロジェクトは、シリアル通信を実現示しています。
シリアル通信の例 。

システム情報

Pi4Jはラズベリーのパイからシステムとネットワークの情報にアクセスするためのAPIを提供します。
次のプロジェクト例では、システムとネットワークの情報にアクセスを示しています。
システム情報の例 。