NachtderMuseen2020: Unterschied zwischen den Versionen
Axl (Diskussion | Beiträge) K (→Build Log - Galerie) |
Tut (Diskussion | Beiträge) (→Elemente der Spielwelt) |
||
(13 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
=Nacht der Museen 2020= | =Nacht der Museen 2020= | ||
− | [[Datei: | + | [[Datei:NdM-2020_COVID-19.jpg|240px|thumb]] |
− | Wir bekommen für das Event Platz für unsere Projekte im " | + | Wir bekommen für das Event Platz für unsere Projekte im "[https://www.hackerspace-ffm.de/wiki/index.php?title=NachtderMuseen2020#Physikalischer_Verein_-_Einstein-Raum Einstein Raum]" im Physikalischen Verein in Frankfurt. |
Vermutlich können wir am Tag zuvor (Freitag) aufbauen, das Event läuft von 19:00-02:00. Der Physikalische Verein erwartet etwa 3000 Besucher. | Vermutlich können wir am Tag zuvor (Freitag) aufbauen, das Event läuft von 19:00-02:00. Der Physikalische Verein erwartet etwa 3000 Besucher. | ||
Zeile 8: | Zeile 8: | ||
Termin: '''Samstag, 25.04.2020, 19:00 Uhr''' - 02:00 Uhr | Termin: '''Samstag, 25.04.2020, 19:00 Uhr''' - 02:00 Uhr | ||
+ | |||
+ | '''Achtung: Die Veranstaltung wurde von der Stadt Frankfurt abgesagt''' | ||
+ | |||
+ | [https://frankfurt.de/aktuelle-meldung/Sondermeldungen/Nacht-der-Museen-findet-nicht-statt/ https://frankfurt.de/aktuelle-meldung/Sondermeldungen/Nacht-der-Museen-findet-nicht-statt/] | ||
Zeile 17: | Zeile 21: | ||
[https://www.physikalischer-verein.de/ https://www.physikalischer-verein.de/] | [https://www.physikalischer-verein.de/ https://www.physikalischer-verein.de/] | ||
− | |||
− | |||
=Alien Spaceship Escape= | =Alien Spaceship Escape= | ||
Zeile 31: | Zeile 33: | ||
[[https://github.com/hackffm/FPVCar/tree/labyrith|git FPVCar im Branch labyrint]] | [[https://github.com/hackffm/FPVCar/tree/labyrith|git FPVCar im Branch labyrint]] | ||
+ | |||
+ | [[Datei:Gameplan.jpg|240px|thumb]] | ||
==Auto== | ==Auto== | ||
Zeile 62: | Zeile 66: | ||
==Labyrinth-Server== | ==Labyrinth-Server== | ||
Eigener Raspberry ist über WebSockets mit den Autos verbunden, steuert Elemente im Spielfeld über USB mit USB-Hubs. | Eigener Raspberry ist über WebSockets mit den Autos verbunden, steuert Elemente im Spielfeld über USB mit USB-Hubs. | ||
+ | |||
+ | ==Labyrinth-Controller== | ||
+ | |||
+ | <pre> | ||
+ | # command interpreter for CircuitPython 4.x | ||
+ | import supervisor | ||
+ | import sys | ||
+ | import time | ||
+ | |||
+ | def cmd_id(arg1): | ||
+ | print("3 Door1") | ||
+ | |||
+ | def cmd_open(arg1): | ||
+ | print("open door: " + arg1) | ||
+ | |||
+ | cmd_line = "" | ||
+ | cmd_dict = { | ||
+ | '?': cmd_id, | ||
+ | 'o': cmd_open, | ||
+ | } | ||
+ | |||
+ | def receive_serial_cmd(): | ||
+ | global cmd_line | ||
+ | if supervisor.runtime.serial_bytes_available: | ||
+ | value = sys.stdin.read(1) | ||
+ | ch = ord(value) | ||
+ | if 32 <= ch <= 126: # printable character | ||
+ | cmd_line += chr(ch) | ||
+ | elif ch in {10, 13}: # EOL - try to process | ||
+ | if len(cmd_line) >= 1: | ||
+ | if cmd_line[0] in cmd_dict: | ||
+ | cmd_dict[cmd_line[0]](cmd_line[1:]) | ||
+ | else: | ||
+ | print('unkown command.') | ||
+ | cmd_line = '' | ||
+ | |||
+ | i = 0 | ||
+ | while(1): | ||
+ | receive_serial_cmd() | ||
+ | #print(i) | ||
+ | i = i + 1 | ||
+ | time.sleep(.1) | ||
+ | </pre> | ||
==Elemente der Spielwelt== | ==Elemente der Spielwelt== | ||
+ | * UV Beschriftung/Zeichen | ||
+ | |||
+ | * Auslösen: | ||
+ | ** Laser | ||
+ | ** Gegenfahren | ||
+ | ** Bodenknöpfe | ||
+ | ** Magnet | ||
+ | |||
+ | * Aufnehmen: | ||
+ | ** Magnet | ||
+ | ** Gabelstapler | ||
+ | ** Kralle | ||
+ | ** Schieben (Kamerasicht?) | ||
+ | ** Rollender Ball | ||
+ | |||
+ | * Parkour: | ||
+ | ** Bewegte Plattform | ||
+ | ** Drehteller | ||
+ | ** Auto als Brücke | ||
+ | ** Tür geht immer auf/zu | ||
+ | ** Luftkammerboden (Alienschleim) | ||
+ | ** Wippe | ||
+ | ** Hindernissraum | ||
+ | ** Drehtüren | ||
+ | ** Aufzug | ||
+ | ** Manuell verstellbare Wände | ||
+ | |||
+ | * Gegner: | ||
+ | ** Abschießbare Blockade | ||
+ | ** Wegräumgegner | ||
+ | ** Blendgegner | ||
+ | ** Wände zum zerstören | ||
+ | |||
+ | * Rätsel / Missionen: | ||
+ | ** Hamsterrad / Laufband antreiben | ||
+ | ** Türen | ||
+ | ** Was von A nach B bringen | ||
+ | ** Labyrinth | ||
+ | ** Laserspiegel/Würfel (ggf. magnetisch, kooperativ) | ||
+ | ** Virtuelle Items schalten Sachen frei | ||
+ | *** Schlüssel | ||
+ | *** Karten, Radar | ||
+ | ** Geheimtür | ||
+ | ** Grube füllen | ||
+ | ** Lichtfarbe freispielen | ||
+ | ** Coin Lasern (mit richtigem Laser, gibts dann am Ende) | ||
+ | ** verkettete Missionen | ||
+ | * Schwierigkeitsgrad: | ||
+ | ** Zeitbegrenzung | ||
+ | ** Nebel | ||
+ | ** Licht | ||
+ | ** Kameras im Raum | ||
+ | ** Highscore | ||
+ | * Tip/Hintsystem per Monitor | ||
==Verfügbare Materialien== | ==Verfügbare Materialien== | ||
Zeile 102: | Zeile 203: | ||
Datei:20200212 200304.jpg | Datei:20200212 200304.jpg | ||
Datei:20200212 210956.jpg | Datei:20200212 210956.jpg | ||
+ | Datei:20200215 180906.jpg | ||
+ | Datei:Fpvshipidea1.png | ||
+ | Datei:20200602_002108.jpg | ||
</gallery> | </gallery> | ||
Aktuelle Version vom 4. Juli 2021, 14:46 Uhr
Inhaltsverzeichnis
Nacht der Museen 2020
Wir bekommen für das Event Platz für unsere Projekte im "Einstein Raum" im Physikalischen Verein in Frankfurt. Vermutlich können wir am Tag zuvor (Freitag) aufbauen, das Event läuft von 19:00-02:00. Der Physikalische Verein erwartet etwa 3000 Besucher.
https://www.nacht-der-museen.de/frankfurt/
Termin: Samstag, 25.04.2020, 19:00 Uhr - 02:00 Uhr
Achtung: Die Veranstaltung wurde von der Stadt Frankfurt abgesagt
https://frankfurt.de/aktuelle-meldung/Sondermeldungen/Nacht-der-Museen-findet-nicht-statt/
Physikalischer Verein
Robert-Mayer-Str. 2
60325 Frankfurt
https://www.physikalischer-verein.de/
Alien Spaceship Escape
Konzept/Story
Was hier aufgebaut werden soll ist eine Mischung aus Miniaturwunderland und Escape-Room. Der Reiz besteht darin, dass ein gestrandetes Raumschiff weitgehend allein aus FPV-Sicht der Roboautos erkundet werden muss und eine Fluchtmöglichkeit aus dem Raumschiff mit Hilfe der Roboautos gefunden werden muss.
Durch die unsanfte Landung ist euer Raumschiff stark beschädigt worden - viele Systeme sind ausgefallen und ihr werdet wohl einige notdürftige Reparaturen ausführen müssen, um wenigstens einige wichtige Dinge wie automatische Türen reaktivieren zu können. Für einige Hindernisse ist Teamwork gefragt, deshalb stehen euch zwei Roboautos zur Verfügung. Werdet ihr es schaffen das Raumschiff zu verlassen, bevor der beschädigte Reaktor des Raumschiffes ganz ausfällt?
Software in Python
[FPVCar im Branch labyrint]
Auto
Gesteuert wir mit PS3-Controllern die über Bluetooth mit den Autos verbunden sind, mittels PyGame[1]
Features des Autos
- FPV Sicht 160° Kamera von Reichelt
- LED weiß als Scheinwerfer (ein/ausschaltbar)
- UV-LED (scaltbar)
- RFID-Leser im Boden um bestimmte Positionen zu erkennen
- Kralle auf/zu + hoch/runter
- Laserpointer auf Kralle (schaltbar)
Spiel-Konzept Auto
- RFID-IDs werden vom Auto zum Labyrinth-Server übermittelt
- Der entscheidet anhand der ID
- Items (Keycard, UV) werden "aufgenommen" und somit dem Auto hinzugefügt
- Item kann Hinweis sein
- Tür öffnet wenn ID=Tür ist und ggf Keycard vorhanden ist
- Sound werden getriggert in Auto-Control-Websession
- Websession auf Public-Viewing Monitor
- zeigt FPV-Bild
- zeigt Items/Hinweise
- spielt Sounds lokal
- Hält Verbindung zum Labyrinth-Server
- kann (muss nicht allein) Auto steuern
Labyrinth-Server
Eigener Raspberry ist über WebSockets mit den Autos verbunden, steuert Elemente im Spielfeld über USB mit USB-Hubs.
Labyrinth-Controller
# command interpreter for CircuitPython 4.x import supervisor import sys import time def cmd_id(arg1): print("3 Door1") def cmd_open(arg1): print("open door: " + arg1) cmd_line = "" cmd_dict = { '?': cmd_id, 'o': cmd_open, } def receive_serial_cmd(): global cmd_line if supervisor.runtime.serial_bytes_available: value = sys.stdin.read(1) ch = ord(value) if 32 <= ch <= 126: # printable character cmd_line += chr(ch) elif ch in {10, 13}: # EOL - try to process if len(cmd_line) >= 1: if cmd_line[0] in cmd_dict: cmd_dict[cmd_line[0]](cmd_line[1:]) else: print('unkown command.') cmd_line = '' i = 0 while(1): receive_serial_cmd() #print(i) i = i + 1 time.sleep(.1)
Elemente der Spielwelt
- UV Beschriftung/Zeichen
- Auslösen:
- Laser
- Gegenfahren
- Bodenknöpfe
- Magnet
- Aufnehmen:
- Magnet
- Gabelstapler
- Kralle
- Schieben (Kamerasicht?)
- Rollender Ball
- Parkour:
- Bewegte Plattform
- Drehteller
- Auto als Brücke
- Tür geht immer auf/zu
- Luftkammerboden (Alienschleim)
- Wippe
- Hindernissraum
- Drehtüren
- Aufzug
- Manuell verstellbare Wände
- Gegner:
- Abschießbare Blockade
- Wegräumgegner
- Blendgegner
- Wände zum zerstören
- Rätsel / Missionen:
- Hamsterrad / Laufband antreiben
- Türen
- Was von A nach B bringen
- Labyrinth
- Laserspiegel/Würfel (ggf. magnetisch, kooperativ)
- Virtuelle Items schalten Sachen frei
- Schlüssel
- Karten, Radar
- Geheimtür
- Grube füllen
- Lichtfarbe freispielen
- Coin Lasern (mit richtigem Laser, gibts dann am Ende)
- verkettete Missionen
- Schwierigkeitsgrad:
- Zeitbegrenzung
- Nebel
- Licht
- Kameras im Raum
- Highscore
- Tip/Hintsystem per Monitor
Verfügbare Materialien
Bodenplatten von Lidl Florabest 46x23x2,7cm ca. 50 Stück
Wandhöhe 23cm
Unterbodenhöhe 10cm
Fahrbahnbreite- und höhe orientiert sich an den Maßen der FPV-Auto's
ca. 4 m² Acryl Milchglas 3.5mm stark für Wände, Decken oder Boden. (Björn)