Lasertag

https://github.com/rene-dev/Lasertag

ACHTUNG: Die Laser mit > 0,4mW Leistung dürfen NICHT ohne Schutz betrieben werden!!!

Waffe

Waffe: Gehirn

Ist das Herzstück in jeder Waffe. Die Raspberry PIs sprechen per WLAN miteinander. Eine Waffe macht den Server, alle anderen joinen in das WLAN und den Server. Per i²c werden das Lasermodul in der Waffe und die Trefferzonenmodule in der Waffe und in der Weste an den Pi angeschlossen.

Bezeichnung Verwendung Einzelpreis Anzahl Gesamtpreis Bestellmenge Anmerkungen Link
Raspberry Pi A+ Gehirn 20 1 20 oder irgendein anderer Pi muss Reichelt
TP-LINK TL-WN722N WLAN Stick 9 1 9 oder TL-WN821N oder anderer muss idealo
MB-MP16DA/EU Samsung microSDHC EVO 16GB 11 1 11 ab 4GB, sollte schnell sein muss idealo
SPI Touch-Display 320*240 5,5 1 5,5 muss ebay china
MAR 1683.1201 Scharf-Taster vorne, Abzug, Reload 1,75 3 5,25 muss reichelt
WIPPE 1801.6115 Anschalter 1,1 1 1,1 muss reichelt
5V Step-Up Wandler 1,3 1 1,3 muss ebay china
18650 Halter 0,4 2 0,8 muss ebay china
18650 2,5 Ah LiIon Akku 0 2 0 muss vorhanden
LiIon MicroUSB Lader 1 1 1 muss ebay china,
http://anonymouse.org/cgi-bin/anon-www_de.cgi/http://www.ebay.com/sch/i.html?_odkw=lithium+charger+usb&LH_PrefLoc=2&_sop=15&_from=R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40&LH_BIN=1&_osacat=0&_from=R40&_trksid=m570.l1313&_nkw=lithium+charger+usb+10pcs&_sacat=0
SPC-2887 Lautsprecher 2,5 1 2,5 muss ebay china
kleiner Audio Verstärker 1,6 1 1,6 muss ebay china
Waffe: Lasermodul

Steuert den Laser, die Front-RGBW LED in Teamfarbe und die IR Sendediode. Der IR_TAKT generiert dauerhaft die 38 kHz Trägerfrequenz. Der IR_TX gibt pro Schuss ein Paar Bytes UART mit der Player ID, dem Schaden und einer checksumme aus was durch das P-FET invertiert wird.

Bezeichnung Verwendung Einzelpreis Anzahl Gesamtpreis Bestellmenge Anmerkungen Link

http://www.ebay.de/itm/301511719005

1 Layer Platine 3 1 3 muss
ATmega88PA-AU CPU 0,7 1 0,7 oder *8PA-AU, *8P-AU, *8A-AU, *8-AU; *=[8,16,32] muss Reichelt, ebay china,
http://anonymouse.org/cgi-bin/anon-www_de.cgi/http://www.ebay.com/sch/i.html?_odkw=%28ATMEGA88*%2CATMEGA168*%2CATMEGA328*%29+10+-dip+-ATMEGA88V+-ATMEGA168V+-ATMEGA88PV&LH_PrefLoc=2&_sop=15&_from=R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40|R40&LH_BIN=1&_osacat=0&_from=R40&_trksid=m570.l1313&_nkw=%28ATMEGA88*%2CATMEGA168*%2CATMEGA328*%29+10pcs+-dip+-ATMEGA88V+-ATMEGA168V+-ATMEGA88PV&_sacat=0
ULN 2803 D Transistor Array zur LED Ansteuerung 0,39 1 0,39 muss Reichelt
X7R-G0805 100N SMD-Vielschicht-Keramikkondensator 100N, 10% 0,05 2 0,1 muss Reichelt
X5R-G1210 100 SMD-Vielschichtkondensator G1210-100UF 6,3V 0,45 2 0,9 muss reichelt
IRLML 6402 P-FET SOT23: IR-Ansteuerung 0,15 3 0,45 oder AO3401 muss Reichelt, ebay china
VSLY5940 IR LED 950nm +-3° 0,7 1 0,7 muss Mouser
Osram SFH 4545 IR LED 950nm +-5° 0,57 1 0,75 muss z. B. Völkner
PTC194600-150 SMD-1812-PTC-Sicherung 1,5A/3A Überspannungsschutz 0,18 1 0,18 muss reichelt
ZD-5W 5,6V Zener-Diode 5,0W 5,6V zur Lasersicherheit 0,35 1 0,35 muss reichelt
TS 1117 BCW33 3,3V Spannungsregler 0,3 1 0,3 oder *1117 muss reichelt
NXP PUSB2X4Y ESD Überspannungsschutz für i2c-Bus 0,2 1 0,2 muss farnell
TSOP4338 IR-Empfänger-Module 38kHz AGC3 0,67 1 0,67 muss farnell
SMD Wiederstand 0805 0,05 15 0,75 muss reichelt
JST-XH 4-Pol Buchse 0,12 2 0,24 muss ebay china
Stiftleiste 0,2 1 0,2 muss ebay china
Lasermodul Rot 635nm 0,4mW Klasse 1 mit CE-Zertifikat aus DE 20 1 20 muss picotronic.de
Cree MC-E RGBW RGBW Taschenlampen-LED 7 1 7 muss ebay china
Reflektor für RGBW LED 0,5 1 0,5 muss ebay china

Trefferzonenmodul

Empfängt die Player-ID des Schützen und leitet sie per i2c an den das Gehirn weiter. 4 RGB-LEDs zeigen was an und ein Hub-Magnet gibt haptisches Feadback.

Bezeichnung Verwendung Einzelpreis Anzahl Gesamtpreis Bestellmenge Anmerkungen Link
1 Layer Platine 2 1 2 muss
ATTINY 2313A-SU Sensor und LED ↔ i2c 0,95 1 0,95 muss Reichelt
ULN 2803 D Transistor Array zur LED Ansteuerung 0,39 1 0,39 muss Reichelt
X7R-G0805 100N SMD-Vielschicht-Keramikkondensator 100N, 10% 0,05 5 0,25 muss Reichelt
X5R-G1210 100 SMD-Vielschichtkondensator G1210-100UF 6,3V 0,45 2 0,9 muss reichelt
10mm RDB LED diffus, commen anode (plus) 0,2 4 0,8 100 muss ebay china
TSOP4338 IR-Empfänger-Module 38kHz AGC3 0,67 4 2,68 muss farnell
TS 1117 BCW33 3,3V Spannungsregler 0,3 1 0,3 muss reichelt
SMD Wiederstand 0805 0,05 13 0,65 muss reichelt
JST-XH 4-Pol Buchse 0,12 2 0,24 muss ebay china
Stiftleiste muss ebay china
Hubmagnet ca. 7 1 7 optional ebay
Lötjumper 3 *g* unbedingt reichelt

Sonstiges

Bezeichnung Verwendung Einzelpreis Anzahl Gesamtpreis Bestellmenge Anmerkungen Link
Nebelmaschine + Nebelfluid B ? 1 ? optional
UV Lampe ? ? optional

Kostenabschätzung

Waffe
Was min Ausbau max Ausbau
Gehirn 66 66
Lasermodul 17 78
Trefferzonenmodul 13 20
Gehäuse und alles andere 15 30
Summe 100 194
Weste
Was min Ausbau max Ausbau
4 Trefferzonenmodule 4*13 4*20
Stoff, Kabel und alles andere 15 30
Summe 67 110

Software

Client, Server Kommunikation

Aufbau einer Nachricht: (Befehl, Nachricht)

  1. Befehl: Befehls ID z.B. 1 für ich möchte mich am Spiel anmelden.
  2. Nachricht: Im fall von 1 blau oder Grün für das Team zu das man möchte.

Designdokument Config

Waffe
 ID: uint16_t
 Name: string
 Schussmodi[]
  ID: uint16_t
  Munitionsname: string
  Schaden_Schild: uint16_t, Schild/Treffer
  Schaden_Körper: uint16_t, leben/Treffer
  Leben_absaugen: uint16_t, leben/s
  heilen: uint16_t, leben/s
  Schussfrequenz: uint16_t, ms
  Magazingröße: uint32_t
  Anzahl_Schüsse: uint32_t
  Nachladezeit: uint16_t, ms
  Laser_Farbe: uint8_t
  Laser_Schusslänge: uint16_t, ms
  Sound_Schuss: string
  Sound_Schuss_magazin_leer: string
  Sound_nachladen: string
  Sound_getroffen_werden: string
  Haptik
  
Player
 ID: uint16_t
 Name: string
 Team: uint8_t
 Leben: uint16_t
 Leben_max: uint16_t
 Schild: uint16_t
 Schild_max: uint16_t
 aktuelle Waffe: uint16_t
 verfügbare Waffen[]

Spielmodus
 Name: string
 erlaubte Waffen[]
 Teams_janein: boolean
 Team_Anzahl: uint8_t
 Team_maxSpieler: uint8_t
 Scharfschalten mit Knopf vorne: boolean
 Flashlight an bei scharf: teamfarbe, weiss, aus
 TrefferzonenLED_Schultern: teamfarbe, weiss, aus
 TrefferzonenLED_vorne: teamfarbe, weiss, aus
 TrefferzonenLED_hinten: teamfarbe, weiss, aus
 TrefferzonenLED_Waffe: teamfarbe, weiss, aus

	//i2c:
	//0		1		2		3		4		5		6		7		8		9		10		11		12
	//key_1	key_2	key_3	led_r	led_g	led_b	led_w	laser_r	laser_g	laser_b	tx_pid	tx_dmg	haptik

Notizen

  • LED Hardware PWM: PB2 (OC0A), PB3 (OC1A), PB4 (OC1B), PD5 (OC0B)
  • PD0 (RXD) + PD2 (INT0)
  • IR Sensor: Open Drain version!
  • Host: RaspberryPi oder Arietta G25