Fórum Como fazer um sistema de equivalencia #481069

02/06/2014

0

Galera, estou com um pequeno problema que gostaria de compartilhar e ver se consigo uma idéia ou solução. vamos ao problema, tenho uma medida de 70 cm, esta é minha referencia métrica, montei um dispositivo que recebe 2 informações onde seus pontos máximos seria os extremos da medida um em 0 e outro em 70, vamos supor que tenho uma leitura idêntica em ambos dispositivos, isso significa que a leitura é exatamente no centro da régua, ou seja 35,cm, outra hipótese, se um dos dispositivos receber mais leitura que o outro indicaria uma aproximação ao inicio ou no final, e isso teria que ser convertido em centímetros. sóa para entendimento, no programa que vai fazer a leitura destes dados no primeiro exemplo seria 0 e 0 para retornar 35 cm e no segundo exemplo seria -6 e -12 para retornar 50cm ou -12 e -6 para retornar 20cm ..se alguém puder ajudar neste racicocinio agradeceria demais mesmo...vlw
Gilmar Moraes

Gilmar Moraes

Responder

Posts

03/06/2014

Gilmar Moraes

[img]http://arquivo.devmedia.com.br/forum/imagem/301124-20140603-000036.jpg[/img]

Esta seria a idéia de como ficaria..o programa teria que tirar a média das amostras e associar isso a um sistema de medida..
Responder

Gostei + 0

08/06/2014

Paulo Freire

Bom Gigatel, eu tenho um .pas que fiz a muito tempo e que uma grande vidraçaria usa para corte em vidros temperados, cortes especiais de box e etc, seria o mesmo raciocínio ?
Responder

Gostei + 0

08/06/2014

Gilmar Moraes

Bom Gigatel, eu tenho um .pas que fiz a muito tempo e que uma grande vidraçaria usa para corte em vidros temperados, cortes especiais de box e etc, seria o mesmo raciocínio ?


amigo, deixa explicar o que estou tentando fazer, sou estudante de eng. elétrica e fizemos um aparelho que simula descargas atmosférica, igual uma bobina de tesla, más em tempos regulados, estou usando 2 microfones eletreto para registrar gravações de queda, com são dois canais independentes tenho capturas de Decibéis onde um canal pegará menos que o outro me informando onde ocorreu a descarga..por isso fiz aquele gráfico. vlw
Responder

Gostei + 0

08/06/2014

Marco Salles

Porque que

A1 = 20 e B3=60 o resultado tem que dar 50 ??? não seria 40 ???

Porque que

A3 = 0 e B1 = 40 o resultado tem que dar 10 ??? Não seria 20 ???
Responder

Gostei + 0

09/06/2014

Cauê Nishijima

Vê se essa função te ajuda:


function equivalencia(val1, val2: string): Integer;
var
  letra: string;
  numero, eqA, eqB: Integer;
begin
  letra := Copy(val1, 1, 1);
  numero := StrToInt(Copy(val1, 2, length(val1)));

  if letra = 'A' then
  begin
    eqA := 30 - (10 * numero);
  end;

  letra := Copy(val2, 1, 1);
  numero := StrToInt(Copy(val2, 2, length(val1)));

  if letra = 'B' then
  begin
    eqB := 30 + (10 * numero);
  end;

  Result := Trunc((eqA + eqB) / 2);
end;

Responder

Gostei + 0

09/06/2014

Gilmar Moraes

Porque que

A1 = 20 e B3=60 o resultado tem que dar 50 ??? não seria 40 ???

Porque que

A3 = 0 e B1 = 40 o resultado tem que dar 10 ??? Não seria 20 ???


Obrigado por responder, para quebrar o galho estou fazendo uma média dos dois valores como vc sugere, más entendo que os dois pontos estão fixos e estes valores não pode ser tratados como media, pois valores diferentes podem dar medias iguais, pense o seguinte o range não pode mudar por que a intensidade da captura sempre terá dois pontos fixos é como se eu colasse estes valores em uma regua por exemplo e se um ponto de valor mudasse o outro mudaria proporcionalmente..vou postar uma foto..
Responder

Gostei + 0

09/06/2014

Gilmar Moraes

Este é o projeto que fizemos, é para dá uma ideia de como funciona.
Responder

Gostei + 0

09/06/2014

Gilmar Moraes

Este é o projeto que fizemos, é para dá uma ideia de como funciona.


estranho a foto não está aparecendo..rsrsrs
Responder

Gostei + 0

09/06/2014

Gilmar Moraes

Vê se essa função te ajuda:


function equivalencia(val1, val2: string): Integer;
var
  letra: string;
  numero, eqA, eqB: Integer;
begin
  letra := Copy(val1, 1, 1);
  numero := StrToInt(Copy(val1, 2, length(val1)));

  if letra = 'A' then
  begin
    eqA := 30 - (10 * numero);
  end;

  letra := Copy(val2, 1, 1);
  numero := StrToInt(Copy(val2, 2, length(val1)));

  if letra = 'B' then
  begin
    eqB := 30 + (10 * numero);
  end;

  Result := Trunc((eqA + eqB) / 2);
end;



Obrigado por responder, más não precisa usar letras só usei como referencia..será usado dois valores que este definirá um ponto métrico válido, será analisado duas amostras de um mesmo registro, isso será feito por microfones e o registros será um descarga elétrica, o microfone deve captura onde ocorreu, onde um terá um captura maior e o outro menor, e estes 2 valores devem corresponder a um ponto de uma régua..informado então a origem estimada da descarga.
Responder

Gostei + 0

09/06/2014

Gilmar Moraes

Vê se essa função te ajuda:


function equivalencia(val1, val2: string): Integer;
var
  letra: string;
  numero, eqA, eqB: Integer;
begin
  letra := Copy(val1, 1, 1);
  numero := StrToInt(Copy(val1, 2, length(val1)));

  if letra = 'A' then
  begin
    eqA := 30 - (10 * numero);
  end;

  letra := Copy(val2, 1, 1);
  numero := StrToInt(Copy(val2, 2, length(val1)));

  if letra = 'B' then
  begin
    eqB := 30 + (10 * numero);
  end;

  Result := Trunc((eqA + eqB) / 2);
end;



Obrigado por responder, más não precisa usar letras só usei como referencia..será usado dois valores que este definirá um ponto métrico válido, será analisado duas amostras de um mesmo registro, isso será feito por microfones e o registros será um descarga elétrica, o microfone deve captura onde ocorreu, onde um terá um captura maior e o outro menor, e estes 2 valores devem corresponder a um ponto de uma régua..informado então a origem estimada da descarga.
Responder

Gostei + 0

09/06/2014

Valquiria Silva

Olá Gigatel, talvez seja interessante criar dois vetores inteiros

Dispositivo A []
Dispositivo B []

então grave os valores capturados na posição correspondente dos vetores.

E depois faça as conversões.

Espero ter ajudado e não ter falado besteira rsrsrs.
Responder

Gostei + 0

09/06/2014

Marco Salles

Amigo Gigatel , existem vários tipos de média ( Aritmética , geométrica ,Ponderada etc... )

Eu não defini que o ideal fosse a Média Aritmética , apenas comparei com os resultados que vc apresentou que sugerem ser esta a média utilizada por VC mesmo

Seria bom uma figura e mais detalhes ,

[]sds
Responder

Gostei + 0

09/06/2014

Gilmar Moraes

[img:descricao=Projeto]http://arquivo.devmedia.com.br/forum/imagem/301124-20140609-132532.png[/img]

Imagine agora uma régua de 80cm por baixo do aluminio que indica ponto a e b, acho que agora ficará mais claro.
Responder

Gostei + 0

09/06/2014

Gilmar Moraes

Olá Gigatel, talvez seja interessante criar dois vetores inteiros

Dispositivo A []
Dispositivo B []

então grave os valores capturados na posição correspondente dos vetores.

E depois faça as conversões.

Espero ter ajudado e não ter falado besteira rsrsrs.


Obrigado por responder, então só preciso mesmo arrumar um jeito de converter pois os dados de entrada é visualizado e depois os valores são inseridos manualmente..se existisse um plugin ou uma função que pegasse os picos máximos de uma fonte de áudio não precisaria inserir manualmente..atualmente faço a captura no sound forge e coloco os valores manualmente, como mostrado na foto.

[img]http://arquivo.devmedia.com.br/forum/imagem/301124-20140609-133856.png[/img]
Responder

Gostei + 0

09/06/2014

Cauê Nishijima

Cara deu pra entender um pouco melhor, mas ainda continua sem entender como você chegou nos resultados do primeiro exemplo seu:


segundo exemplo seria -6 e -12 para retornar 50cm ou -12 e -6 para retornar 20cm


Tentei aplicar o raciocínio da sua segunda explicação mas não consegui chegar nos resultados!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar