From 37fdf2cce2e4aad6a28cf877bd3e48e9c8e04220 Mon Sep 17 00:00:00 2001 From: zrnek Date: Thu, 30 Oct 2025 21:34:29 +0100 Subject: [PATCH] Aktualizovat README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit úprava readme --- README.md | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 91 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index dcd7ca1..989a6e8 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,92 @@ -# ghost-mirror +# 👻 Projekt Zrcadlo: Digitální Duch 👻 -Jednoduchý python script na pouštění videa z RB po detekci pohybu. Je součástí projektu Ghost Mirror, což je Halloweenský projekt na zobrazování ducha v zrcadle. \ No newline at end of file +Proměňte obyčejné zrcadlo v bránu do záhrobí! 😱 + +Tento projekt využívá Raspberry Pi a pohybový senzor k vytvoření dokonalé iluze "strašidelného zrcadla". Je navržen jako hlavní atrakce pro Halloweenskou párty. Když se někdo nic netuše přiblíží, zrcadlo ožije a zjeví se v něm duch. + +--- + +## ✨ Klíčové vlastnosti + +* **Detekce pohybu:** Duch se objeví, jen když se někdo přiblíží. +* **Perfektní iluze:** V klidovém stavu zobrazuje absolutně černou obrazovku. Žádné blikání terminálu, žádný text. +* **Plynulé přechody:** Přechod z černé obrazovky na video (a zpět) je okamžitý a plynulý. Iluze není nikdy přerušena. +* **Náhodné přehrávání:** Nikdy nevíte, který z duchů se zjeví. Skript si náhodně vybírá ze složky s videi. +* **Chytrý zámek:** Senzor je po spuštění videa inteligentně deaktivován přesně na dobu délky videa. Tím se zabrání otravnému restartování scény při dalším pohybu. +* **Vysoký výkon:** Všechna videa jsou analyzována předem při startu. Reakce na pohyb je tak bleskurychlá, protože skript už zná délku každého videa. +* **Plná konfigurovatelnost:** Vše (GPIO piny, časování) lze snadno nastavit v jediném `config.yaml` souboru. + +--- + +## 🛠️ Jak to funguje + +Celý systém běží na **Raspberry Pi Zero 2 W** se systémem Raspberry Pi OS Lite. + +1. **Na pozadí** běží `mpv` přehrávač. Ten neustále zobrazuje černý obrázek (`black.png`) a poslouchá na IPC socketu (`/tmp/mpvsocket`). +2. **PIR senzor** (HC-SR501) detekuje pohyb. +3. **Python skript** (`ghost_trigger.py`) zachytí signál ze senzoru. +4. Skript okamžitě zamkne senzor (`is_playing = True`) a náhodně vybere video a jeho *předem zjištěnou* délku. +5. Po uplynutí "zpoždění pro překvapení" (např. 1.5s) pošle pomocí `socat` příkaz do běžícího `mpv`. +6. Příkaz obsahuje instrukce: "Plynule přehraj toto video (bez opakování) a hned po něm zařaď do fronty zpět černý obrázek." +7. `mpv` provede plynulý přechod, přehraje video a plynule se vrátí k černé. +8. Python skript mezitím čeká po přesnou dobu délky videa a poté senzor opět odemkne. + +--- + +## ⚙️ Potřebný hardware + +* **Raspberry Pi:** Tento projekt běží na **Raspberry Pi Zero 2 W**. Zvládne to i výkonnější Pi 3/4. +* **Displej:** Libovolný tenký LCD panel s HDMI vstupem. +* **Zrcadlo:** Polopropustné ("špionážní") zrcadlo nebo fólie. +* **Senzor:** Pohybový senzor HC-SR501 (PIR). +* **Napájení:** Dostatečně silná powerbanka (alespoň 10 000 mAh) nebo UPS HAT pro delší výdrž. +* **SD karta:** (alespoň 8 GB) + +--- + +## 🚀 Instalace a spuštění + +1. Naklonujte nebo zkopírujte soubory do složky (`/home/zrnek/duch`). +2. **Nainstalujte všechny potřebné závislosti:** + ```bash + sudo apt update + sudo apt install mpv ffmpeg socat python3-gpiozero python3-yaml + ``` +3. **Připravte prostředí:** + * Do složky `videos/` nahrajte své video soubory (s černým pozadím). + * Vygenerujte černý obrázek pro pozadí: + ```bash + ffmpeg -f lavfi -i color=c=black:s=1920x1080 -vframes 1 black.png + ``` +4. **Nastavte `config/config.yaml`:** + * Upravte si GPIO pin, časování a další hodnoty podle svých potřeb. +5. **Nastavte službu `systemd`:** + * Vytvořte soubor `/etc/systemd/system/ghost-player.service`, aby se skript spouštěl automaticky při startu. (Doporučuje se spouštět jako `root` pro bezproblémový přístup k hardwaru, nebo pečlivě nastavit oprávnění pro uživatele `zrnek`). + * Povolte službu: + ```bash + sudo systemctl daemon-reload + sudo systemctl enable ghost-player.service + sudo reboot + ``` + +--- + +## 🔧 Konfigurace + +Veškeré nastavení se provádí v souboru `duch/config/config.yaml`: + +```yaml +# GPIO pin, ke kterému je připojen PIR senzor +pir_pin: 17 + +# Název složky s videi +videos_dir: "videos" + +# Seznam povolených přípon video souborů +video_extensions: + - ".mp4" + - ".mkv" + +# Zpoždění v sekundách od detekce pohybu po spuštění videa +# (pro lepší "leknutí") +surprise_delay: 1.5 \ No newline at end of file