This commit is contained in:
57
doc/docs/planung.md
Normal file
57
doc/docs/planung.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user