Compass στα smartphone — ουσία, αρχή λειτουργίας και εφαρμογή

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-03-25 Χρόνος ανάγνωσης: 8 λεπ

Compass (πυξίδα) στο smartphone είναι ένας ψηφιακός αισθητήρας βασισμένος σε μαγνητόμετρο που καθορίζει την κατεύθυνση προς τους μαγνητικούς πόλους της Γης. Η τεχνολογία επιτρέπει σε εφαρμογές πλοήγησης, χαρτογραφίας και επαυξημένης πραγματικότητας να προσδιορίζουν με ακρίβεια τον προσανατολισμό της συσκευής στο χώρο. Σύμφωνα με δεδομένα της STMicroelectronics, 2025, τα σύγχρονα MEMS-μαγνητόμετρα παρέχουν ακρίβεια προσδιορισμού κατεύθυνσης έως 1–2 μοίρες.

Βασικά σημεία

  • Compass στο smartphone — ψηφιακή πυξίδα βασισμένη σε MEMS-μαγνητόμετρο που μετρά το μαγνητικό πεδίο της Γης.
  • Τα σύγχρονα μαγνητόμετρα χρησιμοποιούν το φαινόμενο Hall ή το μαγνητοαντιστατικό φαινόμενο για τον προσδιορισμό της κατεύθυνσης του μαγνητικού πεδίου.
  • Για την ακριβή λειτουργία της ψηφιακής πυξίδας απαιτείται βαθμονόμηση — αντιστάθμιση των παρασιτικών μαγνητικών πεδίων από τα ηχεία και άλλα εξαρτήματα.
  • Το μαγνητόμετρο στο smartphone μετρά το μαγνητικό πεδίο κατά τρεις άξονες (X, Y, Z), επιτρέποντας τον προσδιορισμό της κατεύθυνσης σε οποιαδήποτε θέση της συσκευής.
  • Η ψηφιακή πυξίδα χρησιμοποιείται σε εφαρμογές πλοήγησης, επαυξημένης πραγματικότητας, υπηρεσίες γεωτοποθεσίας και αστρονομικά προγράμματα.

Τι είναι η ψηφιακή πυξίδα στο smartphone;

Ψηφιακή πυξίδα (compass) στο smartphone είναι ένας αισθητήρας βασισμένος σε μαγνητόμετρο που μετρά την ένταση του μαγνητικού πεδίου της Γης και καθορίζει το αζιμούθιο (γωνία σε σχέση με τον μαγνητικό βορρά). Σε αντίθεση με τη μηχανική πυξίδα, η ψηφιακή πυξίδα χρησιμοποιεί μικροηλεκτρομηχανικά συστήματα (MEMS) για την καταγραφή του μαγνητικού πεδίου. Το μαγνητόμετρο μετρά το πεδίο κατά τρεις άξονες, επιτρέποντας τον σωστό προσδιορισμό της κατεύθυνσης σε οποιαδήποτε κλίση του smartphone.

Πώς είναι κατασκευασμένος ο αισθητήρας

Το σύγχρονο MEMS-μαγνητόμετρο είναι ένα μικροτσίπ διαστάσεων 2×2×1 mm, ενσωματωμένο στο σώμα του smartphone μαζί με το επιταχυνσιόμετρο και το γυροσκόπιο (ως μέρος ενός 9-αξονικού IMU). Ο αισθητήρας μετρά όχι μόνο την κατεύθυνση αλλά και την ένταση του μαγνητικού πεδίου της Γης (25–65 µT ανάλογα με το γεωγραφικό πλάτος). Η παρουσία μεταλλικών αντικειμένων και παρασιτικών μαγνητικών πεδίων από τα ηχεία, τον κινητήρα δόνησης και την κάμερα προκαλεί παραμορφώσεις, επομένως για ακριβή λειτουργία απαιτείται λογισμική διόρθωση των μετρήσεων.

Οι πρώτες ψηφιακές πυξίδες σε κινητά τηλέφωνα εμφανίστηκαν το 2009 με την κυκλοφορία του iPhone 3GS — του πρώτου smartphone με ενσωματωμένο μαγνητόμετρο. Σήμερα, το μαγνητόμετρο εγκαθίσταται στη συντριπτική πλειοψηφία των smartphone, συμπεριλαμβανομένων των οικονομικών μοντέλων. Σύμφωνα με την Yole Group, η αγορά MEMS-μαγνητομέτρων για φορητές συσκευές υπερβαίνει τα 1,5 δισεκατομμύρια τεμάχια ετησίως, γεγονός που επιβεβαιώνει τη ζήτηση για αυτήν την τεχνολογία.

Αρχή λειτουργίας του μαγνητομέτρου

Η βάση του MEMS-μαγνητομέτρου είναι ένα ευαίσθητο στοιχείο που αλλάζει τα ηλεκτρικά του χαρακτηριστικά υπό την επίδραση εξωτερικού μαγνητικού πεδίου. Στα σύγχρονα smartphone χρησιμοποιείται το φαινόμενο Hall ή το μαγνητοαντιστατικό φαινόμενο (AMR — Anisotropic Magneto-Resistance). Η αρχή βασίζεται στο γεγονός ότι ένα υλικό που φέρει ρεύμα αλλάζει την αντίστασή του υπό την επίδραση μαγνητικού πεδίου, και από την αλλαγή τάσης υπολογίζεται το διάνυσμα του μαγνητικού πεδίου.

Φαινόμενο Hall και AMR

Οι αισθητήρες που βασίζονται στο φαινόμενο Hall καταγράφουν την αλλαγή τάσης στις άκρες της ημιαγωγικής πλάκας, που προκύπτει υπό την επίδραση της δύναμης Lorentz στα κινούμενα φορτία. Οι μαγνητοαντιστατικοί αισθητήρες (AMR) χρησιμοποιούν ένα στρώμα permalloy (NiFe), του οποίου η αντίσταση εξαρτάται από την κατεύθυνση του μαγνητικού πεδίου. Οι αισθητήρες AMR παρέχουν μικρότερο μέγεθος και υψηλότερη ευαισθησία σε σύγκριση με τους αισθητήρες Hall, επομένως κυριαρχούν στα σύγχρονα smartphone.

ΤύποςΕυαισθησίαΚατανάλωση ενέργειαςΜέγεθος
HallΜέτριαΧαμηλήΜέτριο
AMRΥψηλήΧαμηλήΜικρό
GMRΠολύ υψηλήΜέτριαΜικρό

Τα δεδομένα από το μαγνητόμετρο συνδυάζονται με τις μετρήσεις του επιταχυνσιόμετρου για τη διόρθωση της κλίσης και τον προσδιορισμό της κατεύθυνσης του βορρά στο οριζόντιο επίπεδο. Ο αλγόριθμος σύντηξης αισθητήρων (sensor fusion) χρησιμοποιεί το φίλτρο Madgwick ή το φίλτρο Kalman για τον συνδυασμό δεδομένων μαγνητομέτρου, γυροσκοπίου και επιταχυνσιόμετρου. Αυτό επιτρέπει τη λήψη σταθερού και ακριβούς αζιμουθίου ακόμη και κατά τη διάρκεια γρήγορων περιστροφών και κραδασμών της συσκευής.

Τύποι μαγνητομέτρων σε φορητές συσκευές

Στη φορητή βιομηχανία χρησιμοποιούνται τρεις κύριοι τύποι MEMS-μαγνητομέτρων: βασισμένοι στο φαινόμενο Hall, ανισότροποι μαγνητοαντιστατικοί (AMR) και γιγάντιοι μαγνητοαντιστατικοί (GMR). Τα AMR-μαγνητόμετρα είναι τα πιο διαδεδομένα στα smartphone χάρη στον βέλτιστο συνδυασμό ευαισθησίας, κατανάλωσης ενέργειας και κόστους. Κορυφαίοι κατασκευαστές — AKM (Asahi Kasei Microdevices), STMicroelectronics και Bosch Sensortec.

Η ευαισθησία ενός AMR-μαγνητομέτρου ενός τυπικού smartphone είναι 0,3–1 µT με δυναμικό εύρος ±1000 µT (±8 Gauss), αρκετό για ακριβή μέτρηση του πεδίου της Γης (30–65 µT) και αντιστάθμιση παρασιτικών πεδίων. Η συχνότητα δειγματοληψίας του αισθητήρα μπορεί να φτάσει τα 100–200 Hz, αλλά οι περισσότερες εφαρμογές χρησιμοποιούν 10–50 Hz για εξοικονόμηση ενέργειας. Η αυτόματη αντιστάθμιση θερμοκρασίας και παραμορφώσεων τάσης του σώματος υλοποιείται σε επίπεδο οδηγού αισθητήρα.

Βαθμονόμηση ψηφιακής πυξίδας

Βαθμονόμηση πυξίδας — η διαδικασία αντιστάθμισης των παρασιτικών μαγνητικών πεδίων που δημιουργούνται από τα εξαρτήματα του smartphone: ηχεία, κινητήρα δόνησης, κάμερα και μπαταρία. Χωρίς βαθμονόμηση, οι μετρήσεις του μαγνητομέτρου μπορεί να αποκλίνουν από την πραγματική κατεύθυνση κατά 10–30 μοίρες. Το σύστημα βαθμονόμησης καθορίζει τον πίνακα μετατόπισης (hard-iron bias) κατά τρεις άξονες και τον εφαρμόζει για τη διόρθωση όλων των επόμενων μετρήσεων.

Αλγόριθμοι και μέθοδοι βαθμονόμησης

Η τυπική μέθοδος βαθμονόμησης πυξίδας — σχεδίαση ενός οκτώ: ο χρήστης περιστρέφει το smartphone σε μια τροχιά που μοιάζει με τον αριθμό 8. Κατά τη διάρκεια της κίνησης, ο αισθητήρας καταγράφει το μαγνητικό πεδίο σε όλους τους πιθανούς προσανατολισμούς, και ο αλγόριθμος συλλέγει σημεία και προσεγγίζει μια σφαίρα με κέντρο μετατοπισμένο σε σχέση με το μηδέν. Η ακτίνα της σφαίρας αντιστοιχεί στο μέγεθος του μαγνητικού πεδίου της Γης, και το κέντρο — στο διάνυσμα παρασιτικής μετατόπισης. Μετά την προσέγγιση, το σύστημα υπολογίζει συντελεστές διόρθωσης για κάθε άξονα.

Οι σύγχρονοι αλγόριθμοι βαθμονόμησης από τις Qualcomm και MediaTek εκτελούν συνεχή βαθμονόμηση παρασκηνίου χωρίς τη συμμετοχή του χρήστη. Αναλύουν τις αλλαγές στο μαγνητικό πεδίο κατά την περιστροφή της συσκευής και ενημερώνουν αυτόματα τις παραμέτρους διόρθωσης. Εάν ο αισθητήρας ανιχνεύσει ένα νέο παρασιτικό πεδίο (π.χ. κατά την τοποθέτηση μαγνητικής θήκης), το σύστημα ξεκινά εκ νέου βαθμονόμηση εντός 1–2 δευτερολέπτων συνεχούς κίνησης της συσκευής.

Εφαρμογή πυξίδας σε φορητές εφαρμογές

Ψηφιακή πυξίδα χρησιμοποιείται σε ένα ευρύ φάσμα φορητών εφαρμογών. Η κύρια εφαρμογή — υπηρεσίες πλοήγησης και χαρτογράφησης (Google Maps, Yandex.Maps, 2GIS) που καθορίζουν τον προσανατολισμό της συσκευής στον χάρτη για τη σωστή εμφάνιση της κατεύθυνσης κίνησης του χρήστη. Σε εφαρμογές επαυξημένης πραγματικότητας (AR) η πυξίδα εξασφαλίζει σωστή τοποθέτηση εικονικών αντικειμένων σε σχέση με τα σημεία του ορίζοντα.

Σε αστρονομικές εφαρμογές (Star Walk, SkySafari) η πυξίδα σε συνδυασμό με το επιταχυνσιόμετρο καθορίζει την κατεύθυνση προς την οποία είναι στραμμένο το smartphone και εμφανίζει την αντίστοιχη περιοχή του έναστρου ουρανού. Οι εφαρμογές ψαρέματος και τουρισμού χρησιμοποιούν την πυξίδα για τη σήμανση σημείων ενδιαφέροντος στον χάρτη με αναφορά στο αζιμούθιο. Η παρακολούθηση φυσικής κατάστασης με GPS χρησιμοποιεί τις μετρήσεις της πυξίδας για τον προσδιορισμό της κατεύθυνσης τρεξίματος ή ποδηλασίας, αυξάνοντας την ακρίβεια εμφάνισης της διαδρομής.

Χρήση πυξίδας μέσω Android API

Για πρόσβαση στην ψηφιακή πυξίδα σε Android χρησιμοποιείται ο αισθητήρας TYPE_MAGNETIC_FIELD από το Sensor API. Οι προγραμματιστές καταχωρούν έναν ακροατή για αλλαγές στις μετρήσεις του μαγνητομέτρου και λαμβάνουν έναν πίνακα τιμών έντασης μαγνητικού πεδίου κατά τρεις άξονες σε μικροΤέσλα. Για τον προσδιορισμό του αζιμουθίου, τα δεδομένα μαγνητομέτρου συνδυάζονται με δεδομένα επιταχυνσιόμετρου μέσω του πίνακα περιστροφής sensor fusion.

kotlin
import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager

class CompassManager(
    private val sensorManager: SensorManager
) : SensorEventListener {

    private val magnetometer = FloatArray(3)
    private val accelerometer = FloatArray(3)
    private val rotationMatrix = FloatArray(9)
    private val orientation = FloatArray(3)

    override fun onSensorChanged(event: SensorEvent) {
        if (event.sensor.type == Sensor.TYPE_MAGNETIC_FIELD) {
            event.values.copyInto(magnetometer)
        } else if (event.sensor.type == Sensor.TYPE_ACCELEROMETER) {
            event.values.copyInto(accelerometer)
        }
        
        SensorManager.getRotationMatrix(
            rotationMatrix, null,
            accelerometer, magnetometer
        )
        SensorManager.getOrientation(rotationMatrix, orientation)
        
        val azimuth = Math.toDegrees(orientation[0].toDouble())
        // αζιμούθιο: 0 = βορράς, 90 = ανατολή, 180 = νότος, 270 = δύση
    }

    fun start() {
        sensorManager.registerListener(this,
            sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
            SensorManager.SENSOR_DELAY_UI)
        sensorManager.registerListener(this,
            sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
            SensorManager.SENSOR_DELAY_UI)
    }

    override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {}
}

Το αζιμούθιο που λαμβάνεται μέσω getOrientation μετράται σε ακτίνια και μπορεί να λάβει τιμές από -π έως π, όπου το 0 αντιστοιχεί στον μαγνητικό βορρά. Για εμφάνιση στην οθόνη, οι τιμές μετατρέπονται σε μοίρες (Math.toDegrees) με κανονικοποίηση στο εύρος 0–360. Είναι σημαντικό να λαμβάνεται υπόψη η μαγνητική απόκλιση — η γωνία μεταξύ μαγνητικού και πραγματικού (γεωγραφικού) βορρά, η οποία εξαρτάται από τη γεωγραφική θέση και αλλάζει με τον χρόνο. Ο Χάρτης Google διορθώνει αυτόματα την απόκλιση μέσω του GeomagneticField API.

Συχνές Ερωτήσεις

Πώς λειτουργεί η ψηφιακή πυξίδα στο smartphone;

Ψηφιακή πυξίδα χρησιμοποιεί ένα MEMS-μαγνητόμετρο — ένα τσιπ 2×2 mm που μετρά το μαγνητικό πεδίο της Γης κατά τρεις άξονες. Τα δεδομένα μαγνητομέτρου συνδυάζονται με μετρήσεις του επιταχυνσιόμετρου για τον προσδιορισμό του αζιμουθίου — της γωνίας μεταξύ της κατεύθυνσης του βορρά και του προσανατολισμού της συσκευής.

Γιατί η πυξίδα στο τηλέφωνο δείχνει λάθος;

Οι λανθασμένες μετρήσεις της πυξίδας συνήθως προκαλούνται από έλλειψη βαθμονόμησης, μαγνητικές παρεμβολές από τα ηχεία ή τον κινητήρα δόνησης, καθώς και από μαγνητικές θήκες. Λύση — εκτελέστε βαθμονόμηση με κίνηση σχήματος οκτώ ή αφαιρέστε τα μαγνητικά αξεσουάρ. Σε περίπτωση συνεχών σφαλμάτων μπορεί να απαιτηθεί έλεγχος του αισθητήρα.

Χρειάζεται η πυξίδα βαθμονόμηση και πώς γίνεται;

Ναι, η βαθμονόμηση της πυξίδας είναι απαραίτητη για την αντιστάθμιση των παρασιτικών μαγνητικών πεδίων εντός του smartphone. Στις περισσότερες σύγχρονες συσκευές, η βαθμονόμηση γίνεται αυτόματα στο παρασκήνιο. Για χειροκίνητη βαθμονόμηση, σχεδιάστε με το smartphone ένα οκτώ στον αέρα — το σύστημα θα συλλέξει δεδομένα από όλες τις γωνίες και θα διορθώσει τις μετρήσεις.

Πώς να αποκτήσετε πρόσβαση στην πυξίδα σε μια εφαρμογή Android;

Στο Android η πρόσβαση στην πυξίδα γίνεται μέσω του Sensor API με τον αισθητήρα TYPE_MAGNETIC_FIELD. Το αζιμούθιο υπολογίζεται μέσω των SensorManager.getRotationMatrix() και getOrientation(), που συνδυάζουν δεδομένα μαγνητομέτρου και επιταχυνσιόμετρου. Το αζιμούθιο που προκύπτει μπορεί να προσαρμοστεί για εμφάνιση στην οθόνη.

Ποια μοντέλα smartphone έχουν την πιο ακριβή πυξίδα;

Οι πιο ακριβείς πυξίδες είναι εγκατεστημένες σε smartphone με τριπλό αισθητήρα IMU (μαγνητόμετρο + γυροσκόπιο + επιταχυνσιόμετρο) και ενεργό σύστημα βαθμονόμησης. Προηγούνται οι ναυαρχίδες Google Pixel, Samsung Galaxy S-series και iPhone Pro — χρησιμοποιούν μαγνητόμετρα AKM και Bosch με ευαισθησία 0,3 µT και αυτόματη διόρθωση.

Σύνοψη

  • Compass (ψηφιακή πυξίδα) στο smartphone είναι ένα MEMS-μαγνητόμετρο που μετρά το μαγνητικό πεδίο της Γης για τον προσδιορισμό του αζιμουθίου και του προσανατολισμού της συσκευής.
  • Τα σύγχρονα μαγνητόμετρα χρησιμοποιούν το φαινόμενο AMR (ανισότροπη μαγνητοαντίσταση), παρέχοντας ευαισθησία 0,3 µT και συμπαγές μέγεθος 2×2 mm.
  • Οι ακριβείς μετρήσεις πυξίδας απαιτούν βαθμονόμηση για αντιστάθμιση των μαγνητικών πεδίων από τα ηχεία, τον κινητήρα δόνησης και την κάμερα του smartphone.
  • Η κατεύθυνση του βορρά υπολογίζεται μέσω sensor fusion — συνδυασμού δεδομένων μαγνητομέτρου με επιταχυνσιόμετρο και γυροσκόπιο για διόρθωση κλίσης.
  • Η ψηφιακή πυξίδα εφαρμόζεται σε πλοήγηση, χαρτογραφία, επαυξημένη πραγματικότητα, αστρονομία και παρακολούθηση φυσικής κατάστασης για τον προσδιορισμό προσανατολισμού και κατεύθυνσης κίνησης.
  • Σε Android η πρόσβαση στην πυξίδα γίνεται μέσω TYPE_MAGNETIC_FIELD με υπολογισμό αζιμουθίου μέσω getRotationMatrix και getOrientation.
  • Η μαγνητική απόκλιση (γωνία μεταξύ μαγνητικού και γεωγραφικού βορρά) διορθώνεται αυτόματα στα API πλοήγησης των Google και Apple.

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης