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 )
Pappelsperrholz	Monitor-/Lautsprecherrahmen	ca. 400mm x 500mm x4mm	vorhandene Reste (Obi)	- (ca. 12 EUR)
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
Raspiberry Pi Pico	Button-Controller	vorhandene Reste (Amazon)	- (ca 8 EUR)
I2C IO-Extender	Button-Controller Anschlüsse	vorhandene Reste (Amazon (ähnlich))	- (ca 10 EUR)
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	-
Stahl-Vierkantrohr	Beine	25mmx25mm x 100cm	Obi	23,16EUR
Arcade-Joystick	Schrott-Rettung (Amazon (ähnlich))	- (ca 15 EUR)
———————	————————-	————————————–	———————————	——————
Gesamt	339,95EUR (444EUR)

Bauabschnitte

1. Holzbearbeitung

In diesem Abschnitt werden die grundlegenden Strukturen des Cabinets geschaffen.

(Bild zeigt erste Design-Revision. Inzwischen Backbox klappbar mit diagonalen Rotationsarmen außen statt starrem Pfosten innen; 1 Display statt 2.)

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

Versteifende Querträger aus 35 x 35mm Birkenholz

Zusätzliche Abdeckungen bei Lockbar und oberhalb Playfield aus Lattenrost-Latten (Biegung nach oben)

Monitorhalter Backboard aus Lattenrost-Latten

Rotationsarm-Strebe aus Restholz

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.

Die Seitenwände der Backbox stehen auf den Seitenteilen auf und können mittels der Rotationsarme auf das Playfield geklappt werden. Der Rotationspunkt wurde empirisch (=Trial&Error) ermittelt.

Der Backboard-Monitor wurde mit parallelen Lattenrost-Latten eingefasst, um den Breitenunterschied zur Backbox auszugleichen. Der Monitor ist seitlich mit diesen verschraubt.

Diverse kleine Holzelemente wurden passend zugeschnitten, um als Führung und Anschlag der Beine zu fungieren. Sie sind mit den Rahmenwinkeln und den Seitenteilen verschraubt.

Der Monitor wurde mit 4mm Sperrholz eingerahmt. Ebenso die sichtbaren Lautsprecher neben dem DOT-Matrix Display. Dazu wurden Startlöcher gebohrt und dann mit Hand-Bügelsäge Innenflächen ausgesägt. Eine zusäzliche 6mm Sperrholzplatte ist als Boden eingelegt.

2. Metallarbeiten

Metallwinkel (verzinkter Stahl) 40 x 40mm

Metallplatten (verzinkter Stahl) 120 x 60mm

Maschienenschrauben (Sechskantkopf) 120 x 10mm

Flügelmuttern 10mm

verschiedenen Holzschrauben, 5mm + kleiner

30mm x 30mm Vierkantrohr-Winkel (ehemals C-förmiger Rahmen des Glasplatten-spendenden Glasregals)

25x25mm Stahl-Vierkantrohr als Beine

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 verwendet sowie zur Verstärkung der hinteren Rückwand/Seitenwand-Verbindung.

Die C-förmigen Rahmenteile des Glasregals wurden per Hand in Winkelstücke zersägt, mit zusätzlichen Löchern versehen und als Versteifung/tragender Rahmen innen an die OSB Platten verschraubt. Auf ihnen liegt die Bodenplatte auf.

Die Beine bestehen aus 25x25mm Stahl-Vierkantrohr (vorne auf ca 65cm gekürzt, hinten 100cm), die lediglich in Führungen eingeschoben und damit auch abgenommen werden können.

Im weitestens Sinn Metallbearbeitung: Die aus einem Glastisch gewonnene Glasplatte musste von verklebten Metallzylindern befreit werden, die vorher die Verschraubung mit dem 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.

PC with i5 3570 3.48GHz, Gigabyte Mainboard, 16GB DDR3 RAM, AMD Radeon RX570

42Zoll Sony Bravia KDL-42W655A (1920×1080) + 22Zoll 16:10 DVI/HDMI (1920×1080)

Arduino Leonardo + MCP23017 IO-Extender

verschiedenen Taster

Lautsprecher-Set des TV

4x 3W 8Ohm Lautsprecher

2x10W Verstärker (bisher nur für TV-Lautsprecher)

2x 64×32 Pixel Dot-Matrix-Display

ESP32 Controller für DMD

Ein alter Gaming PC mit aktualisierter CPU/Mainboard Kombi + eine halbwegs neue Grafikkarte bilden die Rechenbasis. Die Systemeistung ist ausreichend. 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.

Der ESP32 wurde mit der ZeDMD Software bespielt und nimmt Befehle mittels USB/Serial vom PC entgegen.

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.

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

bisher keine

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

??/01/2023 Dot-Matrix-Display ergänzt

??/02/2023 Rückbau auf einen Backbox-Monitor; Metallrahmen und -beine; Klappmodus der Backbox zum Transport

28/02/2023 Erstmals Transport zum ByteSpeicher und Test durch Vereinsmitglieder

02/03/2023 Update Wikiseite mit aktuellem Stand

Galerie