Virtual Pinball Cabinet Projekt

Einleitung

Das Virtual Pinball Cabinet Projekt zielt darauf ab, einen interaktiven virtuellen Flipperautomaten zu bauen. Dieses Dokument bietet eine detaillierte Übersicht über die verschiedenen Bauabschnitte, Materialien und die Aufteilung der Arbeit in Holzbearbeitung, Metallarbeiten, Elektronik, Programmierung und Gestaltung. Das Projekt hat derzeit einen Stand erreicht, in dem der Automat bespielbar ist, aber nur Basisfeatures enthält und noch viele Erweiterungen möglich sind.

Teileliste

Material	Zweck	Menge / Dimensionen	Bezugsquelle	Preis
———————	————————-	————————————–	———————————	——————
OSB Platten	Äußeres Gehäuse	ca. 2 Platten 169cm x 62,5cm x 12mm	vorhandene Reste (B1 Baumarkt)	- ( 10,70EUR)
Dachlatten	Auflagen und Verbindungsstücke	ca 1x 2m x 18mm x 36mm	vorhandene Reste (B1 Baumarkt)	- ( 1,50EUR)
Vierkantholz	Querstreben	ca 1x 2m x 25mm x 25mm	vorhandene Reste (Obi)	- (ca. 5,38EUR)
Tischlerplatte	Lockbar Handauflage	ca 100mm x 600mm x 20mm	vorhandene Reste (Obi)	- (ca 10,00EUR )
Lattenrost-Latten	Zierholz und Halterungen	ca 4x 90cm x 40mm x 10mm	vorhandene Reste (Iea)	- ( 25,00EUR)
Glasplatte	Spielfeldabdeckung	56cm x 90cm x 12mm	Kleinanzeigen (Glasregal)	15EUR
Vierkantrohr-Metallwinkel	Innerer Rahmen	40mm x 40mm x 35cm/15cm	Kleinanzeigen (Glasregal-Rahmen)	- (s.o.)
Metallwinkel	Befestigung Lockbar & Rahmen	50mm x 40mm x 1,5mm	vorhandene Reste (B1 Baumarkt)	(ca 2,00 EUR)
Metall-Lochverbinderplatten	Befestigung Lockbar/Glasplatte	50mm x 120mm x 1,5mm	vorhandene Reste (B1 Baumarkt)	(ca 4,00 EUR)
div. Schrauben, Muttern	Befestigungen	Schraubenking	ca 30 EUR
Arcade-Buttons	Spieler-Interface	10x rund & eckig	AliExpress	ca 20 EUR
Arduino Leonardo + I2C IO-Extender	Button-Controller	vorhandene Reste (EXP-Tech)	- (ca 30EUR)
ESP32	Dot_Matrix-Controller	AliExpress	3,30EUR
Dot-Matrix-Display	Punkteanzeige	2x 64px x 32px	AliExpress	26,96EUR
PC Gehäuse + Netzteil + HDD	550Watt PSU / 120GB HDD	vorhandene Reste	-
CPU + Mainboard + RAM	Intel i5 3570 / 16GB DDR3	Kleinanzeigen	45EUR
Grafikkarte	AMD Radeon RX570	Kleinanzeigen	70 EUR
LCD 43Zoll TV	Hauptspielfeld	Sony Bravia KDL-42W655A (1920×1080)	Kleinanzeigen	90 EUR
LCT 22Zoll 16:10	Backpanel Monitor	Phillips	Kleinanzeigen	5 EUR
Lautsprecher	Spielfeldgeräusche	4x 8Ohm 3Watt 103mm	Pollin	3,60 EUR
Stereo-Verstärker	3x 20Watt 12V	AliExpress	7,93EUR]
diverse Kabel	vorhandene Reste	-
———————	————————-	————————————–	———————————	——————
*Gesamt*	316,79EUR (405EUR)

Bauabschnitte

1. Holzbearbeitung

In diesem Abschnitt werden die grundlegenden Strukturen des Cabinets geschaffen.

Schritt	Beschreibung	Materialien	Status / Helfer
———	———————————-	———————————	——————-
1	Design und Planung	CAD-Programm	60%
2	Bau des Holzrahmens	Holzleisten, MDF-Platten, Säge	90% (Prototyp)
3	Montage der Struktur	Holzleim, Schrauben, Winkel	90% (Prototyp)

Optionen:

Metall + Holz

Auf einen Metallrahmen brauchen nur dünne Sperrholzplatten als Einfassung geschraubt werden.

Je ein Kasten für Hauptspielfeld + Backplane

Aussparungen für Monitore, Lautsprecher, Taster

Klappen als Wartungszugang

Montagehilfen innen für PC, Lautsprecher, etc.

Holzrahmen

Ohne Metallrahmen braucht es eine Holz-Rahmenkonstruktion

ca 40x30mm Kantholz als Material

+ Einfassung wie oben

Selbsttragende Holzplatten

Mit dickeren Multiplex-Platten + Metallwinkel können die Kästen auch selbsttragend gebaut werden (teurer)

Braucht immer noch Kantholz für Beine, oder Schraub-Möbelbeine von Ikea

Ausführung (Prototyp)

12mm OSB Platten nach Maßen einer Standard-Cabinets zugeschnitten (auf glatte, metrische Werte gerundet)

Eckstücke und vordere Auflagen für den Playfield-Monitor aus Dachlattenabschnitten 24 × 48 mm

Handauflage (Lockbar) aus 21mm Tischlerplatte

Hintere Monitorauflage / Versteifung aus 40 x 40mm Birkenholz

Hintere Abdeckung = Top-Box-Boden aus 21mm Spanplatte

Monitorhalter aus 70 x 50 mm Fichtenholz

Beine aus 80 x 100mm Fichtenholz

Die Platten wurde (schlecht) mit einer Stichsäge zugesägt, hierzu wurde jeweils ein vorher ausgemessener Anschlag mit Schraubzwingen am Werkstück befestigt, um möglichst gerade Schnitte zu erhalten. Eine (Tisch- oder Kappschienen-)Kreissäge wäre hier besser gewesen. Schnittkanten wurden mittels Band- und Handschleifen entgratet. Nötiger Löcher mit 5mm vorgebohrt und gesenkt. Entwaig vohandene Nut/Feder an den Platten wurde entfernt.

Weitere Rahmenteile wurden aus Resthölzern mit der Handsäge zugeschnitten. Schnittlinien wurden mit Stahlwinkel angezeichnet, um möglichst winkeltreu zu bleiben. Löcher wurden ggfs. mit 2mm vorgebohrt, um ein Spalten des Holzes zu verhindern.

Der senkrechte Monitorhalter sitzt in zwei bündigen Durchführungen, die mit einer Bügel-Laubsäge nach aufbohren der Ecken ausgeschnitten wurden. Er ist damit einfach abnehmbar. Am unteren Ende wurde dazu ein Dachlattenstück auf die untere Querstrebe gedoppelt.

Die Rückwand und Seitenwände hängen mit ihrer Querstrebe auf dem Monitorhalter. Sie ist dort mittels 2 Holzdübeln gegen verrutschen und verdrehen gesichert. Zusätzlich liegt die untere Kante der Rückwand auf einem mit den Beinen verschraubten Querstreifen aus OSB Material auf. Die Rückwand trägt damit nicht zur Stabilität des Rahmens bei, ist dafür als höchstes Element und zum Zugang zu den Monitoren leicht demontierbar.

Die Beine stammen aus einem vorherigen Projekt und dienen zusätzlich als Eckwinkel der Versteifung des Rahmens.

2. Metallarbeiten

Hier erfolgt die Installation von Metallkomponenten für die Stabilität und das authentische Aussehen des Cabinets.

Schritt	Beschreibung	Materialien	Status & Helfer
———	——————————-	——————————–	——————
1	Bau des Rahmens + Beine	Metallrohre, Schweißgerät, Gummifüße	0% (Helfer: maddi?
2	Montage von Metallteilen	Schrauben, Bohrer, Gewindeschneider	15% (nur Befestigungsmaterial)

Idee:

Tragender Rahmen aus 4-Kant-Rohr + Backplane-Stütze + Beine (abnehmbar?)

Gummifüße oder (gut!) blockierbare Rollen

Optional: VESA-Halterung für Monitore, idealerweise klappbar für Wartungszugriff

Umsetzung (Prototyp)

Für den Prototyp wurde eine reine Holzkonstruktion verwendet. Metallarbeiten beschränken sich auf Befestigungslösungen.

Metallwinkel (verzinkter Stahl) 40 x 40mm

Metallplatten (verzinkter Stahl) 120 x 60mm

Maschienenschrauben (Sechskantkopf) 120 x 10mm

Flügelmuttern 10mm

verschiedenen Holzschrauben, 5mm + kleiner

Zur Befestigung der Handauflage und der Glasplatte wurde eine Kombination einer Metallplatte (nimmt Gewicht der Glasplatte auf und leitet es in den Rand der OSB Platte und in die Handauflage) und eines Winkels (leitet das Gewicht der Handauflage in die vordere OSB Platte) verwendet. Dabei sind beide Elemente nur mit der Handauflage verschraubt, so dass diese abnehmbar bleibt. Die Metallplatte wurde mittels schwarzem Gaffa-Tape für die Auflage der Glasplatte gepolstert und versteckt.

Metallwinkel wurden ebenfalls zur Befestigung der Querstrebe der hinteren Playfield-Monitor-Halterung und des Backbox-Bodens verwendet.

Zur Befestigung der Beine werden Maschienenschrauben mit Flügelmuttern (innen) verwendet. Beide Platten-Seiten werden verschraubt, so dass die Beine selbst zusätzlich zur Steifigkeit des Rahmens beitragen.

Im weitestens Sinn Metallbearbeitung: Die aus einem Glastisch gewonnene Glasplatte musste von verklebten Metallzylindern befreit werden, die vorher die Verschraubung mit dme Rahmen ermöglichten. Hierzu wurden diese mittels Heisluftpistole auf >150Grad C erhitzt und mittels Rohrzange abgedreht. Klebereste liessen sich mit Aceton + Schaber entfernen.

3. Elektronik

Die Elektronikkomponenten ermöglichen die Interaktivität des Virtual Pinball Cabinets.

Schritt	Beschreibung	Materialien	Status / Helfer
———	——————————-	——————————-
1	Einbau der Monitore	Spielflächenmonitor, Backboardmonitor, Kabel
2	Verkabelung der Tasten	Tasten (mind. 3x), Kabel, Stecker
3	Anschluss der Elektronik	PC, HID-Controller, Kabel
4	Integration von Lautsprechern	Lautsprecher, Audiokabel

Kriterien für den Hauptmonitor:

ca 42 Zoll (50cm-60cm breit)

mind. FullHD; 4k sieht besser aus, braucht aber unnötig teure Grafikkarte

guter Blickwinkel bis 170 Grad oder besser in alle Richtungen

120Hz oder bessere Widerholfrequenz

5ms Reaktion oder besser

Kriterien für den Backboard-Monitor:

ca 23 Zoll

Optional: Dot-Matrix Punkte-Display:

ca 35cm x 8cm

Kriterien PC:

Ca. 3gHz QuadCore i5

Grafikkarte mit 2 Ausgängen, stark genug für FullHD/4k 3D-Ausgabe je nach Spielfeldmonitor

viel RAM, WLAN, moderat große SSD

optional USB 3.0 oder besser für spätere Kinect-Erweiterung

Umsetzung (Prototyp)

PC with E6600 Core2Duo 2.4GHz, Asus P5k-E Mainboard (Wifi + 7.1 Sound), 16GB DDR3 RAM, AMD Radeon RX570

42Zoll Sony Bravia KDL-42W655A (1920×1080) + 23Zoll 16:10 DVI/HDMI (1920×1080) + 18Zoll 4:3 DVI/VGA (1280×1024)

Arduino Leonardo + MCP23017 IO-Extender + VS1053 MP3 + SD-Card shield + 2x 4W speaker

verschiedenen Taster + 1 Drehencoder

2.1 aktives PC-Speaker Set

Ein (ur-)alter Gaming PC + eine halbwegs neue Grafikkarte bilden die Rechenbasis. Die Systemeistung reicht für die meisten Flippertische, produziert aber unterdurchschnittliche Frameraten. Ein Linux Mint XFCE wurde als OS aufgespielt, was die Einrichtung der Software erschwert, dessen Windows-Variante erst vor knapp einem Jahr auf Linux portiert wurde.

Ein Arduino Leonardo fragt mittels eine I2C IO-Extenders mehrere Drucktaster ab, wandelt sie in reguläre Tastatureingaben und schickt diese via USB an den Rechner. Da von einem vorherigen Aufbau ein MP3-Shield vorhanden war, wurden zusätzlich Lautsprecher nahe den Drucktastern montiert um direkte Feedbackgeräusche abzuspielen. Ein Drehencoder realisiert die Lautstärkeregelung.

Links

Pinscape Controller and various guides

CC-BY4.0 Copyright ©2016-2023 Michael J. Roberts.

4. Programmierung

Dieser Abschnitt befasst sich mit der Softwareintegration für das Virtual Pinball Erlebnis.

Schritt	Beschreibung	Software
———	——————————-	——————————-
1	Installation des Betriebssystems	Mint-Linux (alternative: Windows10)
2	Konfiguration der Pinball-Software	Visual Pinball X oder Future Pinball
3	Programmierung von Spezialfunktionen	Für HID-Controller

Betriebssystem:

Standardplatform für die gängigen Emulatoren in der Community ist Windows

Man findet Anleitungen und komplexe Installer

Die Emulatoren selbst laufen laut News-Meldungen auch auf Linux

→ trotzdem erster Versuch mit Linux

Emulatoren

Visual Pinball X

Weit verbreitet, viele Tische

Mehrere Versionen parallel um Umlauf mit schwieriger Kreuz-Kompatibilität

Future Pinball

älter, nicht mehr aktuell weitergeführt(??)

VPinMame

Führt die Original-ROMs der echten Tische aus

in VPX/FP integriert

Installation Visual Pinball

git clone https://github.com/vpinball/vpinball.git
cd vpinball/
git checkout standalone
sudo apt install cmake bison zlib1g-dev libdrm-dev libgbm-dev libglu1-mesa-dev libegl-dev libudev-dev libx11-dev libxrandr-dev g++ curl unzip
perl -i -pe"s/0/1887/g" git_version.h
perl -i -pe"s/unknown/f3263bf/g" git_version.h
cd standalone/linux/
./external.sh
cd ../..
cp standalone/cmake/CMakeLists_gl-linux-x64.txt CMakeLists.txt
sed -i s/3.26/3.22/g CMakeList.txt
mkdir -p build/Debug
cmake -DCMAKE_BUILD_TYPE=Release -B build/Release
cmake --build build/Release -- -j2
mkdir tmp
cp build/Release/setup.sh tmp
cp build/Release/VPinballX_GL tmp
cp build/Release/*.so tmp
cp build/Release/*.so.* tmp
cp -r build/Release/flexdmd tmp
cp -r build/Release/shader tmp
cp -r build/Release/assets tmp
cp -r build/Release/scripts tmp
cp -r build/Release/tables tmp
cp -r build/Release/docs tmp
cd tmp

Links

VPX build-CIs for linux: https://github.com/vpinball/vpinball/actions/runs/7151948501

VPX Standlone Developer's Site

Batocera Linux Dsitribution with pre-installed VPinball

|Batocera Wiki about VPinball

Deutsches Blog mit Baubeschreibung

5. Gestaltung

Die ästhetische Gestaltung verleiht dem Virtual Pinball Cabinet seinen einzigartigen Charakter.

Schritt	Beschreibung	Materialien
———	——————————-	——————————-
1	Lackierung und Verzierung	Farben, Pinsel, Spraydosen
2	Anbringung von Grafiken	Vinyl-Aufkleber, Airbrush
3	Beleuchtungseffekte hinzufügen	LED-Streifen, Kabel

Status

09/12/2023 Wiki-Artikel angelegt

09/12/2023 Visual-Pinball-X Test auf Windows-PC (nur teilweise erfolgreich)

09/12/2023 Test-PC (2.7GHz Dual-Core) + 21 Zoll 16:10 Monitor + 18 Zoll 4:3 Monitor aquiriert; Linux-Installation vorbereitet

10/12/2023 Linux Mint 21.2 XFCE installiert, VpinballX-Standalone geclont und compiliert → stürzt beim Start ab

11/12/2023 Radeon HD4850 gegen RX570 getauscht (70€), da OpenGL4.6 Mindestanforderung → VPX standalone läd Demo-Tisch!

12/12/2023 Sony Bravia 42'' FullHD 200Hz Display besorgt (90€); Debug-Umgebung auf Debian-in-WSL2 eingerichtet: GPU unterstützt nur OpenGL3.2, SW-Renderer 4.5, aber zu langsam. Für Debugging trotzdem ok.

16/12/2023 Taster + Arduino Leonardo installiert

19/12/2023 VPinball mit mehreren Tischen lauffähig dank besserer Quellen für Tische, ROMs und Backglasses. Allerdings ohne Punkteanzeige. Lautsprecher hinzugefügt.

22/12/2023 3-Monitor-Setup lauffähig inkl. Punkteanzeige, allerdings nur auf einigen Tischen

24/12/2023 Probespielen durch die Familie

30/12/2023 Ursache für fehlende Punktanzeige gefunden, neue Einstellung nötig → Folgeprobleme mit Darstellung

Galerie