orangePi PC plus(SoC H3)でArmbian 3.4.113のGPIOにアクセスする方法gpio-sunxi
を使用して.fex
ファイルを編集する古い方法は廃止された(これを共有したい...)
一般的な手順は https://linux-sunxi.org/GPIO で説明されています
GPIOピンには、sysfs
ファイルシステムを介してアクセスします。特定のピンを有効にするには、/sys/class/gpio/export
にエクスポートする必要があります
ピンPA1の場合、コマンドはecho 1 > sys/class/gpio/export
になります。ピン番号は次の式で計算されます。
(position of letter in alphabet - 1) * 32 + pin number
PA1にはピン番号があります( '[〜#〜] a [〜#〜]'は最初の文字です)1
、PB2にはピン番号34
( '[〜#〜] b [〜#〜]'がありますは2文字目)、PG7はピン番号199
( '[〜#〜] g [〜#〜] 'は7番目の文字(7-1)* 32 + 7 = 199)
physicalヘッダーの位置が再び異なります。下の図
物理ヘッダーのピン40であるPG7を有効にするために使用できます
echo 199 > sys/class/gpio/export
画像のソース: https://orange314.com/Hardware
通常、echo "199" sys/class/gpio/export
のようなechoコマンドはPermission denied
エラーを出します
簡単な解決策は次のとおりです。
GPIOピンの1回限りの操作を行うには、最初にスーパーユーザーとして別のシェルを起動してから、エコーを使用する必要があります。たとえば、ピンA10をオンにするには:
$ Sudo sh
# echo 10 > /sys/class/gpio/export
# echo out > /sys/class/gpio/gpio10/direction
# echo 1 > /sys/class/gpio/gpio10/value
または、tを使用してサブシェルの作成を回避できます。
$ echo 10 | Sudo tee /sys/class/gpio/export
$ echo out | Sudo tee /sys/class/gpio/gpio10/direction
$ echo 1 | Sudo tee /sys/class/gpio/gpio10/value
ソース: https://forum.armbian.com/index.php?/topic/4052-problem-using-gpio-pins-on-legacy-kernel/
別の方法としては、新しいグループを作成し、/ sys/class/gpioディレクトリのグループをこの新しいグループに変更します。
次のように、gpioというグループを作成し、ユーザーをグループに追加し、gpioなどをエクスポートできます。
Sudo groupadd gpio
Sudo usermod -aG gpio <myusername>
su <myusername>
Sudo chgrp gpio /sys/class/gpio/export
Sudo chgrp gpio /sys/class/gpio/unexport
Sudo chmod 775 /sys/class/gpio/export
Sudo chmod 775 /sys/class/gpio/unexport
これにより、ユーザーはエクスポートおよびエクスポート解除できるようになります。
ピンをエクスポートしたら、chgrpとchmodを使用して(それらの内容を忘れないでください)、通常どおり使用できます。
echo "18" > /sys/class/gpio/export
chgrp -HR /sys/class/gpio/gpio18
chmod -R 775 /sys/class/gpio/gpio18
これで、ユーザーは最初のGPIOピン18にアクセスできます。
ソース: https://www.raspberrypi.org/forums/viewtopic.php?t=5185
echo
を権限付きで実行すると、新しいディレクトリが/sys/class/gpio
に表示されます。つまり、PA2(物理ヘッダーのピン番号2および番号22)の場合は/sys/class/gpio/gpio2
になります。
ピン番号2を設定するには、/sys/class/gpio/gpio2
のファイルに特定の値を書き込む必要があります
つまり、ピン2を出力に設定し、「ハイ」書き込み
echo "out" > /sys/class/gpio/gpio2/direction
echo "1" > /sys/class/gpio/gpio2/value
gPIOをシャットダウンするとき、ピンはエクスポートされません。
echo 2 > /sys/class/gpio/unexport
for pin 2(PA2、number22on the physical header)
GPIOにアクセスする別の方法はpythonを使用することですが、H3ベースのボードではWiringOPはまだ利用できません。