Fusion 360 Joystick By HackMan3D
Tự tay làm ngay một chiếc Joystick điều hướng cực xịn cho Fusion 360, SolidWorks và các phần mềm CAD khác. Sử dụng Arduino Pro Micro cực nhỏ gọn, giúp việc xoay và quan sát mô hình 3D trở nên mượt mà, chuyên nghiệp như dùng SpaceMouse.
Mô tả
🎮 Joystick điều hướng CAO tự làm
Video tham khảo:
Điều khiển Fusion 360 & SolidWorks như một con SpaceMouse
Tự tay lắp ráp bộ điều khiển nhỏ gọn giúp bạn xoay, di chuyển các mô hình 3D mượt mà hơn bằng joystick và Arduino Pro Micro.
🧰 Linh kiện cần chuẩn bị
- ✅ Arduino Pro Micro (ATmega32U4)
- ✅ Module joystick analog (KY-023 hoặc loại tương đương)
- ✅ Dây cắm (jumper wires) hoặc dây điện loại nhỏ
- ✅ Mỏ hàn + thiếc hàn
- ✅ 8 ốc vít M2.5 (dùng cho vỏ hộp)
- ✅ Cáp USB (USB-C hoặc Micro-USB tùy loại board)
- ✅ Các chi tiết vỏ hộp đã in 3D
💡 Tại sao dùng Pro Micro? ➡ Nó hỗ trợ USB HID, giúp máy tính nhận diện thiết bị như một con chuột thực thụ.
🖨 In 3D
Các chi tiết cần in
- Phần vỏ dưới (Bottom case)
- Nắp vỏ trên (Top cover)
- Giá đỡ joystick
- Nắp bọc cần gạt (thumb cap)
Thiết lập in khuyến nghị
- Độ dày lớp in: 0.2 mm
- Độ lấp đầy (Infill): 15–20%
- Support: Không cần thiết
- Chất liệu: PLA hoặc PETG
💡 Nên dùng PETG để vỏ hộp bền hơn.
🔌 Sơ đồ đấu dây
Module joystick có 5 chân:
| Chân Joystick | Pro Micro |
|---|---|
| GND | GND |
| VCC | VCC |
| VRx | A0 |
| VRy | A1 |
| SW | D2 |
👉 Nút nhấn (SW) có thể dùng để reset góc nhìn hoặc gán chức năng khác.
🔧 Các bước lắp ráp
1. Hàn dây
- Hàn dây vào các chân của joystick.
- Kiểm tra kỹ để tránh tình trạng chập mạch.
2. Lắp Joystick
- Gắn joystick vào giá đỡ đã in.
- Luồn dây qua các khe đi dây trên vỏ.
3. Kết nối với Pro Micro
- Đấu dây theo bảng trên.
- Cố định bo Pro Micro vào bên trong hộp.
4. Hoàn thiện vỏ hộp
- Lắp ráp các phần của vỏ lại với nhau.
- Siết chặt bằng 8 con ốc M2.5.
💻 Code Arduino (Mouse HID)
Nạp đoạn code dưới đây vào Pro Micro của bạn:
/*
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();
}
}
⚙ Cấu hình trong Fusion 360 & SolidWorks
Fusion 360
- Giữ nút giữa chuột để xoay (orbit).
- Joystick sẽ giả lập cử động chuột để bạn điều hướng mô hình mượt mà.
SolidWorks
- Hoạt động trực tiếp với tính năng xoay bằng nút giữa chuột.
- Bạn có thể cài đặt thêm các phím tắt khác tùy nhu cầu.
💡 Mẹo: Bạn có thể chỉnh độ nhạy bằng cách thay đổi giá trị SENS trong code.
Giấy phép
Tác phẩm này được cấp phép theo
Creative Commons — Attribution — Noncommercial — NoDerivativesCC-BY-NC-ND
File mô hình
Chưa có bản in nào được khoe. Hãy là người đầu tiên!
Chưa có bình luận nào. Hãy là người đầu tiên!