エレファイン


Raspberry Piでの使用方法


USBリレーボード Super4は、Rasberry Pi のUSBに接続して使うこともできます。
少ないRasberry Pi のGPIO端子を使わずに4個のリレーを制御することができます。

Super4のご購入 http://www.elefine.jp/SHOP/Super4.html


Raspberry Piへの接続

Raspberry Pi への接続は、セルフパワーUSBハブ(USBハブにACアダプター等を接続するタイプ)を介して行ってください。直接接続するとRaspberry Pi のUSB端子から供給できる電流が少ないためリレーをONにすることができません。

当店動作確認済みUSBハブ エレコム U2H-EG4SBK

FTDIドライバーのインストール
Super4で使用しているFTDIのチップのドライバー(ライブラリー)をインストールします。

下記よりダウンロードしてください。
Windows PCなどでダウンロードし、USBメモリーにコピーし、Rasberry Piにコピーすると簡単です。

http://www.emx.net.au/rpi/libftd2xx_1.1.12_Raspberry_Pi_Fix.tar.gz

FTDIのサイトにあるARM用のドライバーは、ソフトウェアによる浮動小数点演算を行っています。Rapberry Piでは、ハードウェアによる浮動小数点演算を行えますので、ハードウェアで浮動小数点演算を行うように変更してあります。

ダウンロードしたファイルは圧縮されていますので、展開(解凍)します。
X-windowを使うと、USBメモリーからのコピー、圧縮ファイルの展開が簡単にできます。
startx
と入力するとX-windowが開きます。
ダウンロードしたファイルを任意のディレクトリーにコピーしてください。
USBメモリーからのコピー、圧縮ファイルの展開方法は、他のサイト等を参照してください。
Windowsに似た点もありますので、説明書等を見なくても容易に操作できると思います。

展開したファイルのディレクトリー構成

build
 arm926
  
 i386
 x86_64

examples
libusb
ftd2xx.h
ReadMe.txt
WinTypes.h

X-winodwを終了して、コマンドラインより以下の操作を行います。
1.su コマンドでスーパーユーザーになってください。
2.上記のディレクトリー構成のbuild/arm926へカレントディレクトリーを移します。
 cd build/arm926
3.ライブラリーファイルを /usr/local/lib へコピーします。
 cp lib* /usr/local/lib
 これにより、libftd2xx.so.1.1.12、libftd2xx.a、libusb がコピーされます。
4.アクセス権を変更します。
 chmod 0755 /usr/local/lib/libftd2xx.so.1.1.12
5.シンボリックリンクを作成します。
 ln -sf /usr/local/lib/libftd2xx.so.1.1.12 /usr/local/lib/libftd2xx.so
 これにより、libftd2xx.soというファイル名でlibftd2xx.so.1.1.12 にアクセスできるようになります。
 アップデートするときは、現在のファイルを残しておいて、新しいファイルをコピーして、シンボリックリンクを作成し 直せば、新しいファイルに問題があっても元のバージョンに戻すことが容易にできます。

デフォルトのドライバーの削除
デフォルトで下記のドライバー(モジュール)が起動しています。
 ftdi_sio
 usbserial

lsmod コマンドで起動しているモジュールを見ることができます。
ftdi_sio、usbserial が表示されたら、それらを削除します。

rmmod ftdi_sio
rmmod usbserial


プログラムのコンパイル
コンパイル済みのlrelayset は、Rapberry Piでは、うまく作動しませんので、ソースプログラムよりコンパイルしてください。

下記よりソースプログラムをダウンロードします。
http://emx.net.au/main.c

コンパイル
gcc -Wall -c main.c

ビルド
gcc -Wall -ldl main.o

以上の操作で a.out という実行ファイルが作成されます。
必要に応じてファイル名を変更してください。
例)lrelaysetpiに変更する
mv a.out lrelaysetpi

プログラムの実行
lrelaysetpi (a.outをlrelaysetpiに変更した場合)と入力すると、パラメーターについての説明が表示されます。

接続されているSuper4のID表示
lrelaysetpi -l

これにより接続されているSuper4のIDを知ることができます。それで表示されたIDを使って、リレーのON・OFFを行うことができます。

リレーのON・OFF

例)R1をONにしたい場合
lrelaysetpi -sFTTBJ67O,1

 上記のコマンドで-sがリレーをONすることを意味します。-uを指定するとOFFです。
 FTTBJ67Oは、IDです。lrelaysetpi -l で実際に使用するSuper4のIDを調べて、そのIDを入力してください。このIDは、各Super4で異なるユニークな文字列になっています。複数のSuper4をつないだ場合、このIDで操作対象を指定することができます。
 一番左の1は、操作対象のリレーを指定します。R1、R2、R3、R4の順で2進数の下位から割り付けられます。つまり、R1が1、R2が2、R3が4、R4が8の値が割り付けられます。その合計を指定することで同時に複数のリレーを操作することができます。指定以外のリレーに対しては、ONまたはOFFの状態を保持します。

例)R1とR3をONにしたい場合、1+4=5なので
lrelaysetpi -sFTTBJ67O,5

例)R3とR4をONにしたい場合、4+8=12なので
lrelaysetpi -sFTTBJ67O,12

例)R2とR4をOFFにしたい場合
lrelaysetpi -uFTTBJ67O,10

指定した時間のみON、または、OFFにすることもできます。
その場合、 -tと時間をミリ秒で表した数値を入力します。

例)R1を1秒(1000ミリ秒)ONしたい場合
lrelaysetpi -sFTTBJ67O,1 -t1000

ユーザープログラムの作成
上記の main.c を参考にして、ユーザー独自のプログラムを作成してください。