Cuprins:

Controler de joc wireless pentru 4 jucători de familie: 3 pași
Controler de joc wireless pentru 4 jucători de familie: 3 pași
Anonim
Controler de joc wireless pentru 4 jucători de familie
Controler de joc wireless pentru 4 jucători de familie
Controler de joc wireless pentru 4 jucători de familie
Controler de joc wireless pentru 4 jucători de familie
Controler de joc wireless pentru 4 jucători de familie
Controler de joc wireless pentru 4 jucători de familie

Acesta este un controler wireless în stil arcade pe care 4 persoane îl pot juca simultan. Este fără fir, astfel încât să nu mai aveți nevoie să legați computerul la un controler utilizat de copiii de 5 ani. Ei cad tot timpul și nu vreau să-mi distrugă toate jucăriile atunci când se împiedică inevitabil pe o sârmă. Am cumpărat recent un monitor nou de computer și a venit într-o cutie super robustă cu spumă de poliester foarte densă în interior. Ca ceva dintr-un sitcom, mă certam continuu cu soția mea despre păstrarea cutiei. Mie mi se părea că cerșea să fie transformat în ceva, în timp ce pentru ea era o urâtă junk. Apoi, din senin, Instructables a organizat un concurs de viteză bazat pe carton. Și așa într-o după-amiază s-a soluționat argumentul și s-a născut acest proiect.

Am folosit capetele de cote pe care le aveam prin casă pentru a aduce la viață proiectul. Ideea a fost doar să folosim ceea ce aveam deja așezat în jurul nostru pentru a face ceva mișto - din fericire, am avut un set de butoane arcade și un pi zmeură pe care l-am cumpărat cu veacuri în urmă pentru a realiza un dulap arcade. Pentru tăiere am folosit un ferăstrău și vechiul meu cuțit de buzunar.

Provizii

1. Cutie de carton2. Styrofoam sau alt material dens 3. Butoane Arcade de la Ali Express sau Amazon 4. Raspberry Pi 3B + 5. Un alt computer + ecran. 6. Cuțit sau ceva pentru tăierea găurilor din carton 7. Bandă de mascare8. Spray cu vopsea

Pasul 1: Construcția

Construcția
Construcția
Construcția
Construcția
Construcția
Construcția

Am întocmit rapid o schiță a ceea ce am vrut să arate lucrul, apoi am folosit un cuțit și un ferăstrău pentru lemne pentru a tăia cartonul și spuma de poliester la dimensiunea potrivită. Am marcat cartonul cu un aspect bun al butonului / joystick-ului și am tăiat cu grijă găurile cu un cuțit. Acesta a fost un exercițiu excelent de matematică de bază pentru copii. Odată ce cartonul a fost tăiat, l-am pictat și apoi am pus toți butoanele la locul lor. Principalul lucru interesant pe care l-am făcut a fost să lipim trei straturi de carton pentru partea superioară a controlerului, pentru a-i oferi mai multă rigiditate. Acest lucru a făcut oarecum dificil de tăiat, dar a funcționat perfect pentru a face vârful aproape la fel de solid ca lemnul.

Raspberry Pi 3B + are patru porturi USB. Avem o familie de patru și 4 seturi de butoane arcade! Aceasta a fost predestinare.

Pasul 2: Programarea

Programarea
Programarea
Programarea
Programarea
Programarea
Programarea
Programarea
Programarea

Codul pentru acest proiect este simplu și buggy. Toate pot fi găsite aici:

github.com/melvyniandrag/SuperTuxJunkKart Cele 4 controlere sunt conectate prin USB la un raspberry pi. Pe Raspberry pi, se execută un mic script python. Am folosit biblioteca de intrări Python pentru a obține semnalele de la butoane și joystick-uri. Programul transformă apoi semnalul într-un cod ASCII scurt și îl trimite printr-o priză TCP prin Wi-Fi către un PC care rulează un joc (mă voi referi la acesta ca server de joc). De exemplu, atunci când jucătorul 0 mută joystick-ul spre stânga, personajele „0XL” sunt trimise prin socketul TCP către serverul de joc. Pentru testare am rulat SuperTuxKart pe thinkpad-ul meu. O aplicație de server mică rulează pe thinkpad și ascultă pe soclul TCP. Codurile care provin de la raspberry pi prin wifi sunt traduse în apăsarea butoanelor de pe tastatură prin biblioteca pyautogui. Deci, atunci când jucătorul 0 de pe controlerul din carton mută joystick-ul spre stânga și controlerul emite „OXL”, serverul care rulează jocul crede că jucătorul a apăsat butonul „1” de pe tastatură. Jocul trebuie configurat pentru a recunoaște aceste apăsări de la tastatură, așa cum se poate afișa în ecranul de opțiuni de aici. Acest joc funcționează bine cu unul sau doi jucători, dar când 4 persoane joacă SuperTuxKart agresiv, serverul începe să lipsească unele date de la controler. Nu sunt sigur dacă este o eroare: 1. Pe partea clientului (controlerului) 2. Pe partea serverului (thinkpad) 3. Funcționalitate Linux integrată. Poate că laptopul meu Ubuntu nu poate recunoaște un număr mare de apăsări simultane de taste. Deci, dacă jucătorul 0, 1 și 2 sunt direcționați în sus și în stânga, înseamnă că 2 * 3 = 6 butoane sunt apăsate simultan. Nu sunt sigur dacă computerul meu (sau orice computer) este proiectat să se ocupe de asta. De obicei tastele rapide sunt 3 sau mai puține butoane de ex. CTRL + ALT + DEL. În viitor, voi încerca să pornesc 4 socket-uri TCP, unul pentru fiecare controler și apoi pe partea serverului creând un pad virtual de joc. Nu am avut timp să văd cum să fac asta între părinți, lucru și tăierea cutiilor de carton.

Pasul 3: Viitorul

Aceasta a fost o simplă dovadă a conceptului. În viitor, codul trebuie să fie mai bun. Aș dori să codez conexiunea ca un dispozitiv HID bluetooth, dar bluez5 pe Linux este un pic chiuveta pe care să lucrez - de aceea am mers cu o priză TCP + Python. De asemenea - să recunoaștem - controlerul arată ca naiba. Cu mai mult timp aș investi ceva mai multă energie în tăierea mai atentă. Apoi aș pune mai multe suporturi - părțile laterale ale cutiei încep să se deformeze puțin. Pentru ceea ce este și pentru ce a costat totuși, acest lucru arată suficient de bine. Voi continua să-l joc în timp ce ne uităm la filme seara.

Recomandat: