# Projekt: Lasertag Kommunikation (nRF52840) Dieses Projekt beschreibt ein modulares Lasertag-System basierend auf dem nRF52840. Es nutzt **Dynamic Multiprotocol** (Bluetooth Low Energy & OpenThread), um eine nahtlose Kommunikation zwischen einer Weboberfläche (Game-Leader), Westen und Waffen zu ermöglichen. ## System-Architektur * **Game-Leader:** Fungiert als Brücke (Bridge). Er kommuniziert via **BLE (Web Bluetooth)** mit einem Smartphone/Laptop und via **Thread (CoAP/UDP)** mit den Spielgeräten. * **Westen/Waffen:** Reine Thread-Knoten, die Befehle empfangen und Statusmeldungen (Treffer) senden. * **Bases:** Stationäre Geräte, die Spielmodi wie "Capture the Base" ermöglichen. ## Geplante Verzeichnisstruktur Das Projekt ist als Zephyr-Workspace-Struktur angelegt, um Code-Redundanz zu vermeiden. ```text lasertag/ ├── apps/ # Applikations-spezifischer Code (Binaries) │ ├── leader_base/ # Kombinierte Firmware für Game-Leader & Bases │ ├── weapon/ # Firmware für die Waffen-Einheit │ └── vest/ # Firmware für die Westen-Einheit ├── libs/ # Gemeinsame Bibliotheken (Zephyr Module) │ ├── ble_mgmt/ # BLE Services & Advertising Profile │ ├── thread_mgmt/ # CoAP Server/Client & Thread Stack Setup │ └── game_logic/ # Treffer-Logik & Spielstatus-Management ├── boards/ # Custom Board Definitions (PCBs) ├── common/ # Gemeinsame Header (UUIDs, CoAP-Pfade, IDs) └── scripts/ # Hilfsskripte (Provisioning, Shell-Tools) ``` ## Roadmap ### Phase 1: Foundation (Struktur & Shell) - [ ] Verzeichnisstruktur und `CMakeLists.txt` Verknüpfungen erstellen. - [ ] Basis-Firmware mit **Zephyr Shell** zur Konfiguration. - [ ] Implementierung von NVS (Non-Volatile Storage) zum Speichern von Gerätenamen und Team-IDs. ### Phase 2: Connectivity (BLE & Thread) - [ ] **BLE-Provisioning:** Übertragung von Thread-Credentials via Bluetooth. - [ ] **Thread-Setup:** Aufbau eines stabilen Mesh-Netzwerks zwischen Leader und Westen. - [ ] **Web-Interface:** Verbindung der Chrome Web Bluetooth App mit dem Leader. ### Phase 3: Core Game Logic (CoAP Brücke) - [ ] **Multicast-Broadcast:** "Spiel Start"-Kommando von Web-App -> Leader -> Thread-Mesh. - [ ] **Unicast-Feedback:** Treffermeldung von Weste -> Leader -> Web-App. - [ ] **Reliability:** Implementierung von CoAP Confirmable Messages für kritische Befehle (z. B. Waffe deaktivieren). ### Phase 4: Erweitert (Bases & NFC) - [ ] **Rollen-Switch:** Leader-Hardware erkennt via GPIO (Schalter), ob sie als Base agiert. - [ ] **Capture the Base:** Logik für Teambesitz und Zeitmessung. - [ ] **NFC-Provisioning:** (Optional) Schnelles Zuweisen von IDs via Smartphone-NFC. ## Technologie-Stack - **Hardware:** nRF52840 (DK & Custom PCBs) - **OS:** Zephyr RTOS via nRF Connect SDK - **Funk:** OpenThread (Mesh) & BLE 5.x - **Protokolle:** CoAP über UDP, GATT (BLE) - **Frontend:** Web Bluetooth API (JavaScript)