added in GPIO led functionality
This commit is contained in:
55
scripts/gpio
Normal file
55
scripts/gpio
Normal file
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Utility to control the GPIO pins of the Raspberry Pi
|
||||
# Can be called as a script or sourced so that the gpio
|
||||
# function can be called directly
|
||||
|
||||
function gpio()
|
||||
{
|
||||
local verb=$1
|
||||
local pin=$2
|
||||
local value=$3
|
||||
|
||||
local pins=($GPIO_PINS)
|
||||
if [[ "$pin" -lt ${#pins[@]} ]]; then
|
||||
local pin=${pins[$pin]}
|
||||
fi
|
||||
|
||||
local gpio_path=/sys/class/gpio
|
||||
local pin_path=$gpio_path/gpio$pin
|
||||
|
||||
case $verb in
|
||||
read)
|
||||
cat $pin_path/value
|
||||
;;
|
||||
|
||||
write)
|
||||
sudo sh -c "echo $value > $pin_path/value"
|
||||
;;
|
||||
|
||||
mode)
|
||||
if [ ! -e $pin_path ]; then
|
||||
sudo sh -c "echo $pin > $gpio_path/export"
|
||||
fi
|
||||
sudo sh -c "echo $value > $pin_path/direction"
|
||||
;;
|
||||
|
||||
state)
|
||||
if [ -e $pin_path ]; then
|
||||
local dir=$(cat $pin_path/direction)
|
||||
local val=$(cat $pin_path/value)
|
||||
echo "$dir $val"
|
||||
fi
|
||||
;;
|
||||
clean)
|
||||
sudo sh -c "echo 0 > $pin_path/value"
|
||||
sudo sh -c "echo $pin > $gpio_path/unexport"
|
||||
;;
|
||||
|
||||
esac
|
||||
}
|
||||
|
||||
# Just invoke our function if the script is called directly
|
||||
if [ "$BASH_SOURCE" == "$0" ]; then
|
||||
gpio $@
|
||||
fi
|
||||
Reference in New Issue
Block a user