Taula de continguts:

Controlador de jocs sense fils per a 4 jugadors familiars: 3 passos
Controlador de jocs sense fils per a 4 jugadors familiars: 3 passos

Vídeo: Controlador de jocs sense fils per a 4 jugadors familiars: 3 passos

Vídeo: Controlador de jocs sense fils per a 4 jugadors familiars: 3 passos
Vídeo: ПОЧЕМУ Я ЖДУ L4D3 2024, Desembre
Anonim
Controlador de jocs sense fils per a 4 jugadors familiars
Controlador de jocs sense fils per a 4 jugadors familiars
Controlador de jocs sense fils per a 4 jugadors familiars
Controlador de jocs sense fils per a 4 jugadors familiars
Controlador de jocs sense fils per a 4 jugadors familiars
Controlador de jocs sense fils per a 4 jugadors familiars

Es tracta d’un controlador d’estil arcade sense fils que permet jugar 4 persones alhora. És sense fil perquè no hàgiu de connectar el vostre PC a un controlador que utilitzen els nens de 5 anys. Cauen tot el temps i no vull que destrueixin totes les meves joguines quan inevitablement es trenquen amb un cable. Recentment hem comprat un monitor d’ordinador nou i venia en una caixa súper resistent amb polistirol molt dens a l’interior. Com alguna cosa d’una sitcom, estava discutint contínuament amb la meva dona per mantenir la caixa. A mi em semblava que demanava que es convertís en alguna cosa, mentre que per a ella era una brossa lletja. Aleshores, de debò, Instructables va organitzar un concurs de velocitat basat en cartró. I així, en una tarda, es va resoldre l’argument i va néixer aquest projecte.

Vam fer servir els extrems probables que teníem a casa per donar vida al projecte. La idea era utilitzar el que ja teníem assegut per fer alguna cosa divertida: per sort teníem un conjunt de botons arcade i un raspberry pi que vam comprar fa anys per fer un armari arcade. Per tallar hem utilitzat una serra i el meu vell ganivet de confiança.

Subministraments

1. Caixa de cartró2. Espuma de poliestir o un altre farciment dens 3. Botons Arcade d’Ali Express o Amazon 4. Raspberry Pi 3B + 5. Alguns altres equips + pantalla. 6. Ganivet o alguna cosa per tallar forats al cartró 7. Cinta adhesiva8. Pintura d'esprai

Pas 1: la construcció

La construcció
La construcció
La construcció
La construcció
La construcció
La construcció

Ràpidament vam elaborar un esbós de com volíem que fos l’aspecte i després vam fer servir un ganivet i una serra de fusta per tallar el cartró i l’espuma de poliestir a la mida adequada. Vam marcar el cartró amb un bon disseny de botó / palanca de control i vam tallar els forats amb cura amb un ganivet. Va ser un exercici fantàstic de matemàtiques bàsiques per als nens. Un cop tallat el cartró, el vam pintar i després vam col·locar tots els botons al seu lloc. El més interessant que vam fer va ser enganxar tres capes de cartró per a la part superior del controlador per donar-li més rigidesa. Això va fer que fos una mica difícil de tallar, però va funcionar perfectament per fer la part superior gairebé tan sòlida com la fusta.

El Raspberry Pi 3B + té quatre ports USB. Tenim una família de quatre i quatre conjunts de botons arcade. Això era predestinació.

Pas 2: la programació

La programació
La programació
La programació
La programació
La programació
La programació
La programació
La programació

El codi d’aquest projecte és senzill i erroni. Tot es pot trobar aquí:

github.com/melvyniandrag/SuperTuxJunkKart Els 4 controladors es connecten mitjançant USB a un raspberry pi. Al Raspberry pi, hi ha un petit script Python en execució. He utilitzat la biblioteca d’entrades de Python per obtenir els senyals dels botons i joysticks. A continuació, el programa transforma el senyal en un codi ASCII curt i l’envia a través d’un socket TCP per wifi a una PC que executa un joc (em referiré a això com a servidor de jocs). Per exemple, quan el jugador 0 mou el joystick cap a l'esquerra, els caràcters '0XL' s'envien a través del sòcol TCP al servidor del joc. Per provar, vaig executar SuperTuxKart al meu thinkpad. Una petita aplicació de servidor s’executa al thinkpad i escolta al sòcol TCP. Els codis que provenen del raspberry pi per wifi es tradueixen en prémer botons al teclat a través de la biblioteca pyautogui. Per tant, quan el jugador 0 del controlador de cartró mou el joystick cap a l’esquerra i el controlador emet "OXL", el servidor que executa el joc pensa que el jugador ha premut el botó "1" del teclat. El joc s’ha de configurar per reconèixer aquestes tecles com es pot mostrar a la pantalla d’opcions. Aquest joc funciona bé amb un o dos jugadors, però quan 4 persones juguen agressivament al SuperTuxKart el servidor comença a faltar algunes dades del controlador. No estic segur de si es tracta d'un error: 1. Al costat del client (controlador) 2. Al costat del servidor (thinkpad) 3. Funcionalitat Linux integrada. Potser el meu portàtil Ubuntu no pot reconèixer un gran nombre de pressions simultànies de tecles. Per tant, si el jugador 0, 1 i 2 es dirigeix cap amunt i cap a l’esquerra, això vol dir que es premen 2 * 3 = 6 botons alhora. No estic segur de si el meu equip (o qualsevol equip) està dissenyat per fer-ho. Normalment les tecles d'accés ràpid són 3 o menys botons, per exemple. CTRL + ALT + SUPR. En el futur, provaré d'iniciar 4 sòcols de TCP, un per a cada controlador, i després, al costat del servidor, crear un bloc de jocs virtuals. Encara no he tingut temps de veure com fer-ho entre la criança, el treball i el tall de caixes de cartró.

Pas 3: el futur

Aquesta era una prova simple del concepte. En el futur, el codi ha de ser millor. M’agradaria codificar la connexió com a dispositiu HID bluetooth, però bluez5 a Linux és una mica difícil de treballar, per això vaig anar amb un socket TCP + Python. com diables. Amb més temps invertiria una mica més d’energia a tallar amb més cura. A continuació, posaria més suports: els costats de la caixa comencen a deformar-se una mica, però pel que és i pel que costa, això sembla prou bo. Seguiré jugant-hi mentre mirem pel·lícules al vespre.

Recomanat: