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?