collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[27 de Março de 2024, 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Arduino acelerómetros e giroscópios  (Lida 13592 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline eduardo_d

  • Mini Robot
  • *
  • Mensagens: 13
Arduino acelerómetros e giroscópios
« em: 06 de Julho de 2010, 18:32 »
Olá pessoal!
Um dos projectos que comecei a desenvolver ha ja algum tempo,  é algo que nos deixe navegar num jogo de first person shooters ou num cenário qq, não com rato, joystick ou teclado, mas sim de acordo com a rotação e inclinação da cabeça do jogador (basicamente isto é um headtracker). Claro que para mover nesse cenário será usado um teclado.
Para medir a inclinação da cabeça, i.e, olhar para o tecto e para o chão sei que o sensor a usar é um acelerómetro, e já vi como o ligar às portas analogicas do arduino e onter os valores de aceleração. Até já consegui fazer umas brincadeiras interessantes  ;)
No entanto, pesquisando sobre qual o sensor adequado para medir a rotação da cabeça, ou seja olhar para esquerda ou direita, parece-me que o que devo adquirir é um giroscópio. Estou certo?
Ok, partindo do princípio que sim, também já li por aí que não será ligar ao arduíno e começar logo a receber os dados... parece que tem mais umas complicações,do tipo o seu output ser pulsado   :-\
O que vos pedia era então que me dissesem se o giroscópio é o sensor certo (pq ainda é um sensor caro), e se já algum de vocês trabalhou com ele juntamente com o arduino, de maneira a poder antever já os problemas  :D

Abr

PS: sei que alguns de vocês me dirão que o comando da wii é uma das opções mais rapidas e fáceis para isto, mas eu gosto de meter as mãos na massa  ;D

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Arduino acelerómetros e giroscópios
« Responder #1 em: 06 de Julho de 2010, 18:42 »
E se quiseres que o teu headtracker seja visto pelo pc como um teclado olha aqui isto:
http://www.pjrc.com/teensy/usb_keyboard.html

E á mais sobre usar o teensy como um teclado ou um rato, é só procurares.
Avr fanboy

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Arduino acelerómetros e giroscópios
« Responder #2 em: 06 de Julho de 2010, 19:44 »
O fato da saída ser "pulsada" não é uma característica dos giroscópios mas sim uma característica dos sensores. A saída de um sensor pode ser em tensão, corrente, digital. A digital pode ser sobre um um protocolo de comunicação ou então por pulsos.
Tens vários giroscópios na loja LR e todos com saída em tensão e por isso é só ligar ao Arduino.
O que pode complicar é que a saída de um giroscópio date a velocidade angular mas o que tu necessitas é a posição angular, daí ser necessário integrar o sinal.
Aqui está um exemplo do que digo: Podes ver num dos mostradores o sinal do giroscópio e no outro o sinal integrado.

Offline FET_Destroyer

  • Mini Robot
  • *
  • Mensagens: 213
    • Fet Destroyer
Re: Arduino acelerómetros e giroscópios
« Responder #3 em: 06 de Julho de 2010, 21:13 »
Boas eduardo_d
O asena tem razão em relação aos vários tipos de giroscópios, penso que os mais usados para robot normais são os da analog devices e tem saída desde protocolo, pwm e tensão analógica.
Para fazer o headtracking precisas não só de um giroscópio mas de um giroscopio + acelerometro, chamam lhe de IMU (Inertial measure unit). Por exemplo esses giroscópios da analog são baratos mas têm um drift, ou seja, imagina que o seu valor parado é de 2,5V, á medida que o tempo passa esse valor vai subindo um pouco, ou seja, podes interpretar que o giro se está a mexer mesmo ele estando parado, dai complementam um sensor com um acelerometro. O acelerometro indica-te a posição "para baixo", se o fundires com o giroscopio obtens um IMU, agora para uma cabeça isto deve ser feito para os 3 eixos, x,y,z mais os eixos de rotação, pitch,yaw, roll, penso que sejam 6 graus de liberdade para teres o controlo total de todos os lados.
Obtens muita informação na net em como fundir os dados dos sensores.

Cumps

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Arduino acelerómetros e giroscópios
« Responder #4 em: 06 de Julho de 2010, 21:32 »
Um acelerómetro 3eixos e um giroscopio 1eixo é suficiente, normalmente usam-se 3+3 para cancelar ruido e obter um sinal correcto.
Para juntar os sinais usa-se um filtro de kalman, podes ver aqui alguns exemplos: http://www.youtube.com/results?search_query=kalman+filter&aq=f das diferenças com e sem filtro.

Offline FET_Destroyer

  • Mini Robot
  • *
  • Mensagens: 213
    • Fet Destroyer
Re: Arduino acelerómetros e giroscópios
« Responder #5 em: 06 de Julho de 2010, 22:48 »
Este video mostra bem a diferença da fusão dos dados

metRo_ estás enganado. Com um giroscopio só consegues ter um eixo de rotação. Só sabia se estava a mexer a cabeça para cima ou baixo e nunca para os lados. Tens que ter um giroscópio por eixo, são 3 giroscopios e 3 aceleromeros, ou um acc de 3 eixos e um giro de 3 eixos caso contrario nunca consegues fazer headtracking.
Com um giroscopio de 1 eixo por exemplo, paralelo à orelha, só consegues ter obter dados se levantares ou desceres a cabeça.
Se a rodares para os lados o giroscopio não te vai detectar o movimento, e o acc serve para cancelar o drift do giro.
Cumps

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Arduino acelerómetros e giroscópios
« Responder #6 em: 06 de Julho de 2010, 23:36 »
Olha que eu acho que não, pois estes acelerometros quando inclinados sofrem a força gravitica o que faz com que eles quando estão inclinados a tensão na saida não é 0 mas sim um valor correspondente ao angulo.
Olha este video em que so com um acelerometro tem quase tudo o que fazes com a cabeça excepto o yaw. http://en.wikipedia.org/wiki/Flight_dynamics troca o avião pela cabeça.

Offline FET_Destroyer

  • Mini Robot
  • *
  • Mensagens: 213
    • Fet Destroyer
Re: Arduino acelerómetros e giroscópios
« Responder #7 em: 07 de Julho de 2010, 00:05 »
Eu acho que precisas de 3giros por eixo. O giro dá-te a vel.angular. Com um acc acho que não consegues saber que estar a "girar" sobre o eixo central dele, dai serem precisos 3giros e 3acc. Eu acho que esta correcto porque já pesquisei montes por causa de um robot que ando a fazer e preciso dum IMU e pelo que li, headtracking precisa de 3giros no minimo, os acc é so por causa dos drifts dos giros. No entanto corrijam se estiver a dizer coisas sem jeito.
Cumps
« Última modificação: 07 de Julho de 2010, 00:07 por FET_Destroyer »

Offline eduardo_d

  • Mini Robot
  • *
  • Mensagens: 13
Re: Arduino acelerómetros e giroscópios
« Responder #8 em: 07 de Julho de 2010, 01:10 »
Pessoal! Obrigado por todas as respostas ;)
Em relação ao teensy eu ja comprei um ha algum tempo e montei-o com um acelerometro adxl355, de maneira a emlar o rato do pc  :) Funciona muito bem, o problema é que utilizando apenas o acelerómetro so consigo "olhar para cima e para baixo" .
Também consigo mover para a esquerda e direita mas tenho de por o acelerometro numa posição esquisita...

É por isso que preciso de juntar outro sensor...Pelas vossas respostas sempre se confirma que será um giroscópio, e também fiquei esclarecido quanto à existência de vários tipos (sendo assim escolherei um com saida em tensão analog). Realmente também ja encontrei varias placas ja com giroscópio e acelerómetro integradas. Fiquei apenas na dúvida qt ao nr de giroscopios e acelerómetros a usar...pela ideia com que fiquei de algumas coisas que ja vi pela net penso que apenas será preciso um acelerómetro e um giroscópio...mas talvez o FET_Destroyer tenha razão. Resta-me assim continuar a procurar :) Pelo menos com as vossas dicas já estou mais orientado! O acelerómetro ja tenho , falta me entao o giroscópio!

Abr e continuem a dar o "bitaite" que é mais q bem vindo! ;)

eduardo

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Arduino acelerómetros e giroscópios
« Responder #9 em: 07 de Julho de 2010, 01:53 »
Supostamente como estás a mexer a cabeça num mundo 3d precisas de pelo menos 3, um para cada eixo respectivamente, acho eu, que dessas coisas não percebo muito, são um bocadinho caros só para fazer umas brincadeiras
Avr fanboy

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Arduino acelerómetros e giroscópios
« Responder #10 em: 09 de Julho de 2010, 00:28 »
Um acelerómetro de 3eixos mais um giroscópio de um eixo chega. O primeiro resultado de uma pesquisa e cá está o código que te dá os ângulos: http://rubenlaguna.com/wp/2008/11/03/arduino-tilt-sensor-using-mma7260q/ é só colcar no Arduino e testares.

Offline FET_Destroyer

  • Mini Robot
  • *
  • Mensagens: 213
    • Fet Destroyer
Re: Arduino acelerómetros e giroscópios
« Responder #11 em: 09 de Julho de 2010, 01:01 »
Todas as IMU que eu vejo tem 6DOF logo deve ser por alguma razão.
http://www.analog.com/en/mems/imu/adis16385/products/product.html
Talvez seja necessário saber a vel. angular de todos os eixos.
Se procurares por IMU sem ser integrados são montes deles de 6 eixos, acho que é o que te permite ter total controlo de movimentos.

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.372
    • Tiago Rodrigues
Re: Arduino acelerómetros e giroscópios
« Responder #12 em: 09 de Julho de 2010, 10:01 »
Todos os carros que eu vejo são de 5 portas, por isso deve de ser preciso 5 portas para ser um carro a sério.

Mas será que um carro de 2 portas é menos carro? Ok não é tão bom mas serve para a aplicação?

Tudo o que existe no mercado é um bom produto. Quer seja pelo preço, qualidade, imagem, etc... Se não fosse um bom produto, já tinha sido descontinuado por fim de vida do mesmo. Temos é que saber o que precisamos. Muitas vezes nem se utiliza gyro.. basta um acelerómetro de 3 eixos.

Offline FET_Destroyer

  • Mini Robot
  • *
  • Mensagens: 213
    • Fet Destroyer
Re: Arduino acelerómetros e giroscópios
« Responder #13 em: 09 de Julho de 2010, 12:35 »
Boas TigPT
Gostei do teu exemplo. LOL
Mas não, não basta. Com um acc de 3 eixos nunca consegues fazer headtracking.
Nunca consegues descobrir o eixo yaw com um acc de 3 eixos
« Última modificação: 09 de Julho de 2010, 12:48 por FET_Destroyer »

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Arduino acelerómetros e giroscópios
« Responder #14 em: 09 de Julho de 2010, 13:22 »
E eu disse o contrário?! Se ele quer o melhor que pode obter para fazer o headtracking então que compre uma dessas placas com tudo integrado que tem 6 graus de liberdade.
O que está aqui em questão no primeiro post é saber o que realmente necessita porque se um giroscópio é caro, um para cada eixo é 3x mais.
É necessário adaptar a nossa resposta ao nos perguntam.
Tal como tu dizes no teu ultimo post "Nunca consegues descobrir o eixo yaw com um acc de 3 eixos" logo a unica coisa que falta descobrir é um eixo e para isso basta um giroscópio e não 3, agora se queres ter tudo com a máxima precisão que consegues obter, aí sim, usas 3 acc + 3 giros, um para cada eixo. Agora isso não é necessário. Querem ver uma segway a funcionar inicialmente só com um accelerómetro e utilziando apens um eixo? http://www.youtube.com/user/FeupinhoNovato#p/a/u/2/295uV-KqUxs