Table des matières:
- Étape 1: connexion du MPU6050 et des boutons-poussoirs à la carte Arduino Leonardo
- Étape 2: Construire la base du joystick
- Étape 3: configuration de l'IDE Arduino
- Étape 4: programme Arduino
- Étape 5: Tester le joystick
Vidéo: Joystick USB DIY MPU-6050 : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Avec Microsoft Flight Simulator 2020, j'ai rapidement réalisé à quel point il est difficile d'utiliser le clavier pour piloter un plan. En cherchant en ligne, je n'ai pas trouvé de joystick à un prix raisonnable à acheter. La plupart des détaillants en ligne les avaient en rupture de stock. La popularité de MS Flight Simulator et de la pandémie de COVID 19 a anéanti tous les stocks de joysticks existants. Ma seule option était d'en construire un moi-même.
La plupart des joysticks utilisent des potentiomètres à la base pour déterminer les angles du joystick et renvoyer les informations des axes x et y à l'ordinateur. Cela fonctionne bien mais complique la construction du joystick. et au fil du temps. les potentiomètres pourraient s'user. Au lieu d'utiliser des potentiomètres, j'ai décidé d'utiliser une carte capteur accéléromètre/gyroscope pour envoyer des informations à l'ordinateur sur les angles du manche.
Avec la popularité de divers microprocesseurs Arduino et de divers capteurs, le coût de construction d'un projet Arduino devient beaucoup plus abordable. L'une des cartes de capteur accéléromètre/gyroscope couramment utilisées est le MPU-6050. Au Canada, cela coûte environ 7$CAN sur Amazon. J'ai reçu le mien d'eBay expédié de Chine pour beaucoup moins cher, mais le délai de livraison était d'environ 3 mois ou plus.
www.amazon.ca/Neuftech-MPU-6050-3-Gyroscop…
N'importe quelle carte Arduino fonctionnerait, mais l'utilisation d'une carte basée sur ATmega32u4 sera beaucoup plus simple, car ATmega32u4 prend en charge nativement HID (Human Interface Device). Une fois la carte programmée, vous pouvez l'utiliser sur n'importe quel PC Windows 10 et aucun logiciel supplémentaire n'est requis. Windows 10 le reconnaîtra automatiquement comme un joystick lorsque l'USB est branché. (L'utilisation d'un autre type de carte Arduino est trop compliquée pour ce projet de construction simple).
Je choisis la carte Arduino Leonardo. 17$CAN d'Amazon.
www.amazon.ca/KEYESTUDIO-Leonardo-Developm…
Ces 2 appareils sont les principales exigences pour ce projet. D'autres éléments plus petits tels que les câblages et les boutons-poussoirs sont également nécessaires. Dans ce projet, je n'ai utilisé que 2 boutons poussoirs pour plus de simplicité.
La poignée du joystick est fabriquée à partir d'un tuyau d'eau en PVC. Cela peut être facilement remplacé par n'importe quel tuyau rigide court.
La base du joystick est un arrêt de porte à ressort fixé sur un morceau de bois.
L'arrêt de porte à ressort est disponible chez Home Depot au prix de 2,83 $ CAN.
www.homedepot.ca/product/everbilt-spring-d…
Étape 1: connexion du MPU6050 et des boutons-poussoirs à la carte Arduino Leonardo
Seules 4 connexions sont utilisées sur le MPU 6050. Elles sont étiquetées VCC, GND, SCL et SDA.
Connectez VCC à 5v ou 3.3v sur Arduino Leonardo. (Le MPU 6050 peut utiliser 5v ou 3,3v. Peu importe)
Connectez GND à n'importe quel GND sur Arduino Leonardo.
Connectez SCL à SCL sur Arduino Leonardo.
Connectez SDA à SDA sur Arduino Leonardo.
Je n'utilise que 2 boutons poussoirs pour cette démonstration.
Le premier bouton-poussoir est utilisé pour réinitialiser le centre du joystick. Dans cet exemple, une extrémité du bouton-poussoir est connectée à GND et une extrémité à PIN 13.
Le deuxième bouton poussoir est utilisé comme bouton du joystick. Dans cet exemple, il est connecté à PIN 9 et GND.
Vous pouvez ajouter des boutons supplémentaires selon vos besoins dans votre projet.
Étape 2: Construire la base du joystick
Trouvez un morceau de bloc de bois. Plus c'est lourd, mieux c'est. Cela rendra la base du joystick plus stable.
Vissez la butée de porte à ressort au centre du bloc de bois comme indiqué sur l'image.
Utilisez un morceau de tuyau court comme poignée du joystick. J'ai utilisé un tuyau PVC à gratter. Marchez sur le fil de manière à ce que le capteur accéléromètre/gyroscope se trouve au sommet du tuyau.
Ensuite, placez le tuyau sur la butée de porte à ressort. J'ai utilisé du ruban électrique pour coller le capteur sur le dessus.
Étape 3: configuration de l'IDE Arduino
Téléchargez et installez Arduino IDE.https://www.arduino.cc/en/Main/Software
J'ai utilisé Arduino 1.8.13 pour ce projet. Arduino Web Editor peut également être utilisé pour ce projet.
2 bibliothèques sont utilisées.
1. MPU6050_tockn par tockn
github.com/Tockn/MPU6050_tockn
ou vous pouvez le trouver dans le menu "Gérer la bibliothèque".
2. Bibliothèque de joysticks par Matthew Heironimus
github.com/MHeironimus/ArduinoJoystickLibr…
Celui-ci est actuellement disponible uniquement sur le site Web de GitHub.
Cliquez sur télécharger le code et télécharger ZIP. Extrayez le fichier ZIP dans le répertoire de vos bibliothèques Arduino.
Dans mon cas, c'est E:\PinChung\Documents\Arduino\libraries
Étape 4: programme Arduino
Chargez Pin_Joystick.ino sur Arduino IDE et compilez et téléchargez sur la carte Leonardo.
Assurez-vous que la carte Arduino Leonardo est sélectionnée et que le numéro de port est sélectionné à droite COM: dans le menu Outils.
J'ai remarqué quelque temps, le programme ne pouvait pas être téléchargé avec le code d'erreur du port COM non disponible. Appuyer plusieurs fois sur le bouton de réinitialisation de la carte Leonardo pendant la compilation peut aider. Le redémarrage de Windows 10 peut également aider à libérer le port COM.
Une fois le programme téléchargé sur la carte Leonardo, Windows 10 devrait détecter automatiquement le Leonardo Joystick. Dans la barre de recherche de Windows 10, saisissez Contrôleurs de jeu, exécutez Configurer les contrôleurs de jeu USB.
sélectionnez Leonardo Joystick et cliquez sur Propriétés. Le mouvement du joystick et le bouton du joystick #1 doivent être captés par Windows 10.
Si le joystick n'est pas centré, lorsque vous le lâchez, cliquez sur le bouton de réinitialisation du centre du joystick que nous venons de créer. Les contrôleurs de jeu USB doivent afficher le point du joystick au centre. Il n'est pas nécessaire de calibrer le joystick dans le programme USB Game Controller.
Note latérale: pour ceux qui ne sont pas familiers avec Arduino Leonardo, lorsque l'appareil est configuré comme un joystick, une souris ou un clavier, le port série ne fonctionnera pas. Donc "Serial.print()" ne fonctionnera pas. En outre, le MPU6050 utilise la bibliothèque de fils i2c et les broches SDA et SLC. Sur Leonardo, SDA et SCL prennent à la fois PIN 2 et PIN 3, donc n'utilisez pas ces 2 broches pour autre chose.
Étape 5: Tester le joystick
Je l'ai testé sur Microsoft Flight Simulator 2020 et cela fonctionne très bien. Je dois parfois appuyer sur la touche centrale pour remettre le joystick à zéro. La valeur du capteur MPU6050 peut dériver un peu avec le temps.
Il existe de nombreuses possibilités de développer le projet, telles que l'ajout de boutons et l'ajout de commandes d'accélérateur. Espérons que cela inspirera d'autres bricoleurs à explorer de nouvelles façons de faire les choses.
Conseillé:
JOYSTICK USB ZERO DELAY - MODIFICATION ANALOGIQUE AUTOMATIQUE : 5 étapes
JOYSTICK USB ZERO DELAY - MODIFICATION ANALOGIQUE AUTOMATIQUE : Il s'agit d'un projet supplémentaire à la modification du joystick True Analog Encoder USB Zero Delay. Vous devez avoir modifié, testé et calibré avec succès l'encodeur dans le projet précédent avant d'ajouter cet appareil. Une fois terminé et fonctionnel
Suivi de mouvement à l'aide de MPU-6000 et de photons de particules : 4 étapes
Suivi de mouvement à l'aide de MPU-6000 et de photons de particules : MPU-6000 est un capteur de suivi de mouvement à 6 axes qui intègre un accéléromètre à 3 axes et un gyroscope à 3 axes. Ce capteur est capable de suivre efficacement la position et l'emplacement exacts d'un objet dans le plan tridimensionnel. Il peut être employé i
Suivi de mouvement avec MPU-6000 et Arduino Nano : 4 étapes
Suivi de mouvement à l'aide de MPU-6000 et d'Arduino Nano : MPU-6000 est un capteur de suivi de mouvement à 6 axes qui intègre un accéléromètre à 3 axes et un gyroscope à 3 axes. Ce capteur est capable de suivre efficacement la position et l'emplacement exacts d'un objet dans le plan tridimensionnel. Il peut être employé i
Module RC Tx comme joystick USB : 6 étapes
Module RC Tx en tant que joystick USB : cette instructable consiste à créer un module émetteur qui fonctionne avec les émetteurs RC standard et agit comme un joystick USB. Le module utilise une carte de développement Digispark qui agit comme un USB HID. Il interprète le signal PPM que l'émetteur envoie et convertit
Suivi de mouvement avec MPU-6000 et Raspberry Pi : 4 étapes
Suivi de mouvement à l'aide de MPU-6000 et Raspberry Pi : MPU-6000 est un capteur de suivi de mouvement à 6 axes qui intègre un accéléromètre à 3 axes et un gyroscope à 3 axes. Ce capteur est capable de suivre efficacement la position et l'emplacement exacts d'un objet dans le plan tridimensionnel. Il peut être employé i