- Υλικά που απαιτούνται για την κατασκευή ρομπότ καθαρισμού δαπέδου με βάση το Arduino
- Φορητή ηλεκτρική σκούπα
- Μονάδα αισθητήρα υπερήχων HC-SR04
- Αισθητήρας δαπέδου (IR Sensor) για ανίχνευση σκάλας
- Διάγραμμα κυκλώματος ρομπότ καθαρισμού δαπέδου με βάση το Arduino
- Δημιουργία κυκλώματος για ρομπότ καθαρισμού δαπέδου με βάση το Arduino
- Arduino
Σε ένα σημερινό σενάριο, όλοι είμαστε τόσο απασχολημένοι με τη δουλειά μας που δεν έχουμε χρόνο να καθαρίσουμε σωστά το σπίτι μας. Η λύση στο πρόβλημα είναι πολύ απλή, απλά πρέπει να αγοράσετε ένα ρομπότ οικιακής σκούπας, όπως το irobot roomba, το οποίο θα καθαρίσει το σπίτι σας με το πάτημα ενός κουμπιού. Αλλά τέτοια εμπορικά προϊόντα είναι κοινό ζήτημα, το οποίο είναι το κόστος. Έτσι, σήμερα, αποφασίσαμε να φτιάξουμε ένα απλό ρομπότ καθαρισμού δαπέδου, το οποίο δεν είναι μόνο απλό στην κατασκευή του, αλλά κοστίζει πολύ λιγότερο σε σύγκριση με τα εμπορικά προϊόντα που διατίθενται στην αγορά. Οι συχνές συσκευές ανάγνωσης μπορεί να θυμούνται το ρομπότ καθαρισμού κενού Arduino, το οποίο δημιουργήσαμε πριν από πολύ καιρό, αλλά αυτό ήταν πολύ ογκώδες και χρειαζόταν μια μεγάλη μπαταρία μολύβδου-οξέος για να μετακινηθεί. Η νέα ηλεκτρική σκούπα Arduino θα χτίσουμε εδώ θα είναι συμπαγής και πιο πρακτική. Επιπλέον, αυτό το ρομπότ θα έχει αισθητήρες υπερήχων και έναν αισθητήρα εγγύτητας υπερύθρων. Ο αισθητήρας υπερήχων θα επιτρέψει στο ρομπότ να αποφύγει εμπόδια, ώστε να μπορεί να κινείται ελεύθερα έως ότου καθαριστεί σωστά το δωμάτιο και ο αισθητήρας εγγύτητας θα το βοηθήσει να αποφύγει την πτώση από τις σκάλες. Όλα αυτά τα χαρακτηριστικά ακούγονται ενδιαφέροντα, έτσι; Ας ξεκινήσουμε λοιπόν.
Σε ένα από τα προηγούμενα άρθρα μας, φτιάξαμε πολλά ρομπότ όπως το ρομπότ Self Balancing, το Robot αυτοματοποιημένης επιφανειακής απολύμανσης και το ρομπότ αποφυγής εμποδίων. Ελέγξτε τα αν σας φαίνεται ενδιαφέρον.
Υλικά που απαιτούνται για την κατασκευή ρομπότ καθαρισμού δαπέδου με βάση το Arduino
Καθώς έχουμε χρησιμοποιήσει πολύ γενικά εξαρτήματα για την κατασκευή του τμήματος υλικού του ρομπότ ηλεκτρικής σκούπας, θα πρέπει να μπορείτε να βρείτε όλα αυτά στο τοπικό κατάστημα χόμπι σας. Εδώ είναι η πλήρης λίστα του απαιτούμενου υλικού μαζί με την εικόνα όλων των συστατικών.
- Arduino Pro Mini - 1
- Μονάδα υπερήχων HC-SR04 - 3
- Οδηγός κινητήρα L293D - 1
- 5Volt N20 Κινητήρες και βραχίονες στήριξης - 2
- Τροχοί κινητήρα N20 - 2
- Διακόπτης - 1
- Ρυθμιστής τάσης LM7805 - 1
- 7.4V μπαταρία ιόντων λιθίου - 1
- Ενότητα IR - 1
- Perfboard - 1
- Τροχός τροχού - 1
- MDF
- Γενική φορητή ηλεκτρική σκούπα
Φορητή ηλεκτρική σκούπα
Στην ενότητα απαιτήσεων εξαρτημάτων, μιλήσαμε για μια φορητή ηλεκτρική σκούπα, οι παρακάτω εικόνες δείχνουν ακριβώς αυτό. Είναι μια φορητή ηλεκτρική σκούπα από την amazon. Αυτό έρχεται με έναν πολύ απλό μηχανισμό. Έχει τρία μέρη στο κάτω μέρος (ένα μικρό θάλαμο για την αποθήκευση της σκόνης, το μεσαίο τμήμα περιλαμβάνει τον κινητήρα, τον ανεμιστήρα και την υποδοχή της μπαταρίας στην κορυφή (υπάρχει ένα κάλυμμα ή καπάκι για την μπαταρία). Διαθέτει κινητήρα DC και ένας ανεμιστήρας. Αυτός ο κινητήρας συνδέεται απευθείας με μπαταρίες 3V (2 * 1,5volt AA) μέσω ενός απλού διακόπτη. Καθώς τροφοδοτούμε το ρομπότ μας με μπαταρία 7,4V, θα διακόψουμε τη σύνδεση από την εσωτερική μπαταρία και θα την τροφοδοτήσουμε από το 5V τροφοδοσία ρεύματος. Έτσι, αφαιρέσαμε όλα τα περιττά μέρη και μόνο τον κινητήρα με δύο καλώδια. Μπορείτε να το δείτε στην παρακάτω εικόνα.
Μονάδα αισθητήρα υπερήχων HC-SR04
Για να εντοπίσουμε τα εμπόδια, χρησιμοποιούμε τον δημοφιλή αισθητήρα απόστασης υπερήχων HC-SR04 ή μπορούμε να το ονομάσουμε αισθητήρες αποφυγής εμποδίων. Η εργασία είναι πολύ απλή, πρώτον, η μονάδα πομπού στέλνει ένα υπερηχητικό κύμα που ταξιδεύει μέσω αέρα, χτυπά ένα εμπόδιο και αναπηδά και ο δέκτης λαμβάνει αυτό το κύμα. Υπολογίζοντας τον χρόνο με το Arduino, μπορούμε να προσδιορίσουμε την απόσταση. Σε ένα προηγούμενο άρθρο σχετικά με το έργο Arduino Based Ultrasonic Distance Sensor, έχουμε συζητήσει πολύ καλά την αρχή λειτουργίας αυτού του αισθητήρα. Μπορείτε να το ελέγξετε αν θέλετε να μάθετε περισσότερα για τη μονάδα αισθητήρα απόστασης υπερήχων HC-SR04.
Αισθητήρας δαπέδου (IR Sensor) για ανίχνευση σκάλας
Στην ενότητα χαρακτηριστικών, μιλήσαμε για ένα χαρακτηριστικό όπου το ρομπότ μπορεί να ανιχνεύσει σκάλες και να αποτρέψει την πτώση του. Για να το κάνουμε αυτό, χρησιμοποιούμε έναν αισθητήρα υπερύθρων. Θα δημιουργήσουμε μια διεπαφή μεταξύ του αισθητήρα IR και του Arduino. Η λειτουργία του IR Proximity Sensor είναι πολύ απλή, διαθέτει ένα IR LED και μια φωτοδίοδο, το IR LED εκπέμπει φως IR και αν προκύψει κάποιο εμπόδιο μπροστά από αυτό το εκπεμπόμενο φως, θα ανακλάται και θα ανιχνεύεται το ανακλώμενο φως από τη φωτοδίοδο. Αλλά η παραγόμενη τάση από την αντανάκλαση θα είναι πολύ χαμηλή. Για να το αυξήσουμε, μπορούμε να χρησιμοποιήσουμε έναν συγκριτή op-amp, μπορούμε να ενισχύσουμε και να πάρουμε έξοδο. Μια μονάδα IRέχει τρεις ακίδες - Vcc, γείωση και έξοδο. Συνήθως, η έξοδος μειώνεται όταν ένα εμπόδιο έρχεται μπροστά από τον αισθητήρα. Έτσι, μπορούμε να το χρησιμοποιήσουμε για να ανιχνεύσουμε το δάπεδο. Εάν για ένα δευτερόλεπτο, ανιχνεύσουμε ένα υψηλό από τον αισθητήρα, μπορούμε να σταματήσουμε το ρομπότ, να το γυρίσουμε πίσω ή να κάνουμε οτιδήποτε θέλουμε να αποτρέψουμε από το να πέσει από τη σκάλα. Σε ένα προηγούμενο άρθρο, έχουμε δημιουργήσει μια έκδοση Breadboard της μονάδας IR Proximity Sensor και εξηγήσαμε λεπτομερώς την αρχή λειτουργίας, μπορείτε να το ελέγξετε αν θέλετε να μάθετε περισσότερα για αυτόν τον αισθητήρα.
Διάγραμμα κυκλώματος ρομπότ καθαρισμού δαπέδου με βάση το Arduino
Έχουμε τρεις αισθητήρες υπερήχων που ανιχνεύουν εμπόδια. Επομένως, πρέπει να συνδέσουμε όλους τους λόγους αισθητήρων υπερήχων και να τους συνδέσουμε με κοινό έδαφος. Επίσης, συνδέουμε και τα τρία Vcc του αισθητήρα και το συνδέουμε με τον κοινό πείρο VCC. Στη συνέχεια, συνδέουμε τους ακροδέκτες σκανδάλης και ηχούς με τις ακίδες PWM του Arduino. Συνδέουμε επίσης το VCC της μονάδας IR σε 5V και τη γείωση στον πείρο γείωσης του Arduino, ο πείρος εξόδου της μονάδας αισθητήρα IR πηγαίνει στον ψηφιακό πείρο D2 του Arduino. Για τον οδηγό κινητήρα, συνδέουμε τους δύο ακροδέκτες ενεργοποίησης στα 5v και επίσης τον πείρο τάσης του οδηγού στα 5V επειδή χρησιμοποιούμε κινητήρες 5volt Σε ένα προηγούμενο άρθρο, έχουμε φτιάξει ένα Arduino Motor Driver Shield, μπορείτε να το ελέγξετε για να μάθετε περισσότερα για το L293D Motor Driver ICκαι τις λειτουργίες του. Οι Arduino, οι υπερηχητικές μονάδες, ο οδηγός κινητήρα και οι κινητήρες λειτουργούν σε 5 Volt, η υψηλότερη τάση θα την σκοτώσει και χρησιμοποιούμε την μπαταρία 7,4 volt για να τη μετατρέψουμε σε 5 Volt, χρησιμοποιείται ο ρυθμιστής τάσης LM7805. Συνδέστε την ηλεκτρική σκούπα απευθείας στο κύριο κύκλωμα.
Δημιουργία κυκλώματος για ρομπότ καθαρισμού δαπέδου με βάση το Arduino
Για να πάρω μερικές ιδέες για το ρομπότ μου, έψαξα για ρομπότ ηλεκτρικής σκούπας στο διαδίκτυο και πήρα μερικές εικόνες ρομπότ στρογγυλού σχήματος. Έτσι, αποφάσισα να φτιάξω ένα στρογγυλό ρομπότ. Για να φτιάξω το κυνήγι και το σώμα του ρομπότ, έχω πολλές επιλογές όπως αφρώδες φύλλο, MDF, χαρτόνι κ.λπ. Αλλά επιλέγω MDF επειδή είναι σκληρό και έχει μερικές ανθεκτικές στο νερό ιδιότητες. Εάν το κάνετε αυτό, μπορείτε να αποφασίσετε ποιο υλικό θα επιλέξετε για το bot σας.
Για να φτιάξω το ρομπότ, πήρα το φύλλο MDF, έπειτα σχεδίασα δύο κύκλους με ακτίνα 8 CM και μέσα σε αυτόν τον κύκλο, έχω σχεδιάσει επίσης έναν άλλο κύκλο με ακτίνα 4 CMγια τοποθέτηση της ηλεκτρικής σκούπας. Τότε έκοψα τους κύκλους. Επίσης, έχω κόψει και αφαιρέσει τα κατάλληλα κομμάτια για τη διαδρομή των τροχών (ανατρέξτε στις εικόνες για καλύτερη κατανόηση) Τέλος, έκανα τρεις μικρές τρύπες για τον τροχό. Το επόμενο βήμα είναι η τοποθέτηση των κινητήρων στη βάση χρησιμοποιώντας τα στηρίγματα, επίσης, τοποθετήστε και στερεώστε τον τροχό στη θέση του. Μετά από αυτό, τοποθετήστε τους αισθητήρες υπερήχων στα αριστερά, δεξιά και στη μέση του ρομπότ. Επίσης, συνδέστε τη μονάδα IR στο κάτω μέρος του ρομπότ. Μην ξεχάσετε να προσθέσετε το διακόπτη στο εξωτερικό. Αυτό είναι όλο για την κατασκευή του ρομπότ, εάν συγχέετε σε αυτό το σημείο, μπορείτε να ανατρέξετε στις παρακάτω εικόνες
Για το πάνω μέρος, έχω σχεδιάσει επίσης έναν κύκλο 11 CM σε ακτίνα στο φύλλο αφρού και τον κόβω. Για την απόσταση μεταξύ του πάνω και του κάτω μέρους, είχα κόψει τρία κομμάτια μήκους 4 CM από πλαστικό σωλήνα. Μετά από αυτό, κόλλησα τους πλαστικούς αποστάτες στο κάτω μέρος και μετά κόλλησα το πάνω μέρος. Εάν θέλετε, μπορείτε να καλύψετε τα πλαϊνά μέρη του σκάφους με πλαστικά ή παρόμοια υλικά.
Arduino
Ο πλήρης κωδικός για αυτό το έργο δίνεται στο τέλος του εγγράφου. Αυτός ο κωδικός Arduino είναι παρόμοιος με τον κωδικό αισθητήρα απόστασης υπερήχων με βάση το Arduino, η μόνη αλλαγή είναι στην ανίχνευση δαπέδου. Στις ακόλουθες γραμμές, εξηγώ πώς λειτουργεί ο κώδικας. Σε αυτήν την περίπτωση, δεν χρησιμοποιούμε επιπλέον βιβλιοθήκες. Παρακάτω έχουμε περιγράψει τον κώδικα με βήμα προς βήμα τρόπο. Δεν χρησιμοποιούμε επιπλέον βιβλιοθήκες για να αποκωδικοποιήσουμε τα δεδομένα απόστασης από τον αισθητήρα HC-SR04, επειδή είναι πολύ απλό. Στις ακόλουθες γραμμές, περιγράψαμε πώς. Πρώτον, πρέπει να ορίσουμε το Trigger Pin και το Echo Pin και για τους τρεις αισθητήρες απόστασης υπερήχων που είναι συνδεδεμένοι στην πλακέτα Arduino. Σε αυτό το έργο, έχουμε τρεις ακίδες Echo και τρεις καρφίτσες Trigger. Σημειώστε ότι 1 είναι ο αριστερός αισθητήρας, 2 είναι ο μπροστινός αισθητήρας και 3 είναι ο σωστός αισθητήρας.
const int trigPin1 = 3; const int echoPin1 = 5; const int trigPin2 = 6; const int echoPin2 = 9; const int trigPin3 = 10; const int echoPin3 = 11; int irpin = 2;
Στη συνέχεια, ορίσαμε μεταβλητές για την απόσταση που όλες είναι (int) μεταβλητές τύπου και για τη διάρκεια, επιλέξαμε να χρησιμοποιήσουμε (long). Και πάλι, έχουμε τρία. Επίσης, έχω ορίσει έναν ακέραιο για την αποθήκευση της κατάστασης του κινήματος, θα το συζητήσουμε αργότερα σε αυτήν την ενότητα.
μεγάλη διάρκεια1; μεγάλη διάρκεια2; μεγάλη διάρκεια3; int distanceleft; int απόσταση int αποστάτης; int a = 0;
Στη συνέχεια, στην ενότητα εγκατάστασης, πρέπει να κάνουμε όλες τις προοπτικές καρφίτσες ως είσοδο ή έξοδο χρησιμοποιώντας τη λειτουργία pinModes () . Για να στείλετε υπερηχητικά κύματα από τη μονάδα, θα πρέπει να ενεργοποιήσετε pin σκανδάλης σε υψηλές δηλαδή όλες οι καρφίτσες ενεργοποίησης θα πρέπει να ορίσει ως ΕΞΟΔΟΣ. Και για να λάβουμε την ηχώ, πρέπει να διαβάσουμε την κατάσταση των ακουστικών καρφιτσών, έτσι ώστε όλες οι ακίδες ηχούς να πρέπει να ορίζονται ως ΕΙΣΟΔΟΣ. Επίσης, ενεργοποιούμε τη σειριακή οθόνη για αντιμετώπιση προβλημάτων. Για να διαβάσω την κατάσταση των IR-modules, έχω ορίσει το irpin ως είσοδο.
pinMode (trigPin1, OUTPUT); pinMode (trigPin2, OUTPUT); pinMode (trigPin3, OUTPUT); pinMode (echoPin1, INPUT); pinMode (echoPin2, INPUT); pinMode (echoPin3, INPUT); pinMode (irpin, INPUT);
Και αυτές οι ψηφιακές ακίδες ορίζονται ως ΕΞΟΔΟΣ για την είσοδο του οδηγού κινητήρα.
pinMode (4, ΕΞΟΔΟΣ); pinMode (7, ΕΞΟΔΟΣ); pinMode (8, ΕΞΟΔΟΣ); pinMode (12, ΕΞΟΔΟΣ);
Στον κύριο βρόχο, έχουμε τρία τμήματα για τρεις αισθητήρες. Όλα τα τμήματα λειτουργούν το ίδιο, αλλά το καθένα για διαφορετικούς αισθητήρες. Σε αυτήν την ενότητα, διαβάζουμε την απόσταση εμποδίων από κάθε αισθητήρα και την αποθηκεύουμε σε κάθε καθορισμένο ακέραιο. Για να διαβάσετε την απόσταση, πρώτα, πρέπει να βεβαιωθείτε ότι οι ακίδες σκανδάλης είναι καθαρές, για αυτό, πρέπει να ρυθμίσουμε τον πείρο σκανδάλης σε LOW για 2 μs. Τώρα, για τη δημιουργία του υπερηχητικού κύματος, πρέπει να περιστρέψουμε τον πείρο σκανδάλης ΥΨΗΛΟ για 10 μs. Αυτό θα στείλει τον ήχο υπερήχων και με τη βοήθεια της λειτουργίας pulseIn () , μπορούμε να διαβάσουμε τον χρόνο ταξιδιού και να αποθηκεύσουμε αυτήν την τιμή στη μεταβλητή « διάρκεια ». Αυτή η συνάρτηση έχει 2 παραμέτρους, η πρώτη είναι το όνομα του πείρου ηχούς και για τη δεύτερη, μπορείτε είτε να γράψετεΥΨΗΛΗ ή ΧΑΜΗΛΗ. HIGH σημαίνει ότι η συνάρτηση pulseIn () θα περιμένει τον πινέλο να πάει HIGH που προκαλείται από το αναπηδούμενο ηχητικό κύμα και θα αρχίσει να μετράει, τότε θα περιμένει τον πείρο να πάει LOW όταν θα τελειώσει το ηχητικό κύμα που θα σταματήσει την καταμέτρηση. Αυτή η λειτουργία δίνει το μήκος του παλμού σε μικροδευτερόλεπτα. Για τον υπολογισμό της απόστασης, θα πολλαπλασιάσουμε τη διάρκεια με 0,034 (η ταχύτητα του ήχου στον αέρα είναι 340m / s) και θα την διαιρέσουμε με 2 (αυτό οφείλεται στην κίνηση του ηχητικού κύματος εμπρός και πίσω). Τέλος, αποθηκεύουμε την απόσταση κάθε αισθητήρα σε αντίστοιχους ακέραιους αριθμούς.
digitalWrite (trigPin1, LOW); καθυστέρηση Μικροδευτερόλεπτα (2); digitalWrite (trigPin1, HIGH); καθυστέρηση Μικροδευτερόλεπτα (10); digitalWrite (trigPin1, LOW); διάρκεια1 = pulseIn (echoPin1, HIGH); distanceleft = διάρκεια1 * 0,034 / 2;
Αφού πάρουμε την απόσταση από κάθε αισθητήρα, μπορούμε να ελέγξουμε τους κινητήρες με τη βοήθεια μιας δήλωσης if έτσι ελέγχουμε την κίνηση του ρομπότ. Αυτό είναι πολύ απλό, πρώτα, δώσαμε μια τιμή απόστασης εμποδίου, σε αυτήν την περίπτωση, είναι 15 εκατοστά (αλλάξτε αυτήν την τιμή ως επιθυμία σας). Στη συνέχεια, δώσαμε συνθήκες σύμφωνα με αυτήν την τιμή. Για παράδειγμα, όταν ένα εμπόδιο έρχεται μπροστά από τον αριστερό αισθητήρα (αυτό σημαίνει ότι η απόσταση του αριστερού αισθητήρα πρέπει να είναι κάτω ή ισούται με 15 cm) και οι άλλες δύο αποστάσεις είναι υψηλές (αυτό σημαίνει ότι δεν υπάρχει εμπόδιο μπροστά από αυτούς τους αισθητήρες), Στη συνέχεια, με τη βοήθεια της λειτουργίας ψηφιακής εγγραφής, μπορούμε να οδηγήσουμε τους κινητήρες προς τα δεξιά. Αργότερα, έλεγξα την κατάσταση του αισθητήρα υπερύθρων. Εάν το ρομπότ βρίσκεται στο πάτωμα, η τιμή του ακροδέκτη IR θα είναι χαμηλή, και αν όχι, τότε η τιμή θα είναιΥΨΗΛΗ. Στη συνέχεια, αποθηκεύτηκα αυτήν την τιμή στη μεταβλητή int . Θα ελέγξουμε το ρομπότ σύμφωνα με αυτήν την κατάσταση.
Αυτή η ενότητα του Κώδικα χρησιμοποιείται για την Μετακίνηση του Ρομπότ προς τα εμπρός και προς τα πίσω :
εάν (s == ΥΨΗΛΟΣ) { digitalWrite (4, LOW); digitalWrite (7, ΥΨΗΛΟ); digitalWrite (8, ΧΑΜΗΛΗ); digitalWrite (12, ΥΨΗΛΟΣ); καθυστέρηση (1000) a = 1; }
Υπάρχει όμως ένα πρόβλημα με αυτήν τη μέθοδο όταν ο κινητήρας κινείται προς τα πίσω, το πάτωμα επιστρέφει και το bot θα κινηθεί προς τα εμπρός και θα επαναληφθεί κάνοντας το bot κολλημένο. Για να το ξεπεράσουμε αυτό, αποθηκεύουμε μια τιμή (1) στο int αφού δεν υπάρχει κατανόηση. Ελέγουμε επίσης αυτήν την κατάσταση για άλλες κινήσεις.
Αφού εντοπίσει την απουσία του δαπέδου, το ρομπότ δεν θα προχωρήσει. Αντ 'αυτού, θα κινηθεί αριστερά, με αυτόν τον τρόπο, μπορούμε να αποφύγουμε το πρόβλημα.
εάν ((a == 0) && (s == LOW) && (distanceleft <= 15 && frontfront> 15 && distanceright <= 15) - (a == 0) && (s == LOW) && (distanceleft> 15 && frontfront> 15 && distanceright> 15))
Στην παραπάνω κατάσταση. Πρώτον, το ρομπότ θα ελέγξει την κατάσταση κατωφλίου και την ακέραια τιμή. Το bot θα προχωρήσει μόνο αν πληρούνται όλες οι προϋποθέσεις
Τώρα, μπορούμε να γράψουμε τις εντολές για το πρόγραμμα οδήγησης του κινητήρα. Αυτό θα οδηγήσει τον δεξιό κινητήρα προς τα πίσω και τον αριστερό κινητήρα προς τα εμπρός, περιστρέφοντας έτσι το ρομπότ προς τα δεξιά.
Αυτή η ενότητα του κώδικα χρησιμοποιείται για να μετακινήσετε το ρομπότ δεξιά:
digitalWrite (4, ΥΨΗΛΟ); digitalWrite (7, LOW); digitalWrite (8, ΥΨΗΛΟΣ); digitalWrite (12, LOW);
Εάν το bot εντοπίσει ότι το δάπεδο απουσιάζει, η τιμή αλλάζει σε 1 και το bot θα μετακινηθεί προς τα αριστερά. Αφού στρίψετε αριστερά, η τιμή του «a» αλλάζει σε 0 από 1.
εάν ((a == 1) && (s == LOW) - (s == LOW) && (distanceleft <= 15 && frontfront <= 15 && distanceright> 15) - (s == LOW) && (distanceleft <= 15 && frontfront <= 15 && distanceright> 15) - (s == LOW) && (distanceleft <= 15 && frontfront> 15 && distanceright> 15) - (distanceleft <= 15 && απόσταση μπροστά> 15 && αποστάτες> 15)) { digitalWrite (4, ΥΨΗΛΟ); digitalWrite (7, LOW); digitalWrite (8, ΧΑΜΗΛΗ); digitalWrite (12, ΥΨΗΛΟΣ); καθυστέρηση (100); a = 0; }
Αυτή η ενότητα του κώδικα χρησιμοποιείται για να μετακινήσετε το ρομπότ αριστερά:
εάν ((s == LOW) && (distanceleft> 15 && frontfront <= 15 && distanceright <= 15) - (s == LOW) && (distanceleft> 15 && απόσταση μπροστά> 15 && distanceright <= 15) - (s == LOW) && (distanceleft> 15 && frontfront <= 15 && distanceright> 15)) { digitalWrite (4, LOW); digitalWrite (7, ΥΨΗΛΟ); digitalWrite (8, ΥΨΗΛΟΣ); digitalWrite (12, LOW); }
Αυτό είναι για την κατασκευή ρομπότ Smart Vacuum Cleaner με βάση το Arduino. Η πλήρης εργασία του έργου βρίσκεται στο βίντεο που συνδέεται στο κάτω μέρος αυτής της σελίδας. Εάν έχετε απορίες, σχολιάστε παρακάτω.