🎮 Joystick de navigation CAO DIY
lien video :
Construisez votre propre contrôleur compact pour naviguer fluidement dans les modèles 3D à l'aide d'un joystick et d'un Arduino Pro Micro
🧰 Matériel requis
âś… Arduino Pro Micro (ATmega32U4)
âś… Module joystick analogique (KY-023 ou similaire)
✅ Câbles de liaison (cavaliers) ou fil électrique fin
✅ Fer à souder + étain
✅ 8 vis M2.5 (pour le boîtier)
✅ Câble USB (USB-C ou Micro-USB selon la carte)
✅ Pièces du boîtier imprimées en 3D
đź’ˇ Pourquoi le Pro Micro ?
➡ Il prend en charge l'USB HID, ce qui lui permet d'agir comme une souris
đź–¨ Impression 3D
Boîtier inférieur
Capot supérieur
Support de joystick
Capuchon ergonomique pour le pouce
Hauteur de couche: 0.2 mm
Remplissage: 15–20%
Supports: Non requis
Matériau: PLA ou PETG
💡 Le PETG est recommandé pour la durabilité
🔌 Schéma de câblage
Le module joystick a 5 broches :
Broche du joystick | Pro Micro |
|---|---|
GND | GND |
VCC | VCC |
VRx | A0 |
VRy | A1 |
SW | D2 |
👉 Le bouton (SW) peut réinitialiser la vue ou déclencher une action
🔧 Étapes d'assemblage
Soudez les fils aux broches du joystick
Assurez-vous de l'absence de courts-circuits
Insérez le joystick dans le support imprimé
Faites passer les fils à travers les chemins de câbles
Câblez selon le tableau ci-dessus
Fixez le Pro Micro à l'intérieur du boîtier
Assemblez le boîtier
Fixez Ă l'aide des 8 vis M2.5
đź’» Code Arduino (Mouse HID)
Téléchargez ce sketch sur votre Pro Micro
/*
Hackman3D Joystick CAD Controller
PAN / ORBIT toggle + axis invert
makerworld.com / @Hackman3D
*/
#include <Mouse.h>
#include <Keyboard.h>
#define X A0
#define Y A1
#define SW 2
#define DEAD 25
#define SENS 100
#define TICK 10
#define LOCK 150
bool pan=0, moving=0;
int prev=HIGH;
unsigned long tToggle=0, tTick=0;
inline void apply(){
if(!pan) Keyboard.press(KEY_LEFT_SHIFT);
Mouse.press(MOUSE_MIDDLE);
}
inline void releaseAll(){
Mouse.release(MOUSE_MIDDLE);
Keyboard.release(KEY_LEFT_SHIFT);
}
void setup(){
Keyboard.begin();
Mouse.begin();
pinMode(SW,INPUT_PULLUP);
}
void loop(){
unsigned long now=millis();
int b=digitalRead(SW);
if(prev==HIGH && b==LOW && now-tToggle>LOCK){
tToggle=now;
pan=!pan;
if(moving){ releaseAll(); apply(); }
}
prev=b;
if(now-tTick<TICK) return;
tTick=now;
int dx=(analogRead(X)-512);
int dy=-(analogRead(Y)-512);
if(abs(dx)>DEAD || abs(dy)>DEAD){
if(!moving){ moving=1; apply(); }
Mouse.move(dx/SENS,-dy/SENS,0);
} else if(moving){
moving=0;
releaseAll();
}
}
âš™ Configuration dans Fusion 360 & SolidWorks
Fusion 360
Maintenez le bouton central de la souris pour orbiter
Le joystick émule le mouvement de la souris pour une navigation fluide
SolidWorks
Fonctionne directement avec l'orbite via le bouton central de la souris
Vous pouvez mapper des raccourcis supplémentaires si vous le souhaitez
💡 Astuce : ajustez la sensibilité en modifiant le diviseur dans le code
The author marked this model as their own original creation.