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

Rocket Telemetry/Position Tracker: 7 Βήματα
Rocket Telemetry/Position Tracker: 7 Βήματα

Βίντεο: Rocket Telemetry/Position Tracker: 7 Βήματα

Βίντεο: Rocket Telemetry/Position Tracker: 7 Βήματα
Βίντεο: SpaceX's Starship and Super Heavy both unleashed the fury! How are they now? 2024, Ιούλιος
Anonim
Πυραυλική τηλεμετρία/εντοπιστής θέσης
Πυραυλική τηλεμετρία/εντοπιστής θέσης

Αυτό το έργο προορίζεται για την καταγραφή δεδομένων πτήσης από μονάδα αισθητήρα 9 DOF σε κάρτα SD και ταυτόχρονη μετάδοση της θέσης του GPS μέσω κυψελοειδών δικτύων σε διακομιστή. Αυτό το σύστημα επιτρέπει τον εντοπισμό του πυραύλου εάν η περιοχή προσγείωσης του συστήματος είναι πέρα από το LOS.

Βήμα 1: Λίστα μερών

Λίστα μερών
Λίστα μερών
Λίστα μερών
Λίστα μερών

Σύστημα τηλεμετρίας:

1x Μικροελεγκτής ATmega328 (Arduino UNO, Nano)

1x Micro SD Breakout -

1x κάρτα Micro SD - (το μέγεθος δεν έχει σημασία FAT 16/32 μορφοποιημένο) - Amazon Link

1x Gy -86 IMU - Amazon Link

Παρακολούθηση θέσης:

1x Μικροελεγκτής ATmega328 (Arduino UNO, Nano) (κάθε σύστημα χρειάζεται το δικό του micro)

1x Sim800L GSM GPRS Module - Amazon Link

1x κάρτα SIM (πρέπει να έχει πρόγραμμα δεδομένων) - https://ting.com/ (χρεώνει μόνο για αυτό που χρησιμοποιείτε)

1x NEO 6M GPS Module - Amazon LInk

Γενικά μέρη:

Μπαταρία 1x 3.7v λιπό

Μετατροπέας επιτάχυνσης 1x 3.7-5v (αν δεν κατασκευάσετε το PCB)

1x Raspberry pi, ή οποιοδήποτε υπολογιστή που μπορεί να φιλοξενήσει έναν διακομιστή php

-Πρόσβαση σε τρισδιάστατο εκτυπωτή

-BOM για pcb παρατίθεται στο υπολογιστικό φύλλο

-Οι Gerber βρίσκονται στο github repo -https://github.com/karagenit/maps-gps

Βήμα 2: Υποσύστημα 1: Παρακολούθηση θέσης

Δοκιμή:

Μόλις έχετε τα μέρη του συστήματος (NEO-6M GPS, Sim800L) στο χέρι, πρέπει να δοκιμάσετε τη λειτουργικότητα των συστημάτων ανεξάρτητα, ώστε να μην έχετε πονοκέφαλο προσπαθώντας να καταλάβετε τι δεν λειτουργεί όταν ενσωματώνετε τα συστήματα.

Δοκιμή GPS:

Για να δοκιμάσετε τον δέκτη GPS, μπορείτε είτε να χρησιμοποιήσετε το λογισμικό που παρέχεται από το Ublox (U-Center Software)

ή το δοκιμαστικό σκίτσο που συνδέεται στο github repo (GPS Test)

1. Για δοκιμή με λογισμικό U-center, απλώς συνδέστε τον δέκτη GPS μέσω USB και επιλέξτε τη θύρα com στο κέντρο U, το σύστημα θα ξεκινήσει αυτόματα την παρακολούθηση της τοποθεσίας σας μετά από αυτό.

2. Για δοκιμή με μικροελεγκτή, ανεβάστε το σκίτσο ελέγχου GPS σε ένα arduino μέσω του IDE. Στη συνέχεια, συνδέστε 5V και GND στις επισημασμένες ακίδες του δέκτη στο arduino και τον ακροδέκτη GPS RX στον ψηφιακό 3 και τον ακροδέκτη TX στον ψηφιακό 4 στο arduino. Τέλος, ανοίξτε τη σειριακή οθόνη στο arduino IDE και ρυθμίστε τον ρυθμό baud στο 9600 και βεβαιωθείτε ότι οι συντεταγμένες που λαμβάνονται είναι σωστές.

Σημείωση: Ένα οπτικό αναγνωριστικό κλειδώματος δορυφόρου στη μονάδα NEO-6M είναι ότι η κόκκινη ένδειξη led αναβοσβήνει κάθε λίγα δευτερόλεπτα για να υποδείξει μια σύνδεση.

Δοκιμή SIM800L:

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

Ο στόχος για την ενότητα Sim είναι να στείλει ένα αίτημα HTTP GET στον διακομιστή με τη θέση που λαμβάνεται από τον δέκτη GPS.

1. Για να δοκιμάσετε τη μονάδα κυψέλης, εισαγάγετε την κάρτα simcard στη μονάδα με το λυγισμένο άκρο στραμμένο προς τα έξω

2. Συνδέστε τη μονάδα sim στο GND και σε μια πηγή 3.7-4.2v, μην χρησιμοποιείτε 5v !!!! η μονάδα δεν μπορεί να λειτουργήσει στα 5v. Συνδέστε το Sim module RX στο Analog 2 και το TX στο Analog 3 στο Arduino

3. Μεταφορτώστε το σειριακό σκίτσο μετάδοσης από το github για να μπορέσετε να στείλετε εντολές στη μονάδα κελιού.

4. ακολουθήστε αυτό το σεμινάριο ή κατεβάστε τη δοκιμή του AT Command Tester για να δοκιμάσετε τη λειτουργικότητα HTTP GET

Εκτέλεση:

Αφού επαληθεύσετε ότι και τα δύο συστήματα λειτουργούν ανεξάρτητα, μπορείτε να προχωρήσετε στη μεταφόρτωση του πλήρους σκίτσου στο github του μικροελεγκτή. μπορείτε να ανοίξετε τη σειριακή οθόνη στο 9600 baud για να επαληθεύσετε ότι το σύστημα στέλνει δεδομένα στον διακομιστή ιστού.

*μην ξεχάσετε να αλλάξετε το ip και τη θύρα του διακομιστή στη δική σας και φροντίστε να βρείτε το APN για τον πάροχο κυττάρων που χρησιμοποιείτε.

Μεταβείτε στο επόμενο βήμα όπου ρυθμίζουμε τον διακομιστή

Βήμα 3: Εγκατάσταση διακομιστή

Διαμόρφωση διακομιστή
Διαμόρφωση διακομιστή

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

Ακολουθήστε αυτό το σεμινάριο για τη ρύθμιση του lightphp σε ένα RPI και, στη συνέχεια, αντιγράψτε τα αρχεία php από το github στο φάκελο/var/www/html του RPI σας. Μετά απλώς χρησιμοποιήστε την εντολή

sudo service lighttpd force-reload

για επαναφόρτωση του διακομιστή.

Βεβαιωθείτε ότι έχετε προωθήσει τις θύρες που σχετίζονται με τον διακομιστή στο δρομολογητή σας, ώστε να έχετε πρόσβαση στα δεδομένα από απόσταση. Στο rpi θα πρέπει να είναι θύρα 80 και η εξωτερική θύρα μπορεί να είναι ένας αυθαίρετος αριθμός.

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

Βήμα 4: Υποσύστημα 2: Καταγραφή τηλεμετρίας

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

Χαρακτηριστικά: Αυτό το πρόγραμμα βασίζεται σε ένα άλλο παράδειγμα που βρήκα online εδώ.

  • Το πρόγραμμα διαβάζει εγγενώς το σχετικό υψόμετρο (ένδειξη υψομέτρου μηδενίζεται κατά την εκκίνηση), τη θερμοκρασία, την πίεση, την επιτάχυνση στην κατεύθυνση Χ (θα πρέπει να αλλάξετε την κατεύθυνση της ανάγνωσης επιτάχυνσης βάσει του φυσικού προσανατολισμού του αισθητήρα) και μια χρονική σήμανση (σε χιλιοστά εκατομμυρίου).
  • Για να αποτρέψετε την καταγραφή δεδομένων ενώ κάθεστε στο πληκτρολόγιο εκτόξευσης και σπαταλάτε χώρο αποθήκευσης, το σύστημα θα αρχίσει να γράφει δεδομένα μόλις εντοπίσει μια αλλαγή υψόμετρου (διαμορφώσιμο στο πρόγραμμα) και θα σταματήσει να γράφει δεδομένα όταν εντοπίσει ότι ο πύραυλος έχει επιστρέψει στο αρχικό του υψόμετρο ή μετά την παρέλευση χρόνου πτήσης 5 λεπτών.
  • Το σύστημα θα υποδείξει ότι είναι ενεργοποιημένο και γράφει δεδομένα μέσω μιας ενδεικτικής λυχνίας LED.

Δοκιμή:

Για να δοκιμάσετε το σύστημα, συνδέστε πρώτα την έξοδο της κάρτας SD

Κάρτα SD Arduino

Καρφίτσα 4 ---------------- CS

Καρφίτσα 11 -------------- DI

Καρφίτσα 13 -------------- SCK

Καρφίτσα 12 -------------- ΚΑΝΕ

Τώρα συνδέστε το GY-86 στο σύστημα μέσω I^2C

Arduino GY-86

Καρφίτσα A4 -------------- SDA

Καρφίτσα A5 -------------- SCL

Καρφίτσα 2 ---------------- INTA

Στην κάρτα SD δημιουργήστε ένα αρχείο στον κύριο κατάλογο που ονομάζεται datalog.txt εδώ είναι που το σύστημα θα γράψει δεδομένα.

Πριν από τη μεταφόρτωση του σκίτσου Data_Logger.ino στον μικροελεγκτή, αλλάξτε την τιμή του ALT_THRESHOLD σε 0, οπότε το σύστημα θα αγνοήσει το υψόμετρο για έλεγχο. Μετά τη μεταφόρτωση, ανοίξτε τη σειριακή οθόνη στα 9600 baud για να δείτε την έξοδο του συστήματος. Βεβαιωθείτε ότι το σύστημα είναι σε θέση να συνδεθεί με τον αισθητήρα και ότι τα δεδομένα γράφονται στην κάρτα SD. Αποσυνδέστε το σύστημα και τοποθετήστε την κάρτα SD στον υπολογιστή σας για να επαληθεύσετε ότι τα δεδομένα έχουν γραφτεί στην κάρτα.

Βήμα 5: Ενσωμάτωση συστήματος

Ολοκληρωση συστήματος
Ολοκληρωση συστήματος
Ολοκληρωση συστήματος
Ολοκληρωση συστήματος

Αφού επαληθεύσετε ότι κάθε τμήμα του συστήματος λειτουργεί στην ίδια διαμόρφωση που χρησιμοποιήθηκε στο κύριο PCB, ήρθε η ώρα να τα συγκεντρώσει όλα και να ετοιμαστείτε για εκτόξευση! Έχω συμπεριλάβει τα αρχεία Gerbers και EAGLE για το PCB και σχηματικά στο github. θα χρειαστεί να ανεβάσετε τα ζέρμπερ σε έναν κατασκευαστή όπως το OSH park ή το JLC για να τα παράγετε. Αυτές οι σανίδες είναι δύο στρωμάτων και είναι αρκετά μικρές για να χωρέσουν στις περισσότερες κατασκευαστικές κατηγορίες 10cmx10cm για φθηνές σανίδες.

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

Προγραμματισμός:

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

  • Για να ανεβάσετε το πρόγραμμα, ακολουθήστε αυτό το σεμινάριο σχετικά με τη χρήση ενός πίνακα Arduino ως προγραμματιστή. Ανεβάστε το SimGpsTransmitter.ino στη θύρα ICSP_GPS και το Data_Logger.ino στη θύρα ICSP_DL (Η θύρα ICSP στο PCB είναι η ίδια διάταξη με αυτήν που υπάρχει στους τυπικούς πίνακες Arduino UNO).
  • Μόλις φορτωθούν όλα τα προγράμματα, μπορείτε να τροφοδοτήσετε τη συσκευή από την είσοδο της μπαταρίας με 3,7-4,2V και να χρησιμοποιήσετε τις 4 ενδεικτικές λυχνίες για να επαληθεύσετε ότι το σύστημα λειτουργεί.

    • Οι δύο πρώτες λυχνίες 5V_Ok και VBATT_OK υποδεικνύουν ότι η μπαταρία και οι ράγες 5v τροφοδοτούνται.
    • Η τρίτη λυχνία DL_OK αναβοσβήνει κάθε 1 δευτερόλεπτο για να δείξει ότι η καταγραφή τηλεμετρίας είναι ενεργή.
    • Η τελευταία φωτεινή ένδειξη SIM_Transmit θα ενεργοποιηθεί μόλις συνδεθούν οι μονάδες κινητής τηλεφωνίας και GPS και τα δεδομένα αποστέλλονται στον διακομιστή.

Βήμα 6: Περίβλημα

Περίφραξη
Περίφραξη

Ο πύραυλος που σχεδιάζω αυτό το έργο έχει εσωτερική διάμετρο 29mm, για να προστατεύσει τα ηλεκτρονικά και να επιτρέψει στο συγκρότημα να χωρέσει στο κυλινδρικό σώμα του πύραυλου, έφτιαξα μια απλή τρισδιάστατη εκτυπωμένη θήκη δύο τμημάτων που είναι βιδωμένη μεταξύ τους και έχει θύρες προβολής για τις ενδεικτικές λυχνίες. Τα αρχεία STL για εκτύπωση και πρωτότυπα αρχεία.ipt βρίσκονται στο repo του github. Δεν το μοντελοποίησα καθώς δεν ήμουν σίγουρος για την μπαταρία που θα χρησιμοποιούσα εκείνη τη στιγμή, αλλά δημιούργησα χειροκίνητα μια εσοχή για μια μπαταρία 120 mAh για να κάθεται με το κάτω μέρος της θήκης. Αυτή η μπαταρία εκτιμάται ότι δίνει 45 λεπτά maximum μέγιστο χρόνο λειτουργίας για το σύστημα σε κατανάλωση power 200mA (Αυτό εξαρτάται από τη χρήση του επεξεργαστή και την κατανάλωση ισχύος για τη μετάδοση δεδομένων, το SIM800L αναφέρεται ότι ανέρχεται κατά 2Α σε ριπές κατά την επικοινωνία).

Βήμα 7: Συμπέρασμα

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

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

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

Συνιστάται: