Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| projekte:virtualpinballcabinet [04.01.2024 12:21] – [Galerie] Bilder hinzugefügt chaos | projekte:virtualpinballcabinet [24.11.2024 17:18] (aktuell) – [4. Programmierung] + ZeDMD + PinballController chaos | ||
|---|---|---|---|
| Zeile 3: | Zeile 3: | ||
| === Einleitung === | === 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, | + | Das Virtual Pinball Cabinet Projekt zielt darauf ab, einen interaktiven virtuellen Flipperautomaten zu bauen. Dieses Dokument bietet eine detaillierte Übersicht über die verschiedenen Bauabschnitte, |
| + | |||
| + | === Teileliste === | ||
| + | |||
| + | | Material | ||
| + | |---------------------|-------------------------|--------------------------------------|---------------------------------|------------------| | ||
| + | | OSB Platten | ||
| + | | Dachlatten | ||
| + | | Vierkantholz | ||
| + | | Tischlerplatte | ||
| + | | Pappelsperrholz | ||
| + | | Lattenrost-Latten | ||
| + | | Glasplatte | ||
| + | | Vierkantrohr-Metallwinkel | Innerer Rahmen | ||
| + | | Metallwinkel | ||
| + | | Metall-Lochverbinderplatten | Befestigung Lockbar/ | ||
| + | | div. Schrauben, Muttern | ||
| + | | Arcade-Buttons | ||
| + | | Raspiberry Pi Pico | Button-Controller | ||
| + | | I2C IO-Extender | ||
| + | | ESP32 | Dot_Matrix-Controller | ||
| + | | Dot-Matrix-Display | ||
| + | | Beschleunigungssensor | ||
| + | | PC Gehäuse + Netzteil + HDD | | 550Watt PSU / 120GB HDD | vorhandene Reste | - | | ||
| + | | CPU + Mainboard + RAM | ||
| + | | Grafikkarte | ||
| + | | LCD 43Zoll TV | Hauptspielfeld | ||
| + | | LCT 22Zoll 16:10 | Backpanel Monitor | ||
| + | | Lautsprecher | ||
| + | | Stereo-Verstärker | ||
| + | | diverse Kabel | ||
| + | | Stahl-Vierkantrohr | ||
| + | | Arcade-Joystick | ||
| + | | Transportgriffe (federnd) | ||
| + | |---------------------|-------------------------|--------------------------------------|---------------------------------|------------------| | ||
| + | | **Gesamt** | | | | 358,39EUR (462EUR)| | ||
| + | |||
| === Bauabschnitte === | === Bauabschnitte === | ||
| Zeile 11: | Zeile 47: | ||
| In diesem Abschnitt werden die grundlegenden Strukturen des Cabinets geschaffen. | In diesem Abschnitt werden die grundlegenden Strukturen des Cabinets geschaffen. | ||
| - | | Schritt | Beschreibung | ||
| - | |---------|----------------------------------|---------------------------------|-------------------| | ||
| - | | 1 | Design und Planung | ||
| - | | 2 | Bau des Holzrahmens | ||
| - | | 3 | Montage der Struktur | ||
| - | |||
| - | ==== 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, | ||
| - | * Klappen als Wartungszugang | ||
| - | * Montagehilfen innen für PC, Lautsprecher, | ||
| - | |||
| - | === 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) === | ||
| {{ : | {{ : | ||
| + | (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) | * 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 | * Eckstücke und vordere Auflagen für den Playfield-Monitor aus Dachlattenabschnitten 24 × 48 mm | ||
| * Handauflage (Lockbar) aus 21mm Tischlerplatte | * Handauflage (Lockbar) aus 21mm Tischlerplatte | ||
| - | * Hintere Monitorauflage / Versteifung | + | * Versteifende Querträger |
| - | * Hintere Abdeckung = Top-Box-Boden | + | * Zusätzliche Abdeckungen bei Lockbar und oberhalb Playfield |
| - | * Monitorhalter aus 70 x 50 mm Fichtenholz | + | * Monitorhalter |
| - | * Beine aus 80 x 100mm Fichtenholz | + | * Rotationsarm-Strebe |
| 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. | 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. | ||
| Zeile 49: | Zeile 64: | ||
| Weitere Rahmenteile wurden aus Resthölzern mit der Handsäge zugeschnitten. Schnittlinien wurden mit Stahlwinkel angezeichnet, | Weitere Rahmenteile wurden aus Resthölzern mit der Handsäge zugeschnitten. Schnittlinien wurden mit Stahlwinkel angezeichnet, | ||
| - | Der senkrechte Monitorhalter sitzt in zwei bündigen Durchführungen, | + | Die Seitenwände |
| - | Die Rückwand und Seitenwände hängen | + | Der Backboard-Monitor wurde mit parallelen Lattenrost-Latten eingefasst, um den Breitenunterschied zur Backbox auszugleichen. Der Monitor |
| - | + | ||
| - | Die Beine stammen aus einem vorherigen Projekt und dienen zusätzlich als Eckwinkel der Versteifung des Rahmens. | + | |
| + | Diverse kleine Holzelemente wurden passend zugeschnitten, | ||
| + | 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 ===== | ===== 2. Metallarbeiten ===== | ||
| - | |||
| - | Hier erfolgt die Installation von Metallkomponenten für die Stabilität und das authentische Aussehen des Cabinets. | ||
| - | |||
| - | | Schritt | Beschreibung | ||
| - | |---------|-------------------------------|--------------------------------|------------------| | ||
| - | | 1 | Bau des Rahmens + Beine | Metallrohre, | ||
| - | | 2 | Montage von Metallteilen | ||
| - | |||
| - | === 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. | ||
| {{: | {{: | ||
| Zeile 81: | Zeile 81: | ||
| * Flügelmuttern 10mm | * Flügelmuttern 10mm | ||
| * verschiedenen Holzschrauben, | * verschiedenen Holzschrauben, | ||
| + | * 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 | 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, | (leitet das Gewicht der Handauflage in die vordere OSB Platte) verwendet. Dabei sind beide Elemente nur mit der Handauflage verschraubt, | ||
| - | Metallwinkel wurden ebenfalls zur Befestigung der Querstrebe der hinteren Playfield-Monitor-Halterung | + | Metallwinkel wurden ebenfalls zur Befestigung der Querstrebe der hinteren Playfield-Monitor-Halterung verwendet |
| - | Zur Befestigung der Beine werden Maschienenschrauben | + | Die C-förmigen Rahmenteile des Glasregals wurden per Hand in Winkelstücke zersägt, |
| - | Im weitestens Sinn Metallbearbeitung: | + | Die Beine bestehen |
| - | ===== 3. Elektronik ===== | + | |
| - | Die Elektronikkomponenten ermöglichen | + | Im weitestens Sinn Metallbearbeitung: |
| - | | Schritt | ||
| - | | --------- | ||
| - | | 1 | Einbau der Monitore | ||
| - | | 2 | Verkabelung der Tasten | ||
| - | | 3 | Anschluss der Elektronik | ||
| - | | 4 | Integration von Lautsprechern | ||
| - | == Kriterien für den Hauptmonitor: | + | ===== 3. Elektronik ===== |
| - | * 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: | + | Die Elektronikkomponenten ermöglichen die Interaktivität des Virtual Pinball Cabinets. |
| - | * 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 | + | * PC with i5 3570 3.48GHz, Gigabyte |
| - | * 42Zoll Sony Bravia KDL-42W655A (1920x1080) + 23Zoll | + | * 42Zoll Sony Bravia KDL-42W655A (1920x1080) + 22Zoll |
| - | | + | |
| - | * verschiedenen Taster | + | * verschiedenen Taster |
| - | | + | |
| + | * 4x 3W 8Ohm Lautsprecher | ||
| + | * 2x10W Verstärker (bisher nur für TV-Lautsprecher) | ||
| + | * 2x 64x32 Pixel Dot-Matrix-Display | ||
| + | * ESP32 Controller für DMD | ||
| + | * Schiebepotentiometer für Plunger (vorbereitet) | ||
| + | * 6-Achsen IMU (Accellerometer + Gyroskop) | ||
| - | Ein (ur-)alter Gaming PC + eine halbwegs neue Grafikkarte bilden die Rechenbasis. Die Systemeistung | + | Ein alter Gaming PC mit aktualisierter CPU/ |
| Ein Linux Mint XFCE wurde als OS aufgespielt, | Ein Linux Mint XFCE wurde als OS aufgespielt, | ||
| - | Ein Arduino Leonardo | + | Ein Raspi Pico 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 | + | Zusätzlich spricht er mittels I2C mit dem Beschleunigungssensor und liest mittels ADC Kanal die Position des Schiebepotis aus. |
| - | Ein Drehencoder realisiert die Lautstärkeregelung. | + | Auf dem Pico läuft dazu ein [[https:// |
| + | Zum PC hin emuliert der Pico ein USB Gamepad/ | ||
| + | |||
| + | Der ESP32 wurde mit der [[https:// | ||
| === Links === | === Links === | ||
| [[http:// | [[http:// | ||
| - | |||
| - | {{: | ||
| - | CC-BY4.0 Copyright ©2016-2023 [[http:// | ||
| ===== 4. Programmierung ===== | ===== 4. Programmierung ===== | ||
| Zeile 145: | Zeile 130: | ||
| Dieser Abschnitt befasst sich mit der Softwareintegration für das Virtual Pinball Erlebnis. | Dieser Abschnitt befasst sich mit der Softwareintegration für das Virtual Pinball Erlebnis. | ||
| - | | Schritt | + | === Installation |
| - | | --------- | + | |
| - | | 1 | Installation des Betriebssystems | + | |
| - | | 2 | Konfiguration der Pinball-Software | + | |
| - | | 3 | Programmierung von Spezialfunktionen | + | |
| - | + | ||
| - | + | ||
| - | ==== 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 | + | |
| < | < | ||
| git clone https:// | git clone https:// | ||
| Zeile 174: | Zeile 136: | ||
| git checkout standalone | 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 | 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" | ||
| - | perl -i -pe" | ||
| cd standalone/ | cd standalone/ | ||
| ./ | ./ | ||
| cd ../.. | cd ../.. | ||
| cp standalone/ | cp standalone/ | ||
| - | sed -i s/ | + | mkdir -p build/Release |
| - | mkdir -p build/Debug | + | |
| cmake -DCMAKE_BUILD_TYPE=Release -B build/ | cmake -DCMAKE_BUILD_TYPE=Release -B build/ | ||
| cmake --build build/ | cmake --build build/ | ||
| - | mkdir tmp | ||
| - | cp build/ | ||
| - | cp build/ | ||
| - | cp build/ | ||
| - | cp build/ | ||
| - | cp -r build/ | ||
| - | cp -r build/ | ||
| - | cp -r build/ | ||
| - | cp -r build/ | ||
| - | cp -r build/ | ||
| - | cp -r build/ | ||
| - | cd tmp | ||
| </ | </ | ||
| + | |||
| + | === Installation ES-DE === | ||
| + | ES-DE oder Emulator-Station Desktop-Edition ist ein Fork des auf Raspberry-Pi beliebten Retrogaming-Frontends. | ||
| + | Die [[https:// | ||
| + | < | ||
| + | sudo apt-get install build-essential clang-format git cmake gettext libharfbuzz-dev libicu-dev libsdl2-dev libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev libfreeimage-dev libfreetype6-dev libgit2-dev libcurl4-openssl-dev libpugixml-dev libasound2-dev libgl1-mesa-dev libpoppler-cpp-dev | ||
| + | |||
| + | git clone https:// | ||
| + | cd emulationstation-de | ||
| + | |||
| + | cmake -DAPPLICATION_UPDATER=off -DVIDEO_HW_DECODING=on -DCMAKE_INSTALL_PREFIX=/ | ||
| + | make -j8 | ||
| + | sudo make install | ||
| + | </ | ||
| + | Nach der Installation muss ein passendes Theme gewählt und Links zu den eigentlichen Emulatoren eingerichtet werden. | ||
| + | |||
| + | |||
| + | === Installation ZeDMD === | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | Die momentan genutze Version wurde mit dem [[https:// | ||
| + | |||
| + | Laut Readme aus einer PlatformIO Umgebung mit: | ||
| + | < | ||
| + | pio run -t uploadfs -e 128x32 | ||
| + | pio run -t upload -e 128x32 | ||
| + | </ | ||
| + | |||
| + | Nach dem Einschalten wird das Logo angezeigt. Dabei sollte links oben rot, rechts oben blau und links unten grün zu sehen sein. Durch kurzes Antippen von GPIO21 mit GND kann man die Farben durchrotieren. | ||
| + | Durch Antippen von GPIO33 mit GND kann die Helligkeit eingestellt werden. | ||
| + | |||
| + | |||
| + | === Installation PinballController === | ||
| + | |||
| + | Der selbstgeschriebene Code für den [[https:// | ||
| + | Bisher wurde dies aus einer Windows Arduino Umgebung heraus getan. | ||
| + | |||
| + | Als Board muss *Raspberry Pi Pico/ | ||
| + | |||
| + | Folgende Libraries sind zudem nötig und über die Arduino Oberfläche installierbar: | ||
| + | * Adafruit MCP23017 | ||
| + | * Adafruit MPU6050 | ||
| + | * Joystick | ||
| + | * FreeRTOS | ||
| + | |||
| + | Insbesondere die Joystick Bibliothek ist unter gleichem Namen auch für andere Boards verfügbar aber nicht kompatibel. | ||
| + | Bei Compilerwarnungen über mehrfach vorhandene .h Header müssen andere Bibliotheken gleichen namens deinstalliert werden. | ||
| ====Links==== | ====Links==== | ||
| * VPX build-CIs for linux: https:// | * VPX build-CIs for linux: https:// | ||
| Zeile 203: | Zeile 198: | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
| ===== 5. Gestaltung ===== | ===== 5. Gestaltung ===== | ||
| - | Die ästhetische Gestaltung verleiht dem Virtual Pinball Cabinet seinen einzigartigen Charakter. | + | |
| - | + | ||
| - | | Schritt | + | |
| - | | --------- | + | |
| - | | 1 | Lackierung und Verzierung | + | |
| - | | 2 | Anbringung von Grafiken | + | |
| - | | 3 | Beleuchtungseffekte hinzufügen | + | |
| ===== Status ===== | ===== Status ===== | ||
| Zeile 227: | Zeile 217: | ||
| * 24/12/2023 Probespielen durch die Familie | * 24/12/2023 Probespielen durch die Familie | ||
| * 30/12/2023 Ursache für fehlende Punktanzeige gefunden, neue Einstellung nötig -> Folgeprobleme mit Darstellung | * 30/12/2023 Ursache für fehlende Punktanzeige gefunden, neue Einstellung nötig -> Folgeprobleme mit Darstellung | ||
| + | * ??/01/2024 Dot-Matrix-Display ergänzt | ||
| + | * ??/02/2024 Rückbau auf einen Backbox-Monitor; | ||
| + | * 28/02/2024 Erstmals Transport zum ByteSpeicher und Test durch Vereinsmitglieder | ||
| + | * 02/03/2024 Update Wikiseite mit aktuellem Stand | ||
| + | * ??/??/2024 Schwarze Lackierung der Außenseite | ||
| + | * ??/??/2024 Wechsel von Arduino Leonard auf Raspberry Pi Pico + Hinzufügen eines Beschleunigungssensors | ||
| + | * ??/??/2024 PC-Gehäuse entfernt und PC-HW direkt ins Gehäuse montiert zur Gewichtsreduktion | ||
| + | * ??/09/2024 Monitorverkleidung und Rückseiten hinzugefügt; | ||
| + | * ??/10/2024 Transport zum und Verbleib im Bytespeicher | ||
| ===== Galerie === | ===== Galerie === | ||