Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
Entre para seguir isso  
paivadaniel

Tratando curva no eixo x do acelerômetro

Recommended Posts

http://img20.imageshack.us/img20/6679/imgor.png

Olá pessoal, estou tratando um acelerômetro, no eixo x, esse é o sinal do acelerômetro para o eixo x medido no osciloscópio quando colocado num rotorzinho (um trequinho que roda com uma velocidade um tanto uniforme), ou seja, a aceleração inicialmente cresce, e quando muda de sentido, ela vai decrescendo, muda de sentido, volta a ter um crescimento.

É o seguinte, eu tenho que comparar 100 pontos dessa curva com outros 100 pontos da mesma usando pic18f4582, essa comparação deve ser feita da seguinte forma: os 100 pontos iniciais devem estar distanciados 2pi dos 100 pontos que entrarão na comparação, ou seja, devem estar distanciados de um ciclo, para que seus valores quando comparados sejam próximos. O problema é que meu programa pega 100 pontos, e não consegui pensar uma maneira para calcular os pontos da curva distanciados de 2pi, ou seja ele pode pegar 100 pontos e comparar com 100 pontos vizinhos, e a comparação vai estar toda defasada.

Se eu tivesse o número de pontos da curva (que depende da freqüencia), ou alguma outra ideia, eu resolveria a questão.

Alguma ideia?

Segue trecho do programa:

void ler_basal_eixo_x()

{

set_adc_channel(5);

delay_us(10);

eixo_x_basal = read_adc();

delay_us(10);

eixo_x_basal_limite = (eixo_x_basal + (eixo_x_basal/8));

printf("b = %lf \n\r", eixo_x_basal);

printf("bl = %lf \n\r", eixo_x_basal_limite);

printf("\n\r");

return;

}

//----------------------------------------------------------------

void ler_v1()

{

while (fim == 0)

{

set_adc_channel (5);

delay_us (10);

eixo_x = read_adc();

delay_us (10);

if (eixo_x > eixo_x_basal_limite) // verificar quando há movimento no eixo x

{

for(i=0; i<TAM_MAX; i++)

{

set_adc_channel (5);

delay_us (10);

v1 = read_adc();

delay_us (10);

printf("v1[%d] = %lf \n\r", i, v1);

}

fim = 1; // sair do laço while

}

}

printf("\n\r");

return;

}

void ler_v2()

{

fim = 0;

while (fim == 0)

{

set_adc_channel (5);

delay_us (10);

eixo_x = read_adc();

delay_us (10);

if (eixo_x > eixo_x_basal_limite) // verificar quando há movimento no eixo x

{

for(i=0; i<TAM_MAX; i++)

{

set_adc_channel (5);

delay_us (10);

v2 = read_adc();

delay_us (10);

printf("v2[%d] = %lf \n\r", i, v2);

}

fim = 1; // sair do while

}

}

printf("\n\r");

return;

}

void main()

{

...

ler_basal_eixo_x();

ler_v1();

ler_v2();

...

// aqui entra a lógica de comparação

...

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×