1

Temat: przycisk w GPIO

Witam. Próbuję oprogramować przyciski w RaspberryPI przy użyciu GPIO.
Wg poradników wykorzystałem 2 piny i umieściłem skrypt w rc.local

echo "23" > /sys/class/gpio/export  # dla przycisku
echo in > /sys/class/gpio/gpio23/direction

echo "26" > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio26/direction # dla LED
exit 0

niestety ze względu na to, że przyciski nie są przypisane do HotPlug trzeba je odczytać w pętli np. while ale jak dodaję jeszcze pętlę IF to zaczynają się schody. Skrypt powinien zapalić diodę jeśli jest zgaszona i zgasić jeśli jest zapalona (docelowo ma to dodatkowo włączać i wyłączać radio). Poniższy skrypt nie chce ze mną współpracować:

#!/bin/sh
while true ; do  sleep 1; [$(cat /sys/class/gpio/gpio23/value) = "1"] &&
        if  [$(cat /sys/class/gpio/gpio26/value) = "0" ];
                then echo 1 > /sys/class/gpio/gpio26/value
        else echo 0 > /sys/class/gpio/gpio26/value
        fi
done
exit 0

Powiedzcie proszę co jest nie tak w/w skrypcie, czy może nie da się tego tak zrobić?
Teraz dostaję odpowiedź:

/bin/gpioWR.sh: line 1: [0: not found

2

Odp: przycisk w GPIO

Spacji nie masz po [ i przed ] Zła składnia po prostu.

#!/bin/sh
while true; do
sleep 1;
if [ $(cat /sys/class/gpio/gpio23/value) = "1"]; then
   if  [ $(cat /sys/class/gpio/gpio26/value) = "0" ]; then
       echo 1 > /sys/class/gpio/gpio26/value
   else
       echo 0 > /sys/class/gpio/gpio26/value
   fi
fi
done

Pilnuj składni, bo to nie jest dowolny zapis tylko ma określoną strukturę.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: przycisk w GPIO

No tak, teraz działa. w życiu bym nie wpadł że nawias kwadratowy ma być otoczony spacjami! Studiuję jakieś opracowania dot. tworzenia skryptów ale tego nie doczytałem.
@Cezary, masz może jakiś link do dobrego opisu po Polsku, żeby Ci nie zawracać głowy takimi drobiazgami? Tylko nie odsyłaj mnie proszę do wujka. wink

4

Odp: przycisk w GPIO

Nie chcesz wujka to przejrzyj skrypty w /etc smile

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.