Paso 4: Código Moar
Algunos de mi código descuidado para ponerte en marcha; D
Guardar este código en ledcube.sh y cambiar las variables GPIONR # y capa # de secuencia de comandos para que coincidan con los pernos que han conectado el cubo led en su pi.
#! / bin/bash
# Este flash scriptwill un 2 x 2 x 2 led cubo con gpio, usando dos 2n3904 npn
#VARIABLES:
Números #GPIO para LED
GPIONR1 = 7;
GPIONR2 = 8;
GPIONR3 = 24;
GPIONR4 = 25;
#GPIO para transistores para controlar las capas
LAYER1 = 23;
2 = 18;
#number de tiempos de ciclo
FLASHTIMES = 10;
#how largo para hacer una pausa entre flashes
SLEEP1 = 0.1S;
SLEEP2 = 0S;
SLEEPSHORT1 = 0.00005S;
SLEEPSHORT2 = 0.0010S;
SLEEPSHORT3 = 0.0025S;
SLEEPSHORT4 = 0.0050S;
SLEEPSHORT5 = 0.0100S;
#layer para iluminar
CAPA = $LAYER1;
#Initializing GPIO
#LEDS:
echo $GPIONR1 > /sys/class/gpio/export;
echo a > /sys/class/gpio/gpio$ GPIONR1/dirección;
echo $GPIONR2 > /sys/class/gpio/export;
echo a > /sys/class/gpio/gpio$ GPIONR2/dirección;
echo $GPIONR3 > /sys/class/gpio/export;
echo a > /sys/class/gpio/gpio$ GPIONR3/dirección;
echo $GPIONR4 > /sys/class/gpio/export;
echo a > /sys/class/gpio/gpio$ GPIONR4/dirección;
#LAYERS(NPN-TRANSISTORS)
echo $LAYER1 > /sys/class/gpio/export;
echo a > /sys/class/gpio/gpio$ LAYER1/dirección;
echo $LAYER2 > /sys/class/gpio/export;
echo a > /sys/class/gpio/gpio$ 2/dirección;
#FUNCTIONS:
{AllOff()}
#turns todos los leds apagados
echo 0 > /sys/class/gpio/gpio$ GPIONR1 y valor
echo 0 > /sys/class/gpio/gpio$ GPIONR2 y valor
echo 0 > /sys/class/gpio/gpio$ GPIONR3 y valor
echo 0 > /sys/class/gpio/gpio$ GPIONR4 y valor
}
{layersoff()}
#turns todas las capas de
echo 0 > /sys/class/gpio/gpio$ LAYER1 y valor
echo 0 > /sys/class/gpio/gpio$ 2 y valor
}
{switchlayer()}
capa de #switches
Si ["$LAYER" - eq "$LAYER1"]
entonces
CAPA = $2
echo 1 > /sys/class/gpio/gpio$ 2 y valor
echo 0 > /sys/class/gpio/gpio$ LAYER1 y valor
otra cosa
CAPA = $LAYER1
echo 1 > /sys/class/gpio/gpio$ LAYER1 y valor
echo 0 > /sys/class/gpio/gpio$ 2 y valor
fi
}
#LED CUBO FLASHSEQUENCES
{ledspin()}
echo 1 > /sys/class/gpio/gpio$ GPIONR1 y valor
sueño $SLEEP1
AllOff
sueño $SLEEP2
echo 1 > /sys/class/gpio/gpio$ GPIONR2 y valor
sueño $SLEEP1
AllOff
sueño $SLEEP2
echo 1 > /sys/class/gpio/gpio$ GPIONR3 y valor
sueño $SLEEP1
AllOff
sueño $SLEEP2
echo 1 > /sys/class/gpio/gpio$ GPIONR4 y valor
sueño $SLEEP1
AllOff
sueño $SLEEP2
}
{ledbackspin()}
echo 1 > /sys/class/gpio/gpio$ GPIONR4 y valor
sueño $SLEEP1
AllOff
sueño $SLEEP2
echo 1 > /sys/class/gpio/gpio$ GPIONR3 y valor
sueño $SLEEP1
AllOff
sueño $SLEEP2
echo 1 > /sys/class/gpio/gpio$ GPIONR2 y valor
sueño $SLEEP1
AllOff
sueño $SLEEP2
echo 1 > /sys/class/gpio/gpio$ GPIONR1 y valor
sueño $SLEEP1
AllOff
sueño $SLEEP2
}
{ledflashall()}
para que en 'seq 1 4';
hacer
echo 1 > /sys/class/gpio/gpio$ GPIONR1 y valor
echo 1 > /sys/class/gpio/gpio$ GPIONR2 y valor
echo 1 > /sys/class/gpio/gpio$ GPIONR3 y valor
echo 1 > /sys/class/gpio/gpio$ GPIONR4 y valor
echo 1 > /sys/class/gpio/gpio$ LAYER1 y valor
echo 1 > /sys/class/gpio/gpio$ 2 y valor
sueño $SLEEP1
AllOff
sueño $SLEEP1
switchlayer
switchlayer
hecho
}
{ledawesomeflash()}
AWESOMEFLASHTIMES = 10;
para que en 'seq 1 $AWESOMEFLASHTIMES';
hacer
echo 1 > /sys/class/gpio/gpio$ LAYER1 y valor
echo 1 > /sys/class/gpio/gpio$ GPIONR1 y valor
sueño $SLEEPSHORT1
echo 1 > /sys/class/gpio/gpio$ LAYER1 y valor
echo 1 > /sys/class/gpio/gpio$ GPIONR1 y valor
sueño $SLEEPSHORT1
AllOff
layersoff
hecho
para que en 'seq 1 $AWESOMEFLASHTIMES';
hacer
echo 1 > /sys/class/gpio/gpio$ LAYER1 y valor
echo 1 > /sys/class/gpio/gpio$ GPIONR2 y valor
echo 1 > /sys/class/gpio/gpio$ GPIONR4 y valor
sueño $SLEEPSHORT1
AllOff
layersoff
echo 1 > /sys/class/gpio/gpio$ 2 y valor
echo 1 > /sys/class/gpio/gpio$ GPIONR1 y valor
sueño $SLEEPSHORT1
AllOff
layersoff
hecho
para que en 'seq 1 $AWESOMEFLASHTIMES';
hacer
echo 1 > /sys/class/gpio/gpio$ 2 y valor
echo 1 > /sys/class/gpio/gpio$ GPIONR2 y valor
echo 1 > /sys/class/gpio/gpio$ GPIONR4 y valor
sueño $SLEEPSHORT1
AllOff
layersoff
echo 1 > /sys/class/gpio/gpio$ LAYER1 y valor
echo 1 > /sys/class/gpio/gpio$ GPIONR3 y valor
sueño $SLEEPSHORT1
AllOff
layersoff
hecho
para que en 'seq 1 $AWESOMEFLASHTIMES';
hacer
echo 1 > /sys/class/gpio/gpio$ 2 y valor
echo 1 > /sys/class/gpio/gpio$ GPIONR3 y valor
sueño $SLEEPSHORT1
echo 1 > /sys/class/gpio/gpio$ 2 y valor
echo 1 > /sys/class/gpio/gpio$ GPIONR3 y valor
sueño $SLEEPSHORT1
AllOff
layersoff
hecho
}
AQUÍ VA EL #FLASHSEQUENCE!!!!!! THA PRINCIPAL LAZO Y ' ALL!
echo "Parpadeo del LED...";
para que en 'seq 1 $FLASHTIMES';
hacer
#Flashsequence
ledawesomeflash
switchlayer
switchlayer
ledspin
ledspin
switchlayer
ledspin
ledspin
#countdown (no funciona)
FLASHLEFT=$(($FLASHTIMES-1))
echo - n "Flash-ciclos restantes: $FLASHLEFT \r"
hecho
echo "\nSequence completa!"
#Turning de y Unexporting GPIO
AllOff;
layersoff;
echo $GPIONR1 > /sys/class/gpio/unexport;
echo $GPIONR2 > /sys/class/gpio/unexport;
echo $GPIONR3 > /sys/class/gpio/unexport;
echo $GPIONR4 > /sys/class/gpio/unexport;
echo $LAYER1 > /sys/class/gpio/unexport;
echo $LAYER2 > /sys/class/gpio/unexport;