Pergunta

Eu tenho um sensor de infravermelhos que escreve suas informações atual para um token que eu então interpretar em um aplicativo C #. Isso é tudo de bom - não há problemas, aqui está o meu código:

SetLabelText(tokens [1],label_sensorValue);
sensorreading = Int32.Parse(tokens[0]);
sensordistance = (mathfunctionhere);

Grande. Assim, quanto mais longe do sensor de IR é a partir de um objecto, a diminuir a leitura do sensor (como menos luz é reflectida de volta e recebida pelo sensor).

Meu problema é na interpretação que o comprimento. I pode ir em frente e obter permite dizer "110" como um valor quando um objeto é de 5 polegadas de distância, e, em seguida, "70" como um valor quando um objeto é de 6 polegadas de distância. Agora eu quero ser capaz de calcular a distância de um objeto utilizando essas constantes para qualquer comprimento.

Todas as idéias?

Foi útil?

Solução

Bem, a primeira coisa que eu faria é dados demorar pelo distâncias fixas, ou seja, de 1 polegada, 1 pé, 2 pés, 5 pés, etc. Eu, então, trama que dados em um programa como o Excel e encontrar a melhor ajuste de curva a partir do qual você pode derivar uma função. Use essa função no seu código e começar a testar a distâncias variadas.

Agora, pode não ser tão simples. As propriedades de reflexão do objeto que você está tentando medida irá mudar suas leituras, como poderia outros fatores. Desde que eu não sei o que são as suas necessidades, é difícil para mim dar conselhos mais específicos.

Outras dicas

É mais uma questão de física do que uma questão de matemática!

Ed Swangren sugestão de criar tabelas com a gravação de vários experimentos é o caminho a percorrer, a menos que você também pode contar com informações do fabricante do sensor.

Além do intrínseca precisão e fidelidade do dispositivo, de modo que muitos factores podem interferir com o eficiente quantidade de energia (ou o que quer que seja devolvido e medida); lendo sobre este dispositivo em particular ou mesmo em itens similares e / ou o fundamental dos efeitos físicos / dimensões em jogo pode fornecer-lhe ideia adicional para a calibração.

Uma vez que você tem uma tabela associando medições com distância (e temperatura critérios talvez adicional, fator reflexivo ...), torna-se uma questão de matemática verdade, por exemplo, para:

  • confirmam a relevância estatística da precisão alvo
  • leitura verdadeira extrapolar com a tabela discreto (parece ser a pergunta original pelo OP)
  • encontrar a função de regressão, e acabar com a abordagem mesa (eu duvido que isso seria fácil, como sugerido nos comentários e tal, este estará longe de ser linear ...

IR reflectida é frequentemente usado para a detecção de objectos. Mas, se a forma, o ângulo propriedades de reflexão do seu alvo (s) não são sempre os mesmos, em seguida, medindo a intensidade de IR reflectida não é um método fiável para estimar a distância.

Todas as idéias?

metodologia de detecção diferente. Que tal, paralaxe sensor de como este: http: // www. acroname.com/robotics/info/articles/sharp/sharp.html .

elaborar um pouco mais sobre a função quadrado proposto por tom10 ...

nós asume sua função de dispositivos é uma curva quadrada, i.

distance = A + B * reading + C * reading^2

Agora precisamos descobrir o A, B e C para converter sua leitura em uma distância, então o que nós precisamos é de uma espécie de análise de regressão. A curva de quadrado é definido por exatamente 3 pontos, então você mede em 3 pontos (r1..r3) e distâncias de notas (d1..d3)

Agora você tem 3 equações com três incógnitas que você pode resolver por qualquer meio, ou seja.

A + r1 * B + r1^2 * C = d1
A + r2 * B + r2^2 * C = d2
A + r3 * B + r3^2 * C = d3

Você resolver de uma vez por A, B, e C, que será a sua "curva de calibração" e será capaz de calcular qualquer distância desconhecida usando a primeira fórmula acima. Claro, se você mudar de hardware será necessário recalibrar seu equipamento dentro dos limites de quaisquer variações de dispositivo.

Pode estender este mecanismo para uma curva de ordem ainda superior cúbico e, fazendo uma quarta medida e expandindo todas as equações acima por uma variável D, i.

A + rx*B + rx^2*C + rx^3*D + ....

etc. mas não vai acrescentar muito de precisão. Você vai descobrir que o fator D para um rx ^ 3 em diante será muito pequeno.

Espero que isso ajude

Boa sorte MikeD

A energia da fonte de luz vai cair como 1 / r 2 (para uma fonte que é relativamente pequeno). Além disso, se tudo o resto é mantido constante, o único problema poderia ser não-linearidade no sensor.

Para verificar isso com seus dados, você esperaria E x r 2 = const, e isto é mais ou menos para os seus dados:
110 x 5 2 = 2750, e
70 x 6 2 = 2520,
assim que estes estão dentro de 10%, o que parece bastante próximo, então parece que a regra básica irá realizar.

sensores não-lineares são comuns, por isso você deve ter certeza de verificar isso em toda a gama que você vai ser a usá-lo. Mas se é um sensor linear, as outras questões que as pessoas estão mencionando (eg reflexivo superfícies) não será um problema porque, para a transmissão de luz e reflexão, tudo (quase) é linear e, portanto, será intrinsecamente compensada por uma única constante de calibração. O ângulo da fonte de luz, materiais absorventes, etc, tudo não importa, contanto que eles não mudam.

Se você testar alguns pontos, incluindo os extremos do intervalo que você está em interessado, e segue-se a 1 / r 2 regra, você está pronto para ir. Então, é claro, calcular o que o const é, e r = sqrt (const / E).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top