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

Raspberry Pi Planet Finder: 14 βήματα (με εικόνες)
Raspberry Pi Planet Finder: 14 βήματα (με εικόνες)

Βίντεο: Raspberry Pi Planet Finder: 14 βήματα (με εικόνες)

Βίντεο: Raspberry Pi Planet Finder: 14 βήματα (με εικόνες)
Βίντεο: Νέα Raspberry Pi 3 Tutorial - Πώς να δημιουργήσει για Gaming & Entertainment Έργα 2024, Ιούλιος
Anonim
Image
Image
Ο, τι χρειάζεσαι
Ο, τι χρειάζεσαι

Έξω από το Επιστημονικό Κέντρο στην πόλη μου υπάρχει μια μεγάλη μεταλλική κατασκευή που θα μπορούσε να στραφεί και να δείξει το σημείο όπου βρίσκονταν οι πλανήτες στον ουρανό. Δεν το είδα ποτέ να λειτουργεί, αλλά πάντα πίστευα ότι θα ήταν μαγικό να γνωρίζω πού βρίσκονταν αυτοί οι απρόσιτοι άλλοι κόσμοι σε σχέση με τον μικροσκοπικό εαυτό μου.

Όταν περπάτησα πρόσφατα από αυτό το από καιρό νεκρό έκθεμα σκέφτηκα "στοιχηματίζω ότι θα μπορούσα να το κάνω" και έτσι έκανα!

Αυτός είναι ένας οδηγός για το πώς να φτιάξετε το Planet Finder (με τη Σελήνη), ώστε να μπορείτε επίσης να γνωρίζετε πού να κοιτάξετε όταν αισθάνεστε έκπληκτος από το διάστημα.

Βήμα 1: Αυτό που χρειάζεστε

Ο, τι χρειάζεσαι
Ο, τι χρειάζεσαι

1 x Raspberry Pi (έκδοση 3 ή νεότερη για ενσωματωμένο wifi)

1 x οθόνη LCD (16 x 2) (όπως αυτή)

2 x Stepper μοτέρ με προγράμματα οδήγησης (28-BYJ48) (όπως αυτά)

3 x κουμπιά (όπως αυτά)

2 x ζεύγη φλαντζών (όπως αυτά)

1 x πυξίδα κουμπιού (όπως αυτό)

8 x Μ3 μπουλόνια και παξιμάδια

Τρισδιάστατα τυπωμένα μέρη για τη θήκη και το τηλεσκόπιο

Βήμα 2: Πλανητικές Συντεταγμένες

Πλανητικές Συντεταγμένες
Πλανητικές Συντεταγμένες

Υπάρχουν μερικοί διαφορετικοί τρόποι για να περιγράψετε πού βρίσκονται αστρονομικά αντικείμενα στον ουρανό.

Για εμάς, το πιο λογικό στη χρήση είναι το σύστημα οριζόντιων συντεταγμένων, όπως φαίνεται στην παραπάνω εικόνα. Αυτή η εικόνα προέρχεται από τη σελίδα της Wikipedia που συνδέεται εδώ:

en.wikipedia.org/wiki/Horizontal_coordinat…

Το σύστημα Οριζόντιων Συντεταγμένων σας δίνει μια γωνία από το Βορρά (το Αζιμούθιο) και προς τα πάνω από τον ορίζοντα (το Υψόμετρο), οπότε είναι διαφορετικό ανάλογα με το πού κοιτάζετε στον κόσμο. Επομένως, ο ανιχνευτής πλανητών πρέπει να λάβει υπόψη την τοποθεσία και να έχει κάποιον τρόπο να βρει τον Βορρά ως σημείο αναφοράς.

Αντί να προσπαθούμε να υπολογίσουμε το Υψόμετρο και το Αζιμούθ που αλλάζουν με τον χρόνο και την τοποθεσία, θα χρησιμοποιήσουμε τη σύνδεση wifi στο Raspberry Pi για να αναζητήσουμε αυτά τα δεδομένα από τη NASA. Παρακολουθούν τέτοια πράγματα, ώστε να μην χρειαστεί;)

Βήμα 3: Πρόσβαση στα δεδομένα του πλανήτη

Λαμβάνουμε τα δεδομένα μας από το NASA Jet Propulsion Laboratory (JPL) -

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

Εάν αυτό είναι το πρώτο σας έργο Raspberry Pi, ξεκινήστε ακολουθώντας αυτόν τον οδηγό εγκατάστασης:

Εάν χρησιμοποιείτε το Raspbian στο Raspberry Pi (θα ακολουθήσετε τον παραπάνω οδηγό), τότε έχετε ήδη εγκαταστήσει το python3, βεβαιωθείτε ότι έχετε εγκαταστήσει την πιο πρόσφατη έκδοση (χρησιμοποιώ την έκδοση 3.7.3). Πρέπει να το χρησιμοποιήσουμε για να πάρουμε pip. Ανοίξτε ένα τερματικό και πληκτρολογήστε τα ακόλουθα:

sudo apt εγκατάσταση python3-pip

Στη συνέχεια, μπορούμε να χρησιμοποιήσουμε το pip για να εγκαταστήσουμε την αναβαθμισμένη έκδοση του astroquery.

pip3 install --pre -αναβάθμιση astroquery

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

από το astroquery.jplhorizons import Horizons

mars = Horizons (id = 499, τοποθεσία = '000', εποχές = Καμία, id_type = 'majorbody') eph = mars.ephemerides () print (eph)

Αυτό θα σας δείξει τις λεπτομέρειες της θέσης του Άρη!

Μπορείτε να ελέγξετε αν αυτά τα δεδομένα είναι σωστά χρησιμοποιώντας αυτόν τον ιστότοπο για να αναζητήσετε ζωντανές θέσεις πλανητών:

Για να σπάσουμε λίγο αυτό το ερώτημα, το id είναι ο αριθμός που σχετίζεται με τον Άρη στα δεδομένα της JPL, εποχές είναι ο χρόνος από τον οποίο θέλουμε τα δεδομένα (Κανένα δεν σημαίνει τώρα) και το id_type ζητά τα κύρια σώματα του ηλιακού συστήματος. Η τοποθεσία έχει οριστεί προς το παρόν στο Ηνωμένο Βασίλειο καθώς «000» είναι ο κωδικός τοποθεσίας του παρατηρητηρίου στο Γκρίνουιτς. Άλλες τοποθεσίες μπορείτε να βρείτε εδώ:

Αντιμετώπιση προβλημάτων:

Εάν λάβετε το σφάλμα: Δεν υπάρχει ενότητα με όνομα "keyring.util.escape"

δοκιμάστε την ακόλουθη εντολή στο τερματικό:

pip3 install -αναβάθμιση keyrings.alt

Βήμα 4: Κωδικός

Επισυνάπτεται σε αυτό το βήμα το πλήρες σενάριο python που χρησιμοποιείται σε αυτό το έργο.

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

def getPlanetInfo (πλανήτης):

obj = Ορίζοντες (id = πλανήτης, τοποθεσία = '000', εποχές = Καμία, id_type = 'majorbody') eph = obj.ephemerides () επιστροφή eph

Βήμα 5: Σύνδεση υλικού

Σύνδεση υλικού
Σύνδεση υλικού
Σύνδεση υλικού
Σύνδεση υλικού
Σύνδεση υλικού
Σύνδεση υλικού

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

Για να μάθετε ποιος αριθμός είναι οι ακίδες στο Raspberry Pi, μεταβείτε στο τερματικό και πληκτρολογήστε

pinout

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

Για βοήθεια στο διάγραμμα κυκλώματος, εδώ είναι οι ακίδες που συνδέονται σε κάθε τμήμα:

1ος κινητήρας Stepper - 7, 11, 13, 15

2ος κινητήρας Stepper - 40, 38, 36, 32

Κουμπί 1 - 33

Κουμπί 2 - 37

Κουμπί3-35

Οθόνη LCD - 26, 24, 22, 18, 16, 12

Όταν όλα αυτά συνδεθούν, εκτελέστε το σενάριο python

python3 planetFinder.py

και θα πρέπει να δείτε την οθόνη να εμφανίζει κείμενο ρύθμισης και τα κουμπιά να μετακινούν τους βηματικούς κινητήρες.

Βήμα 6: Σχεδιασμός της θήκης

Σχεδιάζοντας την υπόθεση
Σχεδιάζοντας την υπόθεση
Σχεδιάζοντας την υπόθεση
Σχεδιάζοντας την υπόθεση
Σχεδιάζοντας την υπόθεση
Σχεδιάζοντας την υπόθεση

Η θήκη σχεδιάστηκε για εκτύπωση 3D εύκολα. Χωρίζεται σε ξεχωριστά μέρη τα οποία στη συνέχεια κολλούνται μεταξύ τους όταν τα ηλεκτρονικά έχουν στερεωθεί στη θέση τους.

Οι οπές έχουν μέγεθος για τα κουμπιά που χρησιμοποίησα και τα μπουλόνια M3.

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

Τα αρχεία STL επισυνάπτονται σε αυτό το βήμα.

Βήμα 7: Δοκιμή των εκτυπώσεων

Δοκιμή των εκτυπώσεων
Δοκιμή των εκτυπώσεων
Δοκιμή των εκτυπώσεων
Δοκιμή των εκτυπώσεων
Δοκιμή των εκτυπώσεων
Δοκιμή των εκτυπώσεων
Δοκιμή των εκτυπώσεων
Δοκιμή των εκτυπώσεων

Μόλις εκτυπωθούν όλα, βεβαιωθείτε ότι όλα ταιριάζουν καλά μεταξύ τους πριν γίνει οποιαδήποτε κόλλα.

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

Βήμα 8: Επέκταση του Stepper Motor

Επέκταση του Stepper Motor
Επέκταση του Stepper Motor
Επέκταση του Stepper Motor
Επέκταση του Stepper Motor
Επέκταση του Stepper Motor
Επέκταση του Stepper Motor

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

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

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

Βήμα 9: Τοποθετήστε τα κουμπιά και την οθόνη LCD

Κουμπιά συναρμολόγησης και οθόνη LCD
Κουμπιά συναρμολόγησης και οθόνη LCD
Κουμπιά συναρμολόγησης και οθόνη LCD
Κουμπιά συναρμολόγησης και οθόνη LCD
Κουμπιά συναρμολόγησης και οθόνη LCD
Κουμπιά συναρμολόγησης και οθόνη LCD
Κουμπιά συναρμολόγησης και οθόνη LCD
Κουμπιά συναρμολόγησης και οθόνη LCD

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

Ασφαλίστε την οθόνη LCD με μπουλόνια και παξιμάδια M3. Το LCD θέλει ένα ποτενσιόμετρο σε έναν από τους πείρους του, το οποίο επίσης κόλλησα σε αυτό το στάδιο.

Δοκιμάστε ξανά τον κωδικό! Βεβαιωθείτε ότι όλα εξακολουθούν να λειτουργούν προτού τα κολλήσουμε όλα, καθώς είναι πολύ πιο εύκολο να διορθωθούν σε αυτό το στάδιο.

Βήμα 10: Προσθήκη φλαντζών

Προσθήκη φλαντζών
Προσθήκη φλαντζών
Προσθήκη φλαντζών
Προσθήκη φλαντζών
Προσθήκη φλαντζών
Προσθήκη φλαντζών
Προσθήκη φλαντζών
Προσθήκη φλαντζών

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

Η μία φλάντζα είναι κολλημένη στη βάση του περιστρεφόμενου πύργου και η άλλη στο τηλεσκόπιο.

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

Δοκιμάστε ξανά!

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

Βήμα 11: Εκτελέστε την εκκίνηση

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

Στο τερματικό, πληκτρολογήστε

crontab -e

Στο αρχείο που ανοίγει, προσθέστε τα ακόλουθα στο τέλος του αρχείου, ακολουθούμενα από μια νέα γραμμή.

@reboot python3 /home/pi/PlanetFinder/planetFinder.py &

Έχω αποθηκεύσει τον κωδικό μου σε ένα φάκελο που ονομάζεται PlanetFinder, οπότε /home/pi/PlanetFinder/planetFinder.py είναι η τοποθεσία του αρχείου μου. Εάν το δικό σας αποθηκεύεται κάπου αλλού, φροντίστε να το αλλάξετε εδώ.

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

Βήμα 12: Κολλήστε τα όλα μαζί

Κολλήστε τα όλα μαζί!
Κολλήστε τα όλα μαζί!
Κολλήστε τα όλα μαζί!
Κολλήστε τα όλα μαζί!

Όλα όσα δεν είναι ήδη κολλημένα στη θέση τους πρέπει τώρα να διορθωθούν.

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

Βήμα 13: Χρήση

Χρήση
Χρήση

Όταν ενεργοποιηθεί το Planet Finder, θα ζητήσει από τον χρήστη να προσαρμόσει τον κατακόρυφο άξονα. Πατώντας τα κουμπιά πάνω και κάτω θα μετακινήσετε το τηλεσκόπιο, προσπαθήστε να το κάνετε να είναι επίπεδο, δείχνοντας προς τα δεξιά και, στη συνέχεια, πατήστε το κουμπί ok (στο κάτω μέρος).

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

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

Βήμα 14: Ολοκληρώθηκε

Πεπερασμένος
Πεπερασμένος

Ολα τελείωσαν!

Απολαύστε γνωρίζοντας πού βρίσκονται όλοι οι πλανήτες:)

Διαστημική πρόκληση
Διαστημική πρόκληση
Διαστημική πρόκληση
Διαστημική πρόκληση

Πρώτο Βραβείο στο Space Challenge

Συνιστάται: