Índice:
- Etapa 1: Conectando o MPU6050 e os botões de pressão à placa Arduino Leonardo
- Etapa 2: construir a base do joystick
- Etapa 3: configurar o IDE do Arduino
- Etapa 4: Programa Arduino
- Etapa 5: teste do joystick
Vídeo: Joystick USB MPU-6050 DIY: 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Com o Microsoft Flight Simulator 2020, percebi rapidamente como é difícil usar o teclado para voar um avião. Pesquisando online, não consegui encontrar um joystick com preço razoável para comprar. A maioria dos varejistas online estava sem estoque. A popularidade do MS Flight Simulator e da pandemia COVID 19 eliminou todos os estoques de joysticks existentes. Minha única opção era construir um sozinho.
A maioria dos joysticks por aí usa potenciômetros na base para determinar os ângulos do joystick e enviar as informações dos eixos xey de volta ao computador. Isso funciona bem, mas complica a construção do joystick. e com o tempo. os potenciômetros podem se desgastar. Em vez de usar potenciômetros, decidi usar uma placa de sensor de acelerômetro / giroscópio para enviar informações ao computador sobre os ângulos do manche.
Com a popularidade de vários microprocessadores e sensores Arduino, o custo de construção de um projeto Arduino se torna muito mais acessível. Uma das placas de sensor de acelerômetro / giroscópio comumente usadas é MPU-6050. No Canadá, custa cerca de $ 7CAN na Amazônia. Eu consegui o meu do eBay enviado da China por muito menos, mas o tempo de envio foi de 3 meses ou mais.
www.amazon.ca/Neuftech-MPU-6050-3-Gyroscop…
Qualquer placa Arduino funcionaria, mas usar a placa baseada em ATmega32u4 será muito mais simples, porque ATmega32u4 tem suporte nativo para HID (dispositivo de interface humana). Uma vez que a placa esteja programada, você pode usá-la em qualquer PC com Windows 10 e nenhum software adicional é necessário. O Windows 10 o reconhecerá automaticamente como um joystick quando o USB for conectado. (O uso de outro tipo de placa Arduino é muito complicado para este projeto de construção simples).
Eu escolho a placa Arduino Leonardo. $ 17CAN da Amazon.
www.amazon.ca/KEYESTUDIO-Leonardo-Developm…
Esses 2 dispositivos são os principais requisitos para este projeto. Outros itens menores, como fios e botões de pressão, também são necessários. Neste projeto, usei apenas 2 botões para simplificar.
O manípulo do joystick é feito de um tubo de água em PVC de sucata. Isso pode ser facilmente substituído por qualquer tubo rígido curto.
A base do joystick é uma trava de porta com mola fixada em um pedaço de madeira.
O batente da porta de mola está disponível na Home Depot por $ 2,83 CAN.
www.homedepot.ca/product/everbilt-spring-d…
Etapa 1: Conectando o MPU6050 e os botões de pressão à placa Arduino Leonardo
Apenas 4 conexões são usadas no MPU 6050. Elas são rotuladas como VCC, GND, SCL e SDA.
Conecte o VCC a 5v ou 3,3v no Arduino Leonardo. (MPU 6050 pode usar 5v ou 3,3v. Não importa)
Conecte o GND a qualquer GND no Arduino Leonardo.
Conecte o SCL ao SCL no Arduino Leonardo.
Conecte o SDA ao SDA no Arduino Leonardo.
Eu uso apenas 2 botões de pressão para este propósito de demonstração.
O primeiro botão é usado para redefinir o centro do joystick. Neste exemplo, uma extremidade do botão é conectada ao GND e a outra extremidade ao PIN 13.
O segundo botão é usado como botão do joystick. Neste exemplo, ele está conectado ao PIN 9 e GND.
Você pode adicionar botões adicionais conforme necessário em seu projeto.
Etapa 2: construir a base do joystick
Encontre um pedaço de bloco de madeira. Quanto mais pesado, melhor. Isso tornará a base do joystick mais estável.
Aparafuse a tampa de mola da porta no centro do bloco de madeira, conforme mostrado na imagem.
Use um pedaço de tubo curto como a alça do joystick. Usei um cano de PVC para raspar. Pise no fio de forma que o sensor do acelerômetro / giroscópio fique no topo do tubo.
Em seguida, coloque o tubo sobre a tampa de mola da porta. Usei fita isolante para prender o sensor na parte superior.
Etapa 3: configurar o IDE do Arduino
Baixe e instale o Arduino IDE.https://www.arduino.cc/en/Main/Software
Usei o Arduino 1.8.13 para este projeto. O Arduino Web Editor também pode ser usado para este projeto.
2 bibliotecas são usadas.
1. MPU6050_tockn por tockn
github.com/Tockn/MPU6050_tockn
ou você pode encontrá-lo no menu "Gerenciar Biblioteca".
2. Biblioteca de joystick de Matthew Heironimus
github.com/MHeironimus/ArduinoJoystickLibr…
Este está disponível atualmente apenas no site do GitHub.
Clique em download Code e Download ZIP. Extraia o arquivo ZIP para o diretório de bibliotecas do Arduino.
No meu caso, é E: / PinChung / Documents / Arduino / libraries
Etapa 4: Programa Arduino
Carregue Pin_Joystick.ino no IDE do Arduino e compile e faça upload para a placa Leonardo.
Certifique-se de que a placa Arduino Leonardo esteja selecionada e o número da porta esteja selecionado no COM correto: no menu Ferramentas.
Percebi há algum tempo, o programa não pôde ser carregado com o código de erro da porta COM não disponível. Apertar o botão de reset na placa Leonardo algumas vezes durante a compilação pode ajudar. Além disso, reiniciar o Windows 10 também pode ajudar a liberar a porta COM.
Uma vez que o programa é carregado para a placa Leonardo, o Windows 10 deve detectar automaticamente o Joystick Leonardo. Na barra de pesquisa do Windows 10, digite Game Controllers, execute Configurar USB Game Controllers.
selecione Leonardo Joystick e clique em Propriedades. O movimento do joystick e o botão # 1 do joystick devem ser selecionados pelo Windows 10.
Se o joystick não estiver centralizado, ao soltá-lo, clique no botão central de reset do joystick que acabamos de fazer. Os controladores de jogo USB devem mostrar o ponto do joystick no centro. Não há necessidade de calibrar o joystick no programa USB Game Controller.
Nota lateral: Para quem não conhece o Arduino Leonardo, quando o dispositivo for configurado como joystick, mouse ou teclado, a porta serial não funcionará. Portanto, "Serial.print ()" não funcionará. Além disso, o MPU6050 usa biblioteca de fios i2c e usa pinos SDA e SLC. No Leonardo, SDA e SCL usam o PIN 2 e o PIN 3, portanto, não use esses 2 pinos para mais nada.
Etapa 5: teste do joystick
Testei no Microsoft Flight Simulator 2020 e funciona muito bem. Tenho que pressionar a tecla central às vezes para zerar o joystick. O valor do sensor MPU6050 pode variar um pouco com o tempo.
Existem muitas oportunidades para gastar no projeto, como adicionar mais botões e adicionar controles de aceleração. Esperançosamente, isso irá inspirar outros fundadores a explorar novas maneiras de fazer as coisas.
Recomendado:
JOYSTICK USB ZERO DELAY - MODIFICAÇÃO AUTO ANALÓGICA: 5 etapas
ZERO DELAY USB JOYSTICK - MODIFICAÇÃO AUTO ANALÓGICA: Este é um projeto adicional à Modificação de Zero Delay USB Encoder True Analog Joystick. Você precisa ter modificado, testado e calibrado com sucesso o codificador no projeto anterior antes de adicionar este dispositivo. Quando concluído e funcionando
Rastreamento de movimento usando MPU-6000 e fóton de partículas: 4 etapas
Rastreamento de movimento usando MPU-6000 e fóton de partículas: MPU-6000 é um sensor de rastreamento de movimento de 6 eixos que possui acelerômetro de 3 eixos e giroscópio de 3 eixos embutidos. Este sensor é capaz de rastrear de forma eficiente a posição e localização exata de um objeto no plano tridimensional. Pode ser empregado i
Rastreamento de movimento usando MPU-6000 e Arduino Nano: 4 etapas
Rastreamento de movimento usando MPU-6000 e Arduino Nano: MPU-6000 é um sensor de rastreamento de movimento de 6 eixos que possui acelerômetro de 3 eixos e giroscópio de 3 eixos embutidos. Este sensor é capaz de rastrear com eficiência a posição e localização exata de um objeto no plano tridimensional. Pode ser empregado i
Módulo RC Tx como joystick USB: 6 etapas
Módulo RC Tx como joystick USB: Este é instrutível sobre como fazer um módulo transmissor que funciona com transmissores RC padrão e atua como um joystick USB. O módulo usa uma placa de desenvolvimento Digispark que atua como um HID USB. Ele interpreta o sinal PPM que o transmissor envia e converte
Rastreamento de movimento usando MPU-6000 e Raspberry Pi: 4 etapas
Rastreamento de movimento usando MPU-6000 e Raspberry Pi: MPU-6000 é um sensor de rastreamento de movimento de 6 eixos que possui acelerômetro de 3 eixos e giroscópio de 3 eixos embutidos. Este sensor é capaz de rastrear de forma eficiente a posição e localização exata de um objeto no plano tridimensional. Pode ser empregado i