Você está no 3DFinder
Buscamos em Thingiverse, MakerWorld e Printables ao mesmo tempo para te dar o melhor de cada uma.
Descrição
🎮 DIY CAD Navigation Joystick
Control Fusion 360 & SolidWorks like a SpaceMouse
Build your own compact controller to navigate 3D models smoothly using a joystick and an Arduino Pro Micro.
Video link :
🧰 Materials Required
- ✅ Arduino Pro Micro (ATmega32U4)
- ✅ Analog joystick module (KY-023 or similar)
- ✅ Jumper wires or thin electrical wire
- ✅ Soldering iron + solder
- ✅ 8 × M2.5 screws (for enclosure)
- ✅ USB cable (USB-C or Micro-USB depending on board)
- ✅ 3D printed enclosure parts
💡 Why the Pro Micro?
➡️ It supports USB HID, allowing it to act as a mouse.
🖨️ 3D Printing
Suggested Parts
- Bottom case
- Top cover
- Joystick mount
- Ergonomic thumb cap
Recommended Settings
- Layer height: 0.2 mm
- Infill: 15–20%
- Supports: Not required
- Material: PLA or PETG
💡 PETG recommended for durability.
🔌 Wiring Diagram
The joystick module has 5 pins:
| Joystick Pin | Pro Micro |
|---|---|
| GND | GND |
| VCC | VCC |
| VRx | A0 |
| VRy | A1 |
| SW | D2 |
👉 The button (SW) can reset the view or trigger an action.
🔧 Assembly Steps
1️⃣ Solder the wires
- Solder wires to joystick pins.
- Ensure no short circuits.
2️⃣ Mount the joystick
- Insert joystick into the printed mount.
- Route wires through the cable channels.
3️⃣ Connect to Pro Micro
- Wire according to the table above.
- Secure the Pro Micro inside the enclosure.
4️⃣ Close the case
- Assemble the enclosure.
- Fasten using the 8 M2.5 screws.
💻 Arduino Code (Mouse HID)
Upload this sketch to your 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();
}
}
⚙️ Setup in Fusion 360 & SolidWorks
Fusion 360
- Hold middle mouse button to orbit.
- The joystick emulates mouse movement for smooth navigation.
SolidWorks
- Works directly with middle mouse orbit.
- You can map additional shortcuts if desired.
💡 Tip: adjust sensitivity by changing the divisor in the code.