Πίνακας περιεχομένων:
- Βήμα 1: Εγκαταστήστε το Raspbian και ρυθμίστε μια στατική διεύθυνση IP
- Βήμα 2: Εγκατάσταση και διαμόρφωση κίνησης
- Βήμα 3: Εγκαταστήστε το Apache και ρυθμίστε τη σελίδα ελέγχου Web
- Βήμα 4: Ρύθμιση και δοκιμή του κώδικα
- Βήμα 5: Συναρμολόγηση
- Βήμα 6: Εκκίνηση του κώδικα Python κατά την εκκίνηση / Τέλος επάνω
Βίντεο: Ρομπότ Roomba με ελεγχόμενο πρόγραμμα περιήγησης με το Raspberry Pi Model 3 A+: 6 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:36
ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ
Αυτό το 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 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 είναι ο διακομιστής Ιστού για την ιστοσελίδα ελέγχου του ρομπότ. Θα αντικαταστήσουμε το προεπιλεγμένο αρχείο 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 κατά την εκκίνηση / Τέλος επάνω
Το τελευταίο πράγμα που πρέπει να κάνουμε είναι να πούμε στον 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 για να μπορώ να έχω πρόσβαση στο ρομπότ όταν λείπω από το σπίτι. Σκοπεύω να κάνω κάποιες επιπλέον αλλαγές στο μέλλον. Σκοπεύω να το κάνω αυτόνομο και ενδεχομένως να ακολουθήσω την κίνηση ενώ θα είμαι ακόμα σε θέση να αναλάβω τους ελέγχους όταν θέλω.
Συνιστάται:
Τηλεχειριστήριο βασισμένο σε πρόγραμμα περιήγησης Arduino (linux): 9 βήματα (με εικόνες)
Τηλεχειριστήριο βασισμένο σε πρόγραμμα περιήγησης Arduino (linux): Έχουμε παιδιά. Μου αρέσουν πολύ αλλά συνεχίζουν να κρύβουν το τηλεχειριστήριο για τον δορυφόρο και την τηλεόραση όταν ανοίγουν τα κανάλια των παιδιών. Μετά από αυτό που συνέβη σε καθημερινή βάση για αρκετά χρόνια, και αφού η αγαπημένη μου γυναίκα μου επέτρεψε να έχω
Αποστολή δεδομένων στην πλατφόρμα AskSensors IoT από το πρόγραμμα περιήγησης στο Web: 6 βήματα
Αποστολή δεδομένων στην πλατφόρμα AskSensors IoT από το πρόγραμμα περιήγησης στο Web: Έχω δημοσιεύσει πρόσφατα έναν οδηγό που δείχνει έναν οδηγό βήμα προς βήμα για τη σύνδεση ενός κόμβου MSPU ESP8266 με την πλατφόρμα IoT AskSensors. Έλαβα κάποια σχόλια από άτομα που ενδιαφέρονται περισσότερο για την πλατφόρμα AskSensors, αλλά δεν έχουν στο χέρι τους ένα MCU κόμβου. Αυτό εγώ
ESP8266 Παρακολούθηση θερμοκρασίας Nodemcu χρησιμοποιώντας DHT11 σε τοπικό διακομιστή ιστοσελίδων - Λάβετε θερμοκρασία δωματίου και υγρασία στο πρόγραμμα περιήγησής σας: 6 βήματα
ESP8266 Παρακολούθηση θερμοκρασίας Nodemcu χρησιμοποιώντας DHT11 σε τοπικό διακομιστή ιστοσελίδων | Λάβετε θερμοκρασία δωματίου και υγρασία στο πρόγραμμα περιήγησής σας: Γεια σας παιδιά σήμερα θα κάνουμε υγρασία & σύστημα παρακολούθησης θερμοκρασίας χρησιμοποιώντας ESP 8266 NODEMCU & Αισθητήρας θερμοκρασίας DHT11. Η θερμοκρασία και η υγρασία θα ληφθούν από τον αισθητήρα DHT11 & μπορεί να δει σε ένα πρόγραμμα περιήγησης ποια ιστοσελίδα θα διαχειριστεί
Ρομπότ ελεγχόμενο από RC στο XLR8! Εκπαιδευτικό ρομπότ: 5 βήματα
Ρομπότ ελεγχόμενο από RC στο XLR8! Education Robot: Γεια, σε αυτό το άρθρο, θα σας δείξει πώς να φτιάξετε ένα βασικό ρομπότ. Η λέξη "Robot" σημαίνει κυριολεκτικά "Slave" ή έναν «εργάτη». Χάρη στις εξελίξεις στην Τεχνητή Νοημοσύνη, τα ρομπότ δεν είναι πλέον μόνο μέρος του Sci-Fi του Issac Asimov
ESP8266 NodeMCU Access Point (AP) για διακομιστή Web με αισθητήρα θερμοκρασίας DT11 και θερμοκρασία εκτύπωσης και υγρασία στο πρόγραμμα περιήγησης: 5 βήματα
ESP8266 NodeMCU Access Point (AP) για διακομιστή Ιστού με αισθητήρα θερμοκρασίας DT11 και θερμοκρασία εκτύπωσης και υγρασία στο πρόγραμμα περιήγησης: Γεια σας παιδιά στα περισσότερα έργα χρησιμοποιούμε το ESP8266 και στα περισσότερα έργα χρησιμοποιούμε το ESP8266 ως διακομιστή ιστού, ώστε να μπορείτε να έχετε πρόσβαση στα δεδομένα οποιαδήποτε συσκευή μέσω wifi με πρόσβαση στον διακομιστή ιστοσελίδων που φιλοξενείται από το ESP8266, αλλά το μόνο πρόβλημα είναι ότι χρειαζόμαστε έναν δρομολογητή εργασίας για