A Baluff tem isso, na série Bill de sensores, só que eles não tem grande precisão e o preço não é muito bom.
Pode fazer de diversas maneiras,
Usando Régua Ótica (encoder linear, custo alto, precisão absoluta)
Usando Encoder rotativo e um sistema de movimentação (cremalheira ou algo do tipo)
Se for usar régua e a sua aplicação gerar/estiver em ambiente sujo, você terá que montá-la de ponta cabeça e pressurizá-la com ar comprimido SECO para evitar de riscar o cristal com alguma partícula estranha.
Uma maneira extremamente simples e barata de se fazer leitura linear é usar um potenciometro Bourns, 10 Voltas, precisão 1%, você terá que bolar duas polias (de preferência recartilhadas), vamos supor que sua aplicação tenha 1000mm de curso para você ler, então o pot tem que dar 10 voltas e você tem que bolar uma polia grande, de forma que o perímetro seja 10 vezes menor que a sua distância, neste caso o perímetro tem que ter 100mm e o apenas aplicando 2 * pi * r = D, você terá que bola a polia do pot com 15,9mm de ráio.
Aqui está o carinha:
Depois arrume um cabo de aço fino, faça recartilhagem na polia, apoie o sistema mecânico em rolamentos ou mancais (não tracione direto do pot, jamais) coloque uma pequena molar como esticador e está feito.
A parte mecânica pode complicar um pouquinho, mas nada que um esboço na prancheta não dê boas e simples idéias, um pot destes custa por volta de R$15,00 e ele é super linear, com esta precisão basta você jogar em um ADC, comparador de janela, enfim, usar o sinal a sua maneira.
Também pode usar potênciometro lineares, são reais régas potenciométricas, algumas máquinas usam isto, não é muito caro, mas o efeito é o mesmo.
[]s!
"3 minutes of boring code review means 3 hours less fixing LSD (Little Stupid Detail)" Dr. Mike Smith
"Dê-me um ponto de apoio e uma alavanca e moverei o mundo" Arquimedes
"Quando vejo um Alfa Romeo passar eu tiro o meu chapéu" Henry FORD.