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