projekte:virtualpinballcabinet

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
projekte:virtualpinballcabinet [24.11.2024 09:17] – [2. Metallarbeiten] typos chaosprojekte:virtualpinballcabinet [24.11.2024 17:18] (aktuell) – [4. Programmierung] + ZeDMD + PinballController chaos
Zeile 25: Zeile 25:
 | ESP32                       | Dot_Matrix-Controller          |                       | [[https://www.aliexpress.com/item/1005001636295529.html|AliExpress]]       | 3,30EUR | | ESP32                       | Dot_Matrix-Controller          |                       | [[https://www.aliexpress.com/item/1005001636295529.html|AliExpress]]       | 3,30EUR |
 | Dot-Matrix-Display          | Punkteanzeige                  | 2x 64px x 32px        | [[https://www.aliexpress.com/item/1005004933061424.html|AliExpress]] | 26,96EUR |  | Dot-Matrix-Display          | Punkteanzeige                  | 2x 64px x 32px        | [[https://www.aliexpress.com/item/1005004933061424.html|AliExpress]] | 26,96EUR | 
 +| Beschleunigungssensor       | Nudge-Detektor                                       | [[https://www.amazon.de/dp/B07N2ZL34Z?ref=ppx_yo2ov_dt_b_fed_asin_title|Amazon]] | 7,45 EUR |
 | PC Gehäuse + Netzteil + HDD |                                | 550Watt PSU /  120GB HDD  | vorhandene Reste                                                | - | | PC Gehäuse + Netzteil + HDD |                                | 550Watt PSU /  120GB HDD  | vorhandene Reste                                                | - |
 | CPU + Mainboard + RAM                                      | Intel i5 3570 / 16GB DDR3  | Kleinanzeigen                                                        | 45EUR | | CPU + Mainboard + RAM                                      | Intel i5 3570 / 16GB DDR3  | Kleinanzeigen                                                        | 45EUR |
Zeile 35: Zeile 36:
 | Stahl-Vierkantrohr          | Beine                          | 25mmx25mm x 100cm     | [[https://www.obi.de/p/7804263/vierkantrohr-stahl-25-mm-x-25-mm-x-1000-mm|Obi]] | 23,16EUR | | Stahl-Vierkantrohr          | Beine                          | 25mmx25mm x 100cm     | [[https://www.obi.de/p/7804263/vierkantrohr-stahl-25-mm-x-25-mm-x-1000-mm|Obi]] | 23,16EUR |
 | Arcade-Joystick                                            |                       | Schrott-Rettung ([[https://www.amazon.de/Klassischer-Wettbewerb-Controller-Arcade-Spiele-PC-Kampfspiele/dp/B0776QRXSF|Amazon (ähnlich)]]) | -  (ca 15 EUR) | | Arcade-Joystick                                            |                       | Schrott-Rettung ([[https://www.amazon.de/Klassischer-Wettbewerb-Controller-Arcade-Spiele-PC-Kampfspiele/dp/B0776QRXSF|Amazon (ähnlich)]]) | -  (ca 15 EUR) |
 +| Transportgriffe (federnd)                                  | 4x                    | [[https://www.amazon.de/dp/B0B57HMG4R?ref=ppx_yo2ov_dt_b_fed_asin_title|Amazon]] | 11 EUR |
 |---------------------|-------------------------|--------------------------------------|---------------------------------|------------------| |---------------------|-------------------------|--------------------------------------|---------------------------------|------------------|
-| **Gesamt** | | | | 339,95EUR (444EUR)|+| **Gesamt** | | | | 358,39EUR (462EUR)|
    
  
Zeile 101: Zeile 103:
    * PC with i5 3570 3.48GHz, Gigabyte Mainboard, 16GB DDR3 RAM, AMD Radeon RX570    * PC with i5 3570 3.48GHz, Gigabyte Mainboard, 16GB DDR3 RAM, AMD Radeon RX570
    * 42Zoll Sony Bravia KDL-42W655A (1920x1080) + 22Zoll 16:10 DVI/HDMI (1920x1080)    * 42Zoll Sony Bravia KDL-42W655A (1920x1080) + 22Zoll 16:10 DVI/HDMI (1920x1080)
-   Arduino Leonardo + MCP23017 IO-Extender+   Raspberry Pi Pico + MCP23017 IO-Extender
    * verschiedenen Taster     * verschiedenen Taster 
    * Lautsprecher-Set des TV    * Lautsprecher-Set des TV
Zeile 108: Zeile 110:
    * 2x 64x32 Pixel Dot-Matrix-Display    * 2x 64x32 Pixel Dot-Matrix-Display
    * ESP32 Controller für DMD    * ESP32 Controller für DMD
 +   * Schiebepotentiometer für Plunger (vorbereitet)
 +   * 6-Achsen IMU (Accellerometer + Gyroskop) 
  
 Ein alter Gaming PC mit aktualisierter CPU/Mainboard Kombi + eine halbwegs neue Grafikkarte bilden die Rechenbasis. Die Systemeistung ist ausreichend. 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 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.+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
 +Zusätzlich spricht er mittels I2C mit dem Beschleunigungssensor und liest mittels ADC Kanal die Position des Schiebepotis aus. 
 +Auf dem Pico läuft dazu ein [[https://github.com/earlephilhower/arduino-pico|Arduino-Kern]] um ihn mit den Arduino-Bibliotheken der Erweiterungen kompatibel zu machen. 
 +Zum PC hin emuliert der Pico ein USB Gamepad/Joystick. Ein RTOS-scheduler wird benutzt, um Latenzen gering zu halten.
  
 Der ESP32 wurde mit der [[https://github.com/PPUC/ZeDMD|ZeDMD]] Software bespielt und nimmt Befehle mittels USB/Serial vom PC entgegen. Der ESP32 wurde mit der [[https://github.com/PPUC/ZeDMD|ZeDMD]] Software bespielt und nimmt Befehle mittels USB/Serial vom PC entgegen.
Zeile 118: Zeile 125:
 === Links === === Links ===
 [[http://mjrnet.org/pinscape/|Pinscape Controller and various guides]] [[http://mjrnet.org/pinscape/|Pinscape Controller and various guides]]
- 
-{{:projekte:pinball.png?direct&400|}} 
-CC-BY4.0 Copyright ©2016-2023 [[http://mjrnet.org/pinscape/BuildGuideV2/BuildGuide.php?sid=architecture|Michael J. Roberts]]. 
  
 ===== 4. Programmierung ===== ===== 4. Programmierung =====
Zeile 126: 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.
  
-=== Installation Visual Pinball ===+=== Installation Virtual Pinball ===
 <code> <code>
 git clone https://github.com/vpinball/vpinball.git git clone https://github.com/vpinball/vpinball.git
Zeile 132: 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"s/0/1887/g" git_version.h 
-perl -i -pe"s/unknown/f3263bf/g" git_version.h 
 cd standalone/linux/ cd standalone/linux/
 ./external.sh ./external.sh
 cd ../.. cd ../..
 cp standalone/cmake/CMakeLists_gl-linux-x64.txt CMakeLists.txt cp standalone/cmake/CMakeLists_gl-linux-x64.txt CMakeLists.txt
-sed -i s/3.26/3.22/g CMakeList.txt +mkdir -p build/Release
-mkdir -p build/Debug+
 cmake -DCMAKE_BUILD_TYPE=Release -B build/Release cmake -DCMAKE_BUILD_TYPE=Release -B build/Release
 cmake --build build/Release -- -j2 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 
 </code> </code>
  
 +
 +=== Installation ES-DE ===
 +ES-DE oder Emulator-Station Desktop-Edition ist ein Fork des auf Raspberry-Pi beliebten Retrogaming-Frontends.
 +Die [[https://gitlab.com/es-de/emulationstation-de/-/blob/master/INSTALL-DEV.md?ref_type=heads|Development README]] hilft bei zusätzlichen Optionen.
 +<code>
 +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://gitlab.com/es-de/emulationstation-de.git
 +cd emulationstation-de
 +
 +cmake -DAPPLICATION_UPDATER=off -DVIDEO_HW_DECODING=on -DCMAKE_INSTALL_PREFIX=/opt .
 +make -j8
 +sudo make install
 +</code>
 +Nach der Installation muss ein passendes Theme gewählt und Links zu den eigentlichen Emulatoren eingerichtet werden.
 +
 +
 +=== Installation ZeDMD ===
 +
 +[[https://github.com/PPUC/ZeDMD|ZeDMD]] muss auf das ESP32 board geflasht werden, das die DOT-Matrix Displays ansteuert.
 +
 +Die momentan genutze Version wurde mit dem [[https://github.com/zesinger/ZeDMD_Updater|ZeDMD Updater Windows Tool]] geflasht, nachdem andere Versuche fehlgeschlagen sind. Um ein Update ohne zusätzlichen Windows-Rechner zu ermöglichen, sollte irgendwann auch das Flashen mit dem Linux Host ermöglicht werden.
 +
 +Laut Readme aus einer PlatformIO Umgebung mit:
 +<code>
 +pio run -t uploadfs -e 128x32
 +pio run -t upload -e 128x32
 +</code>
 +
 +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://codeberg.org/technikkultur-erfurt/VPin_HID_controller|Pinball-Controller]] muss übersetzt und auf den raspberry Pi Pico geflasht werden.
 +Bisher wurde dies aus einer Windows Arduino Umgebung heraus getan. 
 +
 +Als Board muss *Raspberry Pi Pico/RP2040* gewählt werden, was erst nach Eintrag von https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json unter "Additional Boards Manager URL" in den Settings verfügbar ist.
 +
 +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://github.com/vpinball/vpinball/actions/runs/7151948501   * VPX build-CIs for linux: https://github.com/vpinball/vpinball/actions/runs/7151948501
Zeile 180: 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/2023 Dot-Matrix-Display ergänzt +  * ??/01/2024 Dot-Matrix-Display ergänzt 
-  * ??/02/2023 Rückbau auf einen Backbox-Monitor; Metallrahmen und -beine; Klappmodus der Backbox zum Transport +  * ??/02/2024 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 +  * 28/02/2024 Erstmals Transport zum ByteSpeicher und Test durch Vereinsmitglieder 
-  * 02/03/2023 Update Wikiseite mit aktuellem Stand +  * 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; Griffe montiert; Schiebepoti als Prototype zum analogen Plunger installiert 
 +  * ??/10/2024 Transport zum und Verbleib im Bytespeicher
  
 ===== Galerie === ===== Galerie ===
  • projekte/virtualpinballcabinet.1732439852.txt.gz
  • Zuletzt geändert: 24.11.2024 09:17
  • von chaos