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

Παρακολούθηση GPS με έργο OLED Display: 5 βήματα (με εικόνες)
Παρακολούθηση GPS με έργο OLED Display: 5 βήματα (με εικόνες)

Βίντεο: Παρακολούθηση GPS με έργο OLED Display: 5 βήματα (με εικόνες)

Βίντεο: Παρακολούθηση GPS με έργο OLED Display: 5 βήματα (με εικόνες)
Βίντεο: TICWATCH PRO 5 Review: The BEST Wear OS Watch Yet?! // A Complete Guide 2024, Ιούλιος
Anonim
Παρακολούθηση GPS με έργο OLED Display
Παρακολούθηση GPS με έργο OLED Display
Παρακολούθηση GPS με έργο OLED Display
Παρακολούθηση GPS με έργο OLED Display
Παρακολούθηση GPS με έργο OLED Display
Παρακολούθηση GPS με έργο OLED Display
Παρακολούθηση GPS με έργο OLED Display
Παρακολούθηση GPS με έργο OLED Display

Γεια σε όλους, σε αυτό το γρήγορο άρθρο θα μοιραστώ μαζί σας το έργο μου: ATGM332D GPS module με μικροελεγκτή SAMD21J18 και οθόνη SSD1306 OLED 128*64, έχτισα ένα ειδικό PCB για αυτό στο Eagle Autodesk και το προγραμματίζω χρησιμοποιώντας Atmel studio 7.0 και ASF4 έτσι σε αυτό το άρθρο θα μοιραστώ μαζί σας αυτό το ταξίδι και τα αρχεία που χρησιμοποίησα αν σας ενδιαφέρει να το κάνετε μόνοι σας.

Τώρα, εάν προγραμματίζετε το MCU/τον πίνακα ανάπτυξης χρησιμοποιώντας το Arduino, αυτό το έργο θα πρέπει να σας είναι σχετικά εύκολο, αλλά εδώ θα χρησιμοποιήσω το ASF4 (Advanced software framework 4) από την Atmel/Microchip που βασίζεται στη γλώσσα C και θα σας έδινε μια ιδέα για τον τρόπο ανάγνωσης του μηνύματος GPS NMEA χρησιμοποιώντας το ασύγχρονο πρόγραμμα οδήγησης USART (Callback) και σας παρέχουμε μια απλή βιβλιοθήκη που μπορείτε να τη χρησιμοποιήσετε με οποιοδήποτε μικροελεγκτή και διαφορετική πλατφόρμα, προσθέτοντας απλώς το κατάλληλο πρόγραμμα οδήγησης που χρησιμοποιείτε για να λαμβάνετε το μήνυμα από το GPS (μήνυμα NMEA).

Θα χωρίσω αυτό το άρθρο σε:

  1. Σχεδιασμός PCB.
  2. BOM πρέπει να συναρμολογήσετε το PCB
  3. Γρήγορη ματιά στο λογισμικό και τον ίδιο τον κώδικα και μια δοκιμή για το υλικό και το λογισμικό.
  4. Τέλος, αλλά όχι λιγότερο σημαντικό σημείο βελτίωσης για αυτό το έργο.

Θα βρείτε όλο το υλικό που σχετίζεται με αυτό το έργο στοGithub (Εδώ)

Βήμα 1: Σχεδιασμός PCB με χρήση Eagle

Σχεδιασμός PCB με χρήση Eagle
Σχεδιασμός PCB με χρήση Eagle
Σχεδιασμός PCB με χρήση Eagle
Σχεδιασμός PCB με χρήση Eagle
Σχεδιασμός PCB με χρήση Eagle
Σχεδιασμός PCB με χρήση Eagle
Σχεδιασμός PCB με χρήση Eagle
Σχεδιασμός PCB με χρήση Eagle

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

και για τον έλεγχο όλων των σημάτων στο κύκλωμα πήγα με τον μικροελεγκτή ATSAMD21J18B, πακέτο TQFP64, καθώς έχει 128KByte αποθήκευσης μνήμης προγράμματος και 32KByte μνήμης δεδομένων (και έχω πολλά από αυτά στον πάγκο εργασίας μου).

το κύκλωμα θα τροφοδοτείται από πηγή USB 5V, επίσης το USB μπορεί να λειτουργήσει ως εικονική θύρα COM (CDC USB) και μπορείτε να προσθέσετε έναν κωδικό για αυτό εάν θέλετε να επικοινωνείτε με τη συσκευή μέσω USB.

για την οθόνη επέλεξα SSD1306 0.96 'OLED οθόνη με δίαυλο SPI, είναι μικρή αλλά είναι η κατάλληλη για το μέγεθος του PCB που ήθελα, η διάσταση της πλακέτας 100x31 mm.

Ο προγραμματισμός του μικροελεγκτή θα γίνεται μέσω προγραμματιστή SWD (χρησιμοποιώ το Atmel ICE) και θα το συνδέει μέσω κεφαλίδας ακίδων 1,27 mm 10p.

Επίσης χρησιμοποίησα το Fusion360 για να πάρω μια τρισδιάστατη προβολή για τον πίνακα και μπορείτε να δείτε κάποια απόδοση εικόνας και για αυτό.

Βήμα 2: Συγκόλληση του PCB

Συγκόλληση του PCB
Συγκόλληση του PCB
Συγκόλληση του PCB
Συγκόλληση του PCB
Συγκόλληση του PCB
Συγκόλληση του PCB

Έχετε την επιλογή να παραγγείλετε ένα στένσιλ με το PCB σας, είναι πιο εύκολο να εφαρμόσετε την κόλλα συγκόλλησης στον πίνακα χρησιμοποιώντας το στένσιλ, χρησιμοποίησα θερμαινόμενη πλάκα για να κολλήσω τα εξαρτήματα μαζί, η χρήση ζεστού αέρα είναι επίσης εντάξει, αλλά να είστε προσεκτικοί κατά τη συγκόλληση του LED αφού είναι τόσο ευαίσθητα στη θερμότητα.

Η συγκόλληση της κάτω πλευράς είναι λίγο πιο εύκολη, καθώς έχει μόνο την κεφαλίδα καρφιτσών SWD και την εφεδρική μπαταρία, την οποία μπορείτε να κολλήσετε χρησιμοποιώντας κολλητήρι.

πριν συνδέσετε το κύκλωμα με οποιαδήποτε πηγή τροφοδοσίας USB, ελέγξτε για τυχόν βραχυκύκλωμα.

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

Βήμα 3: Λογισμικό… Λειτουργικότητα… αποτελέσματα

Image
Image
Λογισμικό… Λειτουργικότητα… αποτελέσματα
Λογισμικό… Λειτουργικότητα… αποτελέσματα
Λογισμικό… Λειτουργικότητα… αποτελέσματα
Λογισμικό… Λειτουργικότητα… αποτελέσματα

Το λογισμικό θα χωριστεί σε 4 μέρη:

  1. USART για επικοινωνία με μονάδα GPS ATGM332.
  2. SPI για επικοινωνία με OLED.
  3. USB CDC.
  4. GPIO για έλεγχο LED

συνδέστε πρώτα το βύσμα USB στην τροφοδοσία του κυκλώματος και, στη συνέχεια, συνδέστε το καλώδιο κορδέλας με υποδοχή SWD.

Κατεβάστε τον Κώδικα από το github (Σύνδεσμος εδώ).

για να αποκτήσετε το Geo-Location έχετε 3 διαφορετικές επιλογές μηνυμάτων NMEA:

  1. GPGGA
  2. GPRMC
  3. GPGLL

Χρησιμοποίησα την πρόταση GPRMC για να λάβω την τοποθεσία, την ώρα και την ημερομηνία (η ώρα είναι 0.0 GMT), οπότε στον κώδικα θα βρείτε:

GPRMC. Ενεργοποιήστε = 1;/*0 εάν δεν υπάρχει ανάγκη για αυτό το μήνυμα*/

GPGGA. Enable = 0;/*0 αν δεν χρειάζεται για αυτό το μήνυμα*/

GPGLL. Ενεργοποίηση = 0;/*0 εάν δεν υπάρχει ανάγκη για αυτό το μήνυμα*/

μπορείτε να τα ενεργοποιήσετε όλα μαζί και να τα διαβάσετε ταυτόχρονα να λάβετε τα δεδομένα που χρειάζεστε.

μόλις υπάρξει έγκυρη πρόταση GPRMC, τοGPRMC. Το Ready θα γίνει 1 και μπορείτε να λάβετε όλα τα διαθέσιμα δεδομένα σε αυτήν την πρόταση, ελέγξτε αυτόν τον σύνδεσμο για να δείτε τα διαθέσιμα δεδομένα σε αυτήν την πρόταση.

απλά εάν η επιδιόρθωση είναι "Α" αυτό σημαίνει ότι η τοποθεσία είναι διαθέσιμη, αν η διόρθωση είναι "V" σημαίνει ότι η τοποθεσία δεν είναι διαθέσιμη.

παρατηρήστε ότι το ATSAMD21 έχει εσωτερικό RTC, αλλά εδώ δεν το χρησιμοποιώ και αντ 'αυτού χρησιμοποιώ την ώρα και την ημερομηνία απευθείας από το GPS, οπότε αν δεν θέλετε να χρησιμοποιήσετε την εφεδρική μπαταρία CR1220, μόλις αποσυνδέσετε την πηγή τροφοδοσίας USB χάσετε την ώρα/ημερομηνία και για την επόμενη φορά που θα ενεργοποιήσετε το κύκλωμα, η περιοχή ώρας/ημερομηνίας στην οθόνη θα είναι κενή, έως ότου το GPS έχει έγκυρη τιμή ώρας/ημερομηνίας.

η οθόνη θα σας δείξει την τρέχουσα κατάσταση του GPS και θα εμφανίσει τη γεωγραφική θέση μόλις είναι διαθέσιμο, ωστόσο υπάρχουν 3 LED στον πίνακα:

  1. Το πράσινο LED είναι συνδεδεμένο στο PA06 και αναβοσβήνει εάν υπάρχει έγκυρη τιμή γεωγραφικής θέσης.
  2. Πορτοκαλί LED συνδεδεμένο στο PA07 και θα αναβοσβήνει μία φορά το δευτερόλεπτο εάν δεν υπάρχει έγκυρη γεωγραφική θέση.
  3. Αυτή η κόκκινη λυχνία LED συνδέεται με τον ακροδέκτη PPS της μονάδας GPS και θα αναβοσβήνει μόνο όταν υπάρχει έγκυρο σήμα που σχετίζεται με την τοποθεσία.

Αποτελέσματα

Το κύκλωμα λειτούργησε πολύ καλά μαζί μου, το Geo-location από το GPS πήρε 20-30 δευτερόλεπτα σε εξωτερικούς χώρους με καθαρή θέα στον ουρανό και μεταξύ κτιρίων χωρίς κανένα πρόβλημα, ακόμη και με κεραία στην κάτω πλευρά του πίνακα.

Βήμα 4: Θήκη με 3D εκτύπωση … Ταξινόμηση

Τρισδιάστατη θήκη… Ταξινόμηση
Τρισδιάστατη θήκη… Ταξινόμηση

Ετοίμασα μια απλή θήκη (πιο ακριβής θήκη) για αυτό το κύκλωμα, αλλά λόγω της επιδημίας COVID-19 και του αποκλεισμού που βρίσκομαι αυτή τη στιγμή, δεν μπόρεσα να φτάσω στον 3d εκτυπωτή μου για να τον εκτυπώσω, οπότε θα ενημερώσω αυτήν την ενότητα με stl αρχείο και φωτογραφίες για τον κάτοχο μόλις είναι διαθέσιμο.

Βήμα 5: Τα πράγματα που πρέπει να βελτιωθούν…

Πράγματα προς βελτίωση…
Πράγματα προς βελτίωση…
Πράγματα προς βελτίωση…
Πράγματα προς βελτίωση…
Πράγματα προς βελτίωση…
Πράγματα προς βελτίωση…
  1. Μετακίνηση του συνδέσμου SWD στην επάνω πλευρά, επειδή είναι πιο εύκολο να το συνδέσετε με τον προγραμματιστή σας.
  2. Τροφοδοτώντας το κύκλωμα από μπαταρία λιθίου, το έκανα με συγκόλληση ενός βραχυκυκλωτήρα και λειτούργησε καλά, έχοντας κατά νου ότι ο ρυθμιστής Linear (LDO) έχει τάση πτώσης V εάν το όριο (Vbat - Vout) μικρότερο από το Vdrop το κύκλωμα ενδέχεται να μην λειτουργεί σωστά.
  3. κάνοντας ένα κουμπί χρήστη λίγο μεγαλύτερο, ώστε να είναι πιο εύκολο να το πατήσετε.
  4. προσθήκη κώδικα USB CDC ώστε να μπορείτε να επικοινωνείτε/σχεδιάζετε ένα ειδικό πρόγραμμα για MAC/PC/linux.
  5. Για την κεραία GPS, χρησιμοποίησα την ενεργή κεραία για αυτό το έργο, είναι δυνατή η χρήση παθητικής κεραίας, προσθέτοντας χαμηλού θορύβου op-Amp όπως το AT2659 (ελέγξτε επίσης το σχηματικό σχήμα στο δελτίο δεδομένων ATGM332 P.14).
  6. για το OLED 0.96 'SSD1306, την επίσημη βιβλιοθήκη από το μικροτσίπ αρχικά για οθόνη 128*32, για να τροποποιήσετε τον κώδικα για να λειτουργεί με 128*64 πρέπει να μεταβείτε στο ssd1306.c και να τροποποιήσετε τον κωδικό (ελέγξτε την εικόνα).

Συνιστάται: