「PIAST スクリプト」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
(LED制御)
 
(同じ利用者による、間の2版が非表示)
19行目: 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)
35行目: 44行目:
 
     fi
 
     fi
 
  done
 
  done
 +
 
===リレー制御用===
 
===リレー制御用===
 
*リレーオン(relayon.sh)
 
*リレーオン(relayon.sh)
64行目: 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)
111行目: 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