Shane brennan sent in his groups final CE/EE senior design project. fre3space is an ir, ultrasonic 3d mouse. Three towers take ultrasonic sound measurements to calculate the position of the mouse. button clicks are transmitted in ir. A fpga developers kit ties it all together and provides the usb interface. a simple opengl application demonstrates the 3d capabilities of the system (vs 2d of the desktop variety).
18 thoughts on “Ultrasonic 3d Mouse”
first post! w00t
It’s actualy pretty cool, but there’s a bit of an issue that comes up when I think of this in other implementations, for example, the Wii. It’s going to cost about two to three hundred dollars max, and if they tried to include a system as expensive as the one described here, they’re loosing a very large sum of money. Plus, if the average cost of a GC game (about 50 bucks) stays the same (new release Wii games cost the same), they’re not making any money there.
How in the heck can they make a system more precise than this one, while keeping a very low price ?
Looks pretty nifty.
I wanted to build a data-glove thing as a final project in highschool but only got as far as the software and movable fingers because we couldn’t find a simple and cheap way to do the 3D movement.
This one seems a bit too expensive though.
Does anyone know of other such projects that might be cheaper, preferably with 6 degrees of freedom?
#3 – ‘How in the heck can they make a system more precise than this one, while keeping a very low price?’
Quite simple. First, mass production. Second, in addition to that, these students wasted a TON of money. The system featured here uses 4x $12 MCUs and a hella expensive FPGA dev kit which includes a $65 FPGA chip.
This could have been implemented with only 2x MCUs and *no* FPGA. I find it extremely silly that they’re using a *separate* MCU for each receiver, as well as the FPGA for the controller, when a single MCU of they type they used is more than powerful enough to handle the function of *all three* receivers *and* the controller!
Perhaps their university had specific requirements for the project; for example, they must use a FPGA. Or, certain parts/boards were available through the uni for free. That might explain such a wasteful project.
Actually this thing is pretty poor. It is a very nice idea, but the implemantation is trashy. Why do they need an x hundred $ FPGA DevBoard? They could just use cheap microcontrollers and a cypress USB interface. As it looks to me the software is also bullshit. 3 cm? Thats a long time for sound! Did they just use clicks and measured the arrival time? Here comes the clue train: use correlation! GPS? Ever heard of? This will definately give better results if the rest of the hardware is not as crappy as it looks. And the “mouse” is far to big. There were youth science fair projects with the same thing that got better results. The whole thing looks like a “steaming pile of sith” (maddox). Get proper layout, a proper box and stop trashing around.
And what should I take from the words “if we had written a driver” we could actually use it? wtf?
hey guys. thanks for the compliments, glad to see our project up there! yeah, system cost is pretty dang steep. That $250 doesnt even include labor! Mass produced these would be able to go for a bit cheaper, maybe $125-$175. However, cost wasn’t terribly important to us, we weren’t hoping to maass-market these, just a fun project to do.
and in response to the anonymouse poster above, the accruacy could be MUCH improved. The wii controller will certainly be more prcise, in fact more precise versions already exist. These almost universally rely on gyroscopes (like tilt-sensors). We wanted to stay away from gyropscopes, as they are not always intuitive, and typically not as fun to use. This one is kind of like a WYSIWYG mouse, if you move it up and to the left, your mouse cursor goes up and to the left.
anyways, I appreciate all your comments!
Well you could still do it with an MC and sound. Just – use only one speaker -use crosscorrelation between a pseudo random noise encoded signal and what you get back. Gyroscope is not very helpful I agree. Another way is to use a stick with 3 colored balls at the end (in a tetraeder). Than use cameras to encode spatial position.
Could you guys answer me two questions?
– How is the sound detected in terms of signal processing. Trigger at certain level?
– Why does the think look so homebuild? Did you have poor support from your school?
1. The Wii controller (I believe) uses a MEMS accelerometer chip like this guy’s Zapper http://www.zero-soft.com/HW/USB_ZAPPER/
2. The PowerGlove was also ultrasonic, got better resolution than this (though I’m not sure what the max refresh rate was) was 4DOF (X, Y, Z, and Roll) included finger sensors and a truckload of buttons, and was many-much cheaper. It also only used two transducers in the glove.
This isn’t to put you guys down, because I couldn’t have done what you guys did for 10 times the $$$ ;) This is just to show that it can be done with far less (and far cheaper) hardware.
stoned you clearly know absolutely nothing about what you are talking about.
you are worse than steve, the bad one.
yes, i think stoned may be steve with a fake moustache
Hey guys. To answer a few questions, we did indeed have some support (though we had to go and find it) from various sources. Part of that support was free uCs, free FPGA dev kits (4 of them, thanks to the kind folks at Altera!) It looks cheap and homebuilt because we didnt have the money to make some custom casing. Flashlights cost $1, and the plastic casing for the towers were only $1.50, save some cash! As for the size, the “mouse” part could be much smaller, the PCB is only 1.25″ x 3.75″, so you could have a casing with those dimensions (more-or-less) plus a height of about 1.5″ to allow room for the through-hole caps.
stoned. the detection is a basic thresholding of incoming UltraSonic signal. However, we do have some filters and amps to clean up and distinguish the signal. The somewhat low accuracy is due to the imperfection of these circuits. We have some ideas on how to improve accuracy, but we have all moved on to jobs and grad school now. They look home built because they more-or-less were. This isnt a fancy hardware lab with cool things available to us. We had 3 PCs, 3 digital multimeters, a soldering iron and some signal generators, the rest was up to us. Oh ya, and 3 O-Scopes too.
Amos, if we had the time, we could have done this with only 2 uCs, instead of 4 and an FPGA. That would have required a bit more complicated design, but lowered cost. However, since we were under a time-limit, we had to make sure it worked first. If we were to re-design this for a commercial purpose, of course we could make many changes to lower the cost and increase the “prettiness” of the design.
As for buttons, our design supports up to 256 buttons, we just chose not to fill that flashlight with a mess of buttons =)
I know what iam talking about. I don’t propose to use GPS as mouse, I say to use the *METHOD* GPS uses to detect the signal. And this is crosscorrelation with a key. Fooled yourself, idiot! Iam sure you don’t even know what correlation is.
That’s brilliant, well done :P
Shut up stoned.
stoned does some valid points. I looked into doing such a thing as GPS uses, which basically involves using PRNs on each end and correlating the signals received by different receviers (or in the GPS case, the signals received from different transmitters) but the idea proved unfeasible, primarily due to the slowness of sound. For a time we were going to do this with radio waves using “chirp” signals, which ramp the frequency over time. We abandoned this idea because the speed of light is freakin’ fast, and requires much more sophisticated electronics and circuits.
In defense of my Alma Mater, one of the reasons that the casing is of homebrew variety is that UCSC does not have anything in terms of a metalshop. Since there is no mechanical engineering, or even civil engineering, at the school, even getting access to a band saw or dremel tool that doesn’t come from your own house can be difficult.
Nice job, good to see UCSC engineering projects up here.
I did a project like this using a 3-axis accelerometer, and we had about 45 refreshes a second. Also, I read over some of the problems you had. The one regarding the mouse driver is easily remedied using USB descriptors since Windows comes standard with generic 2/3/5 button mouse drivers. All you have to do is send the same data that a normal mouse would send and you can tap into these premade drivers for your project.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)