Índice:

Use um Arduino com um controlador N64: 5 etapas (com imagens)
Use um Arduino com um controlador N64: 5 etapas (com imagens)

Vídeo: Use um Arduino com um controlador N64: 5 etapas (com imagens)

Vídeo: Use um Arduino com um controlador N64: 5 etapas (com imagens)
Vídeo: Arduino OLED Menu Tutorial (for beginners - Arduino UNO, 128x64px SSD1306 OLED screen, u8g) 2024, Novembro
Anonim
Use um Arduino com um controlador N64
Use um Arduino com um controlador N64

Existem tutoriais para usar um controlador NES com um Arduino, mas usar o controlador N64 mais complicado e seu joystick analógico tem um apelo definitivo. Se você tem um Arduino por perto e não quer comprar um Adaptoid, este instrutível tornará possível jogar jogos emulados no Project 64 com seu Ardunio e um controlador N64. É difícil? / Vai danificar minhas coisas? Isso não modificará o seu controlador de forma alguma, e a fiação é extremamente simples, portanto, se você fizer tudo com cuidado, não deve haver risco para o seu controlador e você pode desengancá-lo a qualquer momento para usar com um console N64. preciso: Arduino - $ 30 Processamento 1.0 - freeArduino Software - 3 peças de fio - cabo USB grátis (espero)

Etapa 1: Fiação do controlador

Fiação do controlador
Fiação do controlador
Fiação do controlador
Fiação do controlador
Fiação do controlador
Fiação do controlador

A primeira coisa que você precisa fazer é conectar seu Arduino ao controlador. O controlador usa apenas três cabos: + 3,3 V, sinal e terra. Olhando diretamente para o plugue, o aterramento está mais à esquerda, o sinal está no meio e + 3,3 V está à direita. Usando o fio, conecte o aterramento e + 3,3 V aos respectivos pinos no Arduino e conecte o cabo de sinal ao pino Digital 2 no Ardunio. NOTA: Se você tiver outro código em seu Arduino, deve desconectar o controlador e fazer o upload o novo código da próxima página para o Arduino antes de ligá-lo com o controlador conectado. Conecte o Arduino Conecte o cabo USB e o Arduino terá alimentação.

Etapa 2: descompacte e execute o código

Este código foi escrito por mim, com partes do arquivo N64_Arduino baseadas no código assembly escrito por Andrew Brown. Arquivos ZIP: Os dois arquivos Zip abaixo contêm o código necessário para executar o Arduino e então interpretar os dados que ele envia ao computador. O arquivo N64_Arduino precisa ser compilado no Arduino IDE, e o N64_Controller é executado no Processing 1.0. N64_Arduino. Este arquivo PDE deve ser carregado no Arduino e executado sem problemas se você tiver tudo conectado corretamente. Ele simplesmente consulta o controlador N64 em busca de dados nos botões e no stick analógico e os envia de volta ao computador pela porta serial. É fácil de modificar, por exemplo, você pode usar os métodos deste arquivo para consultar um controlador e usar os dados para executar um robô Arduino em vez de transmiti-los de volta para o computador. N64_Controller Este é um projeto Processing 1.0 que leva o dados transmitidos pelo Arduino e convertidos em pressionamentos de teclado que você pode mapear para um emulador como o Projeto 64. Você pode precisar alterar a linha String portName = Serial.list () [1]; para corresponder ao seu Arduino, deve ser Serial.list () [0]; Serial.list () [1]; ou Serial.list () [2]; EDIT: Adicionar "import java.awt. Robot;" "import java.awt. AWTException;" "import java.awt.event. InputEvent;" para o código se você estiver usando Processing 1.1N64_Controller_mouse Este é o mesmo que N64_Controller, exceto que o stick analógico controla seu mouse, não as teclas de seta. A e B são clique direito e esquerdo, respectivamente. Para ativar o mouse, pressione o botão Iniciar em seu controlador.

Etapa 3: configurar o projeto 64

Configurar Projeto 64
Configurar Projeto 64

Antes de usar o controlador, o Arduino precisa estar conectado e executar o código que você baixou na última etapa, e o Processing 1.0 precisa ser aberto com o programa N64_Controller em execução. Teste-o no Bloco de notas, pressionando o botão A deve digitar um A, B deve digitar um B, etc. Portanto, agora você tem um controlador funcionando (espero) e deseja jogar alguns jogos. Downl0ad PJ 64https://www.pj64 -emu.com/downloads/Set Key Mappings Inicie PJ 64 e abra o menu de configurações primeiro (Ctrl + T). Mude o controlador de entrada para a entrada direta do N-Rage. Abra o menu "Configure Controller Plugin" e defina os mapeamentos usando o controlador. Comece a Jogar! Você deve estar pronto para começar agora! Baixe alguns ROMs e comece a desfrutar do seu adaptador N64 homebrew.

Etapa 4: Código Arduino em profundidade

Código Arduino em profundidade
Código Arduino em profundidade

O protocolo N64 Os bits enviados de e para o controlador N64 na interface de um fio são codificados em pulsos de 4 µs de largura. Um '0' é 3 µs baixo e 1 µs alto. Um '1' é 1 µs baixo e 3 µs alto. O código do Arduino nos métodos N64_send ou N64_receive usa um código assembly cronometrado com muito cuidado escrito por Andrew Brown para fazer um bit-bang na linha de dados para se comunicar com o controlador. Os blocos nop são usados para esperar as quantidades apropriadas de µs antes de pesquisar a linha de envio de dados. Na inicialização, 0x00 é enviado ao controlador e, depois disso, o único comando usado é 0x01 para consultar o status do controlador. Codificação de dados Quando os dados são recebidos após 0x01, eles chegam como 16 bits de informações de botão e 16 bits de informações do joystick analógico. Os dados seriam semelhantes a 44000000000000400044440044000444. O formato dos bits é: A, B, Z, Start, Dup, Ddown, Dleft, Dright, 0, 0, L, R, Cup, Cdown, Cleft, Cright + 16 bits de analógico posição do stick. O método translate_raw_data () passa pelos 32 bits, inserindo-os na estrutura N64_status. Os primeiros 16 bits são 1 ou 0 simples, mas os últimos 16 são convertidos em um número inteiro aproximadamente no intervalo (-80, 80) por for (i = 0; i <8; i ++) {N64_status.stick_x | = N64_raw_dump [16 + i]? (0x80 >> i): 0; } Depois que os dados estiverem neste formato simples, é fácil fazer o que quiser com eles. Nesse caso, ele é simplesmente enviado pela porta serial no método loop () como uma string de dados binários com dois inteiros para os valores xey. Os dados enviados pela porta serial podem ser semelhantes a: 0400000000000400 63 -67, o que significa que dois botões foram pressionados e o stick de controle estava em 63, -67.

Etapa 5: Referências

Referências
Referências

O projeto de Andrew Brown para criar um gamecube para adaptador N64 com o Arduino foi inestimável durante a codificação deste projeto:

Esquemas úteis podem ser encontrados aqui: https://www.raphnet.net/electronique/gc_n64_usb/index_en.php Informações sobre o protocolo proprietário dos controladores N64 podem ser encontrados aqui:

Recomendado: