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 を参考にして、ユーザー独自のプログラムを作成してください。