Utilizzo delle letture del campo magnetico per il riconoscimento dei gesti lineari


2

Sto pensando di utilizzare un magnete permanente come dispositivo di input per il mio smartphone. Ho letto alcuni articoli a riguardo, ma voglio davvero capire come funzionano le cose. Utilizzando la bussola integrata posso leggere l'intensità del campo lungo tre assi. Date queste letture, quale proprietà del campo magnetico potrei usare per il riconoscimento dei gesti?

Per fare qualsiasi cosa devo salvare l'intensità del campo magnetico lungo i tre assi quando nessun magnete è vicino allo smartphone. Quindi confrontalo con altre letture.

Quando posiziono un magnete vicino allo smartphone in una posizione particolare, le letture cambieranno. Posso capire se il magnete si trova in quella posizione quando leggo gli stessi valori lungo i tre assi. Questo perché il magnete cambia il campo magnetico "complessivo" letto dal magnetometro.

Posso simulare un clic quando un magnete in una particolare posizione è attorcigliato / arricciato perché l'angolo delle coordinate polari cambia di circa 180 gradi. Questo perché i magneti hanno un polo nord e un polo sud, quindi ruotandolo si cambia il polo e di conseguenza l'angolo delle coordinate polari.

Vorrei simulare un movimento lungo un asse (come un cursore). Posso dire se sono all'inizio o alla fine confrontando l'intensità del campo magnetico con quelle precedentemente rilevate in quelle posizioni. Come posso sapere se sono nel mezzo o in qualsiasi altro punto? La soluzione ovvia sarebbe quella di salvare le letture in tutti quei punti, ma spero che ci sia qualcosa nel campo magnetico che mi manca. Esiste una legge o una correlazione tra i punti che posso usare?

Queste sono alcune letture che ho registrato di sette punti equidistanti lungo l'asse x:

     x,      y,      z
-39.55, -51.19, -32.67
-26.01, -41.83, -32.95
-19.94, -34.08, -33.28
-16.43, -26.62, -32.72
-15.98, -22.6,  -33.07
-15.93, -20.72, -32.96
-16.85, -18.87, -33.11

La cosa migliore che ho pensato finora è approssimare il movimento con una funzione lineare ma le cose non funzionano così bene (ad esempio la 4a e 7a posizione hanno quasi lo stesso valore lungo x ma sono in due posizioni diverse, quindi posso non dire quale è la fine e quale la metà). Questo è un esempio, a seconda di dove sono posso trovarmi con problemi molto diversi. Come dovrei farcela? Il campo magnetico è meno intenso quando il magnete si allontana dal magnetometro; che tipo di funzione può descrivere questa situazione?


Questo è un problema interessante Per curiosità, è per uso personale o per una sorta di progetto scolastico?
Grfrazee,

Potresti voler ricercare i presenti e vedere come funzionano e se i loro principi operativi possono essere applicati a ciò a cui stai pensando. ( en.wikipedia.org/wiki/Theremin )
Fred

Sto pensando di scrivere la mia tesi finale a riguardo, ma vorrei essere sicuro che sia effettivamente realizzabile in un ragionevole lasso di tempo prima di iniziare. Grazie per il consiglio di Theremin, lo leggerò sperando che mi dia qualche idea.
Alexander,

Usando un singolo sensore questo sarebbe molto difficile. 3 sensori non funzionano tutti per la posizione e anche allora ci sono problemi. Il campo magnetico è la legge del cubo inverso a una buona distanza ma più vicino alla legge del quadrato inverso vicino a un polo e "appena strano" molto vicino a un polo. Guarda i diagrammi dei campi magnetici vicino ai magneti. L'aggiunta di materiale "magnetico" cambia gravemente le cose.
Russell McMahon,

@RussellMcMahon grazie per la risposta, potresti indicarmi un sito Web o un libro per trovare qualcosa di più "teorico" sulla tua spiegazione? Mi piacerebbe capirlo nel miglior modo possibile (studio l'informatica quindi non è proprio la mia area). Comunque ho trovato questo video youtu.be/_sSgp0hD-jk?t=1m38s e il relativo documento, fanno quello che voglio fare ma nel loro giornale dicono semplicemente che per il cursore usano un'approssimazione lineare (suppongo che abbiano fatto un'ipotesi non indicato nel loro documento).
Alexander
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.