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

Ρομπότ Roomba με ελεγχόμενο πρόγραμμα περιήγησης με το Raspberry Pi Model 3 A+: 6 βήματα (με εικόνες)
Ρομπότ Roomba με ελεγχόμενο πρόγραμμα περιήγησης με το Raspberry Pi Model 3 A+: 6 βήματα (με εικόνες)

Βίντεο: Ρομπότ Roomba με ελεγχόμενο πρόγραμμα περιήγησης με το Raspberry Pi Model 3 A+: 6 βήματα (με εικόνες)

Βίντεο: Ρομπότ Roomba με ελεγχόμενο πρόγραμμα περιήγησης με το Raspberry Pi Model 3 A+: 6 βήματα (με εικόνες)
Βίντεο: Ρομπότ - Ηλεκτρικοί Καθαριστές Τζαμιών 2024, Νοέμβριος
Anonim
Ρομπότ Roomba με ελεγχόμενο πρόγραμμα περιήγησης με το Raspberry Pi Model 3 A+
Ρομπότ Roomba με ελεγχόμενο πρόγραμμα περιήγησης με το Raspberry Pi Model 3 A+
Ρομπότ Roomba με ελεγχόμενο πρόγραμμα περιήγησης με το Raspberry Pi Model 3 A+
Ρομπότ Roomba με ελεγχόμενο πρόγραμμα περιήγησης με το Raspberry Pi Model 3 A+

ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ

Αυτό το Instructable θα επικεντρωθεί στο πώς να δώσετε σε έναν νεκρό Roomba έναν νέο εγκέφαλο (Raspberry Pi), μάτια (κάμερα Web) και έναν τρόπο ελέγχου των πάντων από ένα πρόγραμμα περιήγησης ιστού.

Υπάρχουν πολλές αμυχές Roomba που επιτρέπουν τον έλεγχο μέσω της σειριακής διεπαφής. Δεν είχα την τύχη να συναντήσω ένα Roomba που έχει τρέχον υλικολογισμικό ή μητρική πλακέτα που λειτουργεί. Είτε το Roomba είναι πολύ παλιό είτε το Roomba είναι νεκρό. Βρήκα το Roomba που χρησιμοποίησα για αυτό το έργο σε έναν τοπικό κάδο διαπραγμάτευσης για 5 $. Είχε ακόμα μια αξιοπρεπή μπαταρία, αλλά μια νεκρή μητρική πλακέτα. (Βρήκα επίσης την κάμερα ιστού στο ίδιο κατάστημα ειδών για περίπου $ 5). Το μόνο που χρησιμοποιώ από το αρχικό Roomba είναι οι κινητήρες, το πλαίσιο και η μπαταρία. Δεν χρειάζεται να χρησιμοποιήσετε Roomba για αυτό το έργο. Εάν θέλετε, μπορείτε να χρησιμοποιήσετε διαφορετικούς κινητήρες, τροχούς και σασί. Απλώς θέλω να μετατρέψω ένα σκουπίδι σε κάτι χρήσιμο.

Για αυτήν την κατασκευή χρησιμοποίησα το Raspberry Pi Model 3 A+ και έναν ελεγκτή κινητήρα Riorand. Χρησιμοποιώ κώδικα από το ρομπότ Dexter Industries Browser Controlled που τροποποίησα. Η έκδοση Dexter Industries ρυθμίζει το Pi ως διακομιστή ιστού που σας επιτρέπει να ελέγχετε το ρομπότ τους (πλατφόρμα τούβλου pi) από ένα αρχείο πελάτη html που τρέχει άλλο υπολογιστή.

Έχω αλλάξει τον κωδικό χρησιμοποιώντας τις καρφίτσες GPIO και πρόσθεσα έναν τρόπο για να τερματιστεί το Pi όταν γίνεται κλικ σε ένα κουμπί / όταν πατηθεί το πλήκτρο διαφυγής στο πρόγραμμα περιήγησης. Έκανα επίσης κάποιες αλλαγές στην ιστοσελίδα ελέγχου για να επιτρέψω την προβολή μιας ροής κίνησης μέσω ενός iframe, ενώ έκανα τον έλεγχο του ρομπότ όλα μέσα σε μία σελίδα. Ρύθμισα το Pi με μια στατική IP για να φιλοξενήσει το αρχείο πελάτη, ώστε να μπορώ να συνδεθώ χρησιμοποιώντας οποιονδήποτε υπολογιστή ή συσκευή στο δίκτυό μου.

Τεκμηριώνω τη διαδικασία εδώ με την ελπίδα να δείξω πώς να δημιουργήσω ένα απλό, φθηνό ρομπότ βάσης.

Μέρη που χρησιμοποιούνται

Raspberry Pi 3 A+ (Adafruit Link) $ 30

Riorand Dual Motor Driver Controller H-Bridge (Amazon Link) $ 22

Μπαταρία 12V για κινητήρες (Amazon Link) 19 $

Μπαταρία 5V για το Raspberry Pi (Amazon Link) 10 $

Κάρτα Micro SD 8 GB (Amazon Link) $ 5

Jumper Wires (Amazon Link) $ 7

Σειρά Roomba 500

. Όλα μαζί λίγο κάτω από $ 100.

Βήμα 1: Εγκαταστήστε το Raspbian και ρυθμίστε μια στατική διεύθυνση IP

Εγκαταστήστε το Raspbian και ρυθμίστε μια στατική διεύθυνση IP
Εγκαταστήστε το Raspbian και ρυθμίστε μια στατική διεύθυνση IP

Χρησιμοποίησα το Raspbian Stretch Lite. Δεν είδα ανάγκη για επιφάνεια εργασίας, αλλά μπορείτε να εγκαταστήσετε την έκδοση επιφάνειας εργασίας αν προτιμάτε.

Θα υποθέσω ότι γνωρίζετε ήδη πώς να εγκαταστήσετε το Raspbian. Εάν χρειάζεστε βοήθεια, μπορείτε να βρείτε τον οδηγό του Raspberry Pi Foundation εδώ.

Μόλις τεθεί σε λειτουργία το Raspbian, συνδεθείτε και εκτελέστε το πρόγραμμα raspi-config.

pi@raspberrypi: su $ sudo raspi-config

Ρυθμίστε τη σύνδεση WiFi στο raspi-config

Επιλέγω

2 Επιλογές δικτύου

Επιλέγω

N2 Wi-Fi

Επιλέξτε μια χώρα, εισαγάγετε το SSID και εισαγάγετε τη φράση πρόσβασής σας

Εγκατάσταση SSH στο raspi-config

Μόλις έκανα την αρχική ρύθμιση παραμέτρων, χρησιμοποίησα το SSH για να ρυθμίσω τα πάντα ακέφαλα. (Θα μπορούσατε να το παραλείψετε αν χρησιμοποιείτε οθόνη. Easierταν ευκολότερο για μένα να κάνω αλλαγές στον κώδικα χωρίς να χρειάζεται να σταματήσω το ρομπότ και να το συνδέσω σε οθόνη.)

Επιστροφή στο κύριο μενού raspi-config

Επιλέγω

5 Επιλογές διασύνδεσης

Επιλέγω

P2 SSH

Επιλέγω

Ναί

Πίσω στο κύριο μενού raspi-config επιλέξτε

Βεβαιωθείτε ότι είστε συνδεδεμένοι στο δίκτυό σας

pi@raspberrypi: if $ ifconfig

Θα πρέπει να λάβετε μια έξοδο παρόμοια με αυτήν. (Σημειώστε τη διεύθυνση IP. Μπορεί να την χρειαστείτε αργότερα. Π.χ. 192.168.1.18)

wlan0: σημαίες = 4163 mtu 1500

inet 192.168.1.18 μάσκα δικτύου 255.255.255.0 μετάδοση 192.168.1.255 inet6 fe80:: c74f: 42ec: 8cd3: 2fda prefixlen 64 range 5.5 MiB) Σφάλματα RX 0 έπεσαν 0 υπέρβαση 0 καρέ 0 TX πακέτα 30530 byte 39740576 (37,8 MiB) Σφάλματα TX 0 έπεσαν 0 ξεπερνάνε 0 φορέας 0 συγκρούσεις 0

Βεβαιωθείτε ότι μπορείτε να συνδεθείτε στο διαδίκτυο.

pi@raspberrypi: p $ ping google.com

Θα πρέπει να λάβετε μια έξοδο παρόμοια με αυτήν.

PING google.com (216.58.194.110) 56 (84) byte δεδομένων.

64 byte από dfw06s48-in-f14.1e100.net (216.58.194.110): icmp_seq = 1 ttl = 54 time = 18.2 ms 64 bytes από dfw06s48-in-f14.1e100.net (216.58.194.110): icmp_seq = 2 ttl = 54 χρόνος = 19,4 ms 64 byte από dfw06s48-in-f14.1e100.net (216.58.194.110): icmp_seq = 3 ttl = 54 χρόνος = 23.6 ms 64 bytes από dfw06s48-in-f14.1e100.net (216.58.194.110): icmp_seq = 4 ttl = 54 time = 30,2 ms ^C --- google.com στατιστικά ping --- 4 πακέτα μεταδόθηκαν, 4 ελήφθησαν, 0% απώλεια πακέτων, χρόνος 3004ms rtt min/avg/max/mdev = 18.209/ 22.901/30.267/4.715 ms

Ρύθμιση στατικής IP

Για να μπορείτε να συνδέεστε σταθερά με το ρομπότ σας χρησιμοποιώντας την ίδια διεύθυνση στο δίκτυό σας, θα θέλετε να ρυθμίσετε μια στατική IP.

Λάβετε την τρέχουσα διεύθυνση δικτύου σας π.χ.192.168.1.18

Χρησιμοποιώ τη διεύθυνση που εκχωρήθηκε αυτόματα από το DHCP όταν το Pi συνδέθηκε στο δίκτυό μου. Μπορείτε να το αλλάξετε σε ό, τι σας αρέσει, αρκεί να ταιριάζει με το δίκτυό σας και να μην έρχεται σε διένεξη με άλλες διευθύνσεις.

Ανοίξτε το dhcp.conf σε πρόγραμμα επεξεργασίας κειμένου. (Χρησιμοποιώ νανο)

pi@raspberrypi: su $ sudo nano /etc/dhcpcd.conf

Κάντε κύλιση προς τα κάτω στο #Παράδειγμα στατικής διαμόρφωσης IP και αλλάξτε τις ακόλουθες γραμμές.

#διεπαφή eth0

#static ip_address = 192.168.11.13 #static routers = 192.168.11.1 #static domain_name_servers = 192.168.11.1 8.8.8.8

Αλλάξτε για να ταιριάζει με το δίκτυό σας και καταργήστε το # στην αρχή κάθε γραμμής.

Παράδειγμα:

διεπαφή wlan0

στατικός ip_address = 192.168.1.18 στατικοί δρομολογητές = 192.168.1.1 στατικοί_τομείς_διακομιστές_τομέα = 192.168.1.1 8.8.8.8

Αποθήκευση και έξοδος.

Επανεκκινήστε και συνδεθείτε στο Pi μέσω SSH

pi@raspberrypi: su $ sudo επανεκκίνηση

Συνδεθείτε από άλλο υπολογιστή χρησιμοποιώντας SSH. Οι χρήστες των Windows μπορούν να χρησιμοποιήσουν το PuTTY ή το Υποσύστημα των Windows για Linux (Windows10).

ian@computer: ~ $ ssh [email protected]

Εισαγάγετε τον κωδικό πρόσβασής σας (η προεπιλογή είναι βατόμουρο).

κωδικός πρόσβασης [email protected]:

Θα πρέπει τώρα να βρίσκεστε στη γραμμή εντολών του Pi.

pi@raspberrypi: ~ $

Βήμα 2: Εγκατάσταση και διαμόρφωση κίνησης

Εγκατάσταση και διαμόρφωση κίνησης
Εγκατάσταση και διαμόρφωση κίνησης

Το Motion είναι ένα πρόγραμμα που χρησιμοποιείται σε πολλά έργα κάμερας / κάμερας ασφαλείας. Το Motion έχει πολλά χαρακτηριστικά. Ωστόσο, το ρυθμίζουμε για απλή ροή βίντεο από την κάμερα web στη θύρα 8081.

Δοκιμάστε την κάμερα web σας

Συνδέστε την κάμερα web και αναφέρετε τις συνδεδεμένες συσκευές usb (mayσως χρειαστεί να κάνετε επανεκκίνηση μετά τη σύνδεση).

pi@raspberrypi: ~ $ lsusb

Θα πρέπει να έχετε μια έξοδο παρόμοια με αυτήν. Σημειώστε το Logitech C210.

Λεωφορείο 001 Συσκευή 002: ID 046d: 0819 Logitech, Inc. Κάμερα C210

Λεωφορείο 001 Συσκευή 001: Αναγνωριστικό 1d6b: 0002 Κεντρικός διανομέας Linux Foundation 2.0

Εάν η κάμερά σας δεν εμφανίζεται, ενδέχεται να μην είναι συμβατή ή να χρειαστεί να εγκαταστήσετε επιπλέον προγράμματα οδήγησης.

Εγκατάσταση κίνησης

Ενημέρωση πακέτων.

pi@raspberrypi: su $ sudo apt-get ενημέρωση

Εγκατάσταση κίνησης.

pi@raspberrypi: su $ sudo apt -get install motion -y

Μόλις εγκατασταθεί το Motion, επεξεργαστείτε το αρχείο ρυθμίσεων.

pi@raspberrypi: su $ sudo nano /etc/motion/motion.conf

Αλλάξτε τις παρακάτω γραμμές για να ταιριάζουν παρακάτω.

δαίμονας επάνω

πλάτος 640 ύψος 480 ρυθμός καρέ 100 έξοδος_εικόνες εκτός ffmpeg_output_movies off text_right stream_port 8081 stream_quality 100 stream_localhost off webcontrol_localhost off

Ξεκινήστε το Motion Daemon στο Boot

Ανοίξτε το αρχείο/etc/default/motion.

pi@raspberrypi: su $ sudo nano/etc/default/motion

Αλλάζω σε

start_motion_daemon = ναι

Αποθηκεύστε το αρχείο και βγείτε

Επανεκκίνηση

pi@raspberrypi: su $ sudo επανεκκίνηση

Μετά την επανεκκίνηση του Pi ανοίξτε το πρόγραμμα περιήγησης και βεβαιωθείτε ότι έχετε ροή βίντεο στο πρόγραμμα περιήγησης στη θύρα 8081

Παράδειγμα:

192.168.1.18:8081

Αντιμετώπιση προβλημάτων του Motion Daemon

Αντιμετώπισα προβλήματα με το να ξεκινήσει ο δαίμονας κίνησης κατά την εκκίνηση ενώ δοκίμαζα διαφορετικές επιλογές στο αρχείο motion.conf.

Εάν ξεκινήσετε την κίνηση πριν από τον δαίμονα κίνησης στο Raspian Stretch, πιθανότατα θα αντιμετωπίσετε προβλήματα για να ξεκινήσει αργότερα κατά την εκκίνηση. Η εκτέλεση "sudo motion" χωρίς ρύθμιση παραμέτρων του δαίμονα για να το κάνει, δημιουργεί πρώτα τον κατάλογο/var/log/motion χωρίς να χορηγείται άδεια εγγραφής στον χρήστη.

Βήμα 3: Εγκαταστήστε το Apache και ρυθμίστε τη σελίδα ελέγχου Web

Εγκαταστήστε τη Apache και ρυθμίστε τη σελίδα ελέγχου Web
Εγκαταστήστε τη Apache και ρυθμίστε τη σελίδα ελέγχου Web

Το Apache είναι ο διακομιστής Ιστού για την ιστοσελίδα ελέγχου του ρομπότ. Θα αντικαταστήσουμε το προεπιλεγμένο αρχείο Apache index.html με ένα αρχείο που έχει ληφθεί από το github. Θα αλλάξετε επίσης μερικές γραμμές κώδικα για να εμφανίσετε τη ροή βίντεο κίνησης και θα ορίσετε πού θα στείλετε τις εντολές για τον έλεγχο του ρομπότ.

Εγκαταστήστε το Apache και το Git

pi@raspberrypi: su $ sudo apt -get install apache2 git -y

Μόλις εγκατασταθούν το apache και το git, κατεβάστε τα αρχεία.

pi@raspberrypi: cl $ git clone

Ανοίξτε τον κατάλογο του roombarobot.

pi@raspberrypi: c $ cd roombarobot

Αντικαταστήστε το αρχείο index.html στο φάκελο/var/www/html με το αρχείο index.html στο/home/pi/roombarobot

pi@raspberrypi: ~/roombarobot $ sudo cp index.html/var/www/html

Επεξεργαστείτε το αρχείο index.html

Ανοίξτε το αρχείο index.html με έναν επεξεργαστή κειμένου.

pi@raspberrypi:/roombarobot $ sudo nano /var/www/html/index.html

Εντοπίστε αυτές τις δύο γραμμές

var host = "ws: // YOURIPADDRESS: 9093/ws";

Αλλάξτε το "YOURIPADDRESS" στη στατική διεύθυνση IP που έχετε ρυθμίσει στο Βήμα 1 και αποθηκεύστε το αρχείο.

Παράδειγμα:

var host = "ws: //192.168.1.18: 9093/ws";

Σε άλλο υπολογιστή, ανοίξτε ένα πρόγραμμα περιήγησης και εισαγάγετε τη διεύθυνση IP του Pi σας. Θα πρέπει να δείτε την ιστοσελίδα ελέγχου με ένα πλαίσιο στα αριστερά, ροή βίντεο από την κάμερα και τα κουμπιά ελέγχου ιστού στα δεξιά.

Βήμα 4: Ρύθμιση και δοκιμή του κώδικα

Ρυθμίστε και δοκιμάστε τον κώδικα
Ρυθμίστε και δοκιμάστε τον κώδικα

Αυτός ο κώδικας είναι γραμμένος σε python και απαιτεί τη βιβλιοθήκη ανεμοστρόβιλου. Ο κώδικας χρησιμοποιεί τη βιβλιοθήκη για τη ρύθμιση ενός διακομιστή για την ακρόαση εντολών από την ιστοσελίδα ελέγχου μέσω υποδοχών ιστού στη θύρα 9093.

Εγκαταστήστε το PIP και τη βιβλιοθήκη Tornado

Εγκαταστήστε το pip

pi@raspberrypi: su $ sudo apt-get install python-pip

Εγκαταστήστε τη βιβλιοθήκη ανεμοστρόβιλου

pi@raspberrypi: su $ sudo pip install tornado

Ξεκινήστε το πρόγραμμα Roombabot και δοκιμάστε τη σύνδεση

Ξεκινήστε το πρόγραμμα roombabot.py

pi@raspberrypi: su $ sudo python /home/pi/roombarobot/roombabot.py

Μόλις τρέξει, θα πρέπει να δείτε "Έτοιμο" στο τερματικό. Ανοίξτε την ιστοσελίδα ελέγχου σε ένα πρόγραμμα περιήγησης και κάντε κλικ στη σύνδεση. Στη συνέχεια, κάντε κλικ σε οποιοδήποτε από τα κουμπιά κατεύθυνσης στη σελίδα. Μπορείτε επίσης να χρησιμοποιήσετε τα πλήκτρα βέλους στο πληκτρολόγιό σας.

Θα πρέπει να δείτε μια έξοδο στο τερματικό παρόμοια με αυτήν.

Ετοιμος

η σύνδεση άνοιξε… η σύνδεση άνοιξε… ελήφθη: u 8 Τρέξιμο Εμπρός σύνδεση άνοιξε… ελήφθη: l 6 Στρίβοντας αριστερά η σύνδεση άνοιξε… ελήφθη: d 2 Λειτουργεί Η αντίστροφη σύνδεση άνοιξε… ελήφθη: r 4 Στρίβοντας δεξιά

Πατήστε ctrl+c για να σταματήσετε το πρόγραμμα.

Μόλις τελειώσετε τη δοκιμή απενεργοποίησης του Pi.

pi@raspberrypi: su $ sudo poweroff

Σφάλματα

Παρατήρησα ένα πρόβλημα με το κουμπί τερματισμού λειτουργίας στην ιστοσελίδα ελέγχου. Μερικές φορές το κουμπί τερματισμού δεν κάνει τίποτα όταν πατηθεί ή πατηθεί. Δεν κατάφερα να καταλάβω τι προκαλεί αυτό, αλλά υπάρχει μια λύση. Εάν θέλετε να απενεργοποιήσετε το ρομπότ και το κουμπί τερματισμού δεν λειτουργεί, φορτώστε ξανά τη σελίδα, κάντε κλικ / πατήστε το κουμπί σύνδεσης και, στη συνέχεια, κάντε κλικ / πατήστε το κουμπί τερματισμού. Θα πρέπει να απενεργοποιηθεί.

Βήμα 5: Συναρμολόγηση

Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση

Όπως αναφέρθηκε προηγουμένως, δεν χρειάζεται να χρησιμοποιήσετε Roomba για αυτό το έργο. Οτιδήποτε με δύο κινητήρες, δύο τροχούς και ένα πλαίσιο θα λειτουργούσε. Πήρα το Roomba χωριστά και αφαίρεσα τα πάντα εκτός από τις μονάδες τροχού και την μπαταρία.

Ενότητες τροχού

Οι τροχοί και οι κινητήρες του Roomba βρίσκονται μαζί σε μια αφαιρούμενη μονάδα. Κάθε μονάδα έχει ένα μπλε εξωτερικό περίβλημα που περιέχει τον κινητήρα, το κιβώτιο ταχυτήτων, τον τροχό, το ελατήριο ανάρτησης και τον πίνακα διασύνδεσης.

Πίνακας διασύνδεσης

Κάθε πλακέτα διασύνδεσης έχει έξι καλώδια που τρέχουν προς αυτήν. Υπάρχουν δύο καλώδια (Κόκκινο [+], Μαύρο [-]) που περιστρέφουν τον κινητήρα, ένα καλώδιο δεδομένων για αισθητήρα εφέ αίθουσας, ένα σύρμα για τον διακόπτη πτώσης τροχού, ένα καλώδιο 5V και ένα σύρμα GND για την τροφοδοσία του αισθητήρα. Θα πρέπει να διαχωρίσετε τη μονάδα για να αποκτήσετε πρόσβαση στην πλακέτα διεπαφής. Αφαίρεσα τα πάντα πίσω στον κινητήρα και κόλλησα νέα καλώδια [+] και [-] στον κινητήρα (δείτε φωτογραφίες). Είναι στο χέρι σας αν θέλετε να διατηρήσετε τους αισθητήρες ή όχι.

Ελατήρια ανάρτησης

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

Καλωδίωση των μοτέρ στον ελεγκτή κινητήρα

Τα μοτέρ είναι στραμμένα το ένα απέναντι από το άλλο. Αυτό σημαίνει ότι για να οδηγήσει το Roomba προς τα εμπρός, ο ένας κινητήρας θα πρέπει να περιστρέφεται προς τα εμπρός ενώ ο άλλος περιστρέφεται προς τα πίσω. Δεν το σκέφτηκα πολύ μέχρι να τα συνδέσω όλα. Κατέληξα να γράφω μόνο τον κώδικα για το πώς συνδέω αρχικά τα μοτέρ. Αυτό ήταν ένα ευτυχές ατύχημα γιατί κάθε φορά που το Raspberry Pi ενεργοποιείται/απενεργοποιείται, υπάρχει έξοδος τάσης στους ακροδέκτες GPIO. Με τον τρόπο που έχω τα πράγματα ενσύρματα, το Roomba περιστρέφεται μέχρι να ξεκινήσει το Raspberry Pi (περίπου τριάντα δευτερόλεπτα) και περιστρέφεται όταν κλείνει μέχρι να διακοπεί η παροχή ρεύματος. Αν συνδεθεί διαφορετικά, θα μπορούσε δυνητικά να κυλήσει εμπρός / πίσω, κάτι που θα ήταν ενοχλητικό. Σκοπεύω να το διορθώσω τελικά με έναν απλό διακόπτη για τον ελεγκτή κινητήρα.

Συνδέστε τα μοτέρ και τη μπαταρία στον ελεγκτή κινητήρα

Ισχύς - - - - - - - - - - - - - - - - 12V [+] - - - - - - - - - - - - - - Μπαταρία Roomba [+]

Κινητήρας 2- - - - - - - - - - - - - - - - Μαύρο - - - - - - - - - - - - - - Αριστερό μοτέρ [-] Κινητήρας 2- - - - - - - - - - - - - - - - Κόκκινο - - - - - - - - - - - - - - - Αριστερό μοτέρ [+] Κινητήρας 1- - - - - - - - - - - - - - - Μαύρο - - - - - - - - - - - - - -Σωστό μοτέρ [-] Κινητήρας 1- - - - - - - - - - - - - - - - Κόκκινο - - - - - - - - - - - - - - Δεξί κινητήρα [+] GND- - - - - - - - - - - - - - - - - - 12V [-] - - - - - - - - - - - - - - - Μπαταρία Roomba [-]

Καλωδίωση του ελεγκτή κινητήρα στο Raspberry Pi

Χειριστήριο καρφιτσών ελεγκτή κινητήρα (δείτε φωτογραφίες) Καρφίτσες Raspberry Pi

GND- - - - - - - - - - - - - - - - - - Μαύρο- - - - - - - - - - - - - - GND PWM 2- - - - - - - - - - - - - - - - Μπλε - - - - - - - - - - - - - -GPIO 18 DIR 2- - - - - - - - - - - - - - - - - - Πράσινο - - - - - - - - - - - - - -GPIO 23 PWM 1- - - - - - - - - - - - - - - - - Κίτρινο - - - - - - - - - - - - - - -GPIO 24 DIR 1- - - - - - - - - - - - - - - - - Πορτοκαλί - - - - - - - - - - - - - -GPIO 25 5V - - - - - - - - - - - - - - - - - - Κόκκινου - - - - - - - - - - - - - - -5V

Τοποθέτηση των Ηλεκτρονικών

Δεν υπάρχουν πολλά που συνδυάζουν τα πάντα. Ξεγύμνωσα το roomba στο πλαίσιο του. Με το κάλυμμα αφαιρεμένο, μπορείτε εύκολα να αποκολλήσετε τις υπάρχουσες πλαστικές προεξοχές και να ανοίξετε τρύπες για να τοποθετήσετε τα ηλεκτρονικά. Υπάρχουν υπάρχουσες θύρες για τη λειτουργία καλωδίων από τους κινητήρες. Εάν χρησιμοποιείτε την απόθεμα μπαταρίας Roomba, υπάρχει ήδη μια διακοπή για πρόσβαση στους ακροδέκτες της μπαταρίας.

Μπαταρίες

Χρησιμοποίησα ξεχωριστές μπαταρίες για το Raspberry Pi και τον ελεγκτή κινητήρα. Η μπαταρία του Pi είναι μόνο μια μπαταρία 5V που χρησιμοποιείται για την ενίσχυση των κινητών τηλεφώνων. Για τον ελεγκτή κινητήρα χρησιμοποίησα την αρχική μπαταρία Roomba που συνοδεύει. Οι ακροδέκτες της μπαταρίας δεν φέρουν σήμανση, οπότε είναι καλύτερο να ελέγξετε την τάση με ένα βολτόμετρο πριν το συνδέσετε στον ελεγκτή κινητήρα. Για να συνδέσω τα καλώδια στη μπαταρία Roomba, χρησιμοποίησα τέσσερις μαγνήτες νεοδυμίου (δείτε φωτογραφίες). Κόλλησα δύο από τους μαγνήτες στα καλώδια και τους άλλους δύο κόλλησα στους ακροδέκτες της μπαταρίας. Η συγκόλληση απομαγνητίζει τους μαγνήτες. Ωστόσο, η επίστρωση στο εξωτερικό μπορεί ακόμα να προσκολληθεί στους μαγνήτες στους ακροδέκτες και να μεταφέρει ηλεκτρική ενέργεια. Αυτό καθιστά τη σύνδεση και την αποσύνδεση της μπαταρίας ένα κομμάτι κέικ.

Δοκιμές

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

Συνδεθείτε και ξεκινήστε το πρόγραμμα roombabot.py

pi@raspberrypi: su $ sudo python /home/pi/roombarobot/roombabot.py

Μεταβείτε στη σελίδα ελέγχου ιστού και δοκιμάστε το. Εάν όλα είναι σωστά συνδεδεμένα σωστά, οι τροχοί πρέπει να περιστρέφονται προς την αντίστοιχη κατεύθυνση όταν κάνετε κλικ στα κουμπιά / πατήσετε τα πλήκτρα βέλους (μην ξεχάσετε να κάνετε κλικ στη σύνδεση).

Βήμα 6: Εκκίνηση του κώδικα Python κατά την εκκίνηση / Τέλος επάνω

Εκκίνηση του κώδικα Python κατά την εκκίνηση / ολοκλήρωση
Εκκίνηση του κώδικα Python κατά την εκκίνηση / ολοκλήρωση
Εκκίνηση του κώδικα Python κατά την εκκίνηση / ολοκλήρωση
Εκκίνηση του κώδικα Python κατά την εκκίνηση / ολοκλήρωση

Το τελευταίο πράγμα που πρέπει να κάνουμε είναι να πούμε στον Raspbian να ξεκινήσει το πρόγραμμα python κατά την εκκίνηση. Για να γίνει αυτό, θα κάνουμε ένα σενάριο και θα το προγραμματίσουμε να τρέξει κατά την επανεκκίνηση χρησιμοποιώντας το crontab.

Δημιουργήστε το Script

Δημιουργήστε ένα νέο αρχείο δέσμης ενεργειών που ονομάζεται startrobot.sh στον κατάλογο χρήστη pi

pi@raspberrypi: su $ sudo nano startrobot.sh

Αντιγράψτε τις ακόλουθες γραμμές στο αρχείο

#!/bin/sh

#startrobot.sh cd /cd /home /pi /roombarobot sudo python roombabot.py cd /

Αποθηκεύστε το αρχείο και βγείτε

Κάντε το αρχείο startrobot.sh εκτελέσιμο

pi@raspberrypi: su $ sudo chmod 755 startrobot.sh

Δοκιμάστε το (Πατήστε ctrl + c για διακοπή)

pi@raspberrypi: sh $ sh startrobot.sh

Επεξεργαστείτε το αρχείο crontab

pi@raspberrypi: su $ sudo crontab -e

Προσθέστε την ακόλουθη γραμμή στο κάτω μέρος του αρχείου

# m h dom mon dow εντολή

@reboot sh /home/pi/startrobot.sh

Αποθήκευση και έξοδος

Το πρόγραμμα roombabot.py θα πρέπει τώρα να ξεκινά όταν γίνει επανεκκίνηση του Pi ή ενεργοποιηθεί κύκλος λειτουργίας.

Τελειώνω

Σε αυτό το σημείο θα πρέπει να έχετε ένα λειτουργικό ρομπότ που μπορείτε να ελέγξετε χρησιμοποιώντας το πρόγραμμα περιήγησης από οποιαδήποτε συσκευή στο δίκτυό σας. Το έχω πάει λίγο παραπάνω από την αρχική κατασκευή και ρύθμιση ενός VPN για να μπορώ να έχω πρόσβαση στο ρομπότ όταν λείπω από το σπίτι. Σκοπεύω να κάνω κάποιες επιπλέον αλλαγές στο μέλλον. Σκοπεύω να το κάνω αυτόνομο και ενδεχομένως να ακολουθήσω την κίνηση ενώ θα είμαι ακόμα σε θέση να αναλάβω τους ελέγχους όταν θέλω.

Συνιστάται: