[Raspi][VB.NET] RaspberryPi で VB.NET (GPIO出力)

2015年1月2日

 Raspberry PI の GPIO(General Purpose Input/Output) は Shell Script から リダイレクトで操作できるらしい。
 ということは、ストリーム入出力を使えば mono から操作できるのでは?ということでやってみました。

 VB のプログラムは以下。(VisualStudio でコンパイルして RaspiGPIOAccess.exe を生成する)

Module RaspiGPIOAccess
    Sub Main(args() As String)
        Dim path = args(0)

        If args.Length = 1 Then
            ' Read
            Using sr As New IO.StreamReader(path)
                Dim value = sr.ReadLine()
                Console.WriteLine(value)
            End Using

        Else
            ' Write
            Using sw = New IO.StreamWriter(path)
                Dim value = args(1)
                sw.WriteLine(value)
                sw.Flush()
            End Using

        End If
    End Sub
End Module

 使い方は以下。

  • "sudo mono RaspiGPIOAccess.exe パス名" とした場合は読み込み

     例: RaspiGPIOAccess.exe /sys/class/gpio/gpio4/value

  • "sudo mono RaspiGPIOAccess.exe パス名 値" とした場合は書き込み

     例: RaspiGPIOAccess.exe /sys/class/gpio/gpio4/value 1

 以下、実行結果。

# 最初に GPIO の状態を見る
~ $ ls /sys/class/gpio/
export  gpiochip0  unexport

# GPIO 4 の制御を開始
~ $ sudo mono RaspiGPIOAccess.exe /sys/class/gpio/export 4
~ $ ls /sys/class/gpio/
export  gpio4  gpiochip0  unexport

# GPIO 4 を書き込みモードに
~ $ sudo mono RaspiGPIOAccess.exe /sys/class/gpio/gpio4/direction out
~ $ sudo mono RaspiGPIOAccess.exe /sys/class/gpio/gpio4/direction
out

# GPIO 4 の値を読む
~ $ sudo mono RaspiGPIOAccess.exe /sys/class/gpio/gpio4/value
0

# GPIO 4 に 1 を書く (そののち読む)
~ $ sudo mono RaspiGPIOAccess.exe /sys/class/gpio/gpio4/value 1
~ $ sudo mono RaspiGPIOAccess.exe /sys/class/gpio/gpio4/value
1

# GPIO 4 に 0 を書く (そののち読む)
~ $ sudo mono RaspiGPIOAccess.exe /sys/class/gpio/gpio4/value 0
~ $ sudo mono RaspiGPIOAccess.exe /sys/class/gpio/gpio4/value
0

# GPIO 4 の制御を終了
~ $ sudo mono RaspiGPIOAccess.exe /sys/class/gpio/unexport 4
~ $ ls /sys/class/gpio/
export  gpiochip0  unexport

 素直にアクセスできました。
 ただ、ハード結線の設備とかまだ持っていないため、実際に入出力できているかの確認はしていません(汗






カテゴリー: Linux, OS, Program, VB.NET

Follow comments via the RSS Feed | Leave a comment | Trackback URL

コメントを投稿する

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


«   »
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org