ラズパイ GPIO
リンク先参照 過去の記事にもある
https://docs.microsoft.com/ja-jp/windows/iot-core/learn-about-hardware/pinmappings/pinmappingsrpi
/sys/class/gpio/export
仮想ファイルexportにそれぞれのポート番号を指定して、ポートファイル(ディレクト)を吐き出させる
sudo echo 17 > /sys/class/gpio/export で gpio17 の下にそれぞれの仮想ファイルが生まれる。それらのファイルに値を書き込めば、GPIOから出力
入力はその逆で、仮想ファイルを読めばよい。 これが概要。。
【制御のながれ】
GPIO18ピンに接続したLEDを点灯、消灯してみます。/sys/class/ディレクトリのアクセスはroot権限が必要sudoコマンドを使用します。
GPIO18ピンを使うよ宣言 :仮想ファイルの/sys/class/gpio/exportにGPIO番号を書き込み
pi@raspberrypi ~ $ sudo echo 18 > /sys/class/gpio/export
GPIO18ピンを制御できる準備ができました。
pi@raspberrypi ~ $ ls /sys/class/gpio/
export gpio18 gpiochip0 unexport
::gpio18ディレクトリが生成されています。
pi@raspberrypi ~ $ ls /sys/class/gpio/gpio18/
active_low direction edge power subsystem uevent value
gpio18/directionに入力か出力かの書き込みをして、gpio18/valueに0か1を書き込んでLEDの点灯、消灯を行います。
GPIO18ピンを出力ピンとして設定
pi@raspberrypi ~ $ sudo echo out > /sys/class/gpio/gpio18/direction
LEDの点灯、消灯が制御できるようになりました。
点灯
pi@raspberrypi ~ $ sudo echo 1 > /sys/class/gpio/gpio18/value
LEDが点灯したか。うまく点灯しない場合は回路接続、入力したコマンドなどをもう一度確認
次にLEDを消灯してみます。
pi@raspberrypi ~ $ sudo echo 0 > /sys/class/gpio/gpio18/value
GPIO18ピンの制御が終わったら、最後に使わない宣言
pi@raspberrypi ~ $ sudo echo 18 > /sys/class/gpio/unexport
pi@raspberrypi ~ $ ls /sys/class/gpio/
export gpiochip0 unexport
gpio18/ディレクトリがなくなっています。
Raspberry Piでは仮想ファイルを使ってSoCのGPIOピンを制御する。
0 件のコメント:
コメントを投稿