I want a pair of rollerblades that, using simple technology (no GPS), can fairly accurately report to me how far I’ve traveled. I want an odometer readout that I can reset before each trip. How can this be accomplished?

Add rotary encoders to the front and back wheels on the skate. We want the frictionless optical tachometer type; the direction of motion is irrelevant (picture someone skating backwards, for example). We can obtain a fairly accurate measure of the distance traveled by the skate by always recording the angular displacement of the faster-turning wheel. This can be accomplished by having each encoder increment its own small counter (say, a 4-bit one). When one of the counters overflows, it sends a signal to a large main counter and clears both small counters. The large counter is enabled by a pressure switch (maybe a piezoelectric sensor with a threshold for binary output) able to determine that the skate is in fact contacting the ground. At this point, assuming we’ve been intelligent about the encoder pitch relative to the wheel size, and done the appropriate trickery in the counting logic, we have a skate that can accurately measure its own ground distance traveled in some useful unit.

The major issue now is that both skates are sometimes, but not always, contacting the ground, and there is no way to know a posteriori, when observing the results, how much overlap to subtract. I don’t want to introduce any concept of time into this design, so what we need is some way for one of the skates to know whether the other is contacting the ground. We can accomplish this by having the pressure switch on the left skate enable an RF transmitter, with a simple structured signal that a receiver on the right skate can robustly identify. The receiver can then disable the counter on the right skate while the left skate is transmitting. Now, totalling the large counters in both skates should yield a fairly accurate total ground distance traveled.

However, as a human being, I can’t tell what is in those counters, and even if I could, I wouldn’t want to have to add them up in my head. We can add a button to the left skate that triggers a different RF transmission to the right which encodes its counter value and then resets it. The receipt of this signal on the right skate prompts it to add the value to its counter register and show the value on an LED display for a few seconds. This can be done repeatedly, since the left skate is just dumping its current counter value into the right skate each time, where the total is retained. The corresponding button on the right skate would simply reset its counter.

Some issues for further consideration:

• Since the transmissions are one-way, the signal needs to be robust. We also assume that the rollerblades are both powered and in proximity to one another.
• Power management. Should the skates power off after a period, and power on via the pressure switch? We likely want the main counter registers to be non-volatile.
• Pressing a button on the left skate to activate a display on the right skate seems somewhat awkward from a user perspective.

I really ought to be doing more important things…

Jun 21st, 2009
1. Jun 22nd, 2009 at 02:53 | #1

-_-

How is having an RF transmitter in each skate actually significantly less complicated than having a cheap GPS?

2. Jun 22nd, 2009 at 07:11 | #2

Time, distance

Introducing time would make things a lot easier and you could reasonably do everything on one skate. Each time the skate is touching the ground, it calculates its rate of speed, then infers the distance travelled when not touching the ground by extrapolating based on its previous speed.

One problem that you haven’t accounted for is that the blades are not always parallel to the direction of travel. People push their blade out to the side. If they push with their foot on a bit of an angle, then the length of the path that the blade travelled while touching the ground will not equal the distance the human travelled in the direction of travel.

3. Jun 22nd, 2009 at 08:36 | #3

All of your suggested solutions seem way more complicated than just throwing a GPS in your backpack dude.

That being said, if I wanted to get this done and fast, I’d get a bicycle computer which use a magnet on the wheel and a little reed switch to detect when it passes. Some models allow you to input the circumference of the wheel down to like 1CM (so, way smaller than any bicycle application). Embed a magnet in a rollerblade wheel, etc. The problem with rollerblades as you pointed out is definitely that both aren’t on the ground always, that being said, spending a day skating around as usual will probably give you a fairly reliable correction percentage you can just add (by adding it to the wheel circumference in the computer). It won’t ever be dead-accurate, but it’ll cost ya \$30 and you won’t have to program a damn thing.

Long time no talk by the way man…

Mike

4. Jun 22nd, 2009 at 14:24 | #4

Re: -_-

Oh, I’m not actually talking about me. Let’s pretend it’s the mid-eighties at the height of rollerblade popularity, and GPS is still ten years away.

Also, you only have a transmitter in one skate, and a receiver in the other.

5. Jun 22nd, 2009 at 14:39 | #5

Re: Time, distance

Now you’re talking about introducing a CPU, memory, and a real-time clock. Calculate the rate of speed based on what input? If you want to use a simple optical tachometer, you’re talking about some tricky sampling. The extrapolation part sounds pretty flaky — it could get wildly out of whack if the user happens to stop without putting the correct foot down, for example.

You are absolutely right about the lateral displacement component. No idea how to compensate for that accurately. :(

6. Jun 22nd, 2009 at 14:43 | #6

Magnet wheel and reed switch is functionally equivalent to the optical tachometer, but you might want a smaller resolution than once per cycle.

I should probably have pointed out that this is in no way a practical DIY project, otherwise I’d just use a GPS. ;)

7. Jun 23rd, 2009 at 21:41 | #7

Why would you ever need resolution greater than once per rollerblade wheel!? I’m guessing this isn’t actually about rollerblading?

If you need that resolution greater than 1 revolution maybe an optical encoder would be best? Or a homebrew optical encoder disk with the resolution necessary..