Πίνακας περιεχομένων:
- Βήμα 1: Το κύριο σύστημα
- Βήμα 2: Το σύστημα ανίχνευσης
- Βήμα 3: Το σύστημα τηλεμετρίας
- Βήμα 4: Το σύστημα ισχύος
- Βήμα 5: Η δομή
- Βήμα 6: Συμπεράσματα και μελλοντικές σκέψεις
Βίντεο: CanSat - Οδηγός για αρχάριους: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:36
Ο κύριος στόχος αυτών των οδηγιών είναι η κοινή χρήση της διαδικασίας ανάπτυξης ενός CanSat, βήμα προς βήμα. Αλλά, πριν ξεκινήσουμε, ας ξεκαθαρίσουμε πραγματικά τι είναι το CanSat και ποιες είναι οι κύριες λειτουργίες του, εκμεταλλευόμενοι επίσης την ευκαιρία, θα παρουσιάσουμε την ομάδα μας. Αυτό το έργο ξεκίνησε ως έργο επέκτασης στο πανεπιστήμιό μας, Universidade Tecnológica Federal do Paraná (UTFPR), στην πανεπιστημιούπολη Cornélio Procópio. Καθοδηγούμενοι από τον σύμβουλό μας, αναπτύξαμε ένα σχέδιο δράσης με την πρόθεση να μπούμε στο CanSats, το οποίο σήμαινε τη μελέτη όλων των πτυχών και των χαρακτηριστικών του, προκειμένου να μπορέσουμε να καταλάβουμε πώς λειτουργεί, το οποίο τελικά θα είχε ως αποτέλεσμα την κατασκευή ένα CanSat και η ανάπτυξη αυτού του οδηγού. Ένα CanSat ταξινομείται ως πικοδορυφόρος, πράγμα που σημαίνει ότι το βάρος του περιορίζεται σε 1 κιλό, αλλά συνήθως το CanSats ζυγίζει περίπου 350 γραμμάρια και η δομή του βασίζεται σε ένα δοχείο σόδας, έναν κύλινδρο διαμέτρου 6, 1 εκ., Ύψους 11, 65 εκ. Αυτό το μοντέλο παρουσιάστηκε με σκοπό την απλοποίηση της διαδικασίας ανάπτυξης ενός δορυφόρου, προκειμένου να καταστεί δυνατή η πρόσβαση των πανεπιστημίων σε αυτές τις τεχνολογίες, επιτυγχάνοντας δημοτικότητα λόγω των διαγωνισμών που υιοθέτησαν αυτό το μοτίβο. Γενικά, το CanSats βασίζεται σε 4 δομές, δηλαδή το σύστημα ισχύος, το σύστημα ανίχνευσης, το σύστημα τηλεμετρίας και το κύριο σύστημα. Ας ρίξουμε λοιπόν μια πιο προσεκτική ματιά σε κάθε σύστημα: - Σύστημα ισχύος: αυτό το σύστημα είναι υπεύθυνο για την παροχή ηλεκτρικής ενέργειας στα άλλα, ανάλογα με τις ανάγκες του. Με άλλα λόγια, υποτίθεται ότι παρέχει στα συστήματα την απαραίτητη τάση και ρεύμα, τηρώντας τα όριά του. Επίσης, μπορεί να διαθέτει στοιχεία προστασίας, ώστε να εγγυάται την ασφάλεια και τη σωστή συμπεριφορά των άλλων συστημάτων. Συνήθως βασίζεται σε μπαταρία και κύκλωμα ρυθμιστή τάσης, αλλά μπορούν να προστεθούν πολλά άλλα χαρακτηριστικά, όπως τεχνικές διαχείρισης ενέργειας και διάφορα είδη προστασίας. - Σύστημα ανίχνευσης: αυτό το σύστημα αποτελείται από όλους τους αισθητήρες και τις συσκευές που είναι υπεύθυνες για τη συλλογή των απαιτούμενων δεδομένων. μπορεί να συνδεθεί με το κύριο σύστημα με διάφορους τρόπους, σειριακά πρωτόκολλα, παράλληλα πρωτόκολλα μεταξύ άλλων, γι 'αυτό είναι πραγματικά σημαντικό να κατακτήσουμε όλες αυτές τις τεχνικές, για να μπορέσουμε να καθορίσουμε την πιο βολική. Γενικά, το σειριακό πρωτόκολλο είναι αυτό που επιλέγεται συχνά, λόγω του μικρότερου αριθμού συνδέσεων και της ευελιξίας τους, μακράν τα πιο δημοφιλή είναι τα πρωτόκολλα SPI, I2C και UART. - Σύστημα τηλεμετρίας: αυτό το σύστημα είναι υπεύθυνο για τη δημιουργία της ασύρματης επικοινωνίας μεταξύ του CanSat και του σταθμού εδάφους, ο οποίος περιλαμβάνει το πρωτόκολλο ασύρματης επικοινωνίας και το υλικό. - Κύριο Σύστημα: αυτό το σύστημα είναι υπεύθυνο για τη διασύνδεση όλων των άλλων συστημάτων, με τρόπο που ελέγχει και συγχρονίζει την ακολουθία λειτουργίας τους ως οργανισμού.
Βήμα 1: Το κύριο σύστημα
Για πολλούς λόγους επιλέξαμε ένα μικροελεγκτή βασισμένο σε ARM® Cortex®-M4F, είναι ένα MCU χαμηλής ισχύος, το οποίο προσφέρει πολύ μεγαλύτερη επεξεργαστική ισχύ, καθώς και αρκετές δυνατότητες που δεν φαίνονται συνήθως στους μικροελεγκτές RISK, όπως οι λειτουργίες DSP. Αυτά τα χαρακτηριστικά είναι ενδιαφέροντα γιατί επιτρέπουν την αύξηση της πολυπλοκότητας των δυνατοτήτων των εφαρμογών CanSat, χωρίς την ανάγκη αλλαγής του μικροελεγκτή (φυσικά, τηρώντας και τα όριά του).
Όσο, το έργο είχε αρκετούς οικονομικούς περιορισμούς, ο μικροελεγκτής που επιλέχθηκε υποτίθεται ότι ήταν προσιτός, οπότε ακολουθώντας τις προδιαγραφές, καταλήξαμε στην επιλογή του ARM® Cortex®-M4F Based MCU TM4C123G LaunchPad, είναι ένα πληκτρολόγιο εκκίνησης που μόλις προσαρμόστηκε στο έργο μας Το Επίσης, η τεκμηρίωση (φύλλα δεδομένων και τεκμηρίωση χαρακτηριστικών που παρέχονται από τον κατασκευαστή) και το IDE του MCU ήταν πλεονεκτήματα που θα έπρεπε πραγματικά να ληφθούν υπόψη, εφόσον, βοήθησαν πολύ τη διαδικασία ανάπτυξης.
Σε αυτό το Cansat, αποφασίσαμε να το κρατήσουμε απλό και απλώς να το αναπτύξουμε χρησιμοποιώντας το startpad, αλλά φυσικά σε μελλοντικά έργα, αυτό δεν θα είναι επιλογή, δεδομένου ότι πολλές δυνατότητες που περιλαμβάνονται στο launpad δεν είναι απαραίτητες για το έργο μας, συν τη μορφή του περιόρισε πολύ το έργο της δομής του CanSat, αρκεί οι διαστάσεις ενός CanSat να είναι ελάχιστες.
Έτσι, αφού επιλέξαμε τον κατάλληλο «εγκέφαλο» για αυτό το σύστημα, το επόμενο βήμα ήταν η ανάπτυξη του λογισμικού του, επίσης για να το κάνουμε απλό, αποφασίσαμε να χρησιμοποιήσουμε απλώς ένα διαδοχικό πρόγραμμα, το οποίο κάνει την ακόλουθη ακολουθία σε συχνότητα 1Hz:
Αναγνώσεις αισθητήρων> αποθήκευση δεδομένων> μετάδοση δεδομένων
Το μέρος των αισθητήρων θα εξηγηθεί αργότερα στο σύστημα ανίχνευσης, καθώς και η μετάδοση δεδομένων θα εξηγηθεί στο σύστημα τηλεμετρίας. Τέλος, ήταν να μάθουμε πώς να προγραμματίζουμε τον μικροελεγκτή, στην περίπτωσή μας έπρεπε να μάθουμε τις ακόλουθες λειτουργίες του MCU, του GPIO, της μονάδας I2C, της μονάδας UART και της μονάδας SPI.
Τα GPIO, ή απλώς γενικής χρήσης είσοδος και έξοδος, είναι θύρες που μπορούν να χρησιμοποιηθούν για την εκτέλεση αρκετών λειτουργιών, αρκεί να έχουν ρυθμιστεί σωστά. Λαμβάνοντας υπόψη ότι δεν χρησιμοποιούμε βιβλιοθήκες C για τα GPIO, ούτε καν για τις υπόλοιπες ενότητες, έπρεπε να διαμορφώσουμε όλους τους απαραίτητους καταχωρητές. Για τους λόγους αυτούς, έχουμε γράψει έναν βασικό οδηγό που περιέχει παραδείγματα και περιγραφές που σχετίζονται με τους καταχωρητές των ενοτήτων που χρησιμοποιούμε, οι οποίοι είναι διαθέσιμοι παρακάτω.
Επίσης, προκειμένου να απλοποιηθεί και να οργανωθεί ο κώδικας, δημιουργήθηκαν αρκετές βιβλιοθήκες. Έτσι, οι βιβλιοθήκες δημιουργήθηκαν για τους ακόλουθους σκοπούς:
- Πρωτόκολλο SPI
- Πρωτόκολλο I2C
- πρωτόκολλο UART
- NRF24L01+ - αισθητήρας
Αυτές οι βιβλιοθήκες είναι επίσης διαθέσιμες παρακάτω, αλλά θυμηθείτε ότι χρησιμοποιήσαμε το Keil uvision 5 IDE, επομένως αυτές οι βιβλιοθήκες δεν πρόκειται να λειτουργήσουν για συνθέτη κώδικα. Τέλος, μετά τη δημιουργία όλων των βιβλιοθηκών και την εκμάθηση όλων των απαραίτητων υλικών, ο τελικός κώδικας συγκεντρώθηκε και, όπως μπορείτε να φανταστείτε, είναι επίσης διαθέσιμος παρακάτω.
Βήμα 2: Το σύστημα ανίχνευσης
Αυτό το σύστημα αποτελείται από όλους τους αισθητήρες και τις συσκευές που είναι υπεύθυνες για τη συλλογή πληροφοριών σχετικά με τις συνθήκες λειτουργίας του CanSat. Στην περίπτωσή μας επιλέξαμε τους ακόλουθους αισθητήρες:
- ψηφιακό επιταχυνσιόμετρο 3 αξόνων - MPU6050
- ψηφιακό γυροσκόπιο 3 αξόνων - MPU6050
- ψηφιακό μαγνητόμετρο 3 αξόνων - HMC5883L
- ψηφιακό βαρόμετρο - BMP280
- και ένα GPS - Tyco A1035D
Οι επιλογές βασίστηκαν κυρίως στην προσβασιμότητα, πράγμα που σήμαινε ότι εφόσον τα μηχανικά και ηλεκτρικά χαρακτηριστικά (πρωτόκολλο επικοινωνίας, παροχή ρεύματος κ.λπ.) ήταν συμβατά με το έργο μας, δεν επιβάλλονταν περαιτέρω παράμετροι στις επιλογές, επίσης επειδή για ορισμένους αισθητήρες η διαθεσιμότητα οι επιλογές ήταν περιορισμένες. Μετά την απόκτηση των αισθητήρων, ήρθε η ώρα να τους θέσουμε σε λειτουργία.
Έτσι, το πρώτο που διερευνήθηκε ήταν το ψηφιακό επιταχυνσιόμετρο και γυροσκόπιο 3 αξόνων, που ονομάζεται MPU6050 (μπορεί εύκολα να βρεθεί οπουδήποτε, εφόσον χρησιμοποιείται ευρέως σε έργα ARDUINO), η επικοινωνία του βασίζεται στο πρωτόκολλο I2C, ένα πρωτόκολλο στο οποίο κάθε υποτελής έχει μια διεύθυνση, επιτρέποντας σε πολλές συσκευές να συνδεθούν παράλληλα, δεδομένου ότι η διεύθυνση είναι 7-bit, περίπου 127 συσκευές μπορούν να συνδεθούν στον ίδιο σειριακό δίαυλο. Αυτό το πρωτόκολλο επικοινωνίας λειτουργεί σε δύο διαύλους, έναν δίαυλο δεδομένων και έναν δίαυλο ρολογιού, οπότε για να ανταλλάξει τις πληροφορίες, ο κύριος πρέπει να στείλει 8 κύκλους ρολογιού (παρεμπιπτόντως οι πληροφορίες πρέπει να χωρούν σε ένα byte, εφόσον αυτές οι επικοινωνίες βασίζονται στο μέγεθος byte) είτε σε λειτουργία λήψης είτε σε λειτουργία μετάδοσης. Η διεύθυνση του MPU6050 είναι 0b110100X και το X χρησιμοποιείται για να καλέσει (υποδεικνύει) μια λειτουργία ανάγνωσης ή εγγραφής (0 δείχνει μια λειτουργία εγγραφής και 1 δείχνει μια λειτουργία ανάγνωσης), οπότε όποτε θέλετε να διαβάσετε τον αισθητήρα χρησιμοποιήστε τη διεύθυνση του ως 0xD1 και όποτε θέλετε να γράψετε χρησιμοποιήστε τη διεύθυνσή του ως 0xD0.
Μετά την εξερεύνηση του πρωτοκόλλου I2C, το MPU6050 μελετήθηκε στην πραγματικότητα, με άλλα λόγια διαβάστηκε το φύλλο δεδομένων του, προκειμένου να ληφθούν οι απαραίτητες πληροφορίες για να λειτουργήσει, για αυτόν τον αισθητήρα χρειάστηκε να διαμορφωθούν μόνο τρεις καταχωρητές, η διαχείριση ισχύος 1 καταχωρητής - διεύθυνση 0x6B (για να διασφαλιστεί ότι ο αισθητήρας δεν βρίσκεται σε κατάσταση αδράνειας), ο καταχωρητής διαμόρφωσης γυροσκοπίου - διεύθυνση 0x1B (για τη διαμόρφωση του πλήρους εύρους κλίμακας για το γυροσκόπιο) και τέλος ο καταχωρητής διαμόρφωσης επιταχυνσιόμετρου - διεύθυνση 0x1C (σε για να διαμορφώσετε το πλήρες εύρος κλίμακας για το επιταχυνσιόμετρο). Υπάρχουν αρκετοί άλλοι καταχωρητές που μπορούν να διαμορφωθούν, επιτρέποντας τη βελτιστοποίηση της απόδοσης του αισθητήρα, αλλά για αυτό το έργο αυτές οι διαμορφώσεις είναι αρκετές.
Έτσι, αφού ρυθμίσετε σωστά τον αισθητήρα, μπορείτε πλέον να τον διαβάσετε. Οι επιθυμητές πληροφορίες πραγματοποιούνται μεταξύ του καταχωρητή 0x3B και του καταχωρητή 0x48, κάθε τιμή άξονα αποτελείται από δύο byte που κωδικοποιούνται με τον τρόπο συμπληρώματος των 2, πράγμα που σημαίνει ότι τα δεδομένα ανάγνωσης πρέπει να μετατραπούν για να έχουν νόημα (αυτά τα πράγματα θα είναι συζητήθηκε αργότερα).
Αφού τελειώσαμε με το MPU6050, ήρθε η ώρα να μελετήσουμε το ψηφιακό μαγνητόμετρο 3 αξόνων, που ονομάζεται HMC5883L (μπορεί επίσης να βρεθεί οπουδήποτε, εφόσον χρησιμοποιείται ευρέως σε έργα ARDUINO), και πάλι το πρωτόκολλο επικοινωνίας του είναι το σειριακό πρωτόκολλο I2C. Η διεύθυνσή του είναι 0b0011110X και το X χρησιμοποιείται για να καλέσει (υποδηλώνει) μια λειτουργία ανάγνωσης ή εγγραφής (0 δείχνει μια λειτουργία εγγραφής και 1 δείχνει μια λειτουργία ανάγνωσης), οπότε όποτε θέλετε να διαβάσετε τον αισθητήρα χρησιμοποιήστε τη διεύθυνση του ως 0x3D και όποτε θέλετε να γράψετε απλά χρησιμοποιήστε τη διεύθυνσή του ως 0x3C.
Σε αυτή την περίπτωση, για να γίνει η προετοιμασία του HMC5883L, απαιτούνταν η διαμόρφωση τριών καταχωρητών, ο καταχωρητής διαμόρφωσης Α - διεύθυνση 0x00 (προκειμένου να διαμορφωθεί ο ρυθμός εξόδου δεδομένων και ο τρόπος μέτρησης), ο καταχωρητής διαμόρφωσης Β - διεύθυνση 0x01 (για να διαμορφώσετε το κέρδος του αισθητήρα) και τελευταίο αλλά όχι λιγότερο τον καταχωρητή λειτουργίας - διεύθυνση 0x02 (προκειμένου να διαμορφώσετε τον τρόπο λειτουργίας της συσκευής).
Έτσι, μετά τη σωστή διαμόρφωση του HMC5883L, είναι πλέον δυνατό να το διαβάσετε. Οι επιθυμητές πληροφορίες πραγματοποιούνται μεταξύ του καταχωρητή 0x03 και του καταχωρητή 0x08, κάθε τιμή άξονα αποτελείται από δύο byte που κωδικοποιούνται με τον τρόπο συμπλήρωσης των 2, πράγμα που σημαίνει ότι τα δεδομένα ανάγνωσης πρέπει να μετατραπούν για να έχουν νόημα (αυτά τα πράγματα θα είναι συζητήθηκε αργότερα). Ειδικότερα, για αυτόν τον αισθητήρα υποτίθεται ότι διαβάζετε όλες τις πληροφορίες ταυτόχρονα, διαφορετικά μπορεί να μην λειτουργήσει όπως προτείνεται, εφόσον τα δεδομένα εξόδου γράφονται μόνο σε αυτούς τους καταχωρητές όταν γράφτηκαν όλοι οι καταχωρητές. οπότε φροντίστε να τα διαβάσετε όλα.
Τέλος, μελετήθηκε το ψηφιακό βαρόμετρο, ένας άλλος αισθητήρας πρωτοκόλλου I2C, που ονομάζεται επίσης BMP280 (μπορεί επίσης να βρεθεί οπουδήποτε, αρκεί να χρησιμοποιείται ευρέως σε έργα ARDUINO). Η διεύθυνσή του είναι b01110110X επίσης το X χρησιμοποιείται για να καλέσει (υποδεικνύει) μια λειτουργία ανάγνωσης ή εγγραφής (0 δείχνει μια λειτουργία εγγραφής και 1 δείχνει μια λειτουργία ανάγνωσης), οπότε όποτε θέλετε να διαβάσετε τον αισθητήρα χρησιμοποιήστε τη διεύθυνση του ως 0XEA και όποτε θέλετε να γράψετε απλά χρησιμοποιήστε τη διεύθυνσή του ως 0XEB. Αλλά στην περίπτωση αυτού του αισθητήρα, η διεύθυνση I2C μπορεί να αλλάξει αλλάζοντας το επίπεδο τάσης στον πείρο SDO, οπότε αν εφαρμόσετε το GND σε αυτόν τον πείρο, η διεύθυνση θα είναι b01110110X και εάν εφαρμόσετε VCC σε αυτόν τον πείρο, η διεύθυνση πηγαίνει για να είναι b01110111X, επίσης για να ενεργοποιήσετε τη μονάδα I2C σε αυτόν τον αισθητήρα πρέπει να εφαρμόσετε ένα επίπεδο VCC στον ακροδέκτη CSB του αισθητήρα, διαφορετικά δεν πρόκειται να λειτουργήσει σωστά.
Για το BMP280 έπρεπε να διαμορφωθούν μόνο δύο καταχωρητές για να λειτουργήσει, ο καταχωρητής ctrl_meas - διεύθυνση 0XF4 (για να ορίσετε τις επιλογές απόκτησης δεδομένων) και ο καταχωρητής ρυθμίσεων - διεύθυνση 0XF5 (για να ορίσετε το ποσοστό, το φίλτρο και τις επιλογές διασύνδεσης για τον αισθητήρα).
Αφού τελειώσουμε με τα πράγματα διαμόρφωσης, ήρθε η ώρα για αυτό που έχει πραγματικά σημασία, τα ίδια τα δεδομένα, σε αυτήν την περίπτωση οι επιθυμητές πληροφορίες λαμβάνουν χώρα μεταξύ των καταχωρητών 0XF7 και 0XFC. Τόσο η θερμοκρασία όσο και η τιμή της πίεσης αποτελούνται από τρία byte που κωδικοποιούνται με τον τρόπο συμπληρώματος του 2, πράγμα που σημαίνει ότι τα δεδομένα που διαβάζονται πρέπει να μετατραπούν για να έχουν νόημα (αυτά τα πράγματα θα συζητηθούν αργότερα). Επίσης για αυτόν τον αισθητήρα, για να έχετε μεγαλύτερη ακρίβεια, υπάρχουν αρκετοί συντελεστές διορθώσεων που μπορούν να χρησιμοποιηθούν κατά τη μετατροπή των δεδομένων, βρίσκονται μεταξύ των καταχωρητών 0X88 και 0XA1, ναι υπάρχουν 26 byte συντελεστών διορθώσεων, οπότε αν είναι ακριβής δεν είναι τόσο σημαντικό, απλά ξεχάστε τα, αλλιώς δεν υπάρχει άλλος τρόπος.
Και τέλος το GPS - Tyco A1035D, αυτό βασίζεται στο σειριακό πρωτόκολλο UART, συγκεκριμένα με ρυθμό 4800 kbps, χωρίς bits ισοτιμίας, 8 bits δεδομένων και 1 bit stop. Το UART, ή καθολικός ασύγχρονος δέκτης/πομπός, είναι ένα σειριακό πρωτόκολλο στο οποίο ο συγχρονισμός των πληροφοριών γίνεται μέσω λογισμικού, γι 'αυτό είναι ένα ασύγχρονο πρωτόκολλο, επίσης λόγω αυτού του χαρακτηριστικού, ο ρυθμός μετάδοσης και λήψης των πληροφοριών είναι πολύ μικρότερος. Συγκεκριμένα για αυτό το πρωτόκολλο, τα πακέτα πρέπει να ξεκινούν με ένα bit εκκίνησης, αλλά το bit διακοπής είναι προαιρετικό και το μέγεθος των πακέτων είναι 8 bit.
Στην περίπτωση του GPS - Tyco A1035D, απαιτήθηκαν δύο διαμορφώσεις, που ήταν το setDGPSport (εντολή 102) και το Query/RateControl (εντολή 103), όλες αυτές οι πληροφορίες, καθώς και περισσότερες επιλογές είναι διαθέσιμες στο εγχειρίδιο αναφοράς NMEA, το πρωτόκολλο χρησιμοποιείται στις περισσότερες μονάδες GPS. Η εντολή 102 χρησιμοποιείται για τον καθορισμό του ρυθμού baud, του όγκου των bit δεδομένων και την ύπαρξη ή μη bits ισοτιμίας και bit διακοπής. Η εντολή 103 χρησιμοποιείται για τον έλεγχο της εξόδου τυπικών μηνυμάτων NMEA GGA, GLL, GSA, GSV, RMC και VTG, περιγράφονται με λεπτομέρειες στο εγχειρίδιο αναφοράς, αλλά στην περίπτωσή μας το επιλεγμένο ήταν το GGA που σημαίνει Global Σταθερά δεδομένα εντοπισμού συστήματος.
Μόλις διαμορφωθεί σωστά το GPS - TycoA1035D, τώρα είναι απαραίτητο μόνο να διαβάσετε τη σειριακή θύρα και να φιλτράρετε τη συμβολοσειρά που λαμβάνεται σύμφωνα με τις επιλεγμένες παραμέτρους, ώστε να επιτρέψετε την επεξεργασία των πληροφοριών.
Αφού μάθατε όλες τις απαραίτητες πληροφορίες για όλους τους αισθητήρες, χρειάστηκε μόνο κάποια επιπλέον προσπάθεια για να τα συνδυάσετε όλα στο ίδιο πρόγραμμα, χρησιμοποιώντας επίσης τις βιβλιοθήκες σειριακής επικοινωνίας.
Βήμα 3: Το σύστημα τηλεμετρίας
Αυτό το σύστημα είναι υπεύθυνο για τη δημιουργία της επικοινωνίας μεταξύ του εδάφους και του CanSat, εκτός από τις παραμέτρους του έργου, περιορίστηκε και με άλλους τρόπους, εφόσον η μετάδοση RF επιτρέπεται μόνο σε ορισμένες ζώνες συχνοτήτων, οι οποίες δεν είναι απασχολημένες λόγω άλλες υπηρεσίες RF, όπως υπηρεσίες κινητής τηλεφωνίας. Αυτοί οι περιορισμοί είναι διαφορετικοί και μπορεί να αλλάξουν από χώρα σε χώρα, επομένως είναι σημαντικό να ελέγχετε πάντα τις επιτρεπόμενες ζώνες συχνοτήτων για κοινή χρήση.
Υπάρχουν πολλές επιλογές ραδιοφώνων που διατίθενται στην αγορά σε προσιτές τιμές, όλα αυτά τα συστήματα προσφέρουν διαφορετικούς τρόπους διαμόρφωσης σε διαφορετικές συχνότητες, για αυτό το σύστημα η επιλογή μας αποτελείται από έναν πομποδέκτη RF 2,4GHz, τον NRF24L01+, λόγω του γεγονότος ότι είχε ήδη ένα καλά εδραιωμένο πρωτόκολλο επικοινωνίας, αρκεί τα συστήματα επαλήθευσης όπως τα συστήματα αυτόματης αναγνώρισης και αυτόματης επανεκπομπής. Επιπλέον, ο ρυθμός μετάδοσης θα μπορούσε να φτάσει ταχύτητες έως 2Mbps σε λογική κατανάλωση ενέργειας.
Έτσι, πριν εργαστείτε σε αυτόν τον πομποδέκτη, ας γνωρίσουμε λίγο περισσότερα για το NRF24L01+. Όπως αναφέρθηκε προηγουμένως είναι ένα ραδιόφωνο βασισμένο στα 2,4 GHz, το οποίο μπορεί να διαμορφωθεί ως δέκτης ή πομπός. Προκειμένου να δημιουργηθεί η επικοινωνία, κάθε πομποδέκτης έχει μια διεύθυνση, η οποία μπορεί να ρυθμιστεί από τον χρήστη, η διεύθυνση μπορεί να είναι 24 έως 40 bit, ανάλογα με τις ανάγκες σας. Οι συναλλαγές δεδομένων μπορούν να πραγματοποιηθούν με έναν ή συνεχή τρόπο, το μέγεθος των δεδομένων περιορίζεται σε 1 byte και κάθε συναλλαγή μπορεί ή όχι να δημιουργήσει μια συνθήκη αναγνώρισης σύμφωνα με τις διαμορφώσεις του πομποδέκτη.
Άλλες διάφορες διαμορφώσεις είναι επίσης δυνατές, όπως το κέρδος προς την έξοδο του σήματος RF, η ύπαρξη ή όχι μιας ρουτίνας αυτόματης επανεκπομπής (αν ναι με την καθυστέρηση, μπορεί να επιλεγεί το ποσό των δοκιμών μεταξύ άλλων χαρακτηριστικών) και πολλές άλλες λειτουργίες που δεν είναι απαραίτητα χρήσιμες για αυτό το έργο, αλλά ούτως ή άλλως είναι διαθέσιμες στο φύλλο δεδομένων του στοιχείου, σε περίπτωση που τους ενδιαφέρει.
Το NRF24L01+ «μιλάει» τη γλώσσα SPI όταν πρόκειται για σειριακή επικοινωνία, οπότε όποτε θέλετε να διαβάσετε ή να γράψετε αυτόν τον πομποδέκτη, προχωρήστε και χρησιμοποιήστε το πρωτόκολλο SPI γι 'αυτό. Το SPI είναι ένα σειριακό πρωτόκολλο όπως αναφέρθηκε προηγουμένως, στο οποίο η επιλογή των υποτελών γίνεται μέσω ενός πείρου CHIPSELECT (CS), το οποίο μαζί με το πλήρες διπλό (τόσο ο κύριος όσο και ο υποτελής μπορούν να μεταδώσουν και να λάβουν παράλληλα) χαρακτηριστικά αυτού του πρωτοκόλλου επιτρέπει πολύ υψηλότερες ταχύτητες συναλλαγής δεδομένων.
Το φύλλο δεδομένων του NRF24L01+ παρέχει ένα σύνολο εντολών για ανάγνωση ή εγγραφή αυτού του στοιχείου, υπάρχουν διαφορετικές εντολές πρόσβασης στους εσωτερικούς καταχωρητές, το ωφέλιμο φορτίο RX και TX μεταξύ άλλων λειτουργιών, οπότε ανάλογα με την επιθυμητή λειτουργία, μπορεί να χρειαστεί μια συγκεκριμένη εντολή εκτελέστε το Γι 'αυτό θα ήταν ενδιαφέρον να ρίξουμε μια ματιά στο φύλλο δεδομένων, στο οποίο υπάρχει μια λίστα που περιέχει και εξηγεί όλες τις πιθανές ενέργειες στον πομποδέκτη (δεν πρόκειται να τις αναφέρουμε εδώ, γιατί αυτό δεν είναι το κύριο σημείο αυτών των οδηγιών).
Εκτός από τον πομποδέκτη, ένα άλλο σημαντικό συστατικό αυτού του συστήματος είναι το πρωτόκολλο μέσω του οποίου αποστέλλονται και λαμβάνονται όλα τα επιθυμητά δεδομένα, εφόσον το σύστημα υποτίθεται ότι λειτουργεί με πολλά byte πληροφοριών ταυτόχρονα, είναι σημαντικό να γνωρίζουμε την έννοια κάθε byte, για αυτό λειτουργεί το πρωτόκολλο, επιτρέπει στο σύστημα να αναγνωρίζει οργανωμένα όλα τα δεδομένα που λαμβάνονται και μεταδίδονται.
Προκειμένου να παραμείνουν τα πράγματα απλά, το χρησιμοποιούμενο πρωτόκολλο (για τον πομπό) αποτελείτο από μια κεφαλίδα που αποτελείται από 3 byte ακολουθούμενη από τα δεδομένα του αισθητήρα, εφόσον όλα τα δεδομένα των αισθητήρων αποτελούνταν από δύο byte, σε κάθε δεδομένα αισθητήρα δόθηκε ένας αριθμός αναγνώρισης ξεκινώντας από 0x01 και μετά σε μισοφέγγαρο, οπότε κάθε δύο byte υπάρχει ένα byte αναγνώρισης, με αυτόν τον τρόπο η ακολουθία κεφαλίδας δεν θα μπορούσε να επαναληφθεί τυχαία σύμφωνα με τις ενδείξεις του αισθητήρα. Ο δέκτης κατέληξε να είναι τόσο απλός όσο ο πομπός, το πρωτόκολλο έπρεπε απλώς να αναγνωρίσει την κεφαλίδα που έστειλε ο πομπός και αφού απλώς αποθηκεύσει τα ληφθέντα byte, σε αυτή την περίπτωση αποφασίσαμε να χρησιμοποιήσουμε ένα διάνυσμα για την αποθήκευσή τους.
Έτσι, αφού ολοκληρώσετε όλες τις απαιτούμενες γνώσεις σχετικά με τον πομποδέκτη και καθορίσετε το πρωτόκολλο επικοινωνίας, ήρθε η ώρα να τα συνδυάσετε όλα στο ίδιο κομμάτι κώδικα και, τέλος, να ολοκληρώσετε το υλικολογισμικό CanSat.
Βήμα 4: Το σύστημα ισχύος
Αυτό το σύστημα θεωρείται υπεύθυνο για την παροχή στα άλλα συστήματα της ενέργειας που χρειάζονται για να λειτουργήσουν σωστά, σε αυτή την περίπτωση αποφασίσαμε να χρησιμοποιήσουμε απλώς μια μπαταρία και έναν ρυθμιστή τάσης. Έτσι, για το μέγεθος της μπαταρίας, αναλύθηκαν ορισμένες παράμετροι λειτουργίας του CanSat, αυτές οι παράμετροι θα βοηθήσουν στον ορισμό του μοντέλου και την απαραίτητη ισχύ για την τροφοδοσία ολόκληρου του συστήματος.
Λαμβάνοντας υπόψη ότι το CanSat θα πρέπει να μπορεί να διαρκέσει αρκετές ώρες ενεργοποιημένο, το πιο κατάλληλο πράγμα ήταν να ληφθούν υπόψη οι πιο ακραίες καταστάσεις κατανάλωσης ενέργειας, στις οποίες κάθε μονάδα και σύστημα προσαρτημένο στο CanSat θα καταναλώνει το υψηλότερο δυνατό ρεύμα. Ωστόσο, είναι επίσης σημαντικό να είστε λογικοί σε αυτό το σημείο να μην υπερβαίνετε το μέγεθος της μπαταρίας, κάτι που επίσης δεν έχει ενδιαφέρον λόγω των περιορισμών βάρους του CanSat.
Μετά από διαβούλευση με όλα τα φύλλα δεδομένων των εξαρτημάτων όλων των συστημάτων, το συνολικό ρεύμα που καταναλώθηκε από το σύστημα ήταν περίπου 160mAh περίπου, λαμβάνοντας υπόψη την αυτονομία των 10 ωρών, μια μπαταρία 1600mAh ήταν αρκετή για να εγγυηθεί το σύστημα τις κατάλληλες συνθήκες εργασίας.
Αφού γνωρίσετε την απαραίτητη φόρτιση της μπαταρίας, υπάρχουν άλλες πτυχές που πρέπει να λάβετε υπόψη παρά την αυτονομία, όπως το μέγεθος, το βάρος, η θερμοκρασία λειτουργίας (εφόσον το CanSat διατηρείται μέσα σε έναν πύραυλο), τις εντάσεις και τις δυνάμεις στην οποία υποβάλλεται το ίδιο, μεταξύ άλλων.
Βήμα 5: Η δομή
Η δομή είναι πραγματικά σημαντική για την ασφάλεια του CanSat, αν και παραμελήθηκε λίγο σε αυτό το έργο (στην πραγματικότητα δεν υπήρχε μεγάλο ενδιαφέρον για την ανάπτυξη του μηχανικού τμήματος του CanSat, λόγω του γεγονότος ότι όλα τα μέλη του μαθήματος σχετιζόταν με τα ηλεκτρονικά). Όσο το έργο βασίζονταν σε ένα υπάρχον μοτίβο, το μοτίβο CanSat, χωρίς να σκέφτεται πολύ πώς θα ήταν απαραίτητο, οπότε θα πρέπει να διαμορφωθεί σε κυλινδρική μορφή, με διάμετρο περίπου 6, 1 cm και περίπου 11, Ύψος 65 εκατοστών (τα ίδια μέτρα ενός δοχείου σόδας).
Αφού τελειώσαμε με την εξωτερική δομή, η προσοχή εστιάστηκε στο σύστημα στερέωσης, υπεύθυνο για τη συγκράτηση όλων των σανίδων μέσα στην κυλινδρική δομή, επιτρέποντας επίσης την απορρόφηση των επιταχύνσεων στις οποίες θα υποβληθεί το CanSat, μετά από κάποια συζήτηση σχετικά με αυτό, αποφασίστηκε να προσαρτηθούν και οι δύο κατασκευές με χύτευση αφρού υψηλής πυκνότητας, στα επιθυμητά σχήματα.
Η εξωτερική δομή κατασκευάστηκε χρησιμοποιώντας σωλήνες PVC, με την επιθυμητή διάμετρο, για να κλείσει η δομή χρησιμοποιήθηκαν κάποια καλύμματα σωλήνων PVC
Βήμα 6: Συμπεράσματα και μελλοντικές σκέψεις
Το CanSat πρέπει ακόμα να δοκιμαστεί σε δράση, στην πραγματικότητα υποβάλλουμε αίτηση για διαγωνισμό πυραύλων (που πρόκειται να συμβεί τον Δεκέμβριο), επίσης αφού περάσουμε από όλο το κτίριο (κάπως, πρέπει ακόμα να ολοκληρώσουμε κάποια πράγματα) και ανάπτυξη διαδικασία, μερικές προοπτικές και σημειώσεις που πιστεύαμε ότι θα ήταν ενδιαφέρον να μοιραστούμε με όλους εσάς παρατηρήθηκαν, κυρίως για αγώνες, συμβουλές και ακόμη και καλές εμπειρίες, οπότε εδώ πάει:
- Η αρχή του έργου, ήταν η πιο γόνιμη περίοδος ανάπτυξης ολόκληρου του έργου, δυστυχώς η ομάδα δεν ενδιαφέρθηκε για το έργο μέχρι την προθεσμία της, ίσως λόγω έλλειψης άμεσων αποτελεσμάτων ή ίσως απλώς έλλειψης επικοινωνίας, ούτως ή άλλως πολλά καλά πράγματα βγήκαν από το έργο
- Χρειάστηκε πολλή προσπάθεια για να λειτουργήσει ο πομποδέκτης, καθώς όλες οι βιβλιοθήκες αναπτύχθηκαν από το μηδέν, επίσης επειδή χρειάζονται δύο διαφορετικά προγράμματα και ρυθμίσεις για τη δοκιμή τέτοιων ειδών
- Στην περίπτωσή μας δεν ήταν η καλύτερη ιδέα να δουλέψουμε σε μικροελεγκτές βάσει διαμορφώσεων καταχωρητών, δεν ήταν σε θέση όλα τα μέλη να συμβαδίσουν με την υπόλοιπη ομάδα, γεγονός που οδήγησε σε ορισμένα προβλήματα όπως η διαίρεση εργασιών. Υπάρχουν τόνοι αξιοπρεπών βιβλιοθηκών C για τον μικροελεγκτή που χρησιμοποιούσαμε, οπότε θα ήταν πολύ καλύτερη ιδέα να χρησιμοποιήσουμε αυτούς τους πόρους, υπάρχει επίσης ένα IDE που ονομάζεται Code Composer, το οποίο προσφέρει επίσης τόνους πόρων για αυτούς τους μικροελεγκτές
- Το CanSat χρειάζεται ακόμα πολλές βελτιώσεις, αυτή η εμπειρία βασίστηκε σε βασικές τεχνικές και δεξιότητες, ενώ πολλά θέματα δεν ελήφθησαν υπόψη, οπότε ελπίζουμε στο μέλλον μια κορυφαία έκδοση αυτού του CanSat να γίνει πραγματικότητα με περισσότερη προσπάθεια και σκληρή δουλειά Το
Συνιστάται:
Εισαγωγή στο Visuino - Visuino για αρχάριους .: 6 βήματα
Εισαγωγή στο Visuino | Visuino for Beginners .: Σε αυτό το άρθρο θέλω να μιλήσω για το Visuino, το οποίο είναι ένα άλλο γραφικό λογισμικό προγραμματισμού για Arduino και παρόμοιους μικροελεγκτές. Εάν είστε ηλεκτρονικός χομπίστας που θέλει να μπει στον κόσμο του Arduino, αλλά δεν έχει προηγούμενη γνώση προγραμματισμού
Flyback Transformer Driver για αρχάριους: 11 βήματα (με εικόνες)
Πρόγραμμα οδήγησης μετασχηματιστή Flyback για αρχάριους: Το σχήμα έχει ενημερωθεί με ένα καλύτερο τρανζίστορ και περιλαμβάνει βασική προστασία τρανζίστορ με τη μορφή πυκνωτή και διόδου. Το " πάει παραπέρα " Η σελίδα περιλαμβάνει τώρα έναν τρόπο μέτρησης αυτών των περίφημων αιχμών τάσης με ένα βολτόμετρο
Πώς να εισαγάγετε έργα Java σε έκλειψη για αρχάριους: 11 βήματα
Πώς να εισαγάγετε έργα Java στο Eclipse για αρχάριους: Εισαγωγή Οι ακόλουθες οδηγίες παρέχουν βήμα προς βήμα οδηγίες για την εγκατάσταση έργων Java στο λογισμικό υπολογιστή Eclipse. Τα έργα Java περιέχουν όλους τους κώδικες, τις διεπαφές και τα αρχεία που είναι απαραίτητα για τη δημιουργία ενός προγράμματος Java. Αυτά τα έργα είναι
Πώς να φτιάξετε ένα DJ Setup για αρχάριους - στυλ βινυλίου!: 7 βήματα
Πώς να φτιάξετε ένα DJ Setup για αρχάριους - Στυλ βινυλίου!: Σε αυτό το Instructable, θα σας δείξω πώς να φτιάξετε μια ρύθμιση DJ με το κλασικό στυλ πικάπ χρησιμοποιώντας βινύλιο. Είτε είστε χόμπι είτε θέλετε να γίνετε επαγγελματίας, και πιθανώς περιοδεύετε σε όλο τον κόσμο κερδίζοντας εισόδημα, αυτά τα βήματα θα σας
Python για τους όχι και τόσο αρχάριους αρχάριους: 7 βήματα
Python για τους όχι και τόσο αρχάριους αρχάριους: Γεια, την τελευταία φορά, αν προσέξατε, αγγίξαμε τα βασικά του python - print, ενώ και για βρόχους, εισαγωγή & έξοδος, εάν, και εκκίνηση στο easygui. επίσης μια δωρεάν διανομή easygui και pycal-my module. αυτό το σεμινάριο θα καλύψει: περισσότερα