2016年1月15日金曜日

OrangePI PC,LED点滅にやっと成功

苦節2日(?)、やっと、OrangePIのLED点滅に成功しました。

きっと忘れるので、全手順を書いておきます。

POINT! loboris さんのイメージを使う。

まず、公式のイメージは忘れましょうw。loboris さんの解説を読みましょう。

Loboris さんの解説


私が行った手順:

1. Loboris さんが公開しているgoogle drive のページに移動します。

Loborisさんのイメージ公開場所(google drive)

2. この中から、以下のファイルをダウンロードします。

OrangePI_Ubuntu_Vivid_Mate.img.xz

scriptbin_kernel.tar.gz

3. それぞれ解凍します。必要なファイルは、

OrangePI_Ubuntu_Vivid_Mate.img

uImage_OPI-2
script.bin.OPI_PC_1080p60_hdmi

です。これは、OrangePI PC に、HDMIを繋いでTV(1920ドットx1080ドット)に映す場合のセッテイングです。

4. マイクロSDのセッテイングカードをWindows機にセットし、win32 Disk Imager を起動します。
マイクロSDには32GBクラス10のものを使いました。

5. OrangePI_Ubuntu_Vivid_Mate.img を書き込みます。

6.書き込みが終了すると、マイクロSDカードの容量が32GBではなく64MBになっていると思います。ドライブが見えない場合は、
SDカード取り出し、挿しなおしてみましょう。SDカード取り出し時には、「安全な取り外し」をお忘れなく。

7.このSDカードカード内に見える、uImage とか script.binなんかのファイルを全て消去します。

8.このSDカードに、さきほど解凍した、uImage_OPI-2 をコピーし、uImage という名前に変更します。

9. このSDカードに、さきほど解凍した、script.bin.OPI_PC_1080p60_hdmi をコピーし、script.bin という名前に変更します。

10.SDカードを安全に取り外します。

これで、準備は、OKです。
カードをOrangePIに指し、USBキーボードと、マウス、HDMIケーブル経由でモニタを接続し、電源ケーブルを接続して電源を入れます。

しばらくすると、ログイン画面が出てくるので、ユーザー名 orangepi パスワード orangepi でログインします。

11. ターミナルを起動します。

12. sudo modprobe gpio_sunxi を実行します。
パスワードを聞いてきますので、 orangepi と入力します。

これで、/sys/class 以下に、 gpio_sw というフォルダができると思います。

orangePI PC 本体には基板上にLEDがが2個ついていますが、これを制御可能になります。

echo 1 > /sys/class/gpio_sw/standby_led/data

echo 0 > /sys/class/gpio_sw/standby_led/data

で、スタンバイLEDをONにしたり、OFFににしたりできます。
GPIOの10ピンはPA14のようですので、これをONOFFしたい場合は、

echo 1 > /sys/class/gpio_sw/PA14/data

echo 0 > /sys/class/gpio_sw/PA14/data

でいけます。C言語制御と読んでいいのかわかりませんがw、
C言語からONOFFするなら、以下の方法で可能です。

#include "stdio.h"
#include "stdlib.h"

int main(int argc,char ** argv)
        {
        int i;

        FILE* fp;

        fp = fopen("/sys/class/gpio_sw/PA14/data","r+");
        if (fp == NULL)
                {
                printf("OPEN ERROR\n");
                exit(1);
                }

        while(1)
                {
                fprintf(fp,"1");
                fflush(fp);
                sleep(1);
                fprintf(fp,"0");
                fflush(fp);
                sleep(1);
                }
        }

これで、ピン10と、GND(6ピン)などに、抵抗とLEDを配線すれば、LEDの点滅を見ることができます。fopen の PA14 を standby_led に変えれば、スタンバイLEDを点滅させることができます。


環境
OrangePI PC
ubuntu15.04 (Loboris さんの image)




0 件のコメント:

コメントを投稿