Pages: [1] 2   Go Down
Author Topic: Acceleromentro, Gyroscopio e Magnetometro  (Read 3392 times)
0 Members and 1 Guest are viewing this topic.
Milazzo (ME)
Offline Offline
Sr. Member
****
Karma: 0
Posts: 395
Chi cerca trova. .
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ragazzi, da poco mi sono arrivati dei nuovi componenti, fra qui questo: http://www.sparkfun.com/products/10724
Sono riuscito ad interfacciarlo correttamente con l'Arduino e riesco perfettamente a leggere i dati!

Solo che mi sorge una domanda alla quale non ho avuto riscontro ricercando su internet!
Qual'è la differenza fra l'accelerometro e il gyroscopio?


Per quanto riguarda i valori dell'accelerometro, capisco come fa a variare il valore per l'asse delle X e delle Y ma non riesco a comprendere quello della Z.
E non ho capito bene cosa "misura" l'accelerometro. Dovrebbe misurare l'accelerazione giusto? Dunque una volta che il corpo si ferma, l'accelerazione dovrebbe essere 0 e invece non lo è! Misura l'accelerazione dovuta alla forza di gravità?

E il gyroscopio allora cosa misura?

Per quanto riguarda il magnetometro, dovrebbe "misurare" la differenza d'angolazione per indicare il nord (ma si intende il magnetico o il polare?)?
Logged

Xfox's Blog, Elettronica, informatica e tant'altro: http://www.xfox.it

cernusco s.n.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 74
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dunque l'accelerometro misura le variazioni di velocita' cioe' le accelerazioni. Tutti gli accelerometri sentono la forza di gravita' e quindi l'accelerazione di gravita' che vale circa 9,8 m/s2, oppure si misura in g: un g = 9,8 m/s2 ( metri su secondo quadro). La gravita' agisce lungo la verticale, quindi se gli assi x e y dell ' accelerometro sono su un piano orizzontale, tutta l'accelerazione di gravita' te la trovi sull'asse z e negativa perche' diretta verso il basso. Quando il sensore e' inclinato, la gravita' si ripartisce anche sugli altri assi, a seconda di come e' inclinato. Per questo motivo questi sensori si usano come sensori di tilt cioe' di inclinazione.
Il magnetometro sente invece il campo magnetico terrestre e quindi dovrebbe indicarti la direzione del polo N magnetico.
Logged

Milazzo (ME)
Offline Offline
Sr. Member
****
Karma: 0
Posts: 395
Chi cerca trova. .
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Dunque l'accelerometro misura le variazioni di velocita' cioe' le accelerazioni. Tutti gli accelerometri sentono la forza di gravita' e quindi l'accelerazione di gravita' che vale circa 9,8 m/s2, oppure si misura in g: un g = 9,8 m/s2 ( metri su secondo quadro). La gravita' agisce lungo la verticale, quindi se gli assi x e y dell ' accelerometro sono su un piano orizzontale, tutta l'accelerazione di gravita' te la trovi sull'asse z e negativa perche' diretta verso il basso. Quando il sensore e' inclinato, la gravita' si ripartisce anche sugli altri assi, a seconda di come e' inclinato. Per questo motivo questi sensori si usano come sensori di tilt cioe' di inclinazione.
Il magnetometro sente invece il campo magnetico terrestre e quindi dovrebbe indicarti la direzione del polo N magnetico.
Ti ringrazio, hai soddisfatto pienamente la mia domanda.
E per quanto riguarda il gyro?
Logged

Xfox's Blog, Elettronica, informatica e tant'altro: http://www.xfox.it

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

allora i giroscopi leggono la velocità angolare, ovvero l'angolo spaziato nell'unità di tempo (sui vari assi).
gli accelerometri invece leggono l'accelerazione (che NON è la differenza di velocità, ma se proprio la variazione di velocità nell'unità di tempo) sui vari assi.

vuol dire che se ruoti un corpo questo avrà una velocità angolare (letta dal giroscopio) mentre se lo sposti generi un'accelerazione per un determinato periodo di tempo che ne modifica la velocità.

se l'accelerometro è fermo leggerà 0, non 1 questo perchè è in stato di quiete e i grafici spazio-tempo velocità-tempo accelerazione-tempo possono essere riassunti come una retta coincidente all'asse del tempo...
se vuoi leggere 1 sul tuo accelerometro lo devi lasciare cadere stando ad una latitudine di 45° e a 0m AMSL.

il magnetometro è invece un sensore che restituisce un angolo rispetto al nord magnetico.
è su 3 assi perchè serve a compensare l'errore prodotto dall'inclinazione (prendi una bussola, mettila su un tavolo e segnerà il nord magnetico e leggi l'angolo, inclinala di 90° e falla roteare su se stessa e dimmi che valore leggi  smiley-razz )
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Milazzo (ME)
Offline Offline
Sr. Member
****
Karma: 0
Posts: 395
Chi cerca trova. .
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

allora i giroscopi leggono la velocità angolare, ovvero l'angolo spaziato nell'unità di tempo (sui vari assi).
gli accelerometri invece leggono l'accelerazione (che NON è la differenza di velocità, ma se proprio la variazione di velocità nell'unità di tempo) sui vari assi.

vuol dire che se ruoti un corpo questo avrà una velocità angolare (letta dal giroscopio) mentre se lo sposti generi un'accelerazione per un determinato periodo di tempo che ne modifica la velocità.

se l'accelerometro è fermo leggerà 0, non 1 questo perchè è in stato di quiete e i grafici spazio-tempo velocità-tempo accelerazione-tempo possono essere riassunti come una retta coincidente all'asse del tempo...
se vuoi leggere 1 sul tuo accelerometro lo devi lasciare cadere stando ad una latitudine di 45° e a 0m AMSL.

il magnetometro è invece un sensore che restituisce un angolo rispetto al nord magnetico.
è su 3 assi perchè serve a compensare l'errore prodotto dall'inclinazione (prendi una bussola, mettila su un tavolo e segnerà il nord magnetico e leggi l'angolo, inclinala di 90° e falla roteare su se stessa e dimmi che valore leggi  smiley-razz )

Il problema non è leggere 1 o 0 nell'accelerometro, ma è leggere valori differenti in base all'angolazione rispetto all'asse di riferimento.

allora i giroscopi leggono la velocità angolare, ovvero l'angolo spaziato nell'unità di tempo (sui vari assi).
Significa che se io ho prima il sensore a 0° (esempio) e successivamente in un secondo lo sposto di 90° lui mi fornirà un valore proporzionale a quei 90°?

Logged

Xfox's Blog, Elettronica, informatica e tant'altro: http://www.xfox.it

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

allora
tu prendi i valori del giroscopio che se fermo restituisce 0. quando lo giri lui ti mostrerà la velocità a cui lo stai girando.
esempio più pratico:
sei in macchina e guidi (tachimetro sui 50km/h), incontri uno stop (tachimetro 0km/h), riparti (50km/h), cambia il limite di velocità (80km/h) arrivi a casa (0km/h).
quanto spazio hai percorso?
il metodo migliore sarebbe di memorizzare i valori ad intervalli regolari (ma vicini tipo 1/100sec) e fare una media fra tutti quindi moltiplichi il valore per il tempo di tutta l'operazione e ti ritorna l'angolo (con un poco di errore) di quanto hai inclinato il sensore. con questi valori sai come sono messi gli accelerometri e con funzioni di seno e coseno dell'angolo moltiplicato per il valore dell'accelerazione dell'accelerometro (anche qui se non hai accelerazioni costanti devi fare medie ecc..) moltiplicato per il tempo dello spostamento ti ritorna la distanza percorsa su ogni asse...

non è cosa facile, ti consiglio di ispirarti al software multiwii (quadricotteri) in qui queste cose sono implementate (anche meglio di come farei io)
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

cernusco s.n.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 74
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
se l'accelerometro è fermo leggerà 0, non 1 questo perchè è in stato di quiete e i grafici spazio-tempo velocità-tempo accelerazione-tempo possono essere riassunti come una retta coincidente all'asse del tempo...
se vuoi leggere 1 sul tuo accelerometro lo devi lasciare cadere stando ad una latitudine di 45° e a 0m AMSL.

Non vorrei sbagliare ma anche se l'accelerometro e' fermo, registra sempre la gravita'!!
Logged

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
se l'accelerometro è fermo leggerà 0, non 1 questo perchè è in stato di quiete e i grafici spazio-tempo velocità-tempo accelerazione-tempo possono essere riassunti come una retta coincidente all'asse del tempo...
se vuoi leggere 1 sul tuo accelerometro lo devi lasciare cadere stando ad una latitudine di 45° e a 0m AMSL.

Non vorrei sbagliare ma anche se l'accelerometro e' fermo, registra sempre la gravita'!!
in teoria il corpo non è soggetto ad alcuna accelerazione.
anche perchè per essere sottoposto ad accelerazione la somma delle forze su di lui dovrebbe essere diversa da 0 ma cosi non è perchè la forza peso che agisce viene controbilanciata dalla reazione vincolare del tavolo o dove lo appoggi...
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Terni (Italy)
Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

in teoria il corpo non è soggetto ad alcuna accelerazione.
anche perchè per essere sottoposto ad accelerazione la somma delle forze su di lui dovrebbe essere diversa da 0 ma cosi non è perchè la forza peso che agisce viene controbilanciata dalla reazione vincolare del tavolo o dove lo appoggi...
può darsi che il sensore riesca a misurare le forze a lui applicate e restituisca il valore di accelerazione relativo...mi spiego meglio;
come hai ben detto, se un corpo qualsiasi si trova sopra un piano che non può muoversi, la sua accelerazione sarà nulla per via della reazione vincolare del piano stesso, mentre la forza peso è presente ed ha un valore legato all'accelerazione gravitazionale.
se spostiamo ciò che è stato detto al sensore, fisicamente lui avrà un'accelerazione nulla ( sensore fermo su un piano d'appoggio ) ma rileverà comunque una forza sull'asse Z e magari, in base ai parametri di costruzione e alla circuiteria presente, quella forza viene interpretata come un'effettiva accelerazione, come se il sensore fosse in caduta libera, e te la restituisce.
poi magari mi sbaglio, ma credo che sia un'ipotesi abbastanza coerente
Logged

Oh, my Darlington!

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

in teoria il corpo non è soggetto ad alcuna accelerazione.
anche perchè per essere sottoposto ad accelerazione la somma delle forze su di lui dovrebbe essere diversa da 0 ma cosi non è perchè la forza peso che agisce viene controbilanciata dalla reazione vincolare del tavolo o dove lo appoggi...
può darsi che il sensore riesca a misurare le forze a lui applicate e restituisca il valore di accelerazione relativo...mi spiego meglio;
come hai ben detto, se un corpo qualsiasi si trova sopra un piano che non può muoversi, la sua accelerazione sarà nulla per via della reazione vincolare del piano stesso, mentre la forza peso è presente ed ha un valore legato all'accelerazione gravitazionale.
se spostiamo ciò che è stato detto al sensore, fisicamente lui avrà un'accelerazione nulla ( sensore fermo su un piano d'appoggio ) ma rileverà comunque una forza sull'asse Z e magari, in base ai parametri di costruzione e alla circuiteria presente, quella forza viene interpretata come un'effettiva accelerazione, come se il sensore fosse in caduta libera, e te la restituisce.
poi magari mi sbaglio, ma credo che sia un'ipotesi abbastanza coerente
in seconda superiore ho preso 10 sulla verifica delle reazioni vincolari e 10- su quella delle forze in gioco su traiettorie e moto circolare (con relative forze) quindi vediamo di fare chiarezza (per quanto una fisica da iti non sia come la laurea di astrobeed  smiley-lol )

allora
il sensore è un corpo che misura l'accelerazione.

la prima legge della dinamica enuncia che ogni corpo la cui sommatoria delle forze applicate su di esso sia costante esso si muove di moto rettilineo uniforme mentre se la sommatoria di queste forze è nulla il moto si trova in stato di quiete (che a dire il vero sarebbe un caso particolare di moto rettilineo uniforme).
invece la terza legge della dinamica (detta principio di azione e reazione) enuncia che ad ogni azione corrisponde una reazione uguale e contraria.

prendiamo in esempio un corpo posto sul tavolino.
il corpo ha una forza peso data dall'attrazione con la terra (la formula era un qualcosa tipo F = ((m1 x m2)/d^2) x E dove E è una costante).
detto questo con la terza legge della dinamica possiamo dire che il corpo crea una certa forza diretta verso il tavolo ed il tavolo respinge questa forza (lo sostiene) in maniera uguale e contraria.
quindi sommatoria = 0.
nel caso del tavolo la reazione viene chiamata reazione vincolare e agisce fino al cedimento strutturale (se il tavolo regge 2kg e io metto sopra un incudine da 40kg è ovvio che la reazione vincolare sarà in esistente in quanto il tavolo non esisterà più smiley-lol ).

poi mettiamo anche la rotazione terrestre, il corpo si trova in un sistema in movimento in cui vi è una forza centrifuga che lo porta verso l'esterno ma vi è anche una forza centripeta che serve a modificare la sua velocità (che sarebbe tangente alla traiettoria) in modo da "tenerlo in carreggiata" e questa forza centripeta è pari a quella centrifuga.
quindi sommatoria = 0.

stesso discorso di sopra se vogliamo mettere la terra che ruota attorno all'universo..
sommatoria = 0.

inoltre lato pratico:
voglio misurare un'accelerazione di 9.82m/s^2... cosa dovrebbe restituire il sensore? 2?
ma non sarebbe corretto in quanto 1G = 9.81m/s^2...

direi che la fisica stavolta è dalla mia parte  smiley-lol
però comunque c'è percentuale che mi sbagli..

ed ora per sdrammatizzare:
sapete cos'ha detto la moglie di einstein in viaggio di nozze? "che fisico!"  smiley-lol smiley-lol smiley-lol
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Terni (Italy)
Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

il lato teorico lo conosco anche io, infatti ho cercato di lasciarlo stare perchè in questo caso non porterebbe a molto data l'effettiva evidenza dei fatti nel lato pratico: io possiedo un accelerometro a 3 assi e ti posso assicurare che sull'asse Z segna sempre e comunque 1G
ripeto, io non metto in dubbio ciò che affermi, anzi sono d'accordo con te dato che conosco molto bene la parte teorica, dico solo che il sensore in se è progettato evidentemente per restituirti (in forma di accelerazione, in questo caso 1G ,2G, 0.5G, ecc ) comunque un valore, e quindi se la teoria afferma che se stai fermo o sei in MRU non ci sono accelerazioni, la pratica mostra il contrario; quindi considerando esatta la teoria ( relativa all'accelerazioni ), la pratica ci mostra allora una misura di forze ( e le forze ci sono sempre ) e che il sensore le "trasforma" in dati relativi all'accelerazione ( che lui crede, in questo caso, di subire ).
Logged

Oh, my Darlington!

Milazzo (ME)
Offline Offline
Sr. Member
****
Karma: 0
Posts: 395
Chi cerca trova. .
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ragazzi non me ne intendo molto di fisica però ciò che leggo è questo:
Ho il sensore appoggiato su una breadboard (che è su un tavolo) l'asse Y per il sensore è "dritto" o "per avanti" dunque se lo ruoto attorno a quell'asse, cambia valore, se lo ruoto in senso orario il valore sarà positivo (anche quando lo tengo fermo o quasi) se lo ruoto in senso antiorario sarà negativo il valore.
Logged

Xfox's Blog, Elettronica, informatica e tant'altro: http://www.xfox.it

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

il lato teorico lo conosco anche io, infatti ho cercato di lasciarlo stare perchè in questo caso non porterebbe a molto data l'effettiva evidenza dei fatti nel lato pratico: io possiedo un accelerometro a 3 assi e ti posso assicurare che sull'asse Z segna sempre e comunque 1G
ripeto, io non metto in dubbio ciò che affermi, anzi sono d'accordo con te dato che conosco molto bene la parte teorica, dico solo che il sensore in se è progettato evidentemente per restituirti (in forma di accelerazione, in questo caso 1G ,2G, 0.5G, ecc ) comunque un valore, e quindi se la teoria afferma che se stai fermo o sei in MRU non ci sono accelerazioni, la pratica mostra il contrario; quindi considerando esatta la teoria ( relativa all'accelerazioni ), la pratica ci mostra allora una misura di forze ( e le forze ci sono sempre ) e che il sensore le "trasforma" in dati relativi all'accelerazione ( che lui crede, in questo caso, di subire ).
e se lo lasci cadere? (se puoi effettuare questo test)

sarebbe da provare mettere arduino+sensore+sd e registrare i dati di caduta libera e vedere cosa restituisce (contando che comunque ci sono errori per attrito dell'aria contro la superficie del corpo se non è a forma di profilo alare e comunque anche fosse un profilo simmetrico i flussi d'aria non si uniranno mai perfettamente  smiley-lol ed allora torna in campo una altro calcolo di Reynolds  smiley-lol)
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ragazzi non me ne intendo molto di fisica però ciò che leggo è questo:
Ho il sensore appoggiato su una breadboard (che è su un tavolo) l'asse Y per il sensore è "dritto" o "per avanti" dunque se lo ruoto attorno a quell'asse, cambia valore, se lo ruoto in senso orario il valore sarà positivo (anche quando lo tengo fermo o quasi) se lo ruoto in senso antiorario sarà negativo il valore.
perchè comunque vi è un movimento dell'asse.

vi era un calcolo postato sul mio forum (adesso in manutenzione grazie ad un hoster che non fa backup e probabilmente il forum chiuderà per sempre) postato da un utente che mostrava come ricavare l'angolo dai dati del giroscopio (se non erro con tanto di codice)
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Terni (Italy)
Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

e se lo lasci cadere? (se puoi effettuare questo test)

sarebbe da provare mettere arduino+sensore+sd e registrare i dati di caduta libera e vedere cosa restituisce (contando che comunque ci sono errori per attrito dell'aria contro la superficie del corpo se non è a forma di profilo alare e comunque anche fosse un profilo simmetrico i flussi d'aria non si uniranno mai perfettamente  smiley-lol ed allora torna in campo una altro calcolo di Reynolds  smiley-lol)

la caduta non l'ho mai simulata, ma posso dirti che simulando una salita esattamente verticale ( come un salto ), sono riuscito a far visualizzare un valore nullo, ossia ho "impresso" una accelerazione uguale ed opposta a quella misurata dal sensore ( quella realativa alla forza di gravità ), tale che le forze si bilanciassero a vicenda, annullandosi tra di loro...in questa condizione, il sensore non " sentiva " forze su di se, come se fosse nello spazio aperto  smiley-yell
diciamo che è lo stesso effetto che si avverte in macchina o sulle montagne russe quando si fà una discesa improvvisa e ci si sente leggeri, addirittura senza peso ahahah
Logged

Oh, my Darlington!

Pages: [1] 2   Go Up
Jump to: