Konzepte erweitert

This commit is contained in:
2026-01-04 08:18:02 +01:00
parent 06af540be3
commit 924fa66c3e

View File

@@ -12,9 +12,9 @@ Die Waffe ist das primäre Interaktionsgerät. Sie muss robust und reaktionsschn
* **Controller:** nRF52840 (Dongle oder Modul).
* **IR-Sender:** High-Power IR-LED (940nm oder 850nm) mit Optik/Linse und Treiberstufe (Reichweite > 50m).
* **Feedback:** Muzzle Flash (helle LED), Vibrationsmotor, Audio (Schussgeräusche, "Leer"-Klicken).
* **Feedback:** Muzzle Flash (helle LED), Solenoid (6V Open Frame, Rückstoss), Audio (Schussgeräusche, "Leer"-Klicken).
* **Eingabe:** Abzug (Trigger), Nachladen (Taster), optionaler Schalter für Feuermodus.
* **Stromversorgung:** 2S LiPo (7.4V) mit Step-Down auf 3.3V.
* **Stromversorgung:** 2S LiPo (7.4V) mit Buck auf 5V, nRF52840 mit interner 3.3V-Regelung.
### 1.2 Weste (Player Hub)
@@ -35,12 +35,69 @@ Die Leader Box dient zur Spielsteuerung und als Infrastruktur-Knoten.
* **Ausstattung:** IR-Empfänger, RGB-LEDs, Bluetooth-Gateway zur Smartphone-App.
* **Stromversorgung:** Großer Akku für lange Laufzeit.
## 2. Energie & Verkabelung
## 2. Energieversorgung & Verkabelung
* **Akkus:** 2S LiPo (7.4V) als Standard; 1S nur für Tests/Low-Power-Aufbau.
* **Spannungswandler:** Abwärtswandler auf 3.3V für Logik, separater Treiberpfad für IR-LEDs (hoher Pulsstrom, niedriger Duty-Cycle).
* **Verkabelung Weste:** Sternförmige Abgänge zu Sensorgürteln (Kopf, Brust/Rücken, Schultern) mit verriegelnden Steckern; Datensignal (LED) + Versorgung gebündelt.
* **Absicherung:** Polyfuse pro Ast empfohlen, Verpolschutz an jedem Modulanschluss.
### 2.1 Akkusystem
**Standard:** 2S LiPo (7.4 V nominal, 8.4 V voll geladen, 6.0 V Entladungsschutz).
**Alternative:** 1S nur für Tests oder Low-Power-Prototypen ungeeignet für hohe IR-LED-Ströme (siehe Abschnitt 4.1).
**Schutz & Laden:**
- **Zellenschutz-IC:** HY2120-CB + FS8205A (Dual-FET) schützt vor Über-/Unterspannung, Überstrom, Kurzschluss.
- **Lade-IC:** IP2326 (2S Balancing, USB-C) ermöglicht einfaches Laden ohne externe Balancer.
- **Fuel Gauge:** Spannungsteiler-basierte ADC-Messung (R1=100k, R2=47k) → Software-Mapping auf Ladestand (6.0 V = 0 %, 8.4 V = 100 %).
!!! info "Warum 2S?"
2S-Systeme bieten ausreichend Headroom für IR-LED-Konstantstromquellen (>4.8 V nötig bei 3A) und stabile Versorgung auch bei hoher Last. 1S-Zellen brechen unter 1A+ schnell auf 3.43.6 V ein.
### 2.2 Spannungsebenen & Wandler
**Primär-Rail (Batterie, 6.08.4 V):**
Direkt gespeist: IR-LED-Treiber, Muzzle-Flash-LED, Solenoid 6V (Open Frame, taktiles Feedback Rückstoss).
**Sekundär-Rail (5.0 V, ~1.5 A):**
Buck-Converter (z.B. MP2315, TPS62130) für Audio-IC (MAX98357A), adressierbare LEDs (WS2812B) und nRF52840 (3.3V intern geregelt). Hohe Schaltfrequenz gewünscht (geringe Induktivität, kompakte Bauform).
**Verkabelung Weste:**
Sternförmige Abgänge zu Sensor-Modulen (Kopf/Brust/Schultern); jeweils 5V + GND + WS2812-Data; verriegelnde Stecker (JST-XH o.ä.), Polyfuse pro Ast, Verpolschutz (Diode/FET).
### 2.3 Leistungsbilanz (5V-Rail, Weste)
Die Weste hat durch LEDs und Audio den höchsten Verbrauch; hier die Peak-Abschätzung:
| Komponente | Zustand | Strom | Leistung |
| :--- | :--- | ---: | ---: |
| Audio (MAX98357A) | Volllast (3W @ 90% η) | ~670 mA | 3.35 W |
| WS2812B LEDs (5×) | 100 % Weiß | 300 mA | 1.50 W |
| nRF52840 | BLE+Thread aktiv | ~15 mA | 0.08 W |
| QSPI Flash | Read/Write Burst | ~15 mA | 0.08 W |
| IR-Empfänger (5×) | Dauerbetrieb | ~50 mA | 0.25 W |
| **Gesamt (Peak)** | | **~1.05 A** | **5.26 W** |
**Auslegung:** Buck-Regler mit 1.5 A Nennstrom (30 % Reserve), hohe Schaltfrequenz (>1 MHz) für kompakte Drossel/Kondensatoren.
### 2.4 Blockschaltbild Energieversorgung
```mermaid
flowchart TD
BAT["2S LiPo<br/>6.08.4V"] <--> PROT["Zellenschutz<br/>HY2120+FS8205A"]
CHG["USB-C Lader<br/>IP2326"] --> PROT
PROT --> BUCK["Buck 5.0V<br/>MP2315/TPS62130<br/>1.5A"]
PROT --> IR_DRV["IR-LED<br/>Konstantstromquelle"]
PROT --> MUZZLE["Muzzle Flash<br/>LED-Treiber"]
PROT --> SOL["Solenoid 6V<br/>Open Frame"]
BUCK --> AUDIO["Audio Amp<br/>MAX98357A"]
BUCK --> LED["WS2812B LEDs<br/>mit Level Shift"]
BUCK --> NRF["nRF52840<br/>3.3V intern"]
NRF --> FLASH["QSPI Flash<br/>3.3V"]
NRF --> IR_RX["IR-Empfänger<br/>TSOP48xx"]
```
---
## 3. Stückliste (Übersicht)
@@ -52,7 +109,7 @@ Diese Tabelle gibt einen Überblick über die groben Komponenten pro Einheit. De
| IR-LED (High-Power) | ✓ | | | | 940nm, > 50m Reichweite |
| IR-Empfänger (38kHz) | | ✓ | ✓ | 510 | Verteilt auf Kopf/Torso/Schulter |
| RGB-LED (WS2812B) | | ✓ | ✓ | 13 | Teamfarbe + Status |
| Vibrationsmotor | ✓ | | | | Taktiles Feedback Schuss |
| Solenoid (6V Open Frame) | ✓ | | | | Taktiles Feedback Rückstoss |
| Lautsprecher | ✓ | ✓ | | | Schussgeräusche + Sprachausgabe |
| 2S LiPo Akku | ✓ | ✓ | ✓ | 1 | 7.4V, ggf. unterschiedliche Kapazität |
| Lade-IC (IP2326) | ✓ | ✓ | ✓ | 1 | 2S Balancing |
@@ -62,111 +119,134 @@ Diese Tabelle gibt einen Überblick über die groben Komponenten pro Einheit. De
| USB-C / Pogo-Pad | ✓ | ✓ | ✓ | 1 | Laden + Debug-Konsole |
| Steckverbinder (JST-XH) | ✓ | ✓ | | | Modular aufgebaut |
## 4. Schaltungskomponenten
## 4. Schaltungskomponenten (Detail)
### 4.1 LED-Treiber
### 4.1 IR-LED-Treiber (Konstantstromquelle)
#### Grundkonzept
#### Funktionsprinzip
Der LED-Treiber realisiert eine präzise Konstantstromquelle als Hybridschaltung aus PNP- und NPN-Transistoren. Diese Architektur ermöglicht eine stabile und effiziente Ansteuerung von Infrarot-Leuchtdioden mit definierten Stromwerten.
Hybride PNP/NPN-Topologie für präzisen, modulierten IR-Puls (38 kHz). Die Stromquelle stellt sicher, dass bei wechselnder Batteriespannung der LED-Strom konstant bleibt (→ reproduzierbare Reichweite).
![LED DRIVER](../img/concept_hardware_led_driver.svg)
#### Stromeinstellung
Der Zielstrom wird über den Messwiderstand $R_{set}$ eingestellt. Die Berechnung folgt der Formel:
Der Sollstrom wird über $R_{set}$ definiert:
$$R_{set} = \frac{0,65V}{I_{LED}}$$
$$R_{set} = \frac{0,65\,\text{V}}{I_{\text{LED}}}$$
Die folgenden Tabelle zeigt typische Stromwerte, die erforderlichen Widerstände und die entsprechenden Anwendungsfälle:
**Beispiele:**
| Stromstärke ($I_{LED}$) | Widerstand ($R_{set}$) | Ausgangsleistung ($P_{min}$) | Einsatzbereich |
| :--- | :--- | :--- | :--- |
| 0,5 A | 1,30 $\Omega$ | 0,5 W | Standard / Nahkampf |
| 1,0 A | 0,65 $\Omega$ | 1,0 W | Hohe Reichweite (SFH 4550) |
| 2,0 A | 0,33 $\Omega$ | 2,0 W | Extrem hohe Leistung (Pulsbetrieb) |
| 3,0 A | 0,22 $\Omega$ | 3,0 W | Scharfschützen-Modus (Oslon Black) |
#### Thermische Betrachtung
Im Lasertag-Betrieb werden die Infrarot-Signale hochfrequent moduliert (beispielsweise mit 38 kHz). Dies führt zu einem signifikant geringeren mittleren Wärmeeintrag in den Messwiderstand als eine kontinuierliche Strombelastung suggeriert:
$$P_{avg} = (R_{set} \cdot I_{LED}^2) \cdot \text{Duty Cycle}$$
!!! info "Bedeutung der Widerstandsspezifikation"
Obwohl die Duty-Cycle-Modulation die durchschnittliche Verlustleistung reduziert, müssen Widerstände für $R_{set}$ für die auftretenden Stromspitzen ausgelegt sein. Wir empfehlen impulsfeste Typen (Metallschicht- oder Drahtwiderständen), um die Stromspitzen bis zu 3 A ohne Materialermüdung zu verkraften.
#### Spannungsversorgung und Headroom-Anforderungen
Die Konstantstromquelle benötigt eine Mindestverspannung zwischen Versorgung und Ausgang, um präzise die Sollstromstärke zu halten. Diese sogenannte Headroom-Spannung errechnet sich aus:
$$V_{CC} > V_{f(\text{LED})} + 0,65V + 1,0V_{\text{Headroom}}$$
**Kritischer Aspekt bei Lithium-Ionen-Akkus:** Die Akkuspannung sinkt während der Entladung kontinuierlich. Unterschreitet $V_{CC}$ den erforderlichen Schwellwert, bricht die Regelung zusammen und der LED-Strom kann die Sollvorgabe nicht mehr erreichen. Dies führt zu einer drastischen Reduktion der Reichweite des Senders.
Die Minimalspannung für stabilen Betrieb wird bestimmt durch:
$$V_{CC,\text{min}} = V_{f(\text{LED})} + V_{R_{set}} + V_{\text{Headroom}}$$
Die folgende Tabelle zeigt die erforderlichen Minimalspannungen für verschiedene Stromvorgaben und die Eignung unterschiedlicher Akkusysteme:
| Stromstärke ($I_{LED}$) | Typ. LED-Spannung ($V_{f}$) | Erforderliche Spannung ($V_{CC,\text{min}}$) | Akku-Empfehlung |
| :--- | :--- | :--- | :--- |
| 0,5 A | ~2,0 V | 3,65 V | 1S (nur bei voller Ladung) |
| 1,0 A | ~2,4 V | 4,05 V | 2S empfohlen |
| 2,0 A | ~2,8 V | 4,45 V | 2S erforderlich |
| 3,0 A | ~3,2 V | 4,85 V | 2S erforderlich |
!!! warning "1S-System: Einschränkungen unter Last"
Ein einzelner 1S Li-Po Akku sinkt unter hohen Stromlasten schnell auf 3,4 V bis 3,6 V ab. Für konstante Reichweite bei Strömen ab 1 A ist ein 2S-System daher technisch überlegen.
#### 2S-Akkusystem: Komplexität und Lösungsansätze
Ein 2S-Akkusystem bietet zwar Spannungsstabilität, erfordert jedoch anspruchsvollere Schutz- und Überwachungsfunktionen:
- **Laden:** Moderne 2S-Ladechips mit integriertem Balancing (beispielsweise der IP2326) ermöglichen vereinfachte Ladevorgänge.
- **Zellenschutz:** Ein Zellenschutz-IC wie der HY2120-CB in Kombination mit einem Dual-Channel MOSFET (beispielsweise FS8205A) verhindert Über- und Unterspannungszustände.
- **Fuel Gauge:** Spezielle Fuel-Gauge-ICs für 2S-Systeme sind selten oder komplex. Als praktische Alternative wird eine Spannungsteiler-ADC-Messung zur Ladezustandsabschätzung eingesetzt. Der Spannungsteiler muss durch ein Schaltgattersystem steuerbar sein.
### 4.2 Audio-Driver
Um Audio (z. B. Schussgeräusche, Sprachansagen) von einem externen Flash abzuspielen, ohne die CPU zu belasten, müssen wir auf Hardware-DMA-Transfer setzen.
Die beste Lösung für ein kompaktes, batteriebetriebenes System wie eine Lasertag-Waffe ist ein I2S Class-D Verstärker. Dieser kombiniert DAC und Verstärker in einem Chip und wird digital angesteuert.
Der "Industriestandard" für Mikrocontroller ist da der MAX98357A:
* **Schnittstelle**: I2S (Digital)
* **Leistung**: 3.2W an 4Ω (sollte mehr als genug laut sein)
* **Vortiele**:
* Kein externer DAC nötig
* Direkter Anschluss an den Lautsprecher
* Extrem Energieeffizient (schont die Akkus)
* Filterlose Class-D Architektur (wenige Bauteile)
* **CPU-Last**: Minimal, da der nRF52840 die Daten per EasyDMA schickt (zur Anpassung der Lautstärke wird etwas Rechenleistung benötigt)
### 4.3 Akku-Überwachung (Fuel Gauge)
#### Spannungsmessung bei 2S-Akkus
Für 2S-Akkusysteme mit Spannungen bis 8,4 V wird die Akkuspannung über einen Spannungsteiler auf den ADC-Eingangspegel reduziert. Dieser Messwert dient zur Ladezustandsabschätzung und Fehlerdiagnose.
#### Schaltungskomponenten
| Komponente | Wert | Funktion |
| $I_{\text{LED}}$ | $R_{set}$ | Einsatz |
| :--- | :--- | :--- |
| $R_1$ | 100 k$\Omega$ | Spannungsteiler oberer Zweig |
| $R_2$ | 47 k$\Omega$ | Spannungsteiler unterer Zweig |
| $C_1$ | 100 nF | Glättungskondensator am ADC-Eingang |
| 0,5 A | 1,30 Ω | Standard/Nahkampf |
| 1,0 A | 0,65 Ω | Hohe Reichweite (SFH 4550) |
| 2,0 A | 0,33 Ω | Pulsbetrieb (extreme Leistung) |
| 3,0 A | 0,22 Ω | Scharfschütze (Oslon Black) |
#### Softwarelogik
**Thermik:** Bei 38-kHz-Modulation (Duty-Cycle ~30 %) ist $P_{\text{avg}} = R_{set} \cdot I^2_{\text{LED}} \cdot DC$ → deutlich unter Peak. $R_{set}$ muss aber Spitzenstrom verkraften → impulsfeste Typen (Metallschicht, Drahtwiderstand).
Die Ladezustandsbestimmung erfolgt in drei Schritten:
#### Headroom & Akkuwahl
1. **ADC-Konvertierung:** Der Rohwert des ADC-Eingangs wird eingelesen.
2. **Spannungsrückrechnung:** Die Realspannung wird aus dem ADC-Wert berechnet: $V_{\text{bat}} = V_{\text{adc}} \cdot \frac{R_1 + R_2}{R_2}$
3. **Ladezustand-Mapping:** Die Batteriespannung wird auf einen prozentualen Ladezustand abgebildet:
* **6,0 V** → 0 % (Entladungsschutz aktiv)
* **8,4 V** → 100 % (vollständig geladen)
* Für höhere Genauigkeit können mehrere Messpunkte verwendet und linear interpoliert werden.
Minimalspannung für stabile Regelung:
*Stand: 03.04.2025*
$$V_{\text{CC,min}} = V_{f(\text{LED})} + 0,65\,\text{V} + 1,0\,\text{V}_{\text{Headroom}}$$
| $I_{\text{LED}}$ | $V_f$ (typ.) | $V_{\text{CC,min}}$ | Akku |
| :--- | :--- | :--- | :--- |
| 0,5 A | 2,0 V | 3,65 V | 1S (nur voll geladen) |
| 1,0 A | 2,4 V | 4,05 V | 2S empfohlen |
| 2,0 A | 2,8 V | 4,45 V | 2S erforderlich |
| 3,0 A | 3,2 V | 4,85 V | 2S erforderlich |
!!! warning "1S ungeeignet für >1A"
1S-Akkus brechen unter Last auf 3,43,6 V ein → Regelung versagt, Reichweite bricht ein. 2S liefert auch bei Teilentladung (7,0 V) genug Headroom.
### 4.2 Adressierbare LEDs (WS2812B)
**Anforderung:** 5V-Versorgung, aber Daten-Pegel kompatibel mit nRF52840 (3.3V Logic).
**Level-Shift:** SN74AHCT1G125 (3.3V → 5V, Single-Gate); schnell genug für WS2812-Timing (800 kHz).
**Serienwiderstand:** ~330 Ω nach dem Shifter → dämpft Reflexionen auf der Data-Leitung, verhindert Überschwinger.
**Layout:** Data-Leitung kurz halten; bei mehreren LEDs in Serie: Bypass-Kondensator (100 nF + 10 µF) pro 35 LEDs.
### 4.3 Audio-Verstärker (MAX98357A)
**Ziel:** Klare Schuss- und Sprach-Ausgabe mit minimalem Aufwand und geringer CPU-Last.
**Architektur:** I2S Class-D Verstärker DAC + Endstufe integriert, filterlose Topologie (wenige Bauteile).
* **Schnittstelle:** I2S (digital); Audio-Stream per EasyDMA vom nRF52840 → CPU bleibt frei für Game Logic.
* **Leistung:** ~3.2 W @ 4Ω laut genug für Outdoor-Einsatz.
* **Effizienz:** ~90 % → Akku-schonend; geringer Ruhestrom im Idle.
* **Layout:** Kurze, symmetrische Leitungen zu Speaker-Terminals; separate Ground-Plane; Entkopplung (10 µF + 100 nF) nahe VDD-Pin.
### 4.4 Flash-Speicher (QSPI)
**Aufgabe:** Audio-Files (Schuss-FX, Ansagen) und Spiel-Logs (optional Treffer-Historie).
* **Technik:** QSPI-NOR-Flash (z.B. W25Q128JV, GD25Q16C); 1.8 V oder 3.3 V; XIP-fähig (Execute-in-Place für Code möglich).
* **Kapazität:** 816 MB; reicht für ~3 min @ 22 kHz oder ~1.5 min @ 44 kHz (16 bit mono). Empfehlung: 22 kHz höhere Sample-Rate bringt bei Outdoor-Speaker kaum Mehrwert.
* **Interface:** QSPI (4-Bit parallel); nRF52840 unterstützt DMA-basierten Zugriff → schnelle Reads ohne CPU-Last.
* **Layout:** Flash nahe am MCU (< 5 cm Leitungslänge); Differenzen in Trace-Längen < 1 mm; saubere Ground-Plane; JEDEC-ID beim Boot prüfen.
### 4.5 Akku-Überwachung (Fuel Gauge)
**Prinzip:** Spannungsteiler + ADC für 2S-Akkus (08.4 V) → Software-basierte Ladezustandsschätzung (kein dediziertes Fuel-Gauge-IC nötig).
**Schaltungskomponenten:**
| Bauteil | Wert | Funktion |
| :--- | :--- | :--- |
| $R_1$ | 100 kΩ | Spannungsteiler oberer Zweig |
| $R_2$ | 47 kΩ | Spannungsteiler unterer Zweig (→ ADC) |
| $C_1$ | 100 nF | Tiefpass-Glättung am ADC-Eingang |
**Softwarelogik:**
1. **ADC-Konvertierung:** 12-bit ADC liest $V_{\text{div}}$ (max. 3.3 V bei VRef = 3.3 V).
2. **Rückrechnung:** $V_{\text{bat}} = V_{\text{adc}} \cdot \frac{R_1 + R_2}{R_2} = V_{\text{adc}} \cdot 3.13$
3. **Mapping:** Lookup-Table oder linear interpoliert:
- 8.4 V → 100 % (voll geladen)
- 7.4 V → ~50 % (nominal)
- 6.0 V → 0 % (Schutzschaltung aktiv)
**Kalibrierung:** Einmalig bei Produktion: Spannung an bekanntem Referenzpunkt messen, Offset/Gain in NVS speichern.
---
## 5. Bauteil-Übersicht & Empfehlungen
Konsolidierte Liste der Schlüsselkomponenten mit konkreten Part-Vorschlägen. Detaillierte BOMs folgen in separaten Docs (Waffe/Weste/Leader).
| Kategorie | Bauteil/Funktion | Vorschlag | Alternativen | Anmerkung |
| :--- | :--- | :--- | :--- | :--- |
| **MCU** | Mikrocontroller | nRF52840 | — | Zephyr-Support, BLE+Thread |
| **Energie** | 2S-Akku | Li-Po 7.4V, 10002000 mAh | — | Kapazität je nach Gerät |
| | Zellenschutz | HY2120-CB + FS8205A | DW01A + 8205A | OV/UV/OC-Protection |
| | Lade-IC | IP2326 (2S Balancing) | TP4056 (nur 1S) | USB-C, Balancing integriert |
| | Buck 5V | MP2315, TPS62130 | — | 1.5 A, >1 MHz Schaltfrequenz |
| **IR** | IR-LED | SFH 4550, Oslon Black | TSAL6400 | 940 nm, >50 m Reichweite |
| | IR-Empfänger | TSOP4838, TSOP38438 | VS1838B | 38 kHz Demodulator |
| | LED-Treiber | PNP/NPN diskret | IRL530 (Logic-FET) | Konstantstrom, PWM-fähig |
| **LED** | Adressierbare | WS2812B (5050) | SK6812, APA102 | 5V, ~60 mA/LED @ weiß |
| | Level-Shift | SN74AHCT1G125 | 74HCT245 (8-Kanal) | 3.3V → 5V, single-gate |
| **Audio** | Class-D Amp | MAX98357A | PAM8302, TPA2005D1 | I2S, 3.2W @ 4Ω |
| | Speaker | 4Ω, 35W | 8Ω (lower SPL) | Outdoor-tauglich |
| **Speicher** | QSPI Flash | W25Q128JV (16 MB) | GD25Q16C (2 MB) | NOR-Flash, 3.3V |
| **Feedback** | Solenoid | 6V Open Frame | — | Rückstoss direkt ab Batterie |
| | Muzzle LED | Weiß/Gelb, 1W+ | Cree XP-E2 | Sichtbar bei Tag |
| **Passiv** | $R_{\text{set}}$ (IR) | 0.221.3 Ω, 3W | Metallschicht, Draht | Impulsfest |
| | Spannungsteiler | 100k + 47k, 1% | 0.1% für Präzision | Fuel Gauge |
| **Mechanik** | Stecker | JST-XH (2.54mm) | Molex PicoBlade | Verriegelnd, 35 Pole |
| | Taster | Omron B3F, Alps SKQG | Cherry MX (größer) | Trigger, Reload |
**Hinweise:**
- **IR-LED:** Oslon Black für extreme Reichweite (3A-Betrieb), SFH 4550 für Standard (12A).
- **Audio:** MAX98357A ist quasi-Standard; Alternativen (PAM8302) haben höheren THD, aber OK für SFX.
- **Flash:** 16 MB erlauben ~6 min Audio @ 22 kHz gut für zukünftige Erweiterungen (z.B. mehrsprachige Ansagen).
- **Stecker:** JST-XH ist weit verbreitet und günstig; Molex PicoBlade kompakter, aber teurer.
*Stand: 04.01.2026*