Open source SpaceMouse - Bản phối lại Space Mushroom
Khám phá bản remix SpaceMouse mã nguồn mở, kết hợp thiết kế Space Mushroom với các bộ phận điện tử giá rẻ. Hướng dẫn chi tiết cách chế tạo, đi dây và lập trình cho cả phiên bản V1 'Bigfoot' và V2 'Mini-ish' nhỏ gọn hơn, giúp bạn tùy chỉnh trải nghiệm điều khiển CAD.
Mô tả
Cập nhật: V2 nhỏ hơn nhiều!
V1, được mọi người gọi là ‘Bigfoot’ trong phần bình luận, phần lớn thời gian phát triển được dành cho việc khắc phục lỗi code, còn phần thiết kế CAD chỉ là thử nghiệm ban đầu.
V2, mà tôi gọi là ‘Mini-ish’, đảo ngược cần analog và kết quả là nhỏ gọn hơn nhiều, với đường kính rộng nhất là 102mm so với đường kính 77mm của SpaceMouse nhỏ nhất. Vẫn còn cồng kềnh, nhưng đã cải thiện rất nhiều. Mini-ish. Thiết kế cập nhật này cũng nhấn mạnh hơn vào thẩm mỹ, đóng gói và quản lý dây cáp. Code đã được tinh chỉnh cho phù hợp và có những thay đổi để yêu cầu phạm vi chuyển động nhỏ hơn.

Tổng quan
Tôi đã cố gắng xây dựng thiết kế Space Mushroom tuyệt vời của Shiura, cũng như một số bản remix. Chuyển động của mỗi bản đều bị méo và không đáng tin cậy. Cuối cùng, tôi đã lao vào tìm hiểu và kết hợp các đoạn code và hình học để tạo ra thứ gì đó mà tôi hiểu và hoạt động như mong đợi. Trong quá trình phát triển, tôi đã chú trọng vào việc thêm chú thích, gỡ lỗi và thiết kế lại các bộ phận để người khác có thể tùy chỉnh và khắc phục sự cố nếu cố gắng thực hiện dự án này.
Dự án được trình bày từng bước trong video này:
Chức năng
Thiết bị này mô phỏng một SpaceMouse thực sự. Trên thực tế, phần mềm 3DConnexion nghĩ rằng nó là một chiếc SpaceMouse. Chúng ta có sáu bậc tự do được điều khiển bằng các chuyển động analog. Điều này cho phép chúng ta kiểm soát camera đầy đủ và động trong bất kỳ phần mềm CAD nào mà SpaceMouse thông thường hỗ trợ. Bản phác thảo của tôi giới thiệu code đảo ngược tốc độ và hướng dễ dàng thay đổi để bạn có thể nhận được đầu vào/đầu ra đúng như ý muốn.
Tín dụng
Bản remix này và tất cả các bản remix khác đều dựa trên thiết kế Space Mushroom gốc của Shiura.
Tôi đã dựa thiết kế của mình trên thiết kế bốn cần analog của fdmakara vì tôi nghĩ sẽ dễ hiểu toán học hơn (và đúng là vậy). Phần ‘shaft’ của fdmakara được sử dụng nguyên bản và đính kèm ở đây để tải về tiện lợi.
Các bộ phận bên ngoài của thiết kế tôi lấy cảm hứng từ bản remix kiểu UFO của 3Dtombud.
Về code, tôi bắt đầu với phiên bản của fdmakara để phù hợp với bốn cần analog, sau đó kết hợp mô phỏng HID SpaceMouse của jfedor và các bổ sung Space Mushroom của BennyBWalker.
Nguồn CAD
Một tệp step của bộ lắp ráp được đính kèm. Nguồn CAD của tôi cũng có thể được truy cập trên Onshape, ngay cả khi không có tài khoản. Bạn có thể nhấp chuột phải vào bất kỳ bộ phận nào và xuất ra định dạng bạn chọn.
Phần cứng yêu cầu
4 x cần analog tương thích Arduino
Tôi đề xuất cần analog tương thích Arduino có bốn lỗ gắn trên PCB:
Amazon (liên kết liên kết): https://amzn.to/3QmPAub
eBay Úc: https://www.ebay.com.au/itm/324603929771?var=513643383708
Tôi ban đầu đã sử dụng loại hai lỗ gắn của Keyestudio mà tôi KHÔNG KHUYÊN DÙNG, vì chúng sẽ yêu cầu sửa đổi CAD và code: https://wiki.keyestudio.com/Ks0008_keyestudio_Joystick_Module
Arduino Pro Micro
Những bo mạch này rất rẻ và dễ kiếm. Đảm bảo phiên bản của bạn có ATmega32U4.
Amazon (liên kết liên kết): https://amzn.to/4bkg87z
Ốc vít - Bản ‘Bigfoot’ gốc
M3 x 16mm x 12 (bạn có thể dùng loại ngắn hơn một chút nếu có sẵn)
Bu lông ‘tripod’ ¼ inch UNC x 1
Ốc tự khai thác cỡ ‘4 gauge’ x 6mm x 8 (~2.9mm đường kính)
Ốc vít - V2 ‘Mini-ish’
M3 x 12mm x 12 (nếu sử dụng miếng đệm dày hơn, bốn chiếc này có thể cần dài hơn)
Ốc tự khai thác cỡ ‘4 gauge’ x 6mm x 12 (~2.9mm đường kính)
Ốc siết cáp nhỏ.
Chân đế cao su dán
Amazon (liên kết liên kết): https://amzn.to/3JJUj5w
Bộ dây Dupont
Bạn có thể đã có thứ này, nhưng nếu chưa, bộ này có nhiều bộ phận và dây.
Amazon (liên kết liên kết): https://amzn.to/4b5mvfu
Cáp USB
Để khớp với bo mạch Arduino Pro Micro, có thể là USB-A sang micro-USB.
Dải đèn LED (tùy chọn)
Cần chiều dài dải khoảng 38cm để che phần vỏ bên trong.
Amazon (liên kết liên kết): https://amzn.to/49WKU5v
Các bộ phận in 3D - Bản ‘Bigfoot’ gốc
Số lượng và cài đặt in cho mỗi bộ phận được cung cấp trong phần tệp. Mỗi tệp đã được định hướng chính xác. Loại filament không thực sự quan trọng.
Có ba loại được cung cấp:
Core
Những bộ phận này là bắt buộc và cần thiết để gắn các cần analog.
Space Mushroom - Lựa chọn 1
Tôi thấy bộ phận gốc của fdmakara bên trong hơi nhỏ, làm hạn chế phạm vi di chuyển của các cần analog. Tôi đã thiết kế lại bộ phận này để làm cho nó lớn hơn, cũng như chia nó thành hai nửa trên và dưới để tránh cần vật liệu hỗ trợ. Bốn lỗ ở phần nấm bên dưới sẽ cần được làm sạch bằng mũi khoan 3mm.
Đi theo cách này có thể có nghĩa là bạn có thể sử dụng các bộ phận khác của fdmakara để gắn chuột. Tôi chưa in và thử nghiệm những bộ phận này.
Dome - Lựa chọn 2
Đây là cấu hình như trong video. Nó lớn hơn nhiều so với tôi hình dung nhưng khá thoải mái và che giấu dây điện một cách độc đáo. Lớn hơn không hẳn là tệ, vì bạn muốn có trọng lượng để tránh chuột bị nhấc lên và di chuyển trên bàn khi sử dụng. Bốn lỗ ở phần vòm bên dưới sẽ cần được làm sạch bằng mũi khoan 3mm.
Các bộ phận in 3D - V2 ‘Mini-ish’
Số lượng và cài đặt in cho mỗi bộ phận được cung cấp trong phần tệp. Mỗi tệp đã được định hướng chính xác. Loại filament không thực sự quan trọng.
Không cần hỗ trợ cho bất kỳ bộ phận nào, mặc dù bốn lỗ ở phần vòm bên dưới và bốn lỗ bên trong khung sẽ cần được làm sạch bằng mũi khoan 3mm.
Các bộ phận ‘Spacer’ là tùy chọn, tùy thuộc vào chiều cao bạn mong muốn. Bạn có thể bỏ qua bộ phận này, hoặc sử dụng miếng đệm mỏng hơn hoặc dày hơn để phù hợp với sở thích của bạn. Nếu cần, miếng đệm có thể cung cấp thêm không gian cho dây cáp.
Đi dây
Bạn sẽ cần một mỏ hàn, dụng cụ bấm cos, dây màu và đầu nối dupont. Đi dây giống hệt nhau cho V1 và V2. V2 không có lõi để khớp với hình ảnh ở trên cùng bên trái, mà thay vào đó là các chữ cái A, B, C & D được dập nổi bên trong bộ phận.
Sơ đồ sau đây cũng có sẵn trong phần tải xuống.

Tôi có một video về dụng cụ bấm cos và kỹ thuật có thể hữu ích:
Lắp ráp - Bản ‘Bigfoot’ gốc
Phần này được trình bày từng bước trong video ở đầu trang.
Lắp ráp - V2 ‘Mini-ish’
Vui lòng sử dụng những hình ảnh này cho đến khi có video chuyên dụng.
Chuẩn bị các khớp bi theo thiết kế ban đầu: sử dụng mũi khoan 2mm thẳng hàng với lỗ nhỏ hơn để tạo lỗ, sau đó chèn một ốc tự khai thác từ phía lỗ lớn cho đến khi nó nằm phẳng.


Vặn bốn cần analog vào khung bằng ốc tự khai thác ở mỗi góc.

Cắm vào các đầu nối cho cần analog. Vỏ bên trong có nhãn ‘A’, ‘B’, ‘C’ & ‘D’ được dập nổi để hỗ trợ. Bây giờ hãy dùng ốc siết cáp để cố định từng phần của dây cáp dọc theo chu vi của khung bên trong.

Sau đó, có thể lắp phần vòm trên và dưới vào các khớp bi của cần analog, giống như trong bản gốc.

Nắp trên được gắn bằng cách thêm các bu lông M3 từ mặt dưới của khung.


Dùng ốc siết cáp cố định Arduino Pro Micro nằm nghiêng như hình. Cổng USB nên hướng vào trung tâm. Các lỗ ốc siết cáp bổ sung được cung cấp để gắn vật nặng. Càng nặng càng tốt.

Nếu bạn đang sử dụng miếng đệm, hãy đặt nó vào NGAY BÂY GIỜ, TRƯỚC KHI cắm dây vào Arduino. Khi bạn kết nối dây, việc đi dây hoàn toàn giống với phiên bản gốc.
Vặn đế và dán chân đế cao su.
Hoàn thành!
Code Arduino
Bản phác thảo của tôi được đính kèm trong phần tệp. Tuy nhiên, trước khi nạp nó, điều quan trọng là phải thiết lập một bo mạch tùy chỉnh. Vui lòng đảm bảo sử dụng bản phác thảo V2 nếu bạn đang xây dựng V2.
Mô phỏng Spacemouse
Chi tiết hơn được hiển thị trong video. Tôi đã làm theo hướng dẫn tại đây từ nebhead: https://gist.github.com/nebhead/c92da8f1a8b476f7c36c032a0ac2592a
với hai điểm khác biệt chính:
- Tôi đã thay đổi từ 'DaemonBite' thành 'Spacemouse' trong tất cả các tham chiếu.
- Tôi đã thay đổi giá trị VID và PID theo hướng dẫn của jfedor: vid=0x256f, pid=0xc631 (SpaceMouse Pro Wireless (có dây))
Khi biên dịch và tải lên, tôi chọn Arduino AVR boards (trong Sketchbook) > Spacemouse và sau đó là cổng nối tiếp.
Bạn cũng sẽ cần tải xuống và cài đặt phần mềm 3DConnexion: https://3dconnexion.com/us/drivers-application/3dxware-10/
Bây giờ hãy nạp bản phác thảo vào Arduino.
Nếu mọi thứ suôn sẻ, phần mềm 3DConnexion sẽ hiển thị SpaceMouse Pro wireless khi Arduino được kết nối.
Gỡ lỗi
Năm cấp độ gỡ lỗi được cung cấp để đảm bảo mọi thứ được kết nối và hoạt động bình thường. Nó sẽ giúp xác định các sự cố về dây nối. Điều này được trình bày trong video.
Tùy chỉnh
Gần đầu bản phác thảo, các biến số được cung cấp để thay đổi vùng chết (deadzone), tốc độ/độ nhạy và đảo ngược từng bậc tự do riêng lẻ theo sở thích của bạn. Mỗi biến số này đều có chú thích giải thích.
Thêm nút bấm
Tôi đã thấy trong phần bình luận của các bản remix khác rằng nhiều người muốn có nút bấm. Tôi thấy rằng có chỗ cho việc này trong giao thức HID do jfedor viết, nhưng tôi chưa khám phá thêm. Dự kiến của tôi là bạn sẽ nhập thư viện khử rung (deboucing library), thêm một trình lắng nghe để nhấn nút trong vòng lặp, và sau đó kích hoạt một báo cáo HID().SendReport() khác để báo cáo lần nhấn nút. Trong tương lai, tôi có thể khám phá điều này nhưng hiện tại thì chưa.
Hoạt động
Đối với tôi, sử dụng thiết bị này đơn giản như cắm chuột vào, và nó được phần mềm 3DConnexion tự động nhận diện:
Nó sẽ nhận diện phần mềm bạn đang sử dụng và áp dụng chuyển động dựa trên đầu vào của bạn. Tôi đã thử nghiệm điều này với Onshape, Fusion360, Photoshop và OrcaSlicer. Nó cũng có thể được sử dụng để cuộn trang web lên xuống.
Giấy phép
Tác phẩm này được cấp phép theo
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 InternationalAttribution-NonCommercial-ShareAlike