Raspberry Pi rörelse aktiverat Transparent skrikande Ghost för Halloween (5 / 6 steg)
Steg 5: kod
Jag tänker inte gå in på Detaljer om Raspbian Linux-kommandon eller skriva körbara skalskript i detta dokument. Det finns gott om information där ute om det. Tänk bara på att den sista skriften att göra den körbar med kommandot chmod a + x när du är klar-läge redigera den.
När jag utdraget den video video arkivera, var de uppkallade efter motsvarande spårnumret från Källa DVD med filnamnstillägget .mp4. På pi kör Raspbian, överfördes de extraherade och redigerade videor till en underkatalog som heter Video under standardanvändaren (användarnamn pi).
Jag skrev en enkel bash shell script som använder kommandot gpio från WiringPi bibliotek att kontinuerligt läsa GPIO pin ansluten att PIR-sensorn och läsa 4 taktila knapparna i PiFace styrelse. Körbara shell script heter scareme och ligger i hemkatalogen för användaren pi.
Anteckningar
Bibliotek och gpio verktyget stöder PiFace addon styrelsen. Du åt PiFace GPIO stiften genom att lägga 200 till pin. Skriptet använder också den Piface fyra taktil input knappar (i/o pins 200 till 203). Koden definierar input knapparna som följer:
- 200 - manuell avtryckare
- 201 - volym upp
- 202 - Volym ned
- 203 - växla video uppsättning. Knappen växlar mellan 3 olika uppsättningar av videoklipp som kan användas för effekt (inte skrämmande, skrämmande och extra lång)
I skriptet ställs taktila knapparna inledningsvis in att använda styrelsens inbyggda pull-up motstånd. Därför läser indatavärdet för knappen är alltid 1 tills någon trycker på en knapp och kopplar det till 0. (Därav, inverterad logik för att läsa dessa stift).
scareme skript
#! / bin/bash
# Upptäcka rörelse på PiFace och spela skrämmande video.
# Definiera PiFace Pins
MotionPin = 207
TriggerPin = 200
VolUpPin = 201
VolDownPin = 202
ModePin = 203
Volym = 1500
Volstep = 50
CurrentState = 0
CurrentMode = 0
DoFlip = ""
# Om du behöver flip video upp och ned, avkommentera följande rad
# DoFlip = "--orientering 180"
# Tilldela numrerade videor till en av tre videolägen. Också definiera den ordning som visas i filmerna
VidMode = 0 # 0 = inte skrämmande, 1 = skrämmande, 2 = Extra lång
VidOrder [0] = "14 30 46 62"
VidOrder [1] = "12 32 44 64 16 28 48 60"
VidOrder [2] = "6 22 38 54"
PriorVid = $VidMode
# Använd piface inre pullup motstånd på taktila knappen pins
gpio -p läge $TriggerPin upp
gpio -p läge $VolUpPin upp
gpio -p läge $VolDownPin upp
gpio -p läge $ModePin upp
# Huvudprogrammet ögla
klart
medan:; göra
för jag i ${VidOrder [$VidMode]}; göra
om [$VidMode - ne $PriorVid]; sedan eko - ne "Video Set $VidMode\r"; PriorVid = $VidMode; bryta; Fi
medan:; göra
PriorState = $CurrentState
PriorVolume = $Volume
PriorMode = $CurrentMode
Låt "CurrentState = (! "gpio -p Läs $TriggerPin") | ("gpio -p Läs $MotionPin") "
Låt "volym += ((! "gpio -p Läs $VolUpPin")-(! "gpio -p Läs $VolDownPin')) * $Volstep"
Låt "CurrentMode = (! "gpio -p Läs $ModePin") "
om [$Volume - ne $PriorVolume]; sedan eko - ne "$Volume\r"; Fi
om [$CurrentMode - gt $PriorMode]; Låt "VidMode = ($VidMode + 1) % 3"; bryta; Fi
om [$CurrentState - gt $PriorState]; sedan
omxplayer -b--vol $Volume $DoFlip./Video/$i.mp4 >> / dev/null
klart
Break
Fi
gjort
gjort
gjort