Πίνακας περιεχομένων:

Διασύνδεση Arduino Mega με μονάδα GPS (Neo-6M): 8 βήματα
Διασύνδεση Arduino Mega με μονάδα GPS (Neo-6M): 8 βήματα

Βίντεο: Διασύνδεση Arduino Mega με μονάδα GPS (Neo-6M): 8 βήματα

Βίντεο: Διασύνδεση Arduino Mega με μονάδα GPS (Neo-6M): 8 βήματα
Βίντεο: LDmicro 21: Configure C Mode & Arduino Mega (Προγραμματισμός μικροελεγκτών με LDmicro) 2024, Ιούνιος
Anonim
Διασύνδεση Arduino Mega με μονάδα GPS (Neo-6M)
Διασύνδεση Arduino Mega με μονάδα GPS (Neo-6M)

Σε αυτό το έργο, έχω δείξει πώς να διασυνδέσω μια μονάδα GPS (Neo-6M) με το Arduino Mega. Η βιβλιοθήκη TinyGPS χρησιμοποιείται για την εμφάνιση των δεδομένων γεωγραφικού πλάτους και γεωγραφικού πλάτους και το TinyGPS ++ χρησιμοποιείται για την εμφάνιση γεωγραφικού πλάτους, γεωγραφικού μήκους, υψομέτρου, ταχύτητας και αριθμού δορυφόρων στη σειριακή οθόνη.

Βήμα 1: Απαιτούνται εξαρτήματα

Σκεύη, εξαρτήματα

  • Arduino Mega ==> 30 $
  • Neo-6M GPS module ==> 30 $

Λογισμικό

Arduino IDE

Το συνολικό κόστος του έργου είναι $ 60

Βήμα 2: Πληροφορίες για το GPS

Τι είναι το GPS

Το Global Positioning System (GPS) είναι ένα δορυφορικό σύστημα πλοήγησης που αποτελείται από τουλάχιστον 24 δορυφόρους. Το GPS λειτουργεί σε οποιεσδήποτε καιρικές συνθήκες, οπουδήποτε στον κόσμο, 24 ώρες την ημέρα, χωρίς συνδρομή ή τέλη εγκατάστασης.

Πώς λειτουργεί το GPS

Οι δορυφόροι GPS κάνουν κύκλο στη Γη δύο φορές την ημέρα σε ακριβή τροχιά. Κάθε δορυφόρος μεταδίδει ένα μοναδικό σήμα και τροχιακές παραμέτρους που επιτρέπουν στις συσκευές GPS να αποκωδικοποιούν και να υπολογίζουν την ακριβή θέση του δορυφόρου. Οι δέκτες GPS χρησιμοποιούν αυτές τις πληροφορίες και τον τριμερισμό για τον υπολογισμό της ακριβούς τοποθεσίας ενός χρήστη. Ουσιαστικά, ο δέκτης GPS μετρά την απόσταση από κάθε δορυφόρο με το χρονικό διάστημα που απαιτείται για τη λήψη ενός εκπεμπόμενου σήματος. Με μετρήσεις απόστασης από μερικούς ακόμη δορυφόρους, ο δέκτης μπορεί να καθορίσει τη θέση του χρήστη και να την εμφανίσει.

Για να υπολογίσετε τη δισδιάστατη θέση σας (γεωγραφικό πλάτος και γεωγραφικό μήκος) και την κίνηση της διαδρομής, ένας δέκτης GPS πρέπει να είναι κλειδωμένος στο σήμα τουλάχιστον 3 δορυφόρων. Με 4 ή περισσότερους δορυφόρους, ο δέκτης μπορεί να καθορίσει την τρισδιάστατη θέση σας (γεωγραφικό πλάτος, γεωγραφικό μήκος και υψόμετρο). Γενικά, ένας δέκτης GPS θα παρακολουθεί 8 ή περισσότερους δορυφόρους, αλλά αυτό εξαρτάται από την ώρα της ημέρας και το πού βρίσκεστε στη γη. Μόλις καθοριστεί η θέση σας, η μονάδα GPS μπορεί να υπολογίσει άλλες πληροφορίες, όπως π.χ.

  • Ταχύτητα
  • Ρουλεμάν
  • Πίστα
  • Ταξίδι σε απόσταση
  • Απόσταση από τον προορισμό

Τι είναι σήμα

Οι δορυφόροι GPS μεταδίδουν τουλάχιστον 2 ραδιοσήματα χαμηλής ισχύος. Τα σήματα ταξιδεύουν με οπτική επαφή, πράγμα που σημαίνει ότι θα περάσουν από σύννεφα, γυαλί και πλαστικό αλλά δεν θα περάσουν από τα περισσότερα στερεά αντικείμενα, όπως κτίρια και βουνά. Ωστόσο, οι σύγχρονοι δέκτες είναι πιο ευαίσθητοι και συνήθως μπορούν να παρακολουθούν σπίτια. Ένα σήμα GPS περιέχει 3 διαφορετικούς τύπους πληροφοριών

Udευδοτυχαίος κώδικας

Είναι ένα I. D. κωδικός που προσδιορίζει ποιος δορυφόρος μεταδίδει πληροφορίες. Μπορείτε να δείτε από ποιους δορυφόρους λαμβάνετε σήματα στη σελίδα δορυφόρου της συσκευής σας.

Δεδομένα εφήμερης

Τα δεδομένα Ephemeris χρειάζονται για τον προσδιορισμό της θέσης ενός δορυφόρου και δίνουν σημαντικές πληροφορίες σχετικά με την υγεία ενός δορυφόρου, την τρέχουσα ημερομηνία και ώρα.

Στοιχεία αλμανάκων

Τα δεδομένα του Almanac αναφέρουν στον δέκτη GPS πού πρέπει να βρίσκεται κάθε δορυφόρος GPS ανά πάσα στιγμή κατά τη διάρκεια της ημέρας και δείχνει τις τροχιακές πληροφορίες για αυτόν τον δορυφόρο και κάθε άλλο δορυφόρο του συστήματος.

Βήμα 3: Μονάδα GPS Neo-6M

Η μονάδα GPS NEO-6M φαίνεται στο παρακάτω σχήμα. Έρχεται με εξωτερική κεραία και δεν συνοδεύεται από καρφίτσες κεφαλίδας. Θα χρειαστεί λοιπόν να το κολλήσετε.

Επισκόπηση της μονάδας GPS NEO-6M

Τσιπ GPS NEO-6M

Η καρδιά της μονάδας είναι ένα τσιπ GPS NEO-6M από το u-blox. Μπορεί να παρακολουθεί έως και 22 δορυφόρους σε 50 κανάλια και επιτυγχάνει το υψηλότερο επίπεδο ευαισθησίας της βιομηχανίας, δηλαδή -161 dB παρακολούθηση, ενώ καταναλώνει μόνο ρεύμα τροφοδοσίας 45mA. Ο κινητήρας τοποθέτησης u-blox 6 διαθέτει επίσης ένα Time-To-First-Fix (TTFF) κάτω από 1 δευτερόλεπτο. Ένα από τα καλύτερα χαρακτηριστικά που παρέχει το τσιπ είναι η λειτουργία εξοικονόμησης ενέργειας (PSM). Επιτρέπει τη μείωση της κατανάλωσης ισχύος του συστήματος με επιλεκτική ενεργοποίηση και απενεργοποίηση τμημάτων του δέκτη. Αυτό μειώνει δραματικά την κατανάλωση ενέργειας της μονάδας σε μόλις 11mA, καθιστώντας την κατάλληλη για εφαρμογές ευαίσθητες στην ενέργεια, όπως το ρολόι χειρός GPS. Οι απαραίτητες καρφίτσες δεδομένων του τσιπ GPS NEO-6M διασπώνται σε κεφαλίδες βήματος 0,1. Αυτό περιλαμβάνει ακίδες που απαιτούνται για επικοινωνία με μικροελεγκτή μέσω UART.

Σημείωση:- Η μονάδα υποστηρίζει ρυθμό baud από 4800bps έως 230400bps με προεπιλεγμένο baud 9600.

Ένδειξη LED καθορισμού θέσης

Υπάρχει μια λυχνία LED στη μονάδα GPS NEO-6M η οποία υποδεικνύει την κατάσταση της Διόρθωσης θέσης. Θα αναβοσβήνει με διάφορους ρυθμούς ανάλογα με την κατάσταση στην οποία βρίσκεται

  1. Δεν αναβοσβήνει ==> σημαίνει ότι αναζητά δορυφόρους
  2. Αναβοσβήνει κάθε 1 δευτερόλεπτο - σημαίνει ότι βρέθηκε επιδιόρθωση θέσης

Ρυθμιστής 3.3V LDO

Η τάση λειτουργίας του τσιπ NEO-6M είναι από 2,7 έως 3,6V. Όμως, η μονάδα συνοδεύεται από ρυθμιστή MIC5205 εξαιρετικά χαμηλής εγκατάλειψης 3V3 από τη MICREL. Οι λογικές ακίδες είναι επίσης ανεκτές στα 5 volt, οπότε μπορούμε εύκολα να το συνδέσουμε σε Arduino ή σε οποιοδήποτε λογικό μικροελεγκτή 5V χωρίς να χρησιμοποιήσουμε μετατροπέα λογικής στάθμης.

Μπαταρία & EEPROM

Η μονάδα είναι εξοπλισμένη με σειριακό EEPROM δύο καλωδίων HK24C32. Έχει μέγεθος 4KB και συνδέεται με το τσιπ NEO-6M μέσω I2C. Η μονάδα περιέχει επίσης μια επαναφορτιζόμενη μπαταρία κουμπιού η οποία λειτουργεί ως υπερ-πυκνωτής.

Ένα EEPROM μαζί με την μπαταρία βοηθά στη διατήρηση της μνήμης RAM με μπαταρία (BBR). Το BBR περιέχει δεδομένα ρολογιού, δεδομένα τελευταίας θέσης (δεδομένα τροχιάς GNSS) και διαμόρφωση μονάδας. Αλλά δεν προορίζεται για μόνιμη αποθήκευση δεδομένων.

Καθώς η μπαταρία διατηρεί το ρολόι και την τελευταία θέση, ο χρόνος για την πρώτη διόρθωση (TTFF) μειώνεται σημαντικά στο 1 δευτερόλεπτο. Αυτό επιτρέπει πολύ πιο γρήγορες κλειδαριές θέσης.

Χωρίς την μπαταρία, το GPS ξεκινά πάντα με κρύο τρόπο, ώστε η αρχική κλειδαριά GPS να απαιτεί περισσότερο χρόνο. Η μπαταρία φορτίζεται αυτόματα όταν χρησιμοποιείται ρεύμα και διατηρεί δεδομένα έως και δύο εβδομάδες χωρίς ρεύμα.

Pinout

Το GND είναι το Ground Pin και πρέπει να συνδεθεί με τον ακροδέκτη GND στο Arduino

Η ακίδα TxD (πομπός) χρησιμοποιείται για σειριακή επικοινωνία

Η καρφίτσα RxD (Receiver) χρησιμοποιείται για σειριακή επικοινωνία

Το VCC παρέχει ισχύ για τη μονάδα. Μπορείτε να το συνδέσετε απευθείας με τον ακροδέκτη 5V στο Arduino

Βήμα 4: Arduino Mega

Το Arduino είναι μια ηλεκτρονική πλατφόρμα ανοιχτού κώδικα που βασίζεται σε εύχρηστο υλικό και λογισμικό. Οι πίνακες Arduino είναι σε θέση να διαβάζουν εισόδους - φως σε έναν αισθητήρα, ένα δάχτυλο σε ένα κουμπί ή ένα μήνυμα Twitter - και να το μετατρέπουν σε έξοδο - ενεργοποιώντας έναν κινητήρα, ενεργοποιώντας ένα LED, δημοσιεύοντας κάτι στο διαδίκτυο. Μπορείτε να πείτε στον πίνακα τι να κάνει στέλνοντας ένα σύνολο οδηγιών στον μικροελεγκτή στον πίνακα. Για να το κάνετε αυτό, χρησιμοποιήστε τη γλώσσα προγραμματισμού Arduino (με βάση την καλωδίωση) και το λογισμικό Arduino (IDE), με βάση την επεξεργασία.

Arduino Mega

Το Arduino Mega 2560 είναι ένας πίνακας μικροελεγκτών που βασίζεται στο Atmega2560.

  • Υπάρχουν 54 ψηφιακοί ακροδέκτες εισόδου/εξόδου και 16 αναλογικοί ακροδέκτες ενσωματωμένοι στον πίνακα που κάνουν αυτή τη συσκευή μοναδική και ξεχωρίζουν από άλλες. Από 54 ψηφιακές εισόδους/εξόδους, 15 χρησιμοποιούνται για PWM (διαμόρφωση πλάτους παλμού).
  • Ένας κρυσταλλικός ταλαντωτής συχνότητας 16MHz προστίθεται στον πίνακα.
  • Ο πίνακας διαθέτει θύρα καλωδίου USB που χρησιμοποιείται για τη σύνδεση και τη μεταφορά κώδικα από τον υπολογιστή στην πλακέτα.
  • Η πρίζα DC συνδέεται με την πλακέτα που χρησιμοποιείται για την τροφοδοσία της πλακέτας.
  • Ο πίνακας διαθέτει δύο ρυθμιστές τάσης, δηλαδή 5V και 3.3V, ο οποίος παρέχει την ευελιξία ρύθμισης της τάσης σύμφωνα με τις απαιτήσεις.
  • Υπάρχει ένα κουμπί επαναφοράς και 4 σειριακές θύρες υλικού που ονομάζονται USART, οι οποίες παράγουν μια μέγιστη ταχύτητα για τη ρύθμιση της επικοινωνίας.
  • Υπάρχουν τρεις τρόποι τροφοδοσίας του πίνακα. Μπορείτε είτε να χρησιμοποιήσετε ένα καλώδιο USB για να τροφοδοτήσετε την πλακέτα και να μεταφέρετε τον κωδικό στην πλακέτα είτε μπορείτε να την ενεργοποιήσετε χρησιμοποιώντας το Vin της πλακέτας ή μέσω της πρίζας ή της μπαταρίας.

Προδιαγραφές

Pinout

Περιγραφή καρφιτσών

  • 5V & 3.3V ==> Αυτός ο πείρος χρησιμοποιείται για την παροχή ρυθμιζόμενης τάσης εξόδου γύρω στα 5V. Αυτό το ρυθμιζόμενο τροφοδοτικό τροφοδοτεί τον ελεγκτή και άλλα εξαρτήματα της πλακέτας. Μπορεί να ληφθεί από Vin της πλακέτας ή καλώδιο USB ή άλλη ρυθμιζόμενη παροχή τάσης 5V. Ενώ μια άλλη ρύθμιση τάσης παρέχεται από ακίδα 3.3V. Η μέγιστη ισχύς που μπορεί να αντλήσει είναι 50mA.
  • GND ==> Υπάρχουν 5 ακίδες γείωσης διαθέσιμες στον πίνακα που το καθιστά χρήσιμο όταν απαιτούνται περισσότερες από μία ακίδες γείωσης για το έργο.
  • Επαναφορά ==> Αυτός ο πείρος χρησιμοποιείται για την επαναφορά της πλακέτας. Ρυθμίζοντας αυτόν τον πείρο σε LOW, θα επαναφέρετε τον πίνακα.
  • Vin ==> Είναι η τάση εισόδου που παρέχεται στην πλακέτα και κυμαίνεται από 7V έως 20V. Η τάση που παρέχεται από την υποδοχή τροφοδοσίας μπορεί να προσεγγιστεί μέσω αυτού του πείρου. Ωστόσο, η τάση εξόδου μέσω αυτού του πείρου στην πλακέτα θα ρυθμιστεί αυτόματα σε 5V.
  • Serial Communication ==> RXD και TXD είναι οι σειριακοί ακροδέκτες που χρησιμοποιούνται για τη μετάδοση και λήψη σειριακών δεδομένων, δηλαδή το Rx αντιπροσωπεύει τη μετάδοση δεδομένων ενώ το Tx χρησιμοποιείται για τη λήψη δεδομένων. Υπάρχουν τέσσερις συνδυασμοί αυτών των σειριακών ακίδων όπου το Serail 0 περιέχει RX (0) και TX (1), το Serial 1 περιέχει TX (18) και RX (19), το Serial 2 περιέχει TX (16) και RX (17), και το Serial 3 περιέχει TX (14) και RX (15).
  • Εξωτερικές διακοπές ==> Έξι ακίδες χρησιμοποιούνται για τη δημιουργία εξωτερικών διακοπών, δηλαδή διακοπή 0 (0), διακοπή 1 (3), διακοπή 2 (21), διακοπή 3 (20), διακοπή 4 (19), διακοπή 5 (18). Αυτές οι ακίδες παράγουν διακοπές με διάφορους τρόπους, δηλ. Παρέχοντας ΧΑΜΗΛΗ τιμή, ανερχόμενη ή μειούμενη άκρη ή μεταβαλλόμενη τιμή στις ακίδες διακοπής.
  • LED ==> Αυτός ο πίνακας έρχεται με ενσωματωμένο LED συνδεδεμένο με τον ψηφιακό ακροδέκτη 13. Η υψηλή τιμή σε αυτόν τον πείρο θα ανάψει το LED και η τιμή LOW θα το απενεργοποιήσει.
  • AREF ==> AREF σημαίνει Analog Reference Voltage που είναι τάση αναφοράς για αναλογικές εισόδους.
  • Αναλογικοί ακροδέκτες ==> Υπάρχουν 16 αναλογικοί ακροδέκτες ενσωματωμένοι στον πίνακα με την ένδειξη A0 έως A15. Είναι σημαντικό να σημειωθεί ότι όλες αυτές οι αναλογικές ακίδες μπορούν να χρησιμοποιηθούν ως ψηφιακές ακίδες εισόδου/εξόδου. Κάθε αναλογική ακίδα διαθέτει ανάλυση 10-bit. Αυτές οι ακίδες μπορούν να μετρηθούν από το έδαφος έως 5V. Ωστόσο, η ανώτερη τιμή μπορεί να αλλάξει χρησιμοποιώντας τη συνάρτηση AREF και analogReference ().
  • I2C ==> Δύο ακίδες 20 και 21 υποστηρίζουν επικοινωνία I2C όπου 20 αντιπροσωπεύει SDA (Γραμμή σειριακών δεδομένων που χρησιμοποιείται κυρίως για τη διατήρηση των δεδομένων) και 21 αντιπροσωπεύει SCL (Σειριακή γραμμή ρολογιού που χρησιμοποιείται κυρίως για την παροχή συγχρονισμού δεδομένων μεταξύ των συσκευών)
  • SPI Communication ==> SPI σημαίνει Serial Peripheral Interface που χρησιμοποιείται για τη μετάδοση δεδομένων μεταξύ του ελεγκτή και άλλων περιφερειακών στοιχείων. Τέσσερις ακίδες δηλαδή 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) χρησιμοποιούνται για επικοινωνία SPI.

Βήμα 5: Arduino IDE

Εδώ υποθέτω ότι έχετε ήδη εγκαταστήσει το Arduino IDE.

1. Κατεβάστε την απαιτούμενη βιβλιοθήκη που δίνεται παρακάτω

TinyGPS lib

2. Αφού το κατεβάσετε. Το εξαγάγετε και το μεταφέρετε στο φάκελο C: / Users \… / Documents / Arduino / βιβλιοθήκες βεβαιωθείτε ότι δεν υπάρχει (-).

3. Ανοίξτε το Arduino IDE και αντιγράψτε τον κωδικό από την ενότητα προγράμματος.

4. Στη συνέχεια, επιλέξτε τον πίνακα για αυτό μεταβείτε στο Εργαλεία ==> Πίνακες ==> επιλέξτε τον πίνακα εδώ που χρησιμοποιούμε το Arduino Mega 2560

5. Αφού επιλέξετε τον πίνακα, επιλέξτε θύρα για αυτό μεταβείτε στο Εργαλεία ==> Θύρες

6 Αφού επιλέξετε τον πίνακα και τη θύρα, κάντε κλικ στο κουμπί μεταφόρτωσης.

7. Μόλις ανέβει ο κώδικας, ανοίξτε το σειριακό τερματικό για να δείτε την έξοδο.

Βήμα 6: Συνδέσεις

Arduino MEGA ==> GPS NEO-6M

  • 3.3V ==> VCC
  • GND ==> GND
  • Tx1 (18) ==> Rx
  • Rx (19) ==> Tx

Μπορείτε επίσης να χρησιμοποιήσετε Serial2 ή Serial3 αντί για Serial1

Συνιστάται: