En WiFi-reaktiv videoinstallation som använder WiFi CSI (Channel State Information) för att detektera mänsklig rörelse i ett rum och applicera visuella störningar på video i realtid. Tanken är att visualisera hur ens fysiska närvaro påverkar det elektromagnetiska rummet.
| Koncept | Beskrivning | Var |
|---|---|---|
| WiFi CSI | Channel State Information - metadata om hur WiFi-signaler påverkas av miljön | ESP32-C6 |
| ESPectre | Open source firmware för ESP32-C6 som extraherar CSI-data | espectre-node*.yaml |
| NBVI | Normalized Baseline Variability Index - algoritm för att välja bästa subcarriers | ESPectre firmware |
| Sobel Operator | Kantdetektering genom gradient-beräkning | gui/index.html |
| CRT Magnetic Distortion | Simulering av hur magneter påverkar katodstralerorsteknik | gui/index.html |
| REST API Polling | Webbläsaren pollar ESP32 var 30ms för movement_score | JavaScript |
WiFi Router (2.4GHz)
|
+-- CSI-data --> ESP32-C6 (4st)
| |
| +-- Motion scoring (NBVI)
| +-- HTTP REST API (:80)
|
+-- Webblasare (Browser)
|
+-- Pollär ESP32 (30ms intervall)
+-- Laser videofil (lökal)
+-- Applicerar CRT-effekter
+-- Visär resultat
| Fil | Syfte | Rader |
|---|---|---|
| gui/index.html | Huvudvisualisering med alla effekter | 640 |
| espectre-node1.yaml | ESPHome-konfiguration för nod 1 | ~50 |
| README.md | Projektbeskrivning och snabbstart | ~100 |
| TECHNICAL.md | Teknisk dokumentation | ~200 |
124 frågör om WiFi CSI, Sobel-algoritmen, CRT-effekter och ESP32.
Starta Quiz50 flashcards för att memorera nyckelbegrepp.
StuderaAll kod med radförklaringär.
Utforska Kod
Gx (horisontell gradient):
Gx = [-1, 0, +1; -2, 0, +2; -1, 0, +1] * Image
Gy (vertikal gradient):
Gy = [-1, -2, -1; 0, 0, 0; +1, +2, +1] * Image
Gradient magnitude:
G = sqrt(Gx^2 + Gy^2)
Distortion formula:
offset_x = sin(dist * warpFreq) * intensity
offset_y = cos(dist * warpFreq) * intensity
Där dist = avstand från distorsionscentrum, warpFreq = frekvens, intensity = rörelsedata.