Inhoudsopgave:

Draadloze gamecontroller voor 4 spelers - Ajarnpa
Draadloze gamecontroller voor 4 spelers - Ajarnpa

Video: Draadloze gamecontroller voor 4 spelers - Ajarnpa

Video: Draadloze gamecontroller voor 4 spelers - Ajarnpa
Video: Muis van Mocro Maffia gaat ervoor! 2024, November
Anonim
Draadloze familiespelbesturing voor 4 spelers
Draadloze familiespelbesturing voor 4 spelers
Draadloze familiespelbesturing voor 4 spelers
Draadloze familiespelbesturing voor 4 spelers
Draadloze familiespelbesturing voor 4 spelers
Draadloze familiespelbesturing voor 4 spelers

Dit is een draadloze arcade-achtige controller waarop 4 personen tegelijk kunnen gamen. Het is draadloos, zodat u uw pc niet hoeft vast te maken aan een controller die wordt gebruikt door 5-jarigen. Ze vallen de hele tijd en ik wil niet dat ze al mijn speelgoed vernietigen als ze onvermijdelijk over een draad struikelen. We hebben onlangs een nieuwe computermonitor gekocht en deze kwam in een superstevige doos met heel dicht piepschuim erin. Als iets uit een sitcom had ik voortdurend ruzie met mijn vrouw over het houden van de doos. Voor mij leek het te smeken om iets te worden, terwijl het voor haar lelijke rommel was. Toen, uit het niets, organiseerde Instructables een snelheidswedstrijd op basis van karton. En zo was in een middag de ruzie beslecht en was dit project geboren.

We gebruikten odd end-ends die we in huis hadden om het project tot leven te brengen. Het idee was om wat we al hadden liggen te gebruiken om iets cools te doen - gelukkig hadden we een set arcade-knoppen en een Raspberry Pi die we eeuwen geleden kochten om een arcade-kast te maken. Voor het snijden gebruikten we een zaag en mijn vertrouwde oude zakmes.

Benodigdheden

1. Kartonnen doos2. Piepschuim of ander dicht vulmiddel 3. Arcade-knoppen van Ali Express of Amazon 4. Raspberry Pi 3B+ 5. Een andere computer + scherm. 6. Mes of iets om gaten in karton te snijden 7. Afplakband8. Spuitverf

Stap 1: De constructie

De constructie
De constructie
De constructie
De constructie
De constructie
De constructie

We maakten snel een schets van hoe we het ding eruit wilden laten zien en gebruikten vervolgens een mes en een houtzaag om het karton en piepschuim op de juiste maat te zagen. We hebben het karton gemarkeerd met een goede knop/joystick-lay-out en de gaten zorgvuldig gesneden met een mes. Dit was een geweldige oefening in elementaire wiskunde voor de kinderen. Nadat het karton was gesneden, hebben we het geverfd en vervolgens alle knopen op hun plaats gezet. Het belangrijkste interessante dat we deden, was drie lagen karton voor de bovenkant van de controller lijmen om het meer stijfheid te geven. Dit maakte het wat moeilijk om door te snijden, maar werkte perfect om het blad bijna net zo stevig als hout te maken.

De Raspberry Pi 3B+ heeft vier usb-poorten. We hebben een familie van vier en vier sets arcade-knoppen! Dit was voorbestemming.

Stap 2: De programmering

de programmering
de programmering
de programmering
de programmering
de programmering
de programmering
de programmering
de programmering

De code voor dit project is eenvoudig en buggy. Het is allemaal hier te vinden:

github.com/melvyniandrag/SuperTuxJunkKartDe 4 controllers zijn via usb aangesloten op een raspberry pi. Op de Raspberry pi draait een klein python-script. Ik heb de Python-invoerbibliotheek gebruikt om de signalen van de knoppen en joysticks te krijgen. Het programma zet het signaal vervolgens om in een korte ASCII-code en stuurt het via een TCP-socket via wifi naar een pc waarop een game wordt uitgevoerd (ik noem dit de gameserver). Als speler 0 bijvoorbeeld de joystick naar links beweegt, worden de karakters '0XL' via de TCP-socket naar de spelserver gestuurd. Voor het testen heb ik SuperTuxKart op mijn denkpad gedraaid. Een kleine servertoepassing draait op de thinkpad en luistert op de TCP-socket. De codes die van de raspberry pi over wifi komen, worden via de pyautogui-bibliotheek vertaald in knopdrukken op het toetsenbord. Dus wanneer speler 0 op de kartonnen controller de joystick naar links beweegt en de controller 'OXL' uitzendt, denkt de server die het spel uitvoert dat de speler op de '1'-knop op het toetsenbord heeft gedrukt. De game moet worden geconfigureerd om deze toetsenbordaanslagen te herkennen, zoals hier in het optiescherm kan worden weergegeven. Deze game werkt prima met een of twee spelers, maar wanneer 4 mensen SuperTuxKart agressief spelen, begint de server wat gegevens van de controller te missen. Ik weet niet zeker of dit een fout is: 1. Aan de client (controller) kant2. Aan de server (thinkpad) side3. Ingebouwde Linux-functionaliteit. Misschien kan mijn Ubuntu-laptop een groot aantal gelijktijdige toetsaanslagen niet herkennen. Dus als speler 0, 1 en 2 allemaal naar boven en naar links sturen, betekent dat dat er 2 * 3 = 6 knoppen tegelijk worden ingedrukt. Ik weet niet zeker of mijn computer (of welke computer dan ook) daarvoor is ontworpen. Gewoonlijk zijn sneltoetsen 3 of minder knoppen, b.v. CTRL + ALT + DEL. In de toekomst ga ik proberen 4 tcp-sockets op te starten, één voor elke controller, en dan aan de serverzijde een virtuele gamepad te creëren. Heb nog geen tijd gehad om te zien hoe dat moet tussen opvoeden, werken en kartonnen dozen versnijden.

Stap 3: De toekomst

Dit was een eenvoudige Proof of Concept. In de toekomst moet de code beter. Ik zou de verbinding willen coderen als een Bluetooth HID-apparaat, maar bluez5 op Linux is een beetje een tijdrovende klus om aan te werken - daarom ging ik met een TCP-socket + Python. Ook - laten we eerlijk zijn - ziet de controller eruit zoals hel. Met meer tijd zou ik wat meer energie investeren in voorzichtiger snijden. Dan zou ik meer steunen plaatsen - de zijkanten van de doos beginnen een beetje krom te trekken. Voor wat het is en wat het kost, ziet dit ding er echter goed genoeg uit. Ik blijf eraan sleutelen terwijl we 's avonds films kijken.

Aanbevolen: