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

Ρομπότ απομακρυσμένης αναζήτησης και διάθεσης Leap Motion Controlled: 5 βήματα
Ρομπότ απομακρυσμένης αναζήτησης και διάθεσης Leap Motion Controlled: 5 βήματα

Βίντεο: Ρομπότ απομακρυσμένης αναζήτησης και διάθεσης Leap Motion Controlled: 5 βήματα

Βίντεο: Ρομπότ απομακρυσμένης αναζήτησης και διάθεσης Leap Motion Controlled: 5 βήματα
Βίντεο: How to use AT&T CL82407 Cordless Smart Call Blocker Answering System - Robojax 2024, Νοέμβριος
Anonim
Image
Image

Ως μέρος της συμμετοχής μου για το Leap Motion #3D Jam, ήμουν ενθουσιασμένος που δημιούργησα αυτό το ασύρματο ρομπότ Search/Rescue ελεγχόμενης χειρονομίας βασισμένο στο Raspberry Pi. Αυτό το έργο καταδεικνύει και παρέχει ένα μινιμαλιστικό παράδειγμα του τρόπου με τον οποίο μπορούν να χρησιμοποιηθούν ασύρματες 3D χειρονομίες για τον έλεγχο και την αλληλεπίδραση με φυσικά πράγματα.

Δεδομένου ότι αυτό το έργο χρησιμοποιεί το δημοφιλές πλαίσιο WebIOPi IoT στο Raspberry Pi, μπορεί πολύ εύκολα να επεκταθεί ώστε να ελέγχει και να διασυνδέει τυπικά κάθε αισθητήρα/υλικό/ηλεκτρονικά που μπορεί να διασυνδεθεί με το Raspberry Pi.

Ορισμένα πιθανά σενάρια που φαντάζομαι ότι οι συνάδελφοι Makers μπορούν να χρησιμοποιήσουν αυτό το έργο ως βασικό τους πλαίσιο για να βασιστούν:

1. Ρομπότ απομάκρυνσης απομακρυσμένης χειρονομίας (χρησιμοποιώντας ίσως βραχίονα OWI κλπ)

2. Απομακρυσμένη χειρουργική επέμβαση από γιατρό

3. Διαδραστικά εκθέματα ή εκπαιδευτικό περιεχόμενο με ελεγχόμενη χειρονομία

4. Άπειρες άλλες δυνατότητες/ενσωματώσεις (περιορίζομαι από τη φαντασία μου:))

Βήμα 1: Επισκόπηση

Κατανόηση του πλαισίου WebIOPi
Κατανόηση του πλαισίου WebIOPi

Αυτό το έργο επιτρέπει σε έναν χρήστη να ελέγχει διαδραστικά ένα ρομπότ χρησιμοποιώντας τρισδιάστατες χειρονομίες μέσω μιας άλμας κίνησης που συνδέεται με έναν υπολογιστή.

Το Raspberry Pi στο Robot διαθέτει επίσης μια κάμερα USB που μεταδίδει ζωντανό βίντεο πίσω στο χρήστη, το οποίο μπορεί να δει σε ένα πρόγραμμα περιήγησης στο Web. Η βιβλιοθήκη LeapMotion JavaScript που είναι ενσωματωμένη σε αυτήν την Ιστοσελίδα επεξεργάζεται τις χειρονομίες και στέλνει σήματα ελέγχου πίσω στο Ρομπότ, το οποίο στη συνέχεια κινείται ανάλογα.

Το Raspberry Pi στο Robot έχει διαμορφωθεί ως Hotspot (λειτουργία AP) με τη βοήθεια του dongle USB WiFi που είναι συνδεδεμένο σε αυτό. Αυτό επιτρέπει στους υπολογιστές/συσκευές μας να συνδέονται απευθείας με το Raspberry Pi και να ελέγχουν μέσω μιας ιστοσελίδας. Το Raspberry Pi μπορεί επίσης να διαμορφωθεί για να λειτουργεί σε λειτουργία πελάτη, όπου συνδέεται ασύρματα με το AP του δρομολογητή WiFi στο οποίο είναι ήδη συνδεδεμένοι οι υπολογιστές/συσκευές.

Αυτό το έργο βασίζεται στο WebIOPi (https://webiopi.trouch.com/) που είναι ένα δημοφιλές πλαίσιο IoT για το Raspberry Pi. Χρησιμοποιώντας το πακέτο Weaved IoT Kit (ή μέσω προώθησης θύρας στο Router), αυτό το Robot μπορεί να ελεγχθεί από απόσταση ή/και να λάβει δεδομένα από οποιοδήποτε μέρος του κόσμου.

Τα ακόλουθα στοιχεία χρησιμοποιήθηκαν για την κατασκευή του έργου:

  1. Raspberry Pi B (100% προς τα εμπρός συμβατό με το Raspberry Pi B+)
  2. Κάμερα USB Logitech (ελάχιστα 1,3 Megapixel)
  3. L293D Motor Driver IC και Breakout Shield
  4. USB WiFi Dongle για Raspberry Pi
  5. USB Power Bank για Raspberry Pi
  6. Εξωτερική μπαταρία 4V/1.5A για οδήγηση των Robot Motors

Βήμα 2: Κατασκευή έργου

Εγκατάσταση WebIOPi, εγγραφή προσαρμοσμένου κώδικα και διαμόρφωση κάμερας Web:

Οι οδηγίες εγκατάστασης του WebIoPi, τα βασικά πλαίσια και πολλά παραδείγματα είναι διαθέσιμα στη σελίδα του έργου εδώ:

Προκειμένου οι λειτουργίες LeapMotion να ενσωματωθούν στην ιστοσελίδα να ενεργοποιήσουν ενέργειες GPIO στο Raspberry Pi, χρησιμοποιήσαμε μακροεντολές, λεπτομέρειες των οποίων βρίσκονται εδώ:

Έχω γράψει επίσης κάποιες σημειώσεις έναρξης για την παραπάνω διαδικασία που μπορείτε να βρείτε συνημμένες.

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

Χρησιμοποιούμε το MJPG-Streamer για να μεταδώσουμε τη ροή βίντεο από το Raspberry Pi πίσω στο πρόγραμμα περιήγησης μέσω της κάμερας Web USB που είναι συνδεδεμένη στο Pi. Ακολουθήστε τις οδηγίες εγκατάστασης και κατασκευής που αναφέρονται εδώ https://blog.miguelgrinberg.com/post/how-to-build-… για να δουλέψετε το MJPG-Streamer στο Raspberry Pi.

Διαμόρφωση του Raspberry Pi ως AP/Hotspot

Για να ρυθμίσετε το Raspberry Pi ως Hostpot, ακολουθήστε τις οδηγίες που παρέχονται εδώ: https://elinux.org/RPI-Wireless-Hotspot. Διαμόρφωσα τη στατική IP του Raspberry Pi ως 192.168.42.1, κάτι που πληκτρολογήσαμε στο πρόγραμμα περιήγησης μόλις το Pi ξεκινήσει σε λειτουργία AP.

Η υπηρεσία WebIOPi, MJPG-Streamer και WiFi hotspot έχει ρυθμιστεί ώστε να εκτελείται αυτόματα κατά την εκκίνηση και αυτό μας επιτρέπει να ανοίξουμε απευθείας ένα πρόγραμμα περιήγησης στο Web και να συνδεθούμε με το Robot μετά την εκκίνηση. Το αρχείο rc.local που διατίθεται στο repo χρησιμοποιείται για την εκτέλεση της κάμερας Web κατά την εκκίνηση.

Βήμα 3: Οδηγίες κατασκευής/καλωδίωσης

4 GPIO του Raspberry Pi και συγκεκριμένα GPIO 9, 11, 23 & 24 συνδέονται με το L293D Motor Driver IC, το οποίο κινεί τους κινητήρες ανάλογα, αφού λάβει αιτήματα μακροεντολών από την Ιστοσελίδα που εξυπηρετείται από το πλαίσιο Webiopi. Το dongle USB WiFi και η κάμερα USB Logitech συνδέονται με τις 2 θύρες USB που είναι διαθέσιμες στο Raspberry Pi. Μια τράπεζα 5V 4000 Mah Power παρέχει την κύρια ισχύ στο Pi. Μια μπαταρία 4V 1.5A Lead Acid χρησιμοποιείται για την οδήγηση των κινητήρων.

Σημείωση: Δεδομένου ότι το μέγιστο ρεύμα εξόδου της τράπεζας ισχύος που χρησιμοποίησα ήταν ένα ελάχιστα 1000 Mah, έπρεπε να χρησιμοποιήσω την εξωτερική μπαταρία μολύβδου οξέος για να οδηγήσω τους κινητήρες. Εάν διαθέτετε τράπεζα ισχύος που δίνει> = 2000Mah, μπορείτε να οδηγήσετε απευθείας τους κινητήρες από τη ράγα 5V στο Pi (δεν θα το συνιστούσα αυτό για κινητήρες που πεινούν)

Οι 3 βασικές υποενότητες του έργου LeapMotion Javascript API, WebIOPi και MJPG-Streamer και η βασική λειτουργία/ρύθμιση τους περιγράφονται συνοπτικά παρακάτω.

Βήμα 4: Κατανόηση του πλαισίου WebIOPi

Το frontend που εμφανίζεται στο πρόγραμμα περιήγησης είναι γραμμένο σε HTML (Όνομα αρχείου: index.html) & Javascript ενώ το backend που οδηγεί τα GPIOs είναι γραμμένο σε Python (Όνομα αρχείου: script.py). Λεπτομερείς σημειώσεις για τη δημιουργία ενός προσαρμοσμένου WebApp με βάση το πλαίσιο WebIOPi επισυνάπτονται ως σημειώσεις στο repo του Bitbucket.

Οι προσαρμοσμένες μακροεντολές που ορίζονται στο σενάριο Python μπορούν να ενεργοποιηθούν από το αρχείο HTML.

Π.χ.: webiopi (). CallMacro ("go_forward"); Αυτή είναι μια προσαρμοσμένη κλήση σε μια μακροεντολή go_forward που ορίζεται στο σενάριο Python και χειρίζεται τη διαδικασία οδήγησης και των δύο κινητήρων προς τα εμπρός.

Η ιεραρχία καταλόγου του τόπου αποθήκευσης των αρχείων στο Pi εμφανίζεται στην συνημμένη εικόνα.

Ο φάκελος Robot περιέχει αυτούς τους υποφακέλους:

  • html: περιέχει index.html
  • python: που περιέχει script.py
  • mjpg-streamer-r63: περιέχει αρχεία δημιουργίας και εκτελέσιμα για την εκτέλεση της κάμερας Web

MJPG-Streamer: Η ζωντανή ροή βίντεο από την κάμερα USB εκτελείται στη θύρα 8080 του Pi από προεπιλογή. Για να δείτε χειροκίνητα τη ροή, μεταβείτε στο RASPBERRYPI_IP: 8080 στο πρόγραμμα περιήγησης μετά την ενεργοποίηση της κάμερας Web.

Κωδικός LeapMotion:

Αποσπάσματα κώδικα από τα παραδείγματα που παρέχονται στο SDK του LeapMotion ενσωματώθηκαν στο αρχείο index.html. Το αρχείο leap.js του LeapMotion πρέπει να προστεθεί στον φάκελο html στον κατάλογο έργου στο Raspberry Pi.

Η παράμετρος palmPosition που αποστέλλεται από το LeapMotion χρησιμοποιείται για να καθορίσει ποια μακροεντολή θα ενεργοποιηθεί στο Raspberry Pi.

Βήμα 5: Εκτέλεση του έργου

Απλώς ενεργοποιήστε το Raspberry Pi και περιμένετε περίπου ένα λεπτό. Θα δείτε ένα νέο hotpsot RaspberryPi να εμφανίζεται. Συνδεθείτε σε αυτό το hotspot και ανοίξτε αυτήν τη στατική διεύθυνση IP στο πρόγραμμα περιήγησης: 192.168.42.1:8000. Το 8000 είναι η προεπιλεγμένη θύρα του WebIOPi.

Το Raspberry Pi μπορεί επίσης να διαμορφωθεί ώστε να συνδέεται στο τοπικό δίκτυο WiFi ως in clien αντί να εμφανίζεται ως hotspot. Στη συνέχεια, θα πρέπει να προσδιορίσετε τη δυναμική IP που έχει εκχωρηθεί στο Raspberry Pi από το δρομολογητή και, στη συνέχεια, να την εμφανίσετε στο πρόγραμμα περιήγησης για να παίξετε με το Bot.

Μπορείτε να αφήσετε ένα σχόλιο εάν χρειάζεστε βοήθεια ή έχετε απορίες σχετικά με το έργο. Καλό Άλμα!

Έχουν επισυναφθεί ολόκληροι οι πηγαίοι κωδικοί. Μπορείτε να αφήσετε ένα σχόλιο εάν χρειάζεστε βοήθεια σε οποιοδήποτε μέρος του κτιρίου του έργου. Καλό Άλμα!

Συνιστάται: