Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Διασύνδεση επιταχυνσιόμετρου με Raspberry Pi
- Βήμα 2: Διασύνδεση κουμπιού με Raspberry Pi
- Βήμα 3: Ανάπτυξη Python Script για τον σειριακό έλεγχο του δείκτη ποντικιού
- Βήμα 4: Ανάπτυξη Python Script για τον έλεγχο του δείκτη ποντικιού μέσω Bluetooth
- Βήμα 5: Ενσωμάτωση επιταχυνσιόμετρου και κουμπιού στο γάντι
Βίντεο: [Wearable Mouse] Wearable Mouse Controller βασισμένο σε Bluetooth για Windows 10 και Linux: 5 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:33
Έφτιαξα ένα χειριστήριο ποντικιού που βασίζεται στο Bluetooth και μπορεί να χρησιμοποιηθεί για τον έλεγχο του δείκτη του ποντικιού και την εκτέλεση λειτουργιών που σχετίζονται με το ποντίκι με υπολογιστή, εν κινήσει, χωρίς να αγγίξει καμία επιφάνεια. Το ηλεκτρονικό κύκλωμα, το οποίο είναι ενσωματωμένο σε γάντι, μπορεί να χρησιμοποιηθεί για την παρακολούθηση των χειρονομιών μέσω επιταχυνσιόμετρου και που μπορεί να μεταφραστεί στην κίνηση του δείκτη του ποντικιού. Αυτή η συσκευή είναι επίσης διασυνδεδεμένη με ένα κουμπί που επαναλαμβάνει το κλικ του αριστερού κουμπιού. Η συσκευή μπορεί να συνδεθεί σειριακά στον υπολογιστή (μέσω USB) ή ασύρματα μέσω σύνδεσης Bluetooth. Το Bluetooth παρέχει μια ισχυρή και καθολική ασύρματη επικοινωνία μεταξύ της συσκευής κεντρικού υπολογιστή και αυτού του φορητού ποντικιού. Καθώς το Bluetooth είναι ευρέως διαθέσιμο και ενσωματώνεται με σχεδόν όλους τους προσωπικούς φορητούς υπολογιστές, η περίπτωση χρήσης μιας τέτοιας φορητής συσκευής είναι ευρεία. Χρησιμοποιώντας το Raspberry Pi, το οποίο είναι μια κοινά χρησιμοποιούμενη πλατφόρμα ανάπτυξης για διάφορα έργα, η διασύνδεση διαφορετικών αισθητήρων και η ανάπτυξη μιας τέτοιας συσκευής είναι εύκολη και επεκτάσιμη. Το γάντι μπορεί να αντικατασταθεί με οποιοδήποτε άλλο φορετό για να κάνει την εφαρμογή του πιο φαρδιά.
Ως προφύλαξη έναντι του COVID-19, είναι σκόπιμο να αποφεύγετε να αγγίζετε επιφάνειες που μπορούν να μοιραστούν μεταξύ διαφορετικών ανθρώπων και ένας φορητός υπολογιστής με οθόνη αφής ή ένα ποντίκι μπορεί να είναι μεταξύ αυτών των κοινών επιφανειών. Η χρήση μιας τέτοιας φορητής συσκευής βοηθά στη διατήρηση της υγιεινής και στην απολύμανση των συνηθισμένων επιφανειών:)
Προμήθειες
- Raspberry Pi 3 Model B V1.2
- SparkFun Triple Axis Accelerometer Breakout - MMA8452Q
- Από άντρα σε γυναίκα Jumper Wire
- Ενα γάντι
- Κολλητική ταινία
- Ψαλίδι
- Καλώδιο Micro-USB
- Καλώδιο HDMI (για εντοπισμό σφαλμάτων μέσω Raspberry Pi)
Βήμα 1: Διασύνδεση επιταχυνσιόμετρου με Raspberry Pi
Χρησιμοποίησα ένα επιταχυνσιόμετρο τριπλού άξονα MMA8542Q από το Sparkfun το οποίο χρησιμοποιεί το πρωτόκολλο επικοινωνίας I2C για να μιλήσω με τις ακίδες Raspberry Pi GPIO και να στείλω τα δεδομένα των αξόνων. Αυτός ο αισθητήρας παρέχει διάφορους τρόπους λειτουργίας με ρυθμιζόμενο ρυθμό δεδομένων, λειτουργίες ύπνου, εύρος επιτάχυνσης, λειτουργία φίλτρου κ.λπ. Βρήκα ότι ο κώδικας από το Pibits ήταν πολύ χρήσιμος στην αρχική διαμόρφωση του αισθητήρα και τον έλεγχο με τις χειρονομίες μου. Είναι καλύτερα να τοποθετήσετε πρώτα τον αισθητήρα σε μια επίπεδη επιφάνεια και να κάνετε ντετερμινιστικές κλίσεις παρατηρώντας παράλληλα τις ακατέργαστες τιμές του αισθητήρα. Αυτό είναι ιδιαίτερα χρήσιμο για να κατανοήσουμε πώς αυτός ο αισθητήρας αντιδρά με διάφορες χειρονομίες και πώς μπορούμε να ορίσουμε κατώφλια για την εφαρμογή μας. Μόλις το επιταχυνσιόμετρο διασυνδεθεί επιτυχώς, μπορείτε να δείτε τα δεδομένα των ακατέργαστων αξόνων που έρχονται στην τερματική οθόνη του Pi.
Βήμα 2: Διασύνδεση κουμπιού με Raspberry Pi
Σε αυτή τη φορετή συσκευή, διασύνδεσα ένα κουμπί που μπορεί να λειτουργήσει ως αριστερό κουμπί του ποντικιού, ώστε να μπορώ να κάνω κλικ σε εικονίδια στην οθόνη. Τα 2 άκρα του κουμπιού συνδέονται στη συνέχεια με 2 ακίδες GPIO του Pi. Η μία από τις ακίδες εξάγει ένα λογικό υψηλό και η άλλη ακίδα διαβάζει αυτήν την τιμή. Όταν πατηθεί το κουμπί, το κύκλωμα κλείνει και ο ακροδέκτης εισόδου είναι σε θέση να διαβάσει μια λογική τιμή, η οποία στη συνέχεια επεξεργάζεται από το σενάριο που έγραψα για να μιμηθεί το κλικ του αριστερού ποντικιού. Λόγω της έλλειψης συγκολλητικού σιδήρου, χρησιμοποίησα κολλητική ταινία για να συνδέσω τους βραχυκυκλωτήρες με το κουμπί.
Βήμα 3: Ανάπτυξη Python Script για τον σειριακό έλεγχο του δείκτη ποντικιού
Χρησιμοποίησα τη βιβλιοθήκη Pyautogui Python για τον έλεγχο του δείκτη του ποντικιού. Ο λόγος για τη χρήση αυτής της βιβλιοθήκης ήταν ότι λειτουργεί τόσο στο Linux όσο και στην πλατφόρμα των Windows. Προκειμένου να ελέγξω τον δείκτη του ποντικιού στο Raspberry Pi, πρώτα συνέδεσα το Pi μου σε μια οθόνη. Στη συνέχεια, χρησιμοποίησα τα ακόλουθα API που παρέχει η βιβλιοθήκη για τον έλεγχο του δείκτη του ποντικιού μου:
- pyautogui.move (0, 200, 2) # μετακινεί το ποντίκι προς τα κάτω κατά 200 εικονοστοιχεία για 2 δευτερόλεπτα
- pyautogui.click () # κάντε κλικ στο ποντίκι
Για να φιλτράρω τα δεδομένα σφαλμάτων που προέρχονται από το Επιταχυνσιόμετρο, χρησιμοποίησα τον μέσο όρο και άλλες μεθόδους φιλτραρίσματος που μπορούν εύκολα να γίνουν κατανοητές μέσω του συνημμένου κώδικα. Το API pyautogui.move (0, y) χρησιμοποιήθηκε με τέτοιο τρόπο ώστε ο δείκτης του ποντικιού να μπορεί να πηγαίνει πάνω-κάτω ή αριστερά-δεξιά κάθε φορά. Αυτό συμβαίνει επειδή το επιταχυνσιόμετρο αναφέρει άξονες σε κατεύθυνση Χ, Υ και Ζ, αλλά το API παίρνει μόνο 2 ορίσματα, άξονες Χ και Υ. Ως εκ τούτου, αυτή η προσέγγιση ήταν πολύ κατάλληλη για το επιταχυνσιόμετρό μου και για τη χαρτογράφηση των χειρονομιών στην οθόνη.
Βήμα 4: Ανάπτυξη Python Script για τον έλεγχο του δείκτη ποντικιού μέσω Bluetooth
Αυτό το μέρος είναι μια προηγμένη εφαρμογή όπου κάθε φορητός υπολογιστής που διαθέτει δυνατότητες Bluetooth μπορεί να επικοινωνεί με το Raspberry Pi σε μοντέλο επικοινωνίας διακομιστή-πελάτη και να μεταδίδει ασύρματα δεδομένα συντεταγμένων ποντικιού. Για να ρυθμίσετε ένα φορητό υπολογιστή Windows 10 64-bit για να επιτρέπεται η επικοινωνία Bluetooth, πρέπει να ακολουθήσουμε τα παρακάτω βήματα:
Windows 10:
- Δημιουργήστε μια εισερχόμενη θύρα COM Bluetooth.
- Συνδέστε το Bluetooth του Pi με το Bluetooth του φορητού υπολογιστή κάνοντας το Pi ανιχνεύσιμο.
- Εγκαταστήστε την Python στα Windows.
- Εγκαταστήστε το pip στα Windows. Το Pip χρησιμοποιείται για την εγκατάσταση βιβλιοθηκών σε μηχάνημα Linux ή Windows.
- Εγκαταστήστε το pyautogui στα Windows χρησιμοποιώντας: pip install pyautogui
- Μόλις εγκατασταθεί το pyautogui στη συσκευή, εγκαταστήστε το Pybluez στα Windows χρησιμοποιώντας την ακόλουθη εντολή στο τερματικό των Windows χρησιμοποιώντας: pip install PyBluez-win10. Το PyBluez ενεργοποιεί την επικοινωνία Bluetooth σε υπολογιστές Windows και Linux.
-
Για να αναπτύξουμε μια εφαρμογή σε φορητό υπολογιστή Windows 10, πρέπει να εγκαταστήσουμε το Microsoft Visual Studio (απαιτούνται χώρο 15-20 GB) και τα εργαλεία κατασκευής του. Επομένως, μαζί με το PyBluez, πρέπει να ακολουθήσουμε τις παρακάτω οδηγίες,
-
Κατεβάστε και εκτελέστε το "Visual Studio Installer":
- Εγκαταστήστε το "Visual Studio Build Tools 2017", επιλέξτε "Visual C ++ build tools" και "Universal Windows Platform tools build"
- git κλώνος
- cd pybluez
python setup.py install
-
- Εάν ακολουθούνται σωστά οι παραπάνω οδηγίες, η εκτέλεση της Python στο τερματικό των Windows και η εισαγωγή της μονάδας pyautogui και Bluetooth θα πρέπει να λειτουργούν χωρίς σφάλματα, σύμφωνα με την παραπάνω εικόνα.
- Στη βιβλιοθήκη pybluez που είναι εγκατεστημένη στο μηχάνημα Windows, μεταβείτε στο: pybluez-master / example / simple / rfcomm-server.py και εκτελέστε χρησιμοποιώντας python rfcomm-server.py. Εάν το τερματικό μεταβεί σε κατάσταση αναμονής χωρίς σφάλματα, μεταβείτε στην παρακάτω ενότητα για τη ρύθμιση του Bluetooth στο Pi. Εάν υπάρχουν σφάλματα κατά την εγκατάσταση του pybluez, ανατρέξτε στα Ζητήματα GitHub για εντοπισμό σφαλμάτων.
Raspbian στο Raspberry Pi:
- Εγκαταστήστε το PyBluez στο Pi
- Εκτελέστε το παράδειγμα του διακομιστή στα Windows. Στη συνέχεια, στο Pi, πλοηγηθείτε στο pybluez-master / samples / simple / rfcomm-client.py και εκτελέστε. Εάν οι δύο συσκευές έχουν αρχίσει να επικοινωνούν, το Bluetooth έχει πλέον ρυθμιστεί και στις δύο συσκευές. Για να κατανοήσετε περισσότερα για το πώς λειτουργεί η επικοινωνία υποδοχής με την Python, ανατρέξτε σε αυτόν τον σύνδεσμο από το MIT.
Θα απαιτηθούν ορισμένες πρόσθετες αναλύσεις δεδομένων για την αποστολή δεδομένων αξόνων από το Pi στον υπολογιστή, καθώς τα δεδομένα αποστέλλονται σε byte. Ανατρέξτε στον συνημμένο κώδικα για περισσότερες πληροφορίες σχετικά με την επικοινωνία δεδομένων πελάτη και διακομιστή.
Βήμα 5: Ενσωμάτωση επιταχυνσιόμετρου και κουμπιού στο γάντι
Μόλις το επιταχυνσιόμετρο είναι καλά διασυνδεδεμένο, το σύστημα σκελετού μοιάζει με την πρώτη εικόνα σε αυτό το βήμα.
Καθώς η επιφάνεια του γαντιού δεν είναι επίπεδη, χρησιμοποίησα μια ομοίωση πιστωτικής κάρτας που έρχεται στο γραμματοκιβώτιό μου κάθε τόσο. Σύμφωνα με τη δεύτερη εικόνα σε αυτό το βήμα, στερέωσα την πλαστική πιστωτική κάρτα στην επάνω επιφάνεια του γαντιού μου με κολλητική ταινία. Πάνω από την κάρτα, έβαλα το επιταχυνσιόμετρο μου. Αυτή η ρύθμιση ήταν αρκετά στιβαρή για να διατηρήσει το επιταχυνσιόμετρο σταθερό και ικανό να παρακολουθεί με ακρίβεια τις χειρονομίες μου.
Συνιστάται:
Σύνδεση επεξεργασίας και Arduino και Make 7 Segment και Servo GUI Controller: 4 βήματα
Connecting Processing and Arduino and Make 7 Segment and Servo GUI Controller: Για ορισμένα έργα που κάνατε πρέπει να χρησιμοποιήσετε το Arduino καθώς παρέχει μια εύκολη πλατφόρμα πρωτοτύπων, αλλά η εμφάνιση γραφικών σε σειριακή οθόνη του Arduino μπορεί να διαρκέσει πολύ και είναι ακόμη και δύσκολο να γίνει. Μπορείτε να εμφανίσετε γραφήματα στο Arduino Serial Monitor bu
Ρομπότ χειρισμού υλικού βασισμένο σε GSM και Bluetooth: 7 βήματα
Ρομπότ χειρισμού υλικού βασισμένο σε GSM και Bluetooth: “ GSM (SMS) και ασύρματο ρομπότ ελεγχόμενου Bluetooth ” είναι ένα ρομπότ που μπορεί να λάβει ένα σύνολο εντολών/ οδηγιών με τη μορφή υπηρεσίας σύντομων μηνυμάτων και εκτελεί τις απαραίτητες ενέργειες. Θα χρησιμοποιούμε αποκλειστικό μόντεμ/κινητό
RuuviTag και PiZero W και Blinkt! θερμόμετρο βασισμένο σε φάρο Bluetooth: 3 βήματα (με εικόνες)
RuuviTag και PiZero W και Blinkt! θερμόμετρο βασισμένο σε φάρο Bluetooth: Αυτό το εκπαιδευτικό περιγράφει μια προσέγγιση για την ανάγνωση δεδομένων θερμοκρασίας και υγρασίας από ένα RuuviTag χρησιμοποιώντας Bluetooth με Raspberry Pi Zero W και την εμφάνιση των τιμών σε δυαδικούς αριθμούς σε ένα αναβοσβήσιμο Pimoroni! pHAT. to για να το πω σύντομα: πώς να οικοδομήσουμε μια κατάσταση
Digitalηφιακό κλείδωμα πόρτας βασισμένο σε Arduino χρησιμοποιώντας GSM και Bluetooth: 4 βήματα
Digitalηφιακό κλείδωμα πόρτας βασισμένο σε Arduino χρησιμοποιώντας GSM και Bluetooth: ΠΕΡΙΛΗΗ: Σκεφτείτε την κατάσταση που ήρθατε στο σπίτι εντελώς κουρασμένοι και διαπιστώσατε ότι χάσατε το κλειδί της πόρτας σας. Τι θα κάνεις? Πρέπει είτε να σπάσετε την κλειδαριά σας είτε να καλέσετε έναν μηχανικό -κλειδί. Έτσι, η κατασκευή κλειδαριάς χωρίς κλειδί είναι μια ενδιαφέρουσα ιδέα για εξοικονόμηση από
Χρησιμοποιήστε SSH και XMing για να εμφανίσετε προγράμματα X από υπολογιστή Linux σε υπολογιστή Windows: 6 βήματα
Χρησιμοποιήστε SSH και XMing για να εμφανίσετε προγράμματα X από υπολογιστή Linux σε υπολογιστή Windows: Εάν χρησιμοποιείτε Linux στην εργασία και Windows στο σπίτι ή αντίστροφα, ενδέχεται μερικές φορές να χρειαστεί να συνδεθείτε στον υπολογιστή στην άλλη τοποθεσία σας και εκτέλεση προγραμμάτων. Λοιπόν, μπορείτε να εγκαταστήσετε έναν διακομιστή X και να ενεργοποιήσετε τη σήραγγα SSH με τον πελάτη SSH και έναν