Tweaker bouwt sjoelbak om tot arcadekast met geluidseffecten en scorebord

Tweaker klapstoelpiloot heeft een ouderwetse sjoelbak omgebouwd tot een arcadekast met muziek, effecten en een digitaal scorebord. Het proces heeft hij tot in detail gedocumenteerd en wie zelf aan de slag wil, kan de broncode op GitHub vinden.

Pascal van der Heiden verveelde zich tijdens de coronacrisis en zocht wat te doen. Zo kwam hij op het idee om een sjoeltafel te moderniseren. Het resultaat heeft dan ook de toepasselijke naam Pandemic. Begin vorig jaar toonde klapstoelpiloot zijn creatie al in een topic op Gathering of Tweakers, maar nu heeft hij ook uitgebreid beschreven hoe de arcadesjoelbak tot stand is gekomen. De totstandkoming en het resultaat zijn ook in een video te zien.

Voordat Pascal aan de slag ging met de sjoeltafel, bouwde hij een miniversie om te kijken of zijn ideeën werkten. Daarop testte hij sensors om de sjoelstenen te detecteren, als die door de poortjes gaan. Toen dat succesvol bleek, nam hij de maten op van de sjoelbak en maakte hij daar een model van in Fusion 360, om het idee verder uit te werken.

Boven op de tafel is een ledmatrixscherm gezet met een totale resolutie van 128x32 pixels. Dat gaat om twee Adafruit-ledmatrixpanelen met een resolutie van 64x32 pixels per stuk. Hierop worden de scores weergegeven tijdens het spelen. Het scherm is gemonteerd in een 3d-geprint frame.

Pandemic-sjoeltafelPandemic-sjoeltafelPandemic-sjoeltafelPandemic-sjoeltafelPandemic-sjoeltafelPandemic-sjoeltafel

De Adafruit-panelen zijn aangesloten op een Raspberry Pi met een Adafruit RGB Matrix HAT. Omdat die bijna alle GPIO-pinnen gebruikt en de software een interne timer gebruikt die ook voor de audio-output wordt ingezet, heeft Pascal voor het uitlezen van de sensors en het aansturen van de audio een Arduino gebruikt. Vier knoppen aan de voorkant van de sjoeltafel laten spelers kiezen uit de Casual- en Professional-modus. Ook kan met deze knoppen een naam worden ingevoerd als er een highscore wordt neergezet.

Tijdens het sjoelen krijgen spelers muziek te horen van John S. Weekley, die oorspronkelijk voor het Doom-level Bastion of Chaos is gemaakt. Pascal kreeg toestemming van de maker om die muziek te gebruiken. Verder zijn de nodige geluidseffecten te horen bij het scoren van punten.

Pascal schreef de benodigde software in C++. Volgens de tweaker is de software nog niet perfect. Er zijn nog wat bugs en een aantal zaken die netter kunnen, maar het is dan ook een hobbyproject, benadrukt hij. De broncode van de Pandemic-sjoeltafel is te vinden op GitHub.

Tweakers-community

Dit artikel gaat over een van onze communityleden. Meer artikelen over projecten van tweakers en interviews met onze bezoekers vind je via de tag Tweakers Community. Wil je zelf iets bijdragen, of iemand uit de community voordragen om in de schijnwerpers te zetten? Tip de redactie op het forum.

Door Julian Huijbregts

Nieuwsredacteur

10-02-2022 • 15:44

49

Reacties (49)

49
49
44
3
0
1
Wijzig sortering
Is het dezelfde Pascal als in deze video?
https://youtu.be/RQ-SfHm8LUw
Edit: de YouTube link in het bericht deed het bij mij eerst niet. Maar ja het is dezelfde Pascal en een maand of tien geleden is Dumpert ook bij hem langs geweest. Was een leuk item om te zien.

[Reactie gewijzigd door jdh009 op 22 juli 2024 20:35]

Ik dacht al, die sjoelbak komt me bekend voor
Wellicht interessant om een unit te maken die je op een sjoelbord kunt klikken/plaatsen?

@klapstoelpiloot hoe worden de grafische elementen weergeven?
Worden de pixels handmatig getekend, door een software library of wordt daadwerkelijk de beeld-output doorgestuurd?
Het beeld gaat via GPIO pins naar de LED matrix controller HAT. Hier gebruik ik een bestaande library voor. Met deze library kan ik simpelweg de RGB waardes voor iedere pixel in een memory block schrijven (echt oldschool pixels pushen) en de library zorgt voor het nodige PWMen van de GPIOs. Daar boven op heb ik zelf een aantal handigheidjes geprogrammeerd om bijvoorbeeld tekst te renderen en effecten die werken op een pixelshader-achtige manier (zie bijvoorbeeld de rode achtergrond)

[Reactie gewijzigd door klapstoelpiloot op 22 juli 2024 20:35]

Hmm interessant, de LED matrix heeft heel wat CPU kracht nodig, als ik zo de tutorial lees.
Is dat ook de reden dat de inputs afgehandeld worden door de Arduino of staat dat er los van?

En daarnaast, als 't display compatibel zou zijn met DPI (of bijvoorbeeld VGA666) zou het een stuk eenvoudiger zijn omdat de Pi zelf hardware-geaccelereerd de beeld-output zou kunnen sturen.

Dat zou qua performance 'beter' zijn en het tekenen vereenvoudigen omdat je gewoon een visuele applicatie kunt maken I.P.V elke pixel een voor een uitsturen.

Al moet ik wel zeggen dat het heel mooi gedaan is.
Het renderen van de beelden vergt inderdaad aardig wat CPU kracht. Echter voor PWM zitten er gewoon timers in de chip die dat onafhankelijk in parallel doen. De reden dat ik een arduino voor de sensors gebruik is voornamelijk omdat er niet genoeg GPIO pins over zijn op de Raspberry Pi. Daarnaast komt dit goed uit zo, zodat de sensors real-time en dedicated gemonitord worden. Geen problemen dus als de CPU het te zwaar heeft.
Yikes. Je zou verwachten dat dat wat efficiënter moet kunnen. Misschien iets maken met een Arduino die als framebuffer dient en waar je dus gewoon bitmaps naartoe kan sturen vanuit de hoofdprocessor? Het werk van dat DMD aansturen is niet heel intelligent, maar het moet vooral snel gebeuren.

Het lijkt me dat die CPU niet de hele tijd bezig moet zijn met simpele low-level taken zoals het PWM'en van pixels. Die moet gewoon een blok geheugen uitspugen (met 8 bits per pixel zit je op 32kB per frame) wat dan door een externe controller wordt opgepakt voor het hele PWM verhaal.
Het zou nog mooier zijn, wanneer het scorebord kon worden weggeklapt. Bij ons staat de (gewone) sjoelbak, wanneer niet in gebruik, rechtop tussen een kast en een muur, waar deze superbak nooit zou passen. Maar pet af voor dit mooie project!
Het scorebord rust vrij over de balk van de poorten en is afneembaar. De kabels moeten dan wel los gemaakt worden.
Kijk eens aan, twee oude overlorders op Tweakers, leuk je project hier te zien Pascal!
Ha mooie tijden waren dat!
Enorm gaaf gedaan Pascal! Ik zeg verkopen als product :Y)

Waar staat die professional mode voor ten opzichte van de casual mode?
Dat verschilt in het moment wanneer een puck als score geteld wordt. Bij professional mode moet de puck volledig de poort in gaan, terwijl bij casual mode de puck al telt wanneer deze half in de poort zit. In de praktijk speel niemand eigenlijk professional mode, dus misschien haal ik die weg of vervang ik het met een zelf bedacht spel.
:-) het wordt zo steeds drukker met die oude overlorders, goed bezig hoor, mooi project. Ik vond je LCARS unit ook geniaal. Groetjes Reinier
Jazeker, en met gepaste trots :)
Heel vet gedaan! Nu nog een upgrade die ervoor zorgt dat je alle stenen automatisch terugkrijgt als je klaar bent. :P
Aan de achterkant een hefboom. Kiepen die handel :)

Erg leuk gemaakt. Krijg er een arcade gevoel bij.
Of net zoals in een pooltafel: Dat de stenen door een groot gat heen vallen achter de poortjes en terug naar voren rollen/schuiven, zodat je ze uit een bakje kan pakken wat onder de sjoelbak uitkomt.

En dan niet vergeten om de stenen pas in het bakje te deponeren als je er een euro in gooit. ;)
Fantastisch, hier wordt ik nou vrolijk van
Hier word ik ook vrolijk van. Pascal heeft m.i. ook een gat in de markt ontdekt.
Ik denk dat het scorebord bij ons geen lang leven zou kennen. Hoe meer er voor ligt des te harder wordt er gegooid. En dan gaan de sjoelstenen wel eens de lucht in }>

Wel gaaf project. Bedankt voor het delen!! _/-\o_

[Reactie gewijzigd door wisselwerking op 22 juli 2024 20:35]

Wat @cold_as_ijs zegt hier boven: Er zit plexiglas op een kleine afstand van de LED matrix zelf. Dat scherm heeft al aardig wat klappen te voorduren gekregen helaas, maar tot dusver geen schade!

[Reactie gewijzigd door klapstoelpiloot op 22 juli 2024 20:35]

Leuk project, maar niet geschikt voor mijn vriendin... Gezien die nogal hard gooit, gebeurt het regelmatig dat ze over het bord heen gooit haha. Ik verwacht dat schermpje dan wel kapot gaat :P
Er zit een plexiglas cover voor het scherm. Dacht namelijk exact hetzelfde, dat scherm zal snel sneuvelen als ik er mee zou spelen :D
Daar heb je kogelwerend lexan voor.
Ff General Electric lief aankijken. Misschien hebben ze nog een stukje liggen! :+
heerlijk hoog tweakers gehalte, leuk project!
Ik zal toch zeggen dat ik dit al eerder heb gezien

-edit Aah iemand was me al voor: https://youtu.be/RQ-SfHm8LUw

[Reactie gewijzigd door robbinkg op 22 juli 2024 20:35]

Op dit item kan niet meer gereageerd worden.