「PIAST スクリプト」の版間の差分
提供: VoIP-Info.jp
(→LED制御) |
|||
(同じ利用者による、間の4版が非表示) | |||
1行目: | 1行目: | ||
+ | [[カテゴリ:PIAST]] | ||
+ | |||
PIASTの各種周辺機器を使用するためのスクリプト類<br> | PIASTの各種周辺機器を使用するためのスクリプト類<br> | ||
注意:GPIOの番号は"物理"です。wiringpiを使う場合の番号ではありません。<br> | 注意:GPIOの番号は"物理"です。wiringpiを使う場合の番号ではありません。<br> | ||
17行目: | 19行目: | ||
echo "out" > $GPIOPATH/$GPORT/direction | echo "out" > $GPIOPATH/$GPORT/direction | ||
fi | fi | ||
+ | done | ||
+ | *pinctrlバージョン | ||
+ | #!/bin/sh | ||
+ | |||
+ | PINNS="4 6 13 19 26" | ||
+ | |||
+ | for i in $PINNS | ||
+ | do | ||
+ | pinctrl set $i op dl | ||
done | done | ||
*GPIO解放(gpiounconfig.sh) | *GPIO解放(gpiounconfig.sh) | ||
33行目: | 44行目: | ||
fi | fi | ||
done | done | ||
+ | |||
===リレー制御用=== | ===リレー制御用=== | ||
*リレーオン(relayon.sh) | *リレーオン(relayon.sh) | ||
62行目: | 74行目: | ||
echo "0" > $GPIOPATH/$RELAYPORT/valu | echo "0" > $GPIOPATH/$RELAYPORT/valu | ||
+ | *リレーON/OFF pinctrlバージョン | ||
+ | pinctrlを使う場合、リレーON/OFFは簡単です<br> | ||
+ | ONにするなら | ||
+ | pinctrl set 4 dh | ||
+ | OFFにするなら | ||
+ | pinctrl set 4 dl | ||
+ | |||
===LED制御=== | ===LED制御=== | ||
*LED点灯(ledon.sh) | *LED点灯(ledon.sh) | ||
96行目: | 115行目: | ||
if [ "$PINNO" = "" ] | if [ "$PINNO" = "" ] | ||
then | then | ||
− | echo "Usage: | + | echo "Usage: ledoff.sh [LED](1-4)" |
exit | exit | ||
fi | fi | ||
109行目: | 128行目: | ||
echo "0" > $GPIOPATH/$LEDPORT/value | echo "0" > $GPIOPATH/$LEDPORT/value | ||
+ | *LEDのON/OFFもpinctrlバージョン | ||
+ | LEDのON/OFFもpinctrlでは簡単です | ||
+ | pinctrl set 6 dh | ||
+ | pinctrl set 6 dl |
2024年11月13日 (水) 14:55時点における最新版
PIASTの各種周辺機器を使用するためのスクリプト類
注意:GPIOの番号は"物理"です。wiringpiを使う場合の番号ではありません。
GPIO初期化
- GPIO設定(gpioinit.sh)
#!/bin/sh PINNS="4 6 13 19 26" GPIOPATH="/sys/class/gpio" for i in $PINNS do GPORT=gpio$i if [ ! -d $GPIOPATH/$GPORT ] then echo $i > $GPIOPATH/export echo "out" > $GPIOPATH/$GPORT/direction fi done
- pinctrlバージョン
#!/bin/sh PINNS="4 6 13 19 26" for i in $PINNS do pinctrl set $i op dl done
- GPIO解放(gpiounconfig.sh)
#!/bin/sh PINNS="4 6 13 19 26" GPIOPATH="/sys/class/gpio" for i in $PINNS do GPORT=gpio$i if [ -d $GPIOPATH/$GPORT ] then echo $i > $GPIOPATH/unexport fi done
リレー制御用
- リレーオン(relayon.sh)
#!/bin/sh PINNO=4 RELAYPORT=gpio$PINNO GPIOPATH="/sys/class/gpio" if [ ! -d $GPIOPATH/$RELAYPORT ] then echo $PINNO > $GPIOPATH/export echo "out" > $GPIOPATH/$RELAYPORT/direction fi echo "1" > $GPIOPATH/$RELAYPORT/value
- リレーオフ(relayoff.sh)
#!/bin/sh PINNO=4 RELAYPORT=gpio$PINNO GPIOPATH="/sys/class/gpio" if [ ! -d $GPIOPATH/$RELAYPORT ] then echo $PINNO > $GPIOPATH/export echo "out" > $GPIOPATH/$RELAYPORT/direction fi echo "0" > $GPIOPATH/$RELAYPORT/valu
- リレーON/OFF pinctrlバージョン
pinctrlを使う場合、リレーON/OFFは簡単です
ONにするなら
pinctrl set 4 dh
OFFにするなら
pinctrl set 4 dl
LED制御
- LED点灯(ledon.sh)
#!/bin/sh PINNOS="6 13 19 26" GPIOPATH="/sys/class/gpio" PINNO=`echo $PINNOS | cut -f$1 -d' '` if [ "$PINNO" = "" ] then echo "Usage: ledon.sh [LED](1-4)" exit fi LEDPORT=gpio$PINNO if [ ! -d $GPIOPATH/$LEDPORT ] then echo $PINNO > $GPIOPATH/export echo "out" > $GPIOPATH/$LEDPORT/direction fi echo "1" > $GPIOPATH/$LEDPORT/value
- LED消灯(ledoff.sh)
#!/bin/sh PINNOS="6 13 19 26" GPIOPATH="/sys/class/gpio" PINNO=`echo $PINNOS | cut -f$1 -d' '` if [ "$PINNO" = "" ] then echo "Usage: ledoff.sh [LED](1-4)" exit fi LEDPORT=gpio$PINNO if [ ! -d $GPIOPATH/$LEDPORT ] then echo $PINNO > $GPIOPATH/export echo "out" > $GPIOPATH/$LEDPORT/direction fi echo "0" > $GPIOPATH/$LEDPORT/value
- LEDのON/OFFもpinctrlバージョン
LEDのON/OFFもpinctrlでは簡単です
pinctrl set 6 dh pinctrl set 6 dl