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

Το RADbot: 7 Βήματα
Το RADbot: 7 Βήματα

Βίντεο: Το RADbot: 7 Βήματα

Βίντεο: Το RADbot: 7 Βήματα
Βίντεο: BIT.TRIP RUNNER 2-7 Radbot 2024, Οκτώβριος
Anonim
Το RADbot
Το RADbot

Ένα έργο των Jackson Breakell, Tyler McCubbins και Jakob Thaler για το EF 230

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

Σε αντίθεση με το τυπικό Mars rover, ο σχεδιασμός μας διαθέτει εξαρτήματα εκτός ράφι και λογική τιμή. Υπό την προϋπόθεση ότι έχετε τα χρήματα και την επιθυμία, μπορείτε ακόμη και να φτιάξετε ένα μόνοι σας ακολουθώντας αυτόν τον οδηγό. Διαβάστε παρακάτω για να μάθετε πώς να φτιάξετε το δικό σας RADbot.

Βήμα 1: Αποκτήστε τα απαραίτητα ανταλλακτικά και υλικά

Αποκτήστε τα απαραίτητα ανταλλακτικά και υλικά
Αποκτήστε τα απαραίτητα ανταλλακτικά και υλικά
Αποκτήστε τα απαραίτητα ανταλλακτικά και υλικά
Αποκτήστε τα απαραίτητα ανταλλακτικά και υλικά
Αποκτήστε τα απαραίτητα ανταλλακτικά και υλικά
Αποκτήστε τα απαραίτητα ανταλλακτικά και υλικά

Τι θα χρειαστείτε για να ξεκινήσετε (οι εικόνες τοποθετούνται με τη σειρά που αναφέρονται)

1. One Roomba (οποιοδήποτε νεότερο μοντέλο)

2. Ένας μετρητής Geiger-Mueller

3. One Raspberry Pi

4. Κάμερα ενός πίνακα με πρίζα USB

5. Ένα καλώδιο micro USB σε USB

6. Ένα καλώδιο USB σε USB

7. Ένα ραδιενεργό δείγμα επαρκούς δραστηριότητας (~ 5μSv ή υψηλότερο)

8. Ένας υπολογιστής με εγκατεστημένο το Matlab

9. Κόλλα (κατά προτίμηση κολλητική ταινία για εύκολη μετακίνηση)

Βήμα 2: Διαμόρφωση του μετρητή κάμερας και Geiger-Muller

Διαμόρφωση της κάμερας και του μετρητή Geiger-Muller
Διαμόρφωση της κάμερας και του μετρητή Geiger-Muller

Τώρα που διαθέτετε όλα τα απαιτούμενα υλικά για τη δημιουργία του RADbot, θα ξεκινήσουμε τοποθετώντας απλά την κάμερα έτσι ώστε να μπορεί να διαβάσει τη δραστηριότητα στον πάγκο. Τοποθετήστε τον μετρητή Geiger-Muller όσο το δυνατόν πιο κοντά στο τέλος του Roomba και βεβαιωθείτε ότι ο αισθητήρας του δεν είναι μπλοκαρισμένος. Ασφαλίστε τον πάγκο στη θέση του σταθερά με την κόλλα που επιλέξατε και προχωρήστε στην τοποθέτηση της κάμερας για να την κοιτάξετε. Τοποθετήστε τη φωτογραφική μηχανή όσο το δυνατόν πιο κοντά στην οθόνη του μετρητή για να αποτρέψετε εξωτερικές εισόδους να επηρεάσουν το πρόγραμμα και ασφαλίστε τη στη θέση της όταν αισθανθείτε άνετα. Σας συνιστούμε να αποθηκεύσετε για τελευταία φορά την ασφάλεια της κάμερας, επειδή, όταν τελειώσει ο κωδικός σας, μπορείτε να εμφανίσετε μια εικόνα από την κάμερα στον υπολογιστή σας, επιτρέποντάς σας να τοποθετήσετε την κάμερα με βάση το οπτικό της πεδίο. Μόλις η κάμερα και ο μετρητής είναι σταθερά στη θέση τους, συνδέστε την κάμερα σε μία από τις εισόδους USB του Raspberry Pi με καλώδιο USB σε USB και συνδέστε το Raspberry Pi στο Roomba με το καλώδιο micro USB σε USB.

Βήμα 3: Συνδεθείτε στο Roomba σας και δημιουργήστε κώδικα αισθητήρα φωτός

Συνδεθείτε στο Roomba σας και δημιουργήστε κώδικα αισθητήρα φωτός
Συνδεθείτε στο Roomba σας και δημιουργήστε κώδικα αισθητήρα φωτός

Αρχικά, κατεβάστε την εργαλειοθήκη Roomba του ιστότοπου EF 230 και βεβαιωθείτε ότι την τοποθετείτε στους καθορισμένους φακέλους. Για να συνδεθείτε στο Roomba σας, απλώς αναφέρετε το αυτοκόλλητο που είναι προσαρτημένο στο Raspberry Pi και εισαγάγετε "r = roomba (x)" στο παράθυρο εντολών, χωρίς τα εισαγωγικά και όπου το x σημαίνει τον αριθμό του Roomba. Το Roomba πρέπει να παίξει μια μελωδία και το κουμπί καθαρισμού θα πρέπει να εμφανίζει ένα πράσινο δαχτυλίδι γύρω από αυτό. Ξεκινήστε τον κωδικό σας με μια δήλωση "ενώ" και ανατρέξτε στους αισθητήρες φωτός όπως εμφανίζονται στη λίστα αισθητήρων. Ανοίξτε τη λίστα αισθητήρων πληκτρολογώντας "r.testSensors" στο παράθυρο εντολών.

Με βάση το χρώμα του αντικειμένου μας, το οποίο καθορίζει πόσο φως ανακλάται, ορίστε τις απαιτήσεις για την εκτέλεση της δήλωσης while ως συνάρτηση>. Στην περίπτωσή μας, ορίσαμε τον μπροστινό αισθητήρα φωτός να εκτελεί τον κώδικα στη δήλωση while εάν η ένδειξη στο αριστερό ή το δεξί κεντρικό αισθητήριο φωτός ήταν> 25. Για την εκτελέσιμη δήλωση, ρυθμίστε την ταχύτητα του Roomba να επιβραδύνεται πληκτρολογώντας "r.setDriveVelocity (x, y)" όπου x και y είναι οι ταχύτητες του αριστερού και του δεξιού τροχού αντίστοιχα. Εισαγάγετε μια δήλωση "else", έτσι ώστε το Roomba να μην επιβραδύνει για μη καθορισμένες τιμές και εισαγάγετε ξανά την εντολή set speed velocity, εκτός από διαφορετική ταχύτητα. Τελειώστε τη δήλωση while με ένα "τέλος". Αυτό το τμήμα κώδικα θα κάνει το Roomba να προσεγγίσει το αντικείμενο και θα επιβραδύνει μόλις φτάσει σε ένα συγκεκριμένο εύρος για να ελαχιστοποιήσει τον αντίκτυπο.

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

Βήμα 4: Δημιουργία κωδικού προφυλακτήρα

Δημιουργία κώδικα προφυλακτήρα
Δημιουργία κώδικα προφυλακτήρα

Καθώς η Roomba επιβραδύνεται, θα ελαχιστοποιήσει την πρόσκρουση που έχει στο αντικείμενο, αν και όχι τόσο ώστε να μην ενεργοποιεί τον φυσικό προφυλακτήρα. Για αυτό το τμήμα κώδικα, ξεκινήστε ξανά με έναν βρόχο "while" και ορίστε την έκφρασή του ως αληθινή. Για τη δήλωση, ορίστε τη μεταβλητή T ίση με την έξοδο του προφυλακτήρα, είτε 0 είτε 1, για false και true. Μπορείτε να χρησιμοποιήσετε το "T = r.getBumpers" για αυτό. Το Τ θα εξάγεται ως δομή. Εισαγάγετε μια δήλωση "εάν" και ορίστε την έκφρασή της για την υποδομή T.front σε ίσο με 1, και ορίστε τη δήλωση είτε για να ρυθμίσετε την ταχύτητα της μονάδας δίσκου στο 0, χρησιμοποιώντας "r.setDriveVelocity (x, y)" ή "r.stop ". Εισαγάγετε ένα "διάλειμμα" έτσι ώστε το Roomba να μπορεί να μετακινηθεί αφού πληρείται η συνθήκη στον επόμενο κώδικα. Προσθέστε ένα "else" και ορίστε τη δήλωσή του για να ρυθμίσετε την ταχύτητα κίνησης στην κανονική ταχύτητα πλεύσης του Roomba.

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

Βήμα 5: Δημιουργήστε κώδικα για ανάγνωση οθόνης μετρητή, ερμηνεία και αποχώρηση από την πηγή

Δημιουργήστε κώδικα για ανάγνωση οθόνης μετρητή, ερμηνεία και αποχώρηση από την πηγή
Δημιουργήστε κώδικα για ανάγνωση οθόνης μετρητή, ερμηνεία και αποχώρηση από την πηγή

Στο επίκεντρο του έργου μας είναι ο μετρητής Geiger-Muller και το ακόλουθο τμήμα κώδικα χρησιμοποιείται για να καθορίσει τι σημαίνουν τα δεδομένα στην οθόνη χρησιμοποιώντας τη φωτογραφική μηχανή. Δεδομένου ότι η οθόνη του μετρητή μας αλλάζει χρώμα με βάση τη δραστηριότητα της πηγής, θα ρυθμίσουμε την κάμερα να ερμηνεύει το χρώμα της οθόνης. Ξεκινήστε τον κωδικό σας ορίζοντας μια μεταβλητή ίση με την εντολή "r.getImage". Η μεταβλητή θα περιέχει μια τρισδιάστατη σειρά χρωματικών τιμών της εικόνας που έλαβε με κόκκινο, πράσινο και μπλε χρώμα. Ορίστε μεταβλητές ίσες με τους μέσους όρους αυτούς τους αντίστοιχους πίνακες χρωμάτων χρησιμοποιώντας την εντολή "mean (mean (img1 (:,,, x)))" όπου το x είναι ακέραιος από 1 έως 3. 1, 2 και 3 αντιπροσωπεύουν κόκκινο, πράσινο και μπλε αντίστοιχα. Όπως σε όλες τις αναφερόμενες εντολές, μην συμπεριλαμβάνετε εισαγωγικά.

Αφήστε το πρόγραμμα να σταματήσει για 20 δευτερόλεπτα χρησιμοποιώντας το "pause (20)", ώστε ο μετρητής να μπορεί να λάβει μια ακριβή ανάγνωση του δείγματος και στη συνέχεια να ξεκινήσει μια δήλωση "αν". Είχαμε το μπιπ του Roomba αρκετές φορές χρησιμοποιώντας το "r.beep" πριν εμφανιστεί ένα μενού με το κείμενο "Βρέθηκε ραδιοϊσότοπο! Προσοχή!" Αυτό μπορεί να επιτευχθεί με την εντολή "waitfor (helpdlg ({'texthere'})" ". Αφού κάνετε κλικ στο κουμπί ok, το Roomba θα συνεχίσει να ακολουθεί τον υπόλοιπο κώδικα στη δήλωση" αν ". Ζητήστε από το Roomba να κινεί το δείγμα χρησιμοποιώντας ένας συνδυασμός των εντολών "r.moveDistance" και "r.turnAngle". Βεβαιωθείτε ότι έχετε τελειώσει τη δήλωση if με ένα "τέλος".

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

Βήμα 6: Δημιουργήστε έναν κωδικό αισθητήρα Cliff

Δημιουργήστε έναν κωδικό αισθητήρα Cliff
Δημιουργήστε έναν κωδικό αισθητήρα Cliff

Για να δημιουργήσετε έναν κώδικα για να χρησιμοποιήσετε τους ενσωματωμένους αισθητήρες βράχου του Roomba, ξεκινήστε με έναν βρόχο "while" και ορίστε την έκφρασή του ως αληθινή. Ορίστε μια μεταβλητή ίση με "r.getCliffSensors" και αυτό θα οδηγήσει σε μια δομή. Ξεκινήστε μια δήλωση "αν" και ορίστε τις μεταβλητές "X.leftFront" και "X.rightFront" από τη δομή να είναι μεγαλύτερες από κάποια προκαθορισμένη τιμή, όπου "X" είναι η μεταβλητή που επιλέξατε την εντολή "r.getCliffSensors" να είναι ίση με Στην περίπτωσή μας, χρησιμοποιήσαμε 1000, καθώς ένα κομμάτι λευκού χαρτιού χρησιμοποιήθηκε για να αντιπροσωπεύσει έναν γκρεμό και, καθώς οι αισθητήρες πλησίαζαν, το χαρτί, οι τιμές αυξήθηκαν σε πολύ πάνω από 1000, διασφαλίζοντας ότι ο κώδικας θα εκτελεστεί μόνο όταν εντοπιστεί ένας γκρεμός Το Προσθέστε την εντολή "break" μετά και, στη συνέχεια, εισαγάγετε μια πρόταση "else". Για τη δήλωση "else", η οποία θα εκτελεστεί εάν δεν εντοπιστεί γκρεμός, ρυθμίστε την ταχύτητα κίνησης στην κανονική ταχύτητα πλεύσης για κάθε τροχό. Εάν το Roomba εντοπίσει έναν γκρεμό, το "break" θα εκτελεστεί και στη συνέχεια ο κώδικας εκτός του βρόχου while θα εκτελεστεί. Αφού τοποθετήσετε το "τέλος" για τους βρόχους "εάν" και "ενώ", ρυθμίστε το Roomba να κινείται προς τα πίσω χρησιμοποιώντας την εντολή μετακίνησης απόστασης. Για να προειδοποιήσετε τους αστροναύτες ότι ένας γκρεμός είναι κοντά, ορίστε τις ταχύτητες κίνησης κάθε τροχού, x και y στην εντολή ταχύτητας κίνησης, να είναι a και -a, όπου το a είναι πραγματικός αριθμός. Αυτό θα προκαλέσει την περιστροφή του Roomba, προειδοποιώντας τον αστροναύτη στον γκρεμό.

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

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

συμπέρασμα
συμπέρασμα

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

-Η ομάδα EF230 RADbot

Συνιστάται: