Πίνακας περιεχομένων:
- Βήμα 1: Προμήθειες
- Βήμα 2: Η δήλωση προβλήματος
- Βήμα 3: Τηλεχειριστήριο Bluetooth
- Βήμα 4: Αναγνώριση αντικτύπου
- Βήμα 5: Αναγνώριση ζωής
- Βήμα 6: Εκτέλεσε το
Βίντεο: Mars Roomba: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:36
Αυτό το Instructable θα σας καθοδηγήσει στις οδηγίες λειτουργίας ενός Botb κενού Roomba που ελέγχεται με Raspberry Pi. Το λειτουργικό σύστημα που θα χρησιμοποιήσουμε είναι μέσω MATLAB.
Βήμα 1: Προμήθειες
Τι θα χρειαστεί να συγκεντρώσετε για να πραγματοποιήσετε αυτό το έργο:
- Bot της ηλεκτρικής σκούπας Create2 Roomba του iRobot
- Raspberry Pi
- Κάμερα Raspberry Pi
- Η τελευταία έκδοση του MATLAB
- Η εργαλειοθήκη εγκατάστασης Roomba για το MATLAB
- Εφαρμογή MATLAB για κυψελοειδή συσκευή
Βήμα 2: Η δήλωση προβλήματος
Έχουμε αναλάβει να χρησιμοποιήσουμε το MATLAB για να αναπτύξουμε ένα ρόβερ που θα μπορούσε να χρησιμοποιηθεί στον Άρη για να βοηθήσουμε τους επιστήμονες στη συλλογή δεδομένων πλανητών. Οι λειτουργίες που αναφέραμε στο έργο μας ήταν το τηλεχειριστήριο, η αναγνώριση αντικτύπου αντικειμένου, η αναγνώριση νερού, η αναγνώριση ζωής και η επεξεργασία εικόνας. Για να επιτύχουμε αυτά τα κατορθώματα, κωδικοποιήσαμε χρησιμοποιώντας τις εντολές της εργαλειοθήκης Roomba για να χειριστούμε τις πολλές λειτουργίες του Creat2 Roomba του iRobot.
Βήμα 3: Τηλεχειριστήριο Bluetooth
Αυτή η διαφάνεια θα περάσει από τον κώδικα για να ελέγξει την κίνηση του Roomba χρησιμοποιώντας τις δυνατότητες Bluetooth της συσκευής smartphone σας. Για να ξεκινήσετε, κατεβάστε την εφαρμογή MATLAB στο smartphone σας και συνδεθείτε στο λογαριασμό σας Mathworks. Μόλις συνδεθείτε, μεταβείτε στα "περισσότερα", "ρυθμίσεις" και συνδεθείτε στον υπολογιστή σας χρησιμοποιώντας τη διεύθυνση IP του. Μόλις συνδεθείτε, επιστρέψτε στο "περισσότερα" και επιλέξτε "αισθητήρες". Πατήστε στον τρίτο αισθητήρα στην επάνω γραμμή εργαλείων της οθόνης και πατήστε στην εκκίνηση. Τώρα, το smartphone σας είναι τηλεχειριστήριο!
Ο κωδικός έχει ως εξής:
ενώ 0 == 0
παύση (.5)
PhoneData = M. Orientation;
Azi = PhoneData (1);
Pitch = PhoneData (2);
Side = PhoneData (3);
bumps = r.getBumpers;
αν Πλευρά> 80 || Πλευρά <-80
r.stop
r.beep ('C, E, G, C^, G, E, C')
Διακοπή
elseif Side> 20 && Side <40
r.turnAngle (-5);
elseif Πλευρά> 40
r.turnAngle (-25);
elseif Πλευρά-40
r.turnAngle (5);
elseif Πλευρά <-40
r.turnAngle (25);
τέλος
εάν Pitch> 10 && Pitch <35
r.moveDistance (.03)
elseif Pitch> -35 && Pitch <-10
r.moveDistance (-. 03)
τέλος
τέλος
Βήμα 4: Αναγνώριση αντικτύπου
Μια άλλη λειτουργία που εφαρμόσαμε ήταν ο εντοπισμός της πρόσκρουσης του Roomba σε ένα αντικείμενο και στη συνέχεια η διόρθωση της τρέχουσας διαδρομής του. Για να γίνει αυτό, έπρεπε να χρησιμοποιήσουμε τις προϋποθέσεις με τις ενδείξεις των αισθητήρων προφυλακτήρα για να προσδιορίσουμε αν χτυπήθηκε ένα αντικείμενο. Εάν το ρομπότ χτυπήσει ένα αντικείμενο, θα κάνει πίσω 0,2 μέτρα και θα περιστραφεί υπό γωνία που καθορίζεται από την οποία χτυπήθηκε ο προφυλακτήρας. Μόλις χτυπηθεί ένα στοιχείο, εμφανίζεται ένα μενού που εμφανίζει τη λέξη "ουφ".
Ο κώδικας εμφανίζεται παρακάτω:
ενώ 0 == 0
bumps = r.getBumpers;
r.setDriveVelocity (.1)
αν bumps.left == 1
msgbox ('Ωχ!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.front == 1
msgbox ('Ωχ!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (90)
r.setDriveVelocity (.2)
elseif bumps.right == 1
msgbox ('Ωχ!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
elseif bumps.leftWheelDrop == 1
msgbox ('Ωχ!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.rightWheelDrop == 1
msgbox ('Ωχ!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
τέλος
τέλος
Βήμα 5: Αναγνώριση ζωής
Κωδικοποιήσαμε ένα σύστημα αναγνώρισης ζωής για να διαβάζουμε τα χρώματα των αντικειμένων μπροστά του. Τα τρία είδη ζωής για τα οποία κωδικοποιήσαμε είναι τα φυτά, το νερό και οι εξωγήινοι. Για να γίνει αυτό, κωδικοποιήσαμε τους αισθητήρες για να υπολογίσουμε τις μέσες τιμές κόκκινου, μπλε, πράσινου ή λευκού. Αυτές οι τιμές συγκρίθηκαν με τα κατώφλια που ορίστηκαν χειροκίνητα για να καθορίσουν το χρώμα που βλέπει η κάμερα. Ο κώδικας θα σχεδιάσει επίσης τη διαδρομή προς το αντικείμενο και θα δημιουργήσει έναν χάρτη.
Ο κωδικός έχει ως εξής:
t = 10;
i = 0;
ενώ t == 10
img = r.getImage; imshow (img)
παύση (0,167)
i = i + 1;
red_mean = μέσος όρος (μέσος όρος (img (:,:, 1)));
blue_mean = μέσος όρος (μέσος όρος (img (:,,, 3)));
green_mean = μέσος όρος (μέσος όρος (img (:,:, 2)));
white_mean = (blue_mean + green_mean + red_mean) / 3; %το επιθυμούν περίπου 100
εννέα_συμπληρωματικά = 21;
green_threshold = 125;
blue_threshold = 130;
white_threshold = 124;
red_threshold = 115;
ενώ nine_plus_ten == 21 %πράσινο - ζωή
αν green_mean> green_threshold && blue_mean <blue_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox («βρέθηκε πιθανή πηγή ζωής, σχεδιάστηκε η τοποθεσία»);
παύση (2)
διαγραφή (α)
[y2, Fs2] = audioread ('z_speak2.wav');
ήχος (y2, Fs2)
παύση (2)
%plant = r.getImage; %imshow (φυτό)?
%εξοικονόμηση ('plant_img.mat', plant ');
%τοποθεσία του οικοπέδου με πράσινο χρώμα
i = 5;
Διακοπή
αλλού
εννέα_συμπληρωματικά = 19;
τέλος
τέλος
εννέα_συμπληρωματικά = 21;
ενώ nine_plus_ten == 21 %μπλε - woder
αν blue_mean> blue_threshold && green_mean <green_threshold && white_mean <white_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox («βρέθηκε πηγή νερού, σχεδιάστηκε η τοποθεσία») ·
παύση (2)
διαγραφή (α)
[y3, Fs3] = audioread ('z_speak3.wav');
ήχος (y3, Fs3);
%woder = r.getImage; %imshow (woder)
%εξοικονόμηση ('water_img.mat', woder)
%τοποθεσία του οικοπέδου με μπλε χρώμα
i = 5;
Διακοπή
αλλού
εννέα_συμπληρωματικά = 19;
τέλος
τέλος
εννέα_συμπληρωματικά = 21;
ενώ nine_plus_ten == 21 %λευκό - εξωγήινοι monkaS
αν white_mean> white_threshold && blue_mean <blue_threshold && green_mean <green_threshold
[y5, Fs5] = audioread ('z_speak5.wav');
ήχος (y5, Fs5);
παύση (3)
r.setDriveVelocity (0,.5)
[ys, Fss] = audioread ('z_scream.mp3');
ήχος (ys, Fss)?
παύση (3)
r.stop
% alien = r.getImage; %imshow (εξωγήινο);
% save ('alien_img.mat', alien);
i = 5;
Διακοπή
αλλού
εννέα_συμπληρωματικά = 19;
τέλος
τέλος
αν i == 5
α = 1? %γωνία στροφής
t = 9; %τερματισμός μεγάλου βρόχου
i = 0;
τέλος
τέλος
Βήμα 6: Εκτέλεσε το
Αφού γραφτεί όλος ο κώδικας, συνδυάστε τον σε ένα αρχείο και voila! Το ρομπότ Roomba θα είναι πλέον πλήρως λειτουργικό και θα λειτουργεί όπως διαφημίζεται! Ωστόσο, το στοιχείο ελέγχου Bluetooth πρέπει είτε να βρίσκεται σε ξεχωριστό αρχείο είτε να διαχωρίζεται από τον υπόλοιπο κώδικα με %%.
Απολαύστε τη χρήση του ρομπότ σας !!
Συνιστάται:
Μετατρέποντας το Roomba σας σε Mars Rover: 5 Βήματα
Μετατρέποντας το Roomba σας σε Mars Rover:
Mars Rover χρησιμοποιώντας Raspberry Pi: 5 βήματα
Mars Rover Using Raspberry Pi: Dear all Great Learner, Είμαι πάντα περίεργος να μάθω για το mars rover, Έχοντας 6 τροχούς που μπορούν να βγουν σε όλη την επιφάνεια του Άρη και να εξερευνήσουν πράγματα από τη Γη. Θέλω επίσης να εξερευνήσω κάτι καθισμένος στο φορητό υπολογιστή μου. Λοιπόν, τώρα πιστεύω ότι είναι η κατάλληλη στιγμή να το φτιάξω και
Raspberry Pi - Αυτόνομο Mars Rover με OpenCV Object Tracking: 7 βήματα (με εικόνες)
Raspberry Pi - Αυτόνομο Mars Rover με OpenCV Object Tracking: Τροφοδοτείται από Raspberry Pi 3, Open CV αναγνώριση αντικειμένων, υπερηχητικούς αισθητήρες και κινητήρες DC. Αυτό το rover μπορεί να παρακολουθεί οποιοδήποτε αντικείμενο έχει εκπαιδευτεί και να κινείται σε οποιοδήποτε έδαφος
Mars Roomba Project UTK: 4 Βήματα
Mars Roomba Project UTK: ΑΠΟΠΟΙΗΣΗ: ΑΥΤΟ ΘΑ ΛΕΙΤΟΥΡΓΕΙ ΑΝ ΕΙΝΑΙ ΣΥΝΕΧΙΣΜΕΝΟ ΤΟ ROOMBA ΜΕ ΠΟΛΥ ΣΥΓΚΕΚΡΙΜΕΝΟ ΤΡΟΠΟ, ΑΥΤΟ ΤΟ ΟΔΗΓΙΟ ΔΗΜΙΟΥΡΓΗΣΗ ΔΗΜΙΟΥΡΓΗΘΗΚΕ ΚΑΙ ΠΡΟΟΡΙΖΕΤΑΙ ΝΑ ΧΡΗΣΙΜΟΠΟΙΕΙΤΑΙ ΑΠΟ ΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΕΧΝΙΚΩΝ ΜΑΘΗΤΩΝ ΚΑΙ ΔΙΑΔΙΚΑΣΙΖΕΤΑΙ γραμμένο και
Roomba-Assistant Assisting Roomba: 4 Βήματα
Roomba-Assisting Roomba: Αυτό το έργο γίνεται χρησιμοποιώντας το Raspberry Pi 3 στο iRobot Create Version 2. Το MATLAB χρησιμοποιείται για να προγραμματίσει το ρομπότ να ακολουθεί συγκεκριμένες οδηγίες χρησιμοποιώντας τους αισθητήρες και την κάμερα. Οι αισθητήρες και οι κάμερες χρησιμοποιούνται για την εκτέλεση συγκεκριμένων