Índice:

Controlador de jogo para família de 4 jogadores sem fio: 3 etapas
Controlador de jogo para família de 4 jogadores sem fio: 3 etapas

Vídeo: Controlador de jogo para família de 4 jogadores sem fio: 3 etapas

Vídeo: Controlador de jogo para família de 4 jogadores sem fio: 3 etapas
Vídeo: 3 FUNÇÕES SECRETAS DO CONTROLE PS4 !!! 2024, Novembro
Anonim
Controlador de jogo para família de 4 jogadores sem fio
Controlador de jogo para família de 4 jogadores sem fio
Controlador de jogo para família de 4 jogadores sem fio
Controlador de jogo para família de 4 jogadores sem fio
Controlador de jogo para família de 4 jogadores sem fio
Controlador de jogo para família de 4 jogadores sem fio

Este é um controlador de estilo arcade sem fio que 4 pessoas podem jogar ao mesmo tempo. É sem fio para que você não precise amarrar seu PC a um controlador usado por crianças de 5 anos. Eles caem o tempo todo e não quero que destruam todos os meus brinquedos quando inevitavelmente tropeçarem em um fio. Recentemente, compramos um novo monitor de computador e ele veio em uma caixa super resistente com isopor bem denso dentro. Como algo saído de uma sitcom, eu discutia continuamente com minha esposa sobre ficar com a caixa. Para mim, parecia implorar para ser transformado em algo, enquanto para ela era um lixo horrível. Então, do nada, o Instructables fez um concurso de velocidade baseado em papelão. E então em uma tarde a discussão foi resolvida e este projeto nasceu.

Usamos as probabilidades e as extremidades que tínhamos pela casa para dar vida ao projeto. A ideia era apenas usar o que já tínhamos por perto para fazer algo legal - felizmente tínhamos um conjunto de botões de fliperama e um pi de framboesa que compramos há muito tempo para fazer um gabinete de fliperama. Para cortar, usamos uma serra e meu velho canivete de confiança.

Suprimentos

1. Caixa de papelão 2. Isopor ou outro preenchimento denso 3. Botões de arcade de Ali Express ou Amazon 4. Raspberry Pi 3B + 5. Algum outro computador + tela. 6. Faca ou algo para fazer buracos em papelão 7. Fita adesiva8. Tinta spray

Etapa 1: a construção

A construção
A construção
A construção
A construção
A construção
A construção

Rapidamente desenhamos um esboço de como queríamos que fosse a coisa, depois usamos uma faca e uma serra de madeira para cortar o papelão e o isopor no tamanho certo. Marcamos o papelão com um bom layout de botão / joystick e cortamos os buracos cuidadosamente com uma faca. Este foi um ótimo exercício de matemática básica para as crianças. Depois que o papelão foi cortado, nós o pintamos e colocamos todos os botões no lugar. A principal coisa interessante que fizemos foi colar três camadas de papelão na parte superior do controlador para dar mais rigidez. Isso dificultou um pouco o corte, mas funcionou perfeitamente para tornar a parte superior quase tão sólida quanto madeira.

O Raspberry Pi 3B + tem quatro portas USB. Temos uma família de quatro e 4 conjuntos de botões de arcade! Isso foi predestinação.

Etapa 2: a programação

A Programação
A Programação
A Programação
A Programação
A Programação
A Programação
A Programação
A Programação

O código para este projeto é simples e cheio de erros. Tudo pode ser encontrado aqui:

github.com/melvyniandrag/SuperTuxJunkKartOs 4 controladores são conectados via USB a um pi de framboesa. No Raspberry pi, há um pequeno script python em execução. Usei a biblioteca de entradas do Python para obter os sinais dos botões e joysticks. O programa então transforma o sinal em um código ASCII curto e o envia por meio de um soquete TCP por wi-fi para um PC executando um jogo (irei me referir a isso como o servidor do jogo). Por exemplo, quando o jogador 0 move o joystick para a esquerda, os caracteres '0XL' são enviados pelo soquete TCP para o servidor do jogo. Para testar, executei o SuperTuxKart no meu thinkpad. Um pequeno aplicativo de servidor é executado no thinkpad e escuta no soquete TCP. Os códigos que vêm do raspberry pi via wi-fi são traduzidos em pressionamentos de botão no teclado por meio da biblioteca pyautogui. Portanto, quando o jogador 0 no controlador de papelão move o joystick para a esquerda e o controlador emite 'OXL', o servidor que está executando o jogo pensa que o jogador apertou o botão '1' no teclado. O jogo deve ser configurado para reconhecer esses pressionamentos de teclado como pode ser mostrado na tela de opções aqui. Este jogo funciona bem com um ou dois jogadores, mas quando 4 pessoas jogam SuperTuxKart agressivamente o servidor começa a perder alguns dados do controlador. Não tenho certeza se isso é um erro: 1. No lado do cliente (controlador) 2. No servidor (thinkpad) side3. Funcionalidade Linux integrada. Talvez meu laptop Ubuntu não reconheça um grande número de pressionamentos de tecla simultâneos. Portanto, se os jogadores 0, 1 e 2 estão indo para cima e para a esquerda, isso significa que 2 * 3 = 6 botões estão sendo pressionados ao mesmo tempo. Não tenho certeza se meu computador (ou qualquer computador) foi projetado para lidar com isso. Normalmente as teclas de atalho são 3 ou menos botões, por exemplo, CTRL + ALT + DEL. No futuro, tentarei iniciar 4 soquetes tcp, um para cada controlador e, em seguida, no lado do servidor, criando um game pad virtual. Ainda não tive tempo de ver como fazer isso entre cuidar dos filhos, trabalhar e cortar caixas de papelão.

Etapa 3: O Futuro

Esta foi uma simples prova de conceito. No futuro, o código precisa ser melhor. Eu gostaria de codificar a conexão como um dispositivo HID bluetooth, mas bluez5 no Linux é um pouco demorado para trabalhar - é por isso que optei por um soquete TCP + Python. Além disso - vamos encarar - o controlador parece como diabos. Com mais tempo, eu investiria um pouco mais de energia para cortar com mais cuidado. Então eu colocaria mais suportes - as laterais da caixa estão começando a entortar um pouco. Porém, pelo que é e quanto custou, essa coisa parece boa o suficiente. Vou continuar a mexer nisso enquanto vemos filmes à noite.

Recomendado: