Índice:

Joystick USB MPU-6050 DIY: 5 etapas
Joystick USB MPU-6050 DIY: 5 etapas

Vídeo: Joystick USB MPU-6050 DIY: 5 etapas

Vídeo: Joystick USB MPU-6050 DIY: 5 etapas
Vídeo: MPU6050 Set up and Calliberation guide|| 😉UTSOURCE 2024, Novembro
Anonim
Joystick USB MPU-6050 DIY
Joystick USB MPU-6050 DIY

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

Conectando MPU6050 e botões de pressão à placa Arduino Leonardo
Conectando MPU6050 e botões de pressão à placa Arduino Leonardo
Conectando MPU6050 e botões de pressão à placa Arduino Leonardo
Conectando MPU6050 e botões de pressão à placa Arduino Leonardo
Conectando MPU6050 e botões de pressão à placa Arduino Leonardo
Conectando MPU6050 e 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

Construindo a Base do Joystick
Construindo a Base do Joystick
Construindo a Base do Joystick
Construindo a Base do Joystick
Construindo a Base do Joystick
Construindo 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: