- Απαιτούμενα υλικά
- Τι είναι το μαγνητόμετρο και πώς λειτουργεί;
- Πώς λειτουργεί η μονάδα αισθητήρα HMC5883L
- Διάγραμμα κυκλώματος
- Κατασκευή των PCB για την ψηφιακή πυξίδα
- Συναρμολόγηση του PCB
- Προγραμματισμός του Arduino
Ο ανθρώπινος εγκέφαλος είναι χτισμένος από ένα σύνθετο στρώμα δομών που μας βοηθά να είμαστε κυρίαρχο είδος στη γη. Για παράδειγμα, ο ενδορρινικός φλοιός στον εγκέφαλό σας μπορεί να σας δώσει την αίσθηση της κατεύθυνσης που σας βοηθά να πλοηγηθείτε εύκολα σε μέρη που δεν γνωρίζετε. Αλλά σε αντίθεση με εμάς, τα ρομπότ και τα μη επανδρωμένα οχήματα Ariel χρειάζονται κάτι για να πάρουν αυτήν την αίσθηση κατεύθυνσης, ώστε να μπορούν να κάνουν ελιγμούς αυτόνομα σε νέα εδάφη και τοπία. Διαφορετικά ρομπότ χρησιμοποιούν διαφορετικούς τύπους αισθητήρων για να το επιτύχουν αυτό, αλλά ο συνηθισμένος που χρησιμοποιείται είναι ένα μαγνητόμετρο, το οποίο θα μπορούσε να ενημερώσει το ρομπότ με ποια γεωγραφική γραφική κατεύθυνση αντιμετωπίζει. Αυτό όχι μόνο θα βοηθήσει το ρομπότ να αισθανθεί την κατεύθυνση αλλά και να γυρίσει σε μια προκαθορισμένη κατεύθυνση και έναν άγγελο.
Δεδομένου ότι ο αισθητήρας θα μπορούσε να υποδείξει το γεωγραφικό Βορρά, Νότο, Ανατολή και Δύση, εμείς οι άνθρωποι θα μπορούσαμε επίσης να το χρησιμοποιούμε σε περιόδους που απαιτείται. Έτσι σε αυτό το άρθρο ας προσπαθήσουμε να καταλάβουμε πώς λειτουργεί ο αισθητήρας μαγνητόμετρου και πώς να τον συνδέσουμε με έναν μικροελεγκτή όπως το Arduino. Εδώ θα φτιάξουμε μια δροσερή Ψηφιακή Πυξίδα που θα μας βοηθήσει να βρούμε τις κατευθύνσεις φωτίζοντας μια LED που δείχνει τη Βόρεια Κατεύθυνση Αυτή η Ψηφιακή Πυξίδα είναι τακτοποιημένη στο PCB από το PCBGOGO, έτσι ώστε να μπορώ να τη μεταφέρω την επόμενη φορά όταν βγαίνω στην άγρια φύση και εύχομαι να χαθώ μόνο για να χρησιμοποιήσω αυτό το πράγμα για να βρω το σπίτι μου. Ας αρχίσουμε.
Απαιτούμενα υλικά
- Arduino Pro μίνι
- Αισθητήρας μαγνητόμετρου HMC5883L
- Φωτιστικά LED - 8Nos
- 470Ohm Αντίσταση - 8Nos
- Βαρέλι Τζακ
- Ένας αξιόπιστος κατασκευαστής PCB όπως το PCBgogo
- Προγραμματιστής FTDI για μίνι
- Υπολογιστής / φορητός υπολογιστής
Τι είναι το μαγνητόμετρο και πώς λειτουργεί;
Πριν βυθίσουμε στο κύκλωμα, ας καταλάβουμε λίγο για το μαγνητόμετρο και πώς λειτουργούν. Όπως υποδηλώνει το όνομα, ο όρος Magneto δεν αναφέρεται σε αυτόν τον τρελό μεταλλάκτη που θα μπορούσε να ελέγξει τα μέταλλα παίζοντας απλά πιάνο στον αέρα. Ωχ! Αλλά μου αρέσει αυτός ο τύπος που είναι δροσερός.
Το μαγνητόμετρο είναι στην πραγματικότητα ένα κομμάτι εξοπλισμού που θα μπορούσε να ανιχνεύσει τους μαγνητικούς πόλους της γης και να δείχνει την κατεύθυνση σύμφωνα με αυτό. Όλοι γνωρίζουμε ότι η Γη είναι ένα τεράστιο κομμάτι σφαιρικού μαγνήτη με τον Βόρειο Πόλο και τον Νότιο Πόλο. Και υπάρχει μαγνητικό πεδίο λόγω αυτού. Ένα μαγνητόμετρο ανιχνεύει αυτό το μαγνητικό πεδίο και με βάση την κατεύθυνση του μαγνητικού πεδίου μπορεί να ανιχνεύσει την κατεύθυνση που αντιμετωπίζουμε.
Πώς λειτουργεί η μονάδα αισθητήρα HMC5883L
Το HMC5883L είναι μαγνητόμετρο αισθητήρας κάνει το ίδιο πράγμα. Έχει το HMC5883L IC από το Honeywell. Αυτό το IC διαθέτει 3 μέσα σε μαγνητική αντίσταση, τα οποία είναι διατεταγμένα στους άξονες x, y και z. Η ποσότητα ρεύματος που διατρέχει αυτά τα υλικά είναι ευαίσθητη στο μαγνητικό πεδίο της γης. Έτσι, μετρώντας την αλλαγή στο ρεύμα που ρέει μέσα από αυτά τα υλικά μπορούμε να εντοπίσουμε την αλλαγή στο μαγνητικό πεδίο της Γης. Μόλις απορροφηθεί η αλλαγή μαγνητικού πεδίου, οι τιμές μπορούν στη συνέχεια να σταλούν σε οποιονδήποτε ενσωματωμένο ελεγκτή όπως ένας μικροελεγκτής ή ένας επεξεργαστής μέσω του πρωτοκόλλου I2C.
Δεδομένου ότι ο αισθητήρας λειτουργεί ανιχνεύοντας το μαγνητικό πεδίο, οι τιμές εξόδου θα επηρεαστούν πολύ εάν τοποθετηθεί ένα μέταλλο κοντά. Αυτή η συμπεριφορά μπορεί να αξιοποιηθεί για τη χρήση αυτών των αισθητήρων ως ανιχνευτές μετάλλων. Πρέπει να προσέξετε να μην φέρετε μαγνήτες κοντά σε αυτόν τον αισθητήρα, καθώς το ισχυρό μαγνητικό πεδίο από έναν μαγνήτη μπορεί να προκαλέσει ψευδείς τιμές στον αισθητήρα.
Διαφορά μεταξύ HMC5883L και QMC5883L
Υπάρχει μια κοινή σύγχυση που περιστρέφεται γύρω από αυτούς τους αισθητήρες για πολλούς αρχάριους. Αυτό συμβαίνει επειδή ορισμένοι προμηθευτές (στην πραγματικότητα οι περισσότεροι) πωλούν τους αισθητήρες QMC5883L αντί του αρχικού HMC5883L από τη Honeywell. Αυτό οφείλεται κυρίως στο ότι το QMC5883L είναι πολύ φθηνότερο από το HMC5883L module. Το λυπηρό είναι ότι η λειτουργία αυτών των δύο αισθητήρων είναι ελαφρώς διαφορετική και ο ίδιος κωδικός δεν μπορεί να χρησιμοποιηθεί και για τους δύο. Αυτό συμβαίνει επειδή η διεύθυνση I2C και των δύο αισθητήρων δεν είναι η ίδια. Ο κωδικός που δίνεται σε αυτό το σεμινάριο θα λειτουργήσει μόνο για το QMC5883L της κοινώς διαθέσιμης μονάδας αισθητήρα.
Για να μάθετε ποιο μοντέλο αισθητήρα έχετε, απλά πρέπει να κοιτάξετε προσεκτικά το ίδιο το IC για να διαβάσετε τι γράφεται πάνω του. Εάν είναι γραμμένο κάτι σαν L883 τότε είναι το HMC58836L και αν είναι γραμμένο κάτι σαν DA5883 τότε είναι το QMC5883L IC. Και οι δύο ενότητες φαίνονται στην παρακάτω εικόνα για εύκολη υποεκτίμηση.
Διάγραμμα κυκλώματος
Το κύκλωμα για αυτήν την ψηφιακή πυξίδα που βασίζεται στο Arduino είναι πολύ απλό, απλά πρέπει να συνδέσουμε τον αισθητήρα HMC5883L με το Arduino και να συνδέσουμε 8 LED στις ακίδες GPIO του Arduino Pro mini. Το πλήρες διάγραμμα κυκλώματος φαίνεται παρακάτω
Η μονάδα Sensor έχει 5 ακίδες από τις οποίες το DRDY (Data Ready) δεν χρησιμοποιείται στο έργο μας, καθώς λειτουργούμε τον αισθητήρα σε συνεχή λειτουργία. Ο πείρος Vcc και γείωσης χρησιμοποιείται για την τροφοδοσία της μονάδας με 5V από την πλακέτα Arduino. Οι SCL και SDA είναι οι γραμμές διαύλου επικοινωνίας I2C που συνδέονται στις ακίδες A4 και A5 I2C του Arduino Pro mini αντίστοιχα. Δεδομένου ότι η ίδια η μονάδα έχει υψηλή αντίσταση έλξης στις γραμμές, δεν υπάρχει λόγος να τις προσθέσετε εξωτερικά.
Για να δείξουμε την κατεύθυνση που έχουμε χρησιμοποιήσει 8 LED όλα τα οποία είναι συνδεδεμένα με τους ακροδέκτες GPIO του Arduino μέσω μιας τρέχουσας περιοριστικής αντίστασης 470 Ohms. Το ολοκληρωμένο κύκλωμα τροφοδοτείται από μια μπαταρία 9V μέσω του βαρελιού Jack. Αυτό το 9V παρέχεται απευθείας στον πείρο Vin του Arduino όπου ρυθμίζεται σε 5V χρησιμοποιώντας τον ενσωματωμένο ρυθμιστή στο Arduino. Αυτό το 5V χρησιμοποιείται στη συνέχεια για την τροφοδοσία του αισθητήρα και του Arduino επίσης.
Κατασκευή των PCB για την ψηφιακή πυξίδα
Η ιδέα του κυκλώματος είναι να τοποθετήσετε τα 8 LED με κυκλικό τρόπο, έτσι ώστε κάθε Led να δείχνει και τις 8 κατευθύνσεις, δηλαδή Βόρεια, Βορειοανατολικά, Ανατολικά, Νοτιοανατολικά, Νότια, Νοτιοδυτικά, Δυτικά και Βορειοδυτικά αντίστοιχα. Επομένως, δεν είναι εύκολο να τα τακτοποιήσετε τακτοποιημένα σε ένα breadboard ή ακόμη και σε μια σανίδα perf για αυτό το θέμα. Η ανάπτυξη ενός PCB για αυτό το κύκλωμα θα το κάνει να φαίνεται πιο καθαρό και εύκολο στη χρήση. Άνοιξα λοιπόν το λογισμικό σχεδίασης PCB και τοποθέτησα τις λυχνίες LED και την αντίσταση σε ένα τακτοποιημένο κυκλικό μοτίβο και συνέδεσα τα κομμάτια για να σχηματίσω τις συνδέσεις. Το σχέδιό μου έμοιαζε κάπως έτσι όταν ολοκληρωθεί. Μπορείτε επίσης να κατεβάσετε το αρχείο Gerber από τον παρακάτω σύνδεσμο.
- Κατεβάστε το αρχείο Gerber για ψηφιακή πυξίδα PCB
Το έχω σχεδιάσει για να είναι μια διπλή πλακέτα, καθώς θέλω το Arduino να βρίσκεται στην κάτω πλευρά του PCB μου, έτσι ώστε να μην χαλάσει την εμφάνιση στο πάνω μέρος του PCB μου. Εάν ανησυχείτε ότι πρέπει να πληρώσετε υψηλά για ένα PCB διπλής όψης, τότε παραμείνετε, έχω καλή νέα εμφάνιση.
Τώρα, που το σχέδιο μας είναι έτοιμο, είναι καιρός να τα κατασκευάσουμε. Για να ολοκληρώσετε το PCB είναι αρκετά εύκολο, απλώς ακολουθήστε τα παρακάτω βήματα
Βήμα 1: Μπείτε στο www.pcbgogo.com, εγγραφείτε εάν αυτή είναι η πρώτη σας φορά. Στη συνέχεια, στην καρτέλα Πρωτότυπο PCB εισαγάγετε τις διαστάσεις του PCB σας, τον αριθμό των επιπέδων και τον αριθμό των PCB που χρειάζεστε. Το PCB μου είναι 80cm × 80cm έτσι η καρτέλα μοιάζει με αυτό παρακάτω
Βήμα 2: Συνεχίστε κάνοντας κλικ στο κουμπί Quote Now . Θα μεταφερθείτε σε μια σελίδα όπου θα ορίσετε μερικές πρόσθετες παραμέτρους, εάν απαιτείται, όπως το υλικό που χρησιμοποιείται σε απόσταση κομματιού κ.λπ. Αλλά κυρίως οι προεπιλεγμένες τιμές θα λειτουργήσουν καλά. Το μόνο πράγμα που πρέπει να λάβουμε υπόψη εδώ είναι η τιμή και ο χρόνος. Όπως μπορείτε να δείτε, ο Χρόνος Κατασκευής είναι μόνο 2-3 ημέρες και κοστίζει μόνο 5 $ για το PSB μας. Στη συνέχεια, μπορείτε να επιλέξετε μια προτιμώμενη μέθοδο αποστολής με βάση τις απαιτήσεις σας.
Βήμα 3: Το τελευταίο βήμα είναι να ανεβάσετε το αρχείο Gerber και να προχωρήσετε στην πληρωμή. Για να βεβαιωθείτε ότι η διαδικασία είναι ομαλή, το PCBGOGO επαληθεύει εάν το αρχείο Gerber είναι έγκυρο πριν προχωρήσετε στην πληρωμή. Με αυτόν τον τρόπο μπορείτε να είστε σίγουροι ότι το PCB σας είναι φιλικό στην κατασκευή και θα σας φτάσει ως δεσμευμένο.
Συναρμολόγηση του PCB
Μετά την παραγγελία του διοικητικού συμβουλίου, μου έφτασε μετά από μερικές ημέρες, αν και η ταχυμεταφορά σε ένα καλά συσκευασμένο κουτί με ετικέτα και όπως πάντα η ποιότητα του PCB ήταν καταπληκτική. Μοιράζομαι μερικές φωτογραφίες από τους πίνακες παρακάτω για να κρίνετε.
Άνοιξα τη ράβδο συγκόλλησης και άρχισα να συναρμολογώ την σανίδα. Δεδομένου ότι τα Footprints, τα τακάκια, τα vias και η μεταξοτυπία είναι τέλεια του σωστού σχήματος και μεγέθους, δεν είχα κανένα πρόβλημα να συναρμολογήσω το ταμπλό. Ο πίνακας ήταν έτοιμος σε μόλις 10 λεπτά από τη στιγμή της αποσυσκευασίας του κουτιού.
Λίγες εικόνες του πίνακα μετά τη συγκόλληση φαίνονται παρακάτω.
Προγραμματισμός του Arduino
Τώρα που το υλικό μας είναι έτοιμο, ας δούμε το πρόγραμμα που πρέπει να φορτωθεί στον πίνακα Arduino. Ο σκοπός του κώδικα είναι να διαβάσει τα δεδομένα από τον αισθητήρα μαγνητόμετρου QMC5883L και να τα μετατρέψει σε βαθμό (0 έως 360). Μόλις μάθουμε τον βαθμό, πρέπει να ανάψουμε ένα LED που δείχνει μια συγκεκριμένη κατεύθυνση. Η κατεύθυνση που έχω χρησιμοποιήσει σε αυτό το πρόγραμμα είναι βόρεια. Έτσι, ανεξάρτητα από το πού βρίσκεστε, θα υπάρχει μόνο ένα LED που ανάβει στον πίνακα σας και η κατεύθυνση του LED θα δείχνει την ΒΟΡΕΙΑ κατεύθυνση. Μόλις μπορούσε αργότερα να υπολογίσει την άλλη κατεύθυνση είναι γνωστή μια κατεύθυνση.
Ο πλήρης κωδικός για αυτό το έργο ψηφιακής πυξίδας βρίσκεται στο τέλος αυτής της σελίδας. Μπορείτε να το ανεβάσετε απευθείας στον πίνακα σας αφού συμπεριλάβετε τη βιβλιοθήκη και είστε έτοιμοι να πάτε. Αλλά, αν θέλετε να μάθετε