Turn a PC mouse into a Speedo
-
- bitThug
- Posts: 80
- Joined: Tue Apr 29, 2003 12:47 pm
- Location: New York
Hehehe. I say that we make a practical joke mouse, and sneak a bit board into it. Hook up the board to the forcefeedback motor and operate it via remote control!!! What fun to do to my boss!!!
I won't even mention the implications of using this technology on my wife's vibe. That boost button would put her on the ceiling.
I won't even mention the implications of using this technology on my wife's vibe. That boost button would put her on the ceiling.

-
- bitPimp
- Posts: 1979
- Joined: Tue Mar 25, 2003 6:33 am
- Location: taco city
I will get some ps2 extension cables and play the chop-chop game. Will set it up like this. One male ps2 plug splitting into 2 female ps2 sockets. I'll see how this goes, if your regular mouse is OK and the speedo mouse doesn't affect normal use, this would be the model of choice. Otherwise I will put a rotary switch in place, eg a 6PDT switch (to account for the 6 ps2 wires) and then switch between the two mice.noxorc wrote:I guess the issue I see is, attaching TWO MICE!
most 'putes only handle one. Let me test with a USB and a serial mouse to see how it reacts.
-nOx
ph2t.
-
- bitPimp
- Posts: 1979
- Joined: Tue Mar 25, 2003 6:33 am
- Location: taco city
Where the bit wheel connects to the mouse should be confirmed first. Putting the wheel on the thin plastic shaft will give you value X. Putting the wheel on the encoder disc would give you value Y. The circumference for both is different and hence ratios will be different.Namuna wrote:To add on to what ph2t was already getting to...
Functionality:
To use the components in a standard mouse to track/measure the usage (at the wheels) of a Bit Char-G
Scope:
To ascertain the RPM, Distance (I would suggest in Feet) as well as MPH.
- RPMs: you seem to already have a lock on this with what you have already.
- Distance: The traveled distance could be another way to test battery capacity
- MPH: Using the means for finding the Distance and associating time (perhaps even in Real-Time?) would be the biggest plus of this setup.
I've got mice (from old machines at work) that can easily be donated for the 'cause'.
The problem here is maintaining a standard.
1) Various mice could possibly have different encoding wheel sizes, causing ratios to go to shit.
2) Sampling rate of serial and ps2 mice is less than USB mice, could cause sampling issues with higher speed wheels. (Dictated by motor speed and gearing ratios.)
I guess the shaft (the bit the mouse ball connects to) of the encoding disc would be the best bet. The diameter of the shaft on a couple of mice I've pulled apart *appear* to have the same diameter. This would cause the encoding disc to spin at the same rate. (huge assumptions here)
Namuna, I believe RPM's would be harder to calculate vs. actual ground speed.
Whatever we do, please include SI (Standard Index) values. I would like to see meters covered and KPH. Lets make it universal, not just bloody merican!
ph2t.
- noxorc
- bitPimp
- Posts: 2104
- Joined: Wed Feb 19, 2003 2:49 pm
Here is a copy of my test code.
BitSpeedReader
the counter will not count outside of the window's focus, UNLESS you hold down the left button, and then it should count continously.
-nOx
BitSpeedReader
the counter will not count outside of the window's focus, UNLESS you hold down the left button, and then it should count continously.
-nOx
- noxorc
- bitPimp
- Posts: 2104
- Joined: Wed Feb 19, 2003 2:49 pm
anyone can help.
Take apart a mouse and cause the Bit's wheels to turn one of the spindles.
The values being printed out are events values from the mouse.
We need a barring (as Namuna has stated or Ph2t, it might be vendor specific) on how many revolutions a bit's wheel does compaired to the spindles revolution.
Wheel RPM = Motor RPM / Gear Ratio
833 = 10,000 / 12:1
Take apart a mouse and cause the Bit's wheels to turn one of the spindles.
The values being printed out are events values from the mouse.
We need a barring (as Namuna has stated or Ph2t, it might be vendor specific) on how many revolutions a bit's wheel does compaired to the spindles revolution.
Wheel RPM = Motor RPM / Gear Ratio
833 = 10,000 / 12:1
- noxorc
- bitPimp
- Posts: 2104
- Joined: Wed Feb 19, 2003 2:49 pm
things are coming together for me.
Still working on the software..
Here's my hardware setup...so far so good.
taken apart a standard mouse (in my case it's a Microsoft)
I've stuck a bit with yellow puddy on the pcb.
allowing the rear wheel to ever-so lightly touch, or run along
one of the 'decoder' wheels.


Still working on the software..
Here's my hardware setup...so far so good.
taken apart a standard mouse (in my case it's a Microsoft)
I've stuck a bit with yellow puddy on the pcb.
allowing the rear wheel to ever-so lightly touch, or run along
one of the 'decoder' wheels.


- noxorc
- bitPimp
- Posts: 2104
- Joined: Wed Feb 19, 2003 2:49 pm
Works for me...just have to fine tune the Distance ratios vs mouse counts.
Here is a flow...
Prepare Car on Mouse Decoder Wheel. (charged and ready for Forward direction)
Place the mouse cursor within the "BitSpeedReader' window frame.
Click on 'File', then "Start Count Down Timer".
The "CountDownTimer" Box will display a "10" and start to count down to "0".
Within this time, you have to:
1) Depress the Left mouse button
2) Start your 'forward' direction on the car.
The idea of the count down timer is to allow motor/wheel ramp up time before measuring.
Once the "Count Down Timer" expires, the "Running Timer" starts and runs for 10 seconds.
It is during this time you must already be depressing the left mouse button and
the Forward direction button on the Car remote for the total duration of the 10 seconds.
A difference will be calculated from the start time to the end time. Then divide that
distance in to 10 seconds.
and here is the program
http://noxorc.lixlink.com/bitspeedreader.exe
-nox
Here is a flow...
Prepare Car on Mouse Decoder Wheel. (charged and ready for Forward direction)
Place the mouse cursor within the "BitSpeedReader' window frame.
Click on 'File', then "Start Count Down Timer".
The "CountDownTimer" Box will display a "10" and start to count down to "0".
Within this time, you have to:
1) Depress the Left mouse button
2) Start your 'forward' direction on the car.
The idea of the count down timer is to allow motor/wheel ramp up time before measuring.
Once the "Count Down Timer" expires, the "Running Timer" starts and runs for 10 seconds.
It is during this time you must already be depressing the left mouse button and
the Forward direction button on the Car remote for the total duration of the 10 seconds.
A difference will be calculated from the start time to the end time. Then divide that
distance in to 10 seconds.
and here is the program
http://noxorc.lixlink.com/bitspeedreader.exe
-nox
- noxorc
- bitPimp
- Posts: 2104
- Joined: Wed Feb 19, 2003 2:49 pm
Ok, lets talk about this.
If the decoder travels 200,000 clicks for one revolution.
then what?
does this hold true?
RPM = (200,000 * 60)
Revolutions Per Minute = 200000 * 60 seconds
12,000,000.
Don't we need the Diameter of the wheel thrown in here?
12:0 gear ratio with a 1.0 motor yealds a wheel RPM of 833.
12:0 gear ratio with a 2.6 motor yealds a wheel RPM of 2,167.
If the decoder travels 200,000 clicks for one revolution.
then what?
does this hold true?
RPM = (200,000 * 60)
Revolutions Per Minute = 200000 * 60 seconds
12,000,000.
Don't we need the Diameter of the wheel thrown in here?
12:0 gear ratio with a 1.0 motor yealds a wheel RPM of 833.
12:0 gear ratio with a 2.6 motor yealds a wheel RPM of 2,167.
- noxorc
- bitPimp
- Posts: 2104
- Joined: Wed Feb 19, 2003 2:49 pm
There is 'play' or otherwise known as 'there is a margin of error'.
Because the motor->gears->axle->rim->tire-> <-Mouse Decoder wheel.
the pressure applied can put a load on the motor (unmeasureable, today).
I would really like to attached the motor->gears-> <-Mouse Decoder wheel.
Well, with my current method, I can tell the difference between different speed motors.
Which is really neat, cause I can NEVER remember what's what.
Now, just plug it in, and run. after 20 seconds, it gives you a general range.
In this run, the motor was a 2.2. The RPM reading is 21623.
so it's 400 ticks off. not much. You do have to calabrate base on your mouse. the next run showed 22100.

-nox
if you want a copy, click on the link in my other replies. (same filename, newer version)
Because the motor->gears->axle->rim->tire-> <-Mouse Decoder wheel.
the pressure applied can put a load on the motor (unmeasureable, today).
I would really like to attached the motor->gears-> <-Mouse Decoder wheel.
Well, with my current method, I can tell the difference between different speed motors.
Which is really neat, cause I can NEVER remember what's what.
Now, just plug it in, and run. after 20 seconds, it gives you a general range.
In this run, the motor was a 2.2. The RPM reading is 21623.
so it's 400 ticks off. not much. You do have to calabrate base on your mouse. the next run showed 22100.

-nox
if you want a copy, click on the link in my other replies. (same filename, newer version)