3D Printed Full 6 DOFs Space Mouse - "Space Mushroom"
Vložit
- čas přidán 22. 12. 2022
- Very simple and easy to assemble 3D space mouse. It can input full 6 degrees of freedom (rigid motion) simultaneously. It uses three analog joystick sensors for game controllers.
Free 3D model and code are at
www.thingiverse.com/thing:573...
www.instructables.com/Space-M...
www.printables.com/model/3537... - Věda a technologie
This is incredible. I’d love to see this evolve into a more polished open source product with guides, etc. if you’re ever up for it.
the use of the symmetrical joysticks is very clever, intuitively you wouldn’t think such a system could support translation as well as rotation
I have used devices like this for CAD work. Had a regular mouse in one hand and the 6dof controller in the other.
Very nice to see this. I hope it helps someone.
How can a so simple design can be so efficient... Bravo's
Your mechanical solution to use three off-the-shelf joystick modules is pure genius!
I just had a quick browse through the rest of your creations on thingiverse and all I can say is wow...
finally a design I like for e 3d mouse, i'm going to make it in these weeks; I'll send you the final creation if u wanna see it!
Shared. This is awesome! Thanks for making the code available, I will love to see how you’re deconvoluting the joystick inputs.
Back in the early 2000s I remember seeing a product similar to this in PC Mag with a ball mounted on a sort of tripod that worked in more or less the same way. I think they went out of business but I always wanted one.
Amazing work with your design! Functions just like I always imagined!
Novint Falcon
Hey I'm the author of the SpaceFox, a similar 6DOF mouse, of which you can find two videos on my channel. I just wanted to say that the joystick idea is really clever. Also, two considerations: you could use Spacenavd to support many different 3D software directly, as well as games. And users of my space mouse said buttons are very important, so maybe something to consider. (I thought I posted a comment before but I don't see it anymore)
Oh man this is amazing, good job! Ive wanted a space mouse for a while and this looks perfect.
Yes space games came to mind for me too, cool design!
I don't see this being useful for everyday computer mouse control, but for very specific uses such as 3D modeling as you showed it could be VERY useful as a secondary input system.
This is the best design I've seen of these things on YT, common cheap components (maybe too cheap, these cheapo 2 axis joysticks are super jank and inconsistent), reasonable 3d print design.
that is so freaking cool. I saw this in a Google article and had to see it in action. that's like a modeler's wet dream
Hello, thank you for reading my message and answering my questions, that's nice. I'm going to start testing this evening. Good luck with your next videos, it's a lot of work with editing ;)
This is amazing thank you so much for making this available to everyone.
Woah this is awesome!!!
Wow, i might make this for space sims
You got some good mouse concepts
Thats actually cool
Very nice made!
Genius!!
wonderful
Cool! Fantastic! Thanks!
thank you
Fantastic
Ya know what would work even better, avoid the strain of holding your wrist in mid-air, and be immune to being torn off it's stalk? A trackball! Spin the ball in any direction to rotate your object and map the left and right buttons to zoom in and out. X, Y, Z.
And how do you do the panning? Doesn't look that comfortable either
素晴らしい
Awesome. What CAD packages is it compatible with??
What is the software you are testing it on??
Currently it can control Blender. By modifying the source code, it may able to control most of CAD softwares I believe.
This is awesome, thanks for sharing the project!! does it support left-right click?
Currently it has no buttons / functions to input simple left or right clicks, but it is essentially possible. Joystick sensor has a press switch inside and the function can be added to the program.
How does the 3D printed joints on 3D printed body feel ? Isn't it too grippy or too wobbly?
I give them some tolerance (free play) and no grippy feel. It has slight free play but the motion of the knob is relatively large so it is not an actual problem I feel.
More specifically, the layer of the ball joint and the knob is perpendicular so the friction is minimum (the worst case is the parallel layers for the both parts that generates grinding feel).
Can the button of the joysticks be utilized? can a button be extended to be used?
Yes, if you connect the buttons (switches) to the micro controller, you can use them.
I can't understand one thing.
Does the mouse cursor position change when I move the space mouse?
Can I use both mouse and space mouse at the same time?
In the program, it repeats
Press the mouse button down, then move,
Release the button, then move back
so the position of the mouse cursor is almost stationary.
Hello! Great and very important project! Unfortunately, I don't understand Arduino. Could you explain the logic behind this device? What commands does it send to the computer when the stick moves in any direction? I noticed that when moving the stick, the cursor on the screen makes small movements. Perhaps I can get a similar result for myself with existing programs... Thank you very much!
This controller calculates the motion of the top handle (mushroom-shaped part) then send the mouse motion and button press command with keyboard modifier keys (shift, alt, etc.). The combination of the keys and buttons are related to the software you want to control.
super amazing work! i wanted to ask, do you happen to have a more in depth diagram of the wiring? i'm new to wiring but have an understanding of soldering. would i just wire all of the cables with words beside them? do i solder together the 3 ground cables together, and the 3 voltage cables together? thank you for your time!
Yes, 3 ground cables from the 3 joystick sensors should be gathered together and connected to GND of controller. Voltage cables also. In the description at thingiverse, I wrote that they should be connected to RAW but currently I think VCC would be better.
@@shiura sweet, thank you very much! i was able to get it working thanks to your help. i did find though, the viewport seems to be rather jumpy? would the conservative mouse code help this? i'm not sure if it's user fault, and i messed up assembling it...
@@Pokolo413 The conservative code suppress the frequent press / release of mouse button. Usually the rotation and translation of the object can be done solely by the mouse. For example, right-button + drag = rotation, center-wheel = drag = translation, etc. To rotate and translate the object in CAD simultaneously, the mouse button operation is very complex and fast and sometimes the app works unintentionally. Conservative mode fix the motion mode at the first motion of the handle, so the illegal motion would be suppress but to switch between rotation, translation and magnification, you should stop the motion once.
@@shiura Your project is very wonderful, but if all the movements were done using the keyboard instead of a mouse, the project would be complete. Unfortunately, there is a problem with keyboard clicks having a delay time, and this problem cannot be addressed because the operating program does not allow setting the time smaller than it is supposed to.
@@yousseflachhab9057 This is just one of the technical demonstrations to enable 6-DOF input using three commercial joystick sensors. Anyone is free to develop their own, based on this idea or not. I do not intend to commercialize or advance this project, nor will I accept or respond to requests for improvements from third parties.
This is magnificent! Where can we see the code? I can't find it on the linked Thingiverse page.
In the thing file's page, "mouse.ino" is the source code.
Can I use it with dental CAD software?
It depends on the software. I just tested this device with Blender on Mac. With other softwares or OS, I heard some troubles.
It work with exocad dental software
i can use this mouse with fusion 360 on windows 11?
I do not know, I just tested with Blender on Mac. It works as a ordinary mouse, however, the smoothness of the motion much depends on the apps and OS.
Someone made the code to make an arduino appear as a 3Dconnexion device, such that you can use the 3d Connexion software as daemon and thus use the mouse for virtually any cad or editing software.
Sadly, CZcams would not let me publish the link, but it is in the comment section of the instructables blog entry of shiura about this project.
Personally, I haven't been able to test it out completely because my diy 3d mouse is very janky and one of the hall sensors of the stewart platform, similar to the design from Pepijn de Vos, does not return any values and I can't be bothered to fix it... but the 3d Connexion driver does read values from the arduino.
i want to realize the same project but in smaller size…
Do you know smaller joystick?
I do not know.
how did you get the transform matrix values ?
Started from simple geometric calculations, values are modified and tuned manually.
@@shiura yep ok it's manually tuned thanks
hi, can i use this mouse in solidworks?
It depends on your OS and software. Some people try to make this mouse compatible to 3Dconnexion's one, so please visit the project's sites and read comments.
@@shiura Hey ! Your project is awesome, the joystick idea is really clever. Do you know the name of this projet ?
Have a nice day
@@thomasmichel1373 Please run through the comments in Thingiverse and Instructables listed in the description above.
What about camera roll? I think this is only 5 dof.
The device itself has a capability of 6DOFs. However, Blender always keeps the Z axis horizontal when we control it via mouse. Also I do not need roll motion so in this example the motion is in 5DOFs in actual.
Do I understand correctly that your device simulates alternately pressing the mouse / keyboard buttons, followed by short shifts for a certain distance? If so, it means that using your device together with the mouse will not work synchronously - mouse movements and button presses will bring down the joystick and give additional commands to the program if middle click is used for them, and they will have to be used in turn ...
Yes, this device emulates mouse and keyboard. The press of the mouse button is very frequent and my PC (mac) adequately handle such very busy commands. They reports that windows can not, so the other software might be necessary.
@@shiura Thank you for your responses! Since your device mimics mouse movements, I would like to recommend implementing one important setting. It should be done so that when the joystick is moved from the central position, the model rotation button is not pressed / released, but is pressed all the time until the joystick is returned to its original position again, and the modifier keys are only "added" to it as need. This is important because, for example, Siemens NX rotates the model while holding down the middle mouse button. However, the same button functions as an "OK" button when using various commands in the program. This means that when working with commands, you cannot use the joystick to rotate the model, as this will close the called command and reset all entered parameters. Good luck!
@@JamesBond-bu8co I tuned that for my environment with Blender so it needs to be optimized for specific applications.
Hi, I've been thinking about building a 6 DOF mouse aswell but I didn't think of this setup, very nice. I've also been trying to find out how to input the 6 DOF's to every CAD program but it seems they use something proprietary, in this video it's explained a little bit, czcams.com/video/rLTWWPftyac/video.html hopefully you can figure something out and post an update
In my design and code, I use standard mouse control (XY motion) and attribution keys (ctrl and shift). By frequent switching of attribution keys, all kind of motions are simultaneously input. Please take a look at my code.
@@shiura ah yes I've tried that aswell but then you can't use your mouse at the same time so that's why I wanted to figure out how it's done with for example a 3dconnexion spacemouse
I took a look at the code used in the video you introduced, and I learned the existence of Joystick.h. I will try to use it.
@@shiura great, i look forward to the progress of this project and will build my own soon, thanks for your effort
WE'RE RICH! MUSHROOM
Music was quite a bit loud 📢
wow, thank you so much