projekte:2023:1d-pong

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
projekte:2023:1d-pong [2023/12/04 00:58]
pixtxa
projekte:2023:1d-pong [2025/02/12 23:15] (aktuell)
pixtxa Erklärungen zu den Beacons
Zeile 9: Zeile 9:
 Direktweg zur [[projekte:2023:1d-pong#Spielanleitung]] Direktweg zur [[projekte:2023:1d-pong#Spielanleitung]]
 ===== Vorgeschichte ===== ===== Vorgeschichte =====
-Ich bekam 44x [[https://www.werma.com/de/s_c1691i7105/24134050.html|WERMA MC35 UL Leuchte + Summer 10-30V RGB M12]] und überlegte, was man damit tun könnte.+Ich bekam 44x [[https://www.werma.com/MC35-UL-Leuchte-Summer-10-30V-RGB-M12/24134050|WERMA MC35 UL Leuchte + Summer 10-30V RGB M12]] (Vorserie mit unfertiger Firmware; kein Serienstand) und überlegte, was man damit tun könnte.
  
 {{:projekte:2023:1d-pong_werma_tisch_waben.jpg?400|Die Werma-LED-Leuchten stehen wabenförmig angeordnet auf dem Tisch}} {{:projekte:2023:1d-pong_werma_tisch_waben.jpg?400|Die Werma-LED-Leuchten stehen wabenförmig angeordnet auf dem Tisch}}
Zeile 59: Zeile 59:
  
 Es war also Zeit, neue Wege auszuprobieren. Es war also Zeit, neue Wege auszuprobieren.
-Ein Robo-Arm mit starkem Laser und "nicht hin gucken währen der Laser an ist" als Sicherheitskonzept klingt erstmal interessant, aber Kabelkanal ist aus PVC und sollte nicht thermisch bearbeitet werden (Salzsäure und giftige Gase)+Ein Robo-Arm mit starkem Laser und "nicht hin gucken während der Laser an ist" als Sicherheitskonzept klingt erstmal interessant, aber Kabelkanal ist aus PVC und sollte nicht thermisch bearbeitet werden (Salzsäure und giftige Gase)
  
-Aber das 3D-Modell der Planung konnte schnell ein CAD-Modell einer Schablone ausgeben, welches frisch geliced an den [[ausstattung:labor:3d_drucker|3D Drucker - Prusa i3 MK3s]] ging, während ich einen Spaziergang in den Baumarkt machte, um den Kabelkanal zu kaufen.+Aber das 3D-Modell der Planung konnte schnell ein CAD-Modell einer Schablone ausgeben, welches frisch gesliced an den [[ausstattung:labor:3d_drucker|3D Drucker - Prusa i3 MK3s]] ging, während ich einen Spaziergang in den Baumarkt machte, um den Kabelkanal zu kaufen.
  
 {{:projekte:2023:1d-pong_schablon_render.jpg?400|Ansicht vom 3D-Modell der Schablone. Sie hat 5 Löcher für die LED-Leuchten und eins für die Arcade-Tasten}} {{:projekte:2023:1d-pong_schablon_render.jpg?400|Ansicht vom 3D-Modell der Schablone. Sie hat 5 Löcher für die LED-Leuchten und eins für die Arcade-Tasten}}
Zeile 76: Zeile 76:
  
 {{:projekte:2023:1d-pong_schablone_tisch.jpg?400|Die Schablone liegt neben dem Kabelkanal auf dem Tisch}} {{:projekte:2023:1d-pong_schablone_tisch.jpg?400|Die Schablone liegt neben dem Kabelkanal auf dem Tisch}}
-{{:projekte:2023:1d-pong_schablone_klemmt.jpg?400|Die Schablone Klemmt im Deckel vom Kabelkanal}}+{{:projekte:2023:1d-pong_schablone_klemmt.jpg?400|Die Schablone klemmt im Deckel vom Kabelkanal}}
  
 Die Schablone lässt sich also nur mit etwas Kraft verschieben und auch nur in einer Richtung, während die anderen beiden Richtungen fest sind. Die Schablone lässt sich also nur mit etwas Kraft verschieben und auch nur in einer Richtung, während die anderen beiden Richtungen fest sind.
Zeile 101: Zeile 101:
 Der Nubsel wurde zum CAD-Modell hinzugefügt und dabei auch die nötige Verlängerung mit angebracht, damit die Gesamthöhe passt. Der Nubsel wurde zum CAD-Modell hinzugefügt und dabei auch die nötige Verlängerung mit angebracht, damit die Gesamthöhe passt.
 Dass die Höhenanpassung auf der Seite erfolgte, bietet zudem etwas mehr Platz für die Anschlussleitungen. Dass die Höhenanpassung auf der Seite erfolgte, bietet zudem etwas mehr Platz für die Anschlussleitungen.
-Einen Ausdruck später passte die Höhe ohne Unterlagscheibe und es wackelte es nicht mehr, also wurde die zweite Taste genauso umgerüstet.+Einen Ausdruck später passte die Höhe ohne Unterlagscheibe und es wackelte nicht mehr, also wurde die zweite Taste genauso umgerüstet.
 Trotzdem fühlten sich die Tasten irgendwie tot an und boten kein tolles Gefühl, da der Schaltpunkt nicht spürbar war. Trotzdem fühlten sich die Tasten irgendwie tot an und boten kein tolles Gefühl, da der Schaltpunkt nicht spürbar war.
 Also yeetete ich die Alps SKCL Cream Switches (linear) und setzte stattdessen auf Alps SKCM White Switches (clicky), welche den Tasten ein sehr erfüllendes Schaltgefühl verpassen. Also yeetete ich die Alps SKCL Cream Switches (linear) und setzte stattdessen auf Alps SKCM White Switches (clicky), welche den Tasten ein sehr erfüllendes Schaltgefühl verpassen.
Zeile 154: Zeile 154:
 Bei der [[https://www.topmodellfabrik.de/|topmodellfabrik]] kündigte sich eine Bestellung bei [[https://jlcpcb.com/|JLC-PCB]] an, bei der ich mich anschließen durfte, was die ideale Gelegenheit bot, noch etwas CAD in dieses Projekt zu bringen. Bei der [[https://www.topmodellfabrik.de/|topmodellfabrik]] kündigte sich eine Bestellung bei [[https://jlcpcb.com/|JLC-PCB]] an, bei der ich mich anschließen durfte, was die ideale Gelegenheit bot, noch etwas CAD in dieses Projekt zu bringen.
  
-===== Side-Quest: PCB-Design =====+=== Side-Quest: PCB-Design ===
 {{ :projekte:2023:1d-pong_pcbs_single.jpg|Ansicht der Leiterplatten Ober- sowie Unterseite}} {{ :projekte:2023:1d-pong_pcbs_single.jpg|Ansicht der Leiterplatten Ober- sowie Unterseite}}
 Die Anforderungen waren schnell klar: Die Anforderungen waren schnell klar:
Zeile 177: Zeile 177:
       * Rest abschneidbar um Platz zu sparen       * Rest abschneidbar um Platz zu sparen
     * Pull-Up/-Down für nicht zwingend benötigte Anschlüsse     * Pull-Up/-Down für nicht zwingend benötigte Anschlüsse
-    * GND-Ausgang für Dauer-An um z. B. [[https://www.werma.com/de/s_c1684i7007/65760055.html|eSIGN]] oder [[https://www.werma.com/en/s_c0i6509/86200003.html|Transceiver]] versorgen zu können+    * GND-Ausgang für Dauer-An um z. B. [[https://www.werma.com/produkte/signalsaeulen/esign/|eSIGN]] oder [[https://www.werma.com/WeASSIST-AndonWireless-Transceiver868MHz/86200003|Transceiver]] versorgen zu können
   * Einfach und universell einsetzbar   * Einfach und universell einsetzbar
     * Pfeile für Richtung des Datenflusses     * Pfeile für Richtung des Datenflusses
Zeile 258: Zeile 258:
 Geplant ist noch eine einfache Weboberfläche. Geplant ist noch eine einfache Weboberfläche.
 Darüber sollen neben Soundausgabe und Rundenzahl auch die verwendeten Farben konfigurierbar sein. Darüber sollen neben Soundausgabe und Rundenzahl auch die verwendeten Farben konfigurierbar sein.
-Statistiken wie Anzahl gespielter/abgebrochener Spiele, Insgesamt erzielter Punkte, Anzahl erfolgreicher/verfehlter Schläge und ähnliches könnten da auch ausgegeben werden.+Statistiken wie Anzahl gespielter/abgebrochener Spiele, insgesamt erzielter Punkte, Anzahl erfolgreicher/verfehlter Schläge und ähnliches könnten da auch (per API) ausgegeben werden.
  
-Vorschläge für weitere Idle-Animationen werden auch angenommen+Mehr "Spielmodi" sind auch geplant: 
-Sie müssen mit den sieben Zuständen Rot, Orange, Grün, Cyan, Blau, Violett und Weiß auskommen.+  * Bis x Punkte (Bereits implementiert, einzig verfügbarer) 
 +  * Bis x Punkte bei y Punkten Mindestabstand; oder bis der Punktezähler voll ist 
 +  * Gewinner von x Runden (Extra-Runde bei Gleichstand) 
 +  * Evtl. etwas mit unausgewogenen Schlägergrößen und Boosts; sich bewegenden Schlägern, ... 
 +    * Schlagt mir gerne Ideen vor 
 + 
 +Vorschläge für weitere Idle-Animationen werden auch angenommen; sie müssen jedoch mit den sieben Zuständen Rot, Orange, Grün, Cyan, Blau, Violett und Weiß auskommen.
  
 Der Code ist hier veröffentlicht: [[https://github.com/Pixtxa/1D-Pong|1D-Pong Quellcode]] Der Code ist hier veröffentlicht: [[https://github.com/Pixtxa/1D-Pong|1D-Pong Quellcode]]
Zeile 268: Zeile 274:
 {{:projekte:2023:1d-pong_gameplay.mp4|1D-Pong Spiel in Betrieb. Beim Zurückschlagen des Balls ertönt ein kurzes Piepen, beim Verfehlen piept es 3x während der neue Punktestand aufblinkt}} {{:projekte:2023:1d-pong_gameplay.mp4|1D-Pong Spiel in Betrieb. Beim Zurückschlagen des Balls ertönt ein kurzes Piepen, beim Verfehlen piept es 3x während der neue Punktestand aufblinkt}}
  
-==== Side-Quest: Dokumentation ====+=== Side-Quest: Dokumentation ===
 Beim Bau wurden viele Bilder gemacht, die gesammelt und nun in diese Dokumentation gepackt wurden. Beim Bau wurden viele Bilder gemacht, die gesammelt und nun in diese Dokumentation gepackt wurden.
  
-Wenn man das Spiel irgendwo aufbaut, gibt es immer interessierte, die das sehen wollen.+Wenn man das Spiel irgendwo aufbaut, gibt es immer Interessierte, die das sehen wollen.
 Ein Link zu dieser Wiki-Seite ist aber sehr lang und macht QR-Codes entsprechend groß. Ein Link zu dieser Wiki-Seite ist aber sehr lang und macht QR-Codes entsprechend groß.
 Um eine eigene, (für mich) einfach zu merkende Kurz-Url zu haben, kümmerte ich endlich darum, wie ich einen Webserver auf meinen Cloud-Computer bekomme und mit meiner Domain verknüpfe, um die Domain endlich mal sinnvoll zu nutzen und auch [[https://pixtxa.de/1D-Pong|Pixtxa.de/1D-Pong]] anbieten zu können. Um eine eigene, (für mich) einfach zu merkende Kurz-Url zu haben, kümmerte ich endlich darum, wie ich einen Webserver auf meinen Cloud-Computer bekomme und mit meiner Domain verknüpfe, um die Domain endlich mal sinnvoll zu nutzen und auch [[https://pixtxa.de/1D-Pong|Pixtxa.de/1D-Pong]] anbieten zu können.
Zeile 281: Zeile 287:
   * Punktanzeige in Spielfeldmitte   * Punktanzeige in Spielfeldmitte
   * Spiel gewinnen: Als erstes die zu erreichenden Punkte erzielen   * Spiel gewinnen: Als erstes die zu erreichenden Punkte erzielen
-    * Default-Wert nach Powercycle: 10 Punkte+    * Default-Wert nach Powercycle: Punkte
     * Konfigurationsbereich: 1-16 Punkte     * Konfigurationsbereich: 1-16 Punkte
   * Hinweis: Boost am Schläger-Ende verfügbar   * Hinweis: Boost am Schläger-Ende verfügbar
Zeile 290: Zeile 296:
 Die meisten Tische oder Biertische bieten sich gut als Unterlage an. Die meisten Tische oder Biertische bieten sich gut als Unterlage an.
 Die Kombination aus Brüstungsgeländer und Kabelbinder kann auch gut funktionieren. Die Kombination aus Brüstungsgeländer und Kabelbinder kann auch gut funktionieren.
-Das Spiel ist in jeder Ausrichtung betreibbar.+Das Spiel selbst ist in jeder Ausrichtung betreibbar; jedoch sollte beachtet werden, dass (idealerweise unabhängig der Körpergröße) die Tasten gut erreichbar und die LED-Leuchten zum Spielen auf ganzer Strecke gut einsehbar sein sollten. 
 +Letzteres am Besten auch für Publikum.
  
 Auch wenn die Werma-Beacons IP69k bieten, gilt das leider nicht für die verwendeten Arcade-Buttons, welche nicht mal Regenfest sind. Auch wenn die Werma-Beacons IP69k bieten, gilt das leider nicht für die verwendeten Arcade-Buttons, welche nicht mal Regenfest sind.
Zeile 304: Zeile 311:
 Beim Überlauf wird die Sound-Ausgabe umgeschaltet (aus/an) und es wird erneut hochgezählt. Beim Überlauf wird die Sound-Ausgabe umgeschaltet (aus/an) und es wird erneut hochgezählt.
 Beim loslassen wird die Konfiguration übernommen. Beim loslassen wird die Konfiguration übernommen.
-Hält man also die Tasten, bis beide Teams Punkte haben und lässt dann los, laufen fortan die Spiele so lange, bis eine Seite Punkte erzielt. +Hält man also die Tasten, bis beide Teams 10 Punkte haben und lässt dann los, laufen fortan die Spiele so lange, bis eine Seite 10 Punkte erzielt. 
-Beim Powercycle wird wieder die Standard-Konfiguration geladen: Mit Sound-Ausgabe bis 10 Punkte.+Beim Powercycle wird wieder die Standard-Konfiguration geladen: Mit Sound-Ausgabe bis Punkte.
  
 Vom Öffnen des Kabelkanals ist abzusehen, da sich das Controllerboard beim Schließen des Kabelkanals gerne verklemmt. Vom Öffnen des Kabelkanals ist abzusehen, da sich das Controllerboard beim Schließen des Kabelkanals gerne verklemmt.
 Auf der Unterseite sind Löcher, durch die man rein schauen kann; zudem gibt es unter [[https://pixtxa.de/1D-Pong|Pixtxa.de/1D-Pong]] die Projektdoku zu finden. Auf der Unterseite sind Löcher, durch die man rein schauen kann; zudem gibt es unter [[https://pixtxa.de/1D-Pong|Pixtxa.de/1D-Pong]] die Projektdoku zu finden.
 +
 +===== Auswirkungen =====
 +Das 1D-Pong steht üblicherweise spielbereit im Space und wird da gerne mal zwischendurch gespielt. Es wird aber auch zu vielen Veranstaltungen mitgenommen.
 +
 +Bei der [[https://eh21.easterhegg.eu/|Easterhegg 2024]] wurden auch zwei Wesen vom [[https://cccfr.de/|CCCFr]] darauf aufmerksam und spielten sehr viel damit. 1D-Pong an sich war zwar im Chaos-Umfeld schon lange nichts neues mehr, aber der Aufbau mit Lampen im Kabelkanal anstatt einem LED-Stripe auf einem Holzbrett gefiel ihnen sehr gut. Es entstand ein kleiner Wettbewerb, so etwas nachzubauen und zwei Monate später fand ich auf der [[https://entropia.de/GPN22|GPN22]] einen Nachbau, der auf den ersten Blick recht ähnlich aussieht, der [[https://git.cccfr.de/schwarze-lunge/1d-pong|im Gitlab des CCCFr dokumentiert ist]].
 +
 +Als es bei WERMA vorbei kam, fand man die Idee dort so gut, dass man eine große Version für Messestände in Auftrag gab. Ein Schreiner baute einen in Einzelteile zerlegbaren Tisch, wo das 1D-Pong in die Tischplatte eingebaut ist. Mit allen Modulen ist es etwa vier Meter lang. Hier werden 54x die größeren [[https://www.werma.com/MC55-RGB-Dauer-Blink-Kabel-10-30VDC/24011050|MC55 ohne Sound mit festem Kabel]] genutzt und [[https://www.werma.com/MC55-Touch-S-24VDC-Akustik/24017055|MC55-Touch Smart mit Akustik]] für die Eingabe sowie Soundausgabe verwendet. Zur Ansteuerung wurden neue, kompakte Leiterplatten entworfen, die jeweils alle TPIC6C für ein Teilsegment enthalten. Die Erste enthält zudem den Mikrocontroller, Spannungsregler und Pegelwandler. Der Ausgang des letzten Schieberegisters wird zurückgeführt, damit der Controller die Spielfeldgröße ermitteln kann. Entgegen der MC35-Musterstände, die ich bekam, handelt es sich hier um den Serienstand. Sie haben leider eine kleine Start-Latenz und leuchten nicht sofort auf, wenn sie versorgt werden. Wenn sie aber bereits an sind, geht das Umschalten auf eine andere Farbe ohne merklicher Latenz. Als Workaround wird der Blink-Eingang immer dann versorgt, wenn die MC55 "aus" sein sollen. Die MC55-Touch Smart bieten drei Eingänge, um eine der 7 hinterlegten Konfigurationen zu wählen, können einiges selbst darstellen (z. B. Umschalten der Konfiguration per Verzögerung) und haben für normal/gedrückt verschiedene Leuchtbilder konfigurierbar. Manches wurde doppelt hinterlegt, um das Spiel mit Ton und echten Eingaben, den Attract-Mode ohne Ton mit virtuellen Eingaben sowie einen simplen Screensaver zu haben. Die Konfigurationswechsel haben eine kleine Latenz; da es hier jedoch nur bei Animationen zeitkritisch ist, können die Umschaltsignale einfach voreilend geschickt werden.
  • projekte/2023/1d-pong.1701651509.txt.gz
  • Zuletzt geändert: 2023/12/04 00:58
  • von pixtxa