Πίνακας περιεχομένων:
Βίντεο: Localino Tracks Roomba IRobot, Maps the Environment and Allows Control .: 4 Steps
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:38
Για να χτίσετε τη γέφυρα WiFi-UART, μπορείτε να δείτε αυτό το repo github:
Έχει μια καλή βάση για αρχή. Βεβαιωθείτε ότι έχετε διαβάσει καλά τις οδηγίες, επειδή το Roomba VCC κατά τη φόρτιση αυξάνεται έως και 20 Volt! Εάν προσθέσετε ένα ESP8266 χωρίς κατάλληλο μετατροπέα buck που λειτουργεί ακόμη και έως 20V και μετατρέπεται προς τα κάτω σε 3.3V, θα καταστρέψετε το ESP σας.
Βεβαιωθείτε επίσης ότι χρησιμοποιείτε έναν επιλογέα στάθμης (π.χ. χρησιμοποιώντας διαχωριστή τάσης) για να μετακινήσετε τα λογικά επίπεδα UART 5V από το Roomba σε 3.3V, τα οποία χρησιμοποιούνται από το ESP.
Μια άλλη σημαντική λεπτομέρεια είναι ότι ο μετατροπέας buck πρέπει να έχει 300mA, αλλά όχι πολύ λιγότερο ή πολύ περισσότερο (ανάλογα με τον ίδιο τον μετατροπέα buck). Υπάρχουν κάποιες εκεί έξω που μπορούν να κάνουν πολύ περισσότερο ρεύμα, αλλά προκαλούν την κατάρρευση του Roomba επειδή αντλούν πολύ ρεύμα κατά την εκκίνηση. Διαπιστώσαμε ότι ο Ρυθμιστής Τάσης Pololu 3.3V, 300mA Step-Down (D24V3F3) λειτουργεί τέλεια. Οι εναλλακτικές εκδόσεις που έχουν 500mA / 600mA προκάλεσαν τη διακοπή της διεπαφής Roomba UART. Βασικά το Roomba αντιδρούσε με το πάτημα κουμπιού, αλλά όχι με εντολές μέσω της διεπαφής UART. Μόλις συνέβη αυτό, έπρεπε να αφαιρέσουμε την μπαταρία του Roomba και να ξεκινήσουμε εν ψυχρώ την Roomba με τη γέφυρα WiFi-UART προσαρτημένη. Ωστόσο, μόνο το D24V3F3 λειτούργησε καλά.
Εκτός από αυτήν την τεχνική λεπτομέρεια, πρέπει να προσθέσετε επιπλέον εντολές στον κώδικα, τις οποίες μπορείτε να βρείτε στις προδιαγραφές ανοιχτής διεπαφής Roomba. Θα χρειαστεί να προσθέσετε όλες τις εντολές στις οποίες θέλετε να αντιδρά το roomba σας (για παράδειγμα, προς τα πίσω, προς τα εμπρός, ταχύτητα κ.λπ.).
παραδείγματα στο arduino IDE:
void goForward () {char c = {137, 0x00, 0xc8, 0x80, 0x00}; // 0x00c8 == 200 Serial.print (c); }
void goBackward () {char c = {137, 0xff, 0x38, 0x80, 0x00}; // 0xff38 == -200 Serial.print (c); }
void spinLeft () {char c = {137, 0x00, 0xc8, 0x00, 0x01}; Serial.print (c); }
void spinRight () {char c = {137, 0x00, 0xc8, 0xff, 0xff}; Serial.print (c); }
αν γράφετε σε lua φαίνεται λίγο διαφορετικό, ένα παράδειγμα για ΑΡΙΣΤΕΡΗ στροφή θα μοιάζει με αυτό:
εάν (_GET.pin == "ΑΡΙΣΤΕΡΑ") στη συνέχεια εκτυπώστε ('\ 137'); --VOR
tmr. καθυστέρηση (100);
εκτύπωση ('\ 00'); -Ταχύτητα = 200 = 0x00C8 -> 0 και 200
tmr. καθυστέρηση (100);
εκτύπωση ('\ 200'); - Ταχύτητα
tmr. καθυστέρηση (100);
εκτύπωση ('\ 254'); - Ακτίνα = 500 = 0x01F4 = 0x01 0xF4 = 1 244
tmr. καθυστέρηση (100);
εκτύπωση ('\ 12'); -- Στροφή
τέλος
Βεβαιωθείτε ότι πρέπει να διορθώσετε την περιγραφή της ανοιχτής διεπαφής για το Roomba σας. Υπάρχουν τουλάχιστον δύο προδιαγραφές ανοιχτής διεπαφής διαθέσιμες.
για τη σειρά Roomba 5xx:
για τη σειρά Roomba 6xx:
Μόλις δημιουργήσετε τη γέφυρα WiFi-UART και δοκιμάσετε τις εντολές που κάνατε ένα μεγάλο βήμα παραπέρα. Αυτό το βίντεο δείχνει ότι η εφαρμογή και η προσέγγιση λειτουργούν. Wereμασταν λίγο τεμπέληδες, στο webinterface λείπουν όλες οι άλλες εντολές ελέγχου, όπως εμπρός, πίσω, ταχύτητα, δεξιά, αριστερά και ούτω καθεξής, αλλά μπορείτε να εκδώσετε τις εντολές μέσω http. Όπως και να έχει, είναι απλώς μια απόδειξη ότι το τηλεχειριστήριο του Roomba λειτουργεί με ένα εύκολο κομμάτι υλικού και λογισμικού χρησιμοποιώντας ένα ESP8266.
Τώρα καθώς μπορείτε να ελέγχετε το Roomba σας από απόσταση από μια εφαρμογή υπολογιστή, το μόνο που λείπει είναι ο εσωτερικός εντοπισμός εσωτερικών χώρων. Χρειαζόμαστε αυτό για να κλείσουμε τον βρόχο ανατροφοδότησης, επειδή ο στόχος μας ήταν να οδηγήσουμε το ρομπότ σε μια συγκεκριμένη κατεύθυνση. Ας το κάνουμε.
Βήμα 3: Ρυθμίστε το εσωτερικό σύστημα τοπικής προσαρμογής
Για να κλείσουμε το βρόχο ανατροφοδότησης κάνουμε χρήση ενός εσωτερικού συστήματος εντοπισμού. Χρησιμοποιούμε το Localino για αυτό. Το σύστημα Localino αποτελείται από "άγκυρες" και "ετικέτες". Οι άγκυρες τοποθετούνται σε σταθερές θέσεις μέσα στο δωμάτιο και εντοπίζουν τη θέση της κινούμενης ετικέτας (η οποία τοποθετείται στο Roomba). Η επεξεργασία τοποθεσίας γίνεται σε εφαρμογή υπολογιστή. Αυτό έχει μεγάλο πλεονέκτημα, επειδή μπορείτε επίσης να ελέγξετε το Roomba από τον ίδιο υπολογιστή! Υπάρχει δωρεάν πηγαίος κώδικας από τον ιστότοπο Localino, είναι γραμμένος σε python και υπάρχει επίσης διαθέσιμη ροή σε πραγματικό χρόνο που προσφέρει τις συντεταγμένες XYZ της ετικέτας. Η ροή δεδομένων είναι διαθέσιμη μέσω δικτύου UDP, αλλά μπορείτε επίσης να προσθέσετε MQTT ή οποιαδήποτε άλλα φανταχτερά πράγματα που σας αρέσουν. Εάν γνωρίζετε την Python, υπάρχουν σωρεία βιβλιοθηκών που σας βοηθούν.
Σε αυτό το βίντεο, αποδεικνύεται ο εντοπισμός του Roomba. Επομένως, έχουμε 4 άγκυρες εγκατεστημένες στο δωμάτιο σε σταθερές θέσεις, οι οποίες επιτρέπουν την τρισδιάστατη τοποθέτηση του Roomba. Γενικά, θα χρειαζόμασταν μόνο 3 άγκυρες, επειδή το Roomba πιθανότατα δεν θα κινείται στον άξονα Ζ, επομένως το 2D θα ήταν αρκετό. Αλλά επειδή οι άγκυρες βρίσκονται στο ύψος των κύριων βυσμάτων εναλλασσόμενου ρεύματος (που είναι περίπου 30 εκατοστά πάνω από το έδαφος), μια εγκατάσταση 2D θα προκαλούσε μικρά σφάλματα εκτίμησης θέσης. Έτσι αποφασίσαμε να έχουμε 4 άγκυρες και να εντοπίσουμε σε 3D.
Τώρα καθώς έχουμε τη θέση του Roomba, το επόμενο βήμα μας είναι να ελέγξουμε το Roomba από την ίδια εφαρμογή. Η ιδέα είναι να χρησιμοποιήσετε τη βασική αλήθεια και να εκτιμήσετε μια τέλεια διαδρομή καθαρισμού για το ρομπότ. Με τη χρήση του Localino μπορούμε να κλείσουμε τον βρόχο ανατροφοδότησης και να ελέγξουμε το ρομπότ από την εφαρμογή υπολογιστή.
Ρυθμίσεις παρατηρήσεων
Τοποθετήστε τις άγκυρες Localino μέσα στο δωμάτιο σε διαφορετικές θέσεις x, y και τρεις από αυτές στην ίδια θέση z. Τοποθετήστε μία στις τέσσερις άγκυρες σε διαφορετικό ύψος z ανά δωμάτιο. Βεβαιωθείτε ότι υπάρχει καλή κάλυψη από την ετικέτα Localino, που θα κινηθεί με το Roomba.
Όλες οι άγκυρες διαθέτουν uniqe anchor ID, το οποίο εμφανίζεται στο γραμμικό κώδικα του Localino και μπορεί να διαβαστεί με το εργαλείο "localino configuration".
Σημειώστε τις θέσεις στα Χ, Υ, Ζ και τα αναγνωριστικά αγκύρωσης. Αυτό απαιτείται για το λογισμικό επεξεργαστή Localino και πρέπει να προσαρμοστεί στο αρχείο "localino.ini" στο φάκελο "LocalinoProcessor"
Οι άγκυρες πρέπει να δείχνουν προς τα πάνω ή προς τα κάτω στο Ζ (όταν καλύπτεται η περιοχή ΧΥ), αλλά όχι προς την κατεύθυνση της καλυμμένης περιοχής. Οι άγκυρες επίσης δεν πρέπει να καλύπτονται από μέταλλο ή οποιοδήποτε άλλο υλικό που ενοχλεί το ασύρματο σήμα. Εάν αυτό δεν είναι δυνατό, θα πρέπει επίσης να υπάρχει ένα ορισμένο κενό αέρα μεταξύ οποιουδήποτε υλικού και της άγκυρας.
…περισσότερα ακολουθούν.
Βήμα 4: Προσαρμόστε το λογισμικό Python
μείνετε συντονισμένοι. περισσότερα ακολουθούν.
Συνιστάται:
Arduino Control DC Speed and Direction Speed and Direction Using Potentiometer, OLED Display & Buttons: 6 βήματα
Arduino Control DC Motor Speed and Direction Speed and Direction Using Potentiometer, OLED Display & Buttons: Σε αυτό το σεμινάριο θα μάθουμε πώς να χρησιμοποιούμε πρόγραμμα οδήγησης L298N DC MOTOR CONTROL και ποτενσιόμετρο για τον έλεγχο της ταχύτητας και της κατεύθυνσης του κινητήρα DC με δύο κουμπιά και εμφάνιση της τιμής του ποτενσιόμετρου στην οθόνη OLED. Παρακολουθήστε ένα βίντεο επίδειξης
Blinds Control With ESP8266, Google Home and Openhab Integration and Webcontrol: 5 βήματα (με εικόνες)
Blinds Control Με ESP8266, Google Home και Openhab Integration και Webcontrol: Σε αυτό το Instructable σας δείχνω πώς πρόσθεσα την αυτοματοποίηση στις περσίδες μου. Wantedθελα να μπορώ να προσθέσω και να αφαιρέσω τον αυτοματισμό, οπότε όλη η εγκατάσταση είναι συνδεδεμένη. Τα κύρια μέρη είναι: Βηματικό μοτέρ Stepper control bij bij ESP-01 Gear and mounting
Αυτόνομα Rover Tracks: 3 Βήματα
Αυτόνομα Rover Tracks: Πρόκειται για ένα αυτόνομο 3D εκτυπώσιμο κομμάτι rover που μπορεί να επαναχρησιμοποιηθεί στα έργα σας. Πολλές φορές σχεδίασα και κατέβασα ήδη σχεδιασμένα rovers για τρισδιάστατη εκτύπωση. Συνήθως δεν υπάρχει απομόνωση μεταξύ των διαδρομών του rover και του υπόλοιπου σώματος. Thi
Λάμπα Lotus LED (Sustainability Natural Environment): 4 βήματα
Lotus LED Lamp (Sustainability Natural Environment): Περίληψη: Λάμπα με σχήμα παρόμοιο με το γνωστό λουλούδι Lotus. Η ιδέα πίσω από τη λάμπα είναι ότι μπορεί να χρησιμοποιηθεί σε διαφορετικές διαμορφώσεις ανάλογα με τις προτιμήσεις των τελικών χρηστών καθώς θα έχει το λαμπερό φως όταν το (Lotus flo
Scavenge Free Electronics, Food, and Help the Environment: 11 βήματα
Scavenge Δωρεάν Ηλεκτρονικά, Τρόφιμα και Βοηθήστε το Περιβάλλον: Εντάξει, έτσι έχετε λίγα χρήματα και χρειάζεστε δωρεάν πράγματα, ή ίσως θέλετε απλώς να πάρετε δωρεάν ηλεκτρονικό εξοπλισμό και τρόφιμα. Έτσι θα σας δείξουμε πώς για να σκουπίζετε δωρεάν πράγματα! Με λίγη εξάσκηση, η σάρωση και η ανακύκλωση απορριμμάτων μπορεί να γίνει ζωή