Πίνακας περιεχομένων:
- Βήμα 1: Απαιτούνται υλικά
- Βήμα 2: Ρύθμιση/Λήψη
- Βήμα 3: Κωδικός Μέρος 1: Λειτουργία παρακολούθησης
- Βήμα 4: Κωδικός Μέρος 2: Ενώ βρόχος
- Βήμα 5: Κωδικός Μέρος 3: Τμήμα ηλεκτρονικού ταχυδρομείου
Βίντεο: UTK EF 230 MarsRoomba Project Fall 2018: 5 Βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:36
Επί του παρόντος, τα ροβόλια του Άρη χρησιμοποιούνται για τη συλλογή δεδομένων στην επιφάνεια του Άρη μέσω διαφόρων μεθόδων, με σκοπό να μάθουν περισσότερα για τις δυνατότητες του πλανήτη για μικροβιακή ζωή. Τα Rover χρησιμοποιούν κυρίως εργαλεία φωτογραφίας και ανάλυσης εδάφους για τη συλλογή δεδομένων, αλλά τα rovers περιλαμβάνουν επίσης εργαλεία πλοήγησης, ανιχνευτές ακτινοβολίας, ατμοσφαιρικούς αισθητήρες και λέιζερ για εξάτμιση δείγματος βράχου. Ο στόχος της προγραμματισμένης αποστολής rover 2020 είναι ο ίδιος, αλλά με το ειδικό καθήκον να «συλλέξει δείγματα εδάφους και βράχων και να τα αποθηκεύσει στην επιφάνεια για πιθανή επιστροφή στη Γη από μελλοντική αποστολή», σύμφωνα με τη NASA.
Ωστόσο, υπό την προϋπόθεση ότι τα μελλοντικά rovers θα χρησιμοποιηθούν για ανθρώπινη βοήθεια, η ομάδα μας εξέτασε ποιες πτυχές των ανθρώπων θα μπορούσε να παρακολουθήσει το rover. Καταλήξαμε στο συμπέρασμα ότι σε περίπτωση έκτακτης ανάγκης ένας αστροναύτης να χάσει τις αισθήσεις του με αποτυχημένη υποστήριξη και εξοπλισμό ζωής, το rover μας θα μπορούσε να χρησιμεύσει ως κινητός φάρος της ημέρας παρατηρώντας ότι ο αστροναύτης που ακολούθησε είναι ακίνητος και μεταδίδοντας ένα μήνυμα δυσφορίας. Για να ακολουθήσει τον άνθρωπο και να καθορίσει την ακινησία, το ρόβερ θα έπαιρνε εισόδους όπως το χρώμα των παπουτσιών του ανθρώπου και η κίνησή τους. Ένα άλλο στοιχείο που πρέπει να λάβετε υπόψη είναι ότι θα πρέπει να θυμάται τη διαδρομή του προκειμένου να μεταδώσει ένα σήμα κινδύνου σε περίπτωση έκτακτης ανάγκης. Το rover μας ικανοποιεί μια ανάγκη στον Άρη, καθώς η προσπάθεια μιας τόσο δαπανηρής αποστολής σε ένα τέτοιο ξένο έδαφος απαιτεί πολλαπλά στρώματα χρηματοκιβωτίων αστοχίας και εάν ένας αστροναύτης δεν μπορεί να λάβει τη δική του βοήθεια λόγω δυσλειτουργίας ή αναίσθητου, το rover μπορεί να ειδοποιήσει άλλους Το
Αυτό το Instructable έχει σχεδιαστεί για να βοηθήσει τον αναγνώστη να προγραμματίσει το Roomba του να ακολουθήσει επιτυχώς έναν "αστροναύτη" και να στείλει ένα σήμα κινδύνου, εάν υπάρχει.
Βήμα 1: Απαιτούνται υλικά
1) Υπολογιστής/φορητός υπολογιστής με πρόσβαση στο Διαδίκτυο
2) MATLAB_R2018α
3) Λήψη Roomba και Roomba
Βήμα 2: Ρύθμιση/Λήψη
Εκτελέστε αυτό το σενάριο στο MATLAB για να κάνετε λήψη του λογισμικού που απαιτείται για πρόσβαση στο Roomba (αποθηκευμένο στο δικό του αρχείο στο φάκελο του έργου)
Πρόσθετη βοήθεια:
% Πρόγραμμα εγκατάστασης για το έργο EF 230 Roomba% Τελευταία ενημέρωση: 13 Σεπτεμβρίου 2017 (Διορθώθηκαν ζητήματα ασφάλειας που σχετίζονται με τον διακομιστή https και αφαιρέθηκε η προειδοποίηση διαγραφής αρχείου σε περίπτωση σφάλματος) λειτουργία roombaInstall clc; % λίστα αρχείων για εγκατάσταση αρχείων = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % τοποθεσία για εγκατάσταση από τις επιλογές = weboptions ('CertificateFilename', ''); % πείτε του να αγνοήσει τις απαιτήσεις πιστοποιητικού διακομιστή = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Εγκατάσταση/Ενημέρωση Roomba'; % εμφανίζει το σκοπό και λάβετε προτροπή επιβεβαίωσης = {'Αυτό το πρόγραμμα θα κατεβάσει αυτά τα αρχεία EF 230 Roomba:' '' strjoin (αρχεία, '') '' 'σε αυτόν το φάκελο:' '' cd '' 'Θέλετε να συνεχίσετε; '}; μπιπ? yn = questdlg (προτροπή,… dlgTitle,… 'Ναι', 'Όχι', 'Ναι');
εάν ~ strcmp (yn, 'Yes'), επιστροφή. τέλος
% get λίστα αρχείων που υπάρχουν υπάρχοντα_αρχεία = αρχεία (cellfun (@exist, files)> 0) εάν ~ isempty (υπάρχοντα_αρχεία) % βεβαιωθείτε ότι είναι εντάξει να τα αντικαταστήσετε αμέσως = {'Αντικαθιστάτε αυτά τα αρχεία:' '' strjoin (υπάρχοντα_αρχεία, '') '' 'ΟΚ για αντικατάσταση;' }; μπιπ? yn = questdlg (προτροπή,… dlgTitle,… 'Ναι', 'Όχι', 'Ναι'); εάν ~ strcmp (yn, 'Yes'), επιστροφή. τέλος τέλος
% λήψη των αρχείων cnt = 0; για i = 1: μήκος (αρχεία) f = αρχεία {i}; disp (['Λήψη' f]); δοκιμάστε url = [διακομιστής f]; websave (f, url, options)? % πρόσθετες επιλογές για την αποφυγή σφαλμάτων ασφαλείας cnt = cnt + 1; catch disp (['Σφάλμα κατά τη λήψη' f]); ομοίωμα = [f '.html']; εάν υπάρχει (εικονικό, 'αρχείο') == 2 διαγραφή (εικονικό) τελικό τέλος
εάν cnt == μήκος (αρχεία) msg = 'Επιτυχής εγκατάσταση'; waitfor (msgbox (msg, dlgTitle)); else msg = 'Σφάλμα εγκατάστασης - δείτε το παράθυρο εντολών για λεπτομέρειες'; waitfor (errordlg (msg, dlgTitle)); τέλος
τέλος %roombaInstall
Βήμα 3: Κωδικός Μέρος 1: Λειτουργία παρακολούθησης
Αυτή η λειτουργία παίρνει τη μεταβλητή Roomba και την εικόνα από την κάμερα στο Roomba και βρίσκει τις κεντρικές συντεταγμένες xy του αντικειμένου που παρακολουθείται
Αποθηκεύστε αυτόν τον κωδικό σε άλλο αρχείο στον ίδιο φάκελο.
συνάρτηση [xm, ym] = trackingblue (r) %Inputs: roomba variable %Outputs: x and y value of the center of the following object %Σκοπός: βρίσκει το κέντρο ενός μπλε αντικειμένου που δίνει μια εικόνα %Χρήση [τιμή x, y τιμή] = trackingblue (μεταβλητή roomba) img = r.getImage; % διαβάζει την κάμερα από το δευτερεύον υποκόμμα ρομπότ (1, 2, 2) (img). %εμφανίζει εικόνα στο ίδιο παράθυρο με τον τίτλο της διαδρομής ('Tracking Image') red = img (:,:, 1); πράσινο = img (:,:, 2); μπλε = img (:,:, 3); justBlue = μπλε - πράσινο/2 - κόκκινο/2; bw = justBlue> 40; κρατήστε το subplot (1, 2, 2) subimage (bw)? [x, y] = εύρεση (bw); αν ~ άδικο (x) && ~ άδικο (y) xm = στρογγυλό (μέσος όρος (x)); ym = στρογγυλό (μέσο (y)); xx = max (1, xm-5): min (xm+5, μέγεθος (bw, 1)); yy = max (1, ym-5): min (ym+5, μέγεθος (bw, 2)); bwbw = μηδενικά (μέγεθος (bw), 'uint8'); bwbw (xx, yy) = 255; κρατήστε πατημένο το subplot (1, 2, 2) subimage (justBlue + bwbw)? τέλος
Βήμα 4: Κωδικός Μέρος 2: Ενώ βρόχος
Αυτός ο κωδικός οδηγεί το Roomba με βάση τη θέση x και y του αντικειμένου από τη λειτουργία παρακολούθησης. Αυτό θα κάνει το Roomba να προσέχει τους τοίχους και τους γκρεμούς, ενώ αναζητά το μπλε. Αυτό θα πάρει επίσης τις συντεταγμένες x και y της διαδρομής Roomba και θα δημιουργήσει ένα αντίστοιχο διάγραμμα με την εικόνα παρακολούθησης. Εάν ο αισθητήρας bump είναι ενεργοποιημένος, θα μεταβεί στην ενότητα email
%Rover Project
%Jonah Zahn, Wade Price, Noah Sloan %jzahn2, wprice15, nsloan1 %Είσοδοι: τιμή δωματίου, δεδομένα κάμερας, αισθητήρες χτυπήματος, φωτός και τοίχου %Σκοπός: Ακολουθεί αστροναύτη και αποφεύγει εμπόδια. Εάν ειδοποιηθεί, το roomba στέλνει ένα μήνυμα ηλεκτρονικού ταχυδρομείου %αναφέροντας έναν χάρτη και πού βρίσκεται σύμφωνα με τη θέση εκκίνησης. %Χρήση: απλώς εκτελέστε το πρόγραμμα έχοντας δηλώσει μεταβλητή roomba, επίσης %έχουν κινούμενο πράσινο αντικείμενο %Έξοδος: εμφανίζει εικόνα παρακολούθησης εικόνας, χάρτη μηνυμάτων ηλεκτρονικού ταχυδρομείου και κείμενο στο χρήστη %% Ακολουθώντας την ενότητα b = 0; %Αρχικοποίηση μεταβλητών c = 0; x = 0; y = 0; θήτα = 0; ενώ c == 0 %Loop για να εντοπίσει το μπλε αντικείμενο και τα εμπόδια t = r.timeGet; d = r.getDistance; [xval, yval] = trackingblue (r); cliff = getCliffSensors (r); %προετοιμασία των δομών για τιμές αισθητήρων φως = getLightBumpers (r); bump = getBumpers (r); εάν light.leftCenter> = 10 || light.rightCenter> = 10 % Ανιχνεύει αν υπάρχει τοίχος κοντά σε r.stop r.setLEDDigits («βοήθεια») c = 1 % ενώ b == 0 % αν bump.right == 1 || bump.left == 1 || bump.front == 1 % Αισθάνεται αν έχει χτυπήσει κάτι αφού αισθανθεί έναν τοίχο % c = 1 % b = 1 % disp ('bump') % end % end elseif bump.right == 1 || bump.left == 1 || bump.front == 1 %Αντιλαμβάνεται αν έχει χτυπήσει κάτι, αν ναι, θα στείλει ένα μήνυμα ηλεκτρονικού ταχυδρομείου r.stop c = 1 b = 1 elseif cliff.leftFront <= 100 || cliff.rightFront <= 100 || cliff.left <= 100 || cliff.right <= 100 %Αισθάνεται αν υπάρχει γκρεμός κοντά σε r.stop c = 1 r.setLEDDigits ('help') else %Ορίζει τις ταχύτητες της μονάδας δίσκου να ακολουθούν το μπλε αν yval = 100 r.setDriveVelocity (0.1) elseif yval 400 r.turnAngle (-5) τελικό άκρο theta = theta + r.getAngle; x = d.*cosd (theta) + x; % x συντεταγμένη του δωματίου y = d.*sind (theta).*d + y; συντεταγμένη % y του υποπαρουσιού roomba (1, 2, 1) οικόπεδο (x, y, 'bd') % σχεδιάζει τη διαδρομή και προσθέτει έναν τίτλο τίτλου ('Roomba Path') αναμονή. τέλος
Βήμα 5: Κωδικός Μέρος 3: Τμήμα ηλεκτρονικού ταχυδρομείου
Αυτό θα ακολουθήσει το σχεδιάγραμμα της διαδρομής και της εικόνας και θα το στείλει σε μια καθορισμένη διεύθυνση email
(Εμφανίζεται εδώ με παράδειγμα email)
%% Ενότητα ηλεκτρονικού ταχυδρομείου
αν b == 1 saveas (gcf, 'rovermap.png') %αποθηκεύει το σχήμα setpref ('Internet', 'SMTP_Server', 'smtp.gmail.com')? setpref ("Διαδίκτυο", "E_mail", "[email protected]"); % λογαριασμός αλληλογραφίας προς αποστολή από το setpref ("Διαδίκτυο", "SMTP_Username", "[email protected]"); % user name setpref ('Internet', 'SMTP_Password', 'gssegsse'); % Αποστολές κωδικών πρόσβασης αποστολέων = java.lang. System.getProperties; props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465'); sendmail («παράδειγμα email», «RoverBeacon», «Ο αστροναύτης σταμάτησε να κινείται. Για ανάκτηση, ακολουθήστε τις οδηγίες στο συνημμένο αρχείο.», «rovermap.png») disp («εστάλη email») τέλος
Συνιστάται:
Robot Project UTK 2017: 3 Βήματα
Robot Project UTK 2017: Αποστολή: Η ομάδα μηχανικών μας έχει προσληφθεί από το Froogle, ένα μη κερδοσκοπικό ίδρυμα για την ανάπτυξη τεχνολογίας ανοιχτού κώδικα, για να αναπτύξει μια καινοτόμο ομάδα Human Assisting Mars Rover.-Out ομάδες " rover " είναι ένα roomba που κωδικοποιήσαμε για να εκτελέσουμε μια σειρά
Project Electronic Calculator Project - Jasdeep Sidhu: 7 Βήματα
Project Electronic Calculator Project - Jasdeep Sidhu: Το Arduino είναι ένας εύκολος και διασκεδαστικός στη χρήση μικροελεγκτής που θα μπορούσε να χρησιμοποιηθεί σε πολλά διαφορετικά έργα. Σήμερα θα χρησιμοποιήσουμε τον μικροελεγκτή Arduino μαζί με ένα πληκτρολόγιο 4x4 για να δημιουργήσουμε μια βασική αριθμομηχανή που μπορεί να προσθέσει, να αφαιρέσει, να διαιρέσει και να
TheAir - Project Sensor Project: 10 Βήματα
TheAir - Gas Sensor Project: Μονοξείδιο του άνθρακα και διοξείδιο του άνθρακα, επίσης γνωστά ως CO και CO2. Αέρια που είναι άχρωμα, άοσμα, άγευστα και ειλικρινά επικίνδυνα όταν βρίσκονται σε υψηλές συγκεντρώσεις σε κλειστό δωμάτιο. Αν ζείτε πείτε για παράδειγμα σε ένα φοιτητικό δωμάτιο που είναι πολύ απομονωμένο
Mars Roomba Project UTK: 4 Βήματα
Mars Roomba Project UTK: ΑΠΟΠΟΙΗΣΗ: ΑΥΤΟ ΘΑ ΛΕΙΤΟΥΡΓΕΙ ΑΝ ΕΙΝΑΙ ΣΥΝΕΧΙΣΜΕΝΟ ΤΟ ROOMBA ΜΕ ΠΟΛΥ ΣΥΓΚΕΚΡΙΜΕΝΟ ΤΡΟΠΟ, ΑΥΤΟ ΤΟ ΟΔΗΓΙΟ ΔΗΜΙΟΥΡΓΗΣΗ ΔΗΜΙΟΥΡΓΗΘΗΚΕ ΚΑΙ ΠΡΟΟΡΙΖΕΤΑΙ ΝΑ ΧΡΗΣΙΜΟΠΟΙΕΙΤΑΙ ΑΠΟ ΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΕΧΝΙΚΩΝ ΜΑΘΗΤΩΝ ΚΑΙ ΔΙΑΔΙΚΑΣΙΖΕΤΑΙ γραμμένο και
Πώς να τοποθετήσετε μια προσαρμοσμένη εικόνα στον πίνακα ελέγχου Xbox 360. (Ενημέρωση Pre Fall 08): 8 βήματα
Πώς να τοποθετήσετε μια προσαρμοσμένη εικόνα στον πίνακα ελέγχου Xbox 360. (Pre Fall 08 Update): Σε αυτό το εκπαιδευτικό πρόγραμμα θα σας δείξω πώς να τοποθετήσετε μια προσαρμοσμένη εικόνα ως φόντο στο xbox 360. Υπάρχουν τα ίδια βήματα για να το κάνετε αυτό το νέο και παλιό ταμπλό. όταν έχω την ευκαιρία θα ενημερώσω το όλο θέμα με νέες φωτογραφίες