LINC é uma solução de rede local que captura eventos de teclado de um PC e os retransmite para um segundo PC, emulando um controle de videogame virtual.
Ele consiste em dois scripts Python que criam uma ponte (ou "link") entre dois computadores na mesma rede. O PC "servidor" lê as teclas pressionadas e as envia eficientemente pela rede. O PC "cliente" recebe esses comandos e, utilizando o driver ViGEmBus, os traduz em tempo real para um controle de Xbox 360 virtual, que é instantaneamente reconhecido pela maioria dos jogos.
- Emulação de Controle Virtual: Simula um controle de Xbox 360, garantindo alta compatibilidade com jogos para Windows.
- Comunicação de Baixa Latência: Utiliza sockets TCP com otimizações (
TCP_NODELAY) para minimizar o delay em redes locais. - Mapeamento Customizável: Edite um simples dicionário em Python para configurar qual tecla corresponde a cada botão do controle.
- Suporte a Movimento Diagonal: A lógica do cliente permite o pressionamento de múltiplas teclas de direção para um controle preciso do analógico.
- Conexão Estável: O protocolo de comunicação foi projetado para ser robusto contra erros e desconexões abruptas.
O sistema opera em uma arquitetura cliente-servidor:
- Servidor (
servidor.py): Roda no PC onde o teclado será usado. Ele utiliza a bibliotecakeyboardpara capturar os eventos de tecla em baixo nível e os envia via socket TCP para o cliente. - Cliente (
cliente.py): Roda no PC onde o jogo está sendo executado. Ele escuta por mensagens do servidor, as processa e utiliza a bibliotecavgamepadpara traduzir esses comandos em ações de um controle virtual, criado pelo driver ViGEmBus.
Siga estes passos para colocar o LINC para funcionar.
- Python 3.8 ou superior instalado em ambos os computadores.
- No PC Cliente (que vai rodar o jogo):
- É obrigatório instalar o driver ViGEmBus. Baixe e instale a última versão.
-
Clone este repositório em ambos os computadores:
git clone [https://github.com/seu-usuario/LINC.git](https://github.com/seu-usuario/LINC.git) cd LINC -
Instale as dependências de Python necessárias:
-
No PC Servidor:
pip install keyboard
-
No PC Cliente:
pip install vgamepad
-
-
Encontre o IP do Servidor: No PC que será o servidor (onde você vai usar o teclado), abra o terminal (
cmd) e digiteipconfig. Anote o "Endereço IPv4" da sua rede local (ex:192.168.1.10). -
Configure o Cliente: Abra o arquivo
cliente.pyno PC do seu amigo e altere a variávelSERVER_IPpara o IP que você anotou no passo anterior.# Mude para o IP do PC servidor SERVER_IP = '192.168.1.10'
-
Inicie o Servidor: No seu PC, execute o script do servidor no terminal:
python servidor.py
Você deverá ver a mensagem "✅ Servidor iniciado...".
-
Inicie o Cliente: No PC do seu amigo, execute o script do cliente:
python cliente.py
Você deverá ver a mensagem "🚀 Conectado ao servidor!".
-
Pronto! Agora, as teclas que você pressionar no servidor serão refletidas como comandos de controle no cliente.
Para mudar quais teclas ativam quais botões, basta editar o dicionário key_map no topo do arquivo cliente.py.
Exemplo:
key_map = {
# Analógico Esquerdo
'w': ('left_joystick_y', 1.0),
's': ('left_joystick_y', -1.0),
# ...
# D-pad (Setinhas)
'up': ('DPAD_UP', vg.XUSB_BUTTON.XUSB_GAMEPAD_DPAD_UP),
# ...
}