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

[Wearable Mouse] Wearable Mouse Controller βασισμένο σε Bluetooth για Windows 10 και Linux: 5 βήματα
[Wearable Mouse] Wearable Mouse Controller βασισμένο σε Bluetooth για Windows 10 και Linux: 5 βήματα

Βίντεο: [Wearable Mouse] Wearable Mouse Controller βασισμένο σε Bluetooth για Windows 10 και Linux: 5 βήματα

Βίντεο: [Wearable Mouse] Wearable Mouse Controller βασισμένο σε Bluetooth για Windows 10 και Linux: 5 βήματα
Βίντεο: They were SO close! - Weird controllers that defined modern gaming 2024, Ιούλιος
Anonim
Image
Image
Επιταχυνσιόμετρο διασύνδεσης με Raspberry Pi
Επιταχυνσιόμετρο διασύνδεσης με Raspberry Pi

Έφτιαξα ένα χειριστήριο ποντικιού που βασίζεται στο 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

Επιταχυνσιόμετρο διασύνδεσης με Raspberry Pi
Επιταχυνσιόμετρο διασύνδεσης με Raspberry Pi

Χρησιμοποίησα ένα επιταχυνσιόμετρο τριπλού άξονα MMA8542Q από το Sparkfun το οποίο χρησιμοποιεί το πρωτόκολλο επικοινωνίας I2C για να μιλήσω με τις ακίδες Raspberry Pi GPIO και να στείλω τα δεδομένα των αξόνων. Αυτός ο αισθητήρας παρέχει διάφορους τρόπους λειτουργίας με ρυθμιζόμενο ρυθμό δεδομένων, λειτουργίες ύπνου, εύρος επιτάχυνσης, λειτουργία φίλτρου κ.λπ. Βρήκα ότι ο κώδικας από το Pibits ήταν πολύ χρήσιμος στην αρχική διαμόρφωση του αισθητήρα και τον έλεγχο με τις χειρονομίες μου. Είναι καλύτερα να τοποθετήσετε πρώτα τον αισθητήρα σε μια επίπεδη επιφάνεια και να κάνετε ντετερμινιστικές κλίσεις παρατηρώντας παράλληλα τις ακατέργαστες τιμές του αισθητήρα. Αυτό είναι ιδιαίτερα χρήσιμο για να κατανοήσουμε πώς αυτός ο αισθητήρας αντιδρά με διάφορες χειρονομίες και πώς μπορούμε να ορίσουμε κατώφλια για την εφαρμογή μας. Μόλις το επιταχυνσιόμετρο διασυνδεθεί επιτυχώς, μπορείτε να δείτε τα δεδομένα των ακατέργαστων αξόνων που έρχονται στην τερματική οθόνη του Pi.

Βήμα 2: Διασύνδεση κουμπιού με Raspberry Pi

Διασύνδεση κουμπιού με Raspberry Pi
Διασύνδεση κουμπιού με Raspberry Pi

Σε αυτή τη φορετή συσκευή, διασύνδεσα ένα κουμπί που μπορεί να λειτουργήσει ως αριστερό κουμπί του ποντικιού, ώστε να μπορώ να κάνω κλικ σε εικονίδια στην οθόνη. Τα 2 άκρα του κουμπιού συνδέονται στη συνέχεια με 2 ακίδες GPIO του Pi. Η μία από τις ακίδες εξάγει ένα λογικό υψηλό και η άλλη ακίδα διαβάζει αυτήν την τιμή. Όταν πατηθεί το κουμπί, το κύκλωμα κλείνει και ο ακροδέκτης εισόδου είναι σε θέση να διαβάσει μια λογική τιμή, η οποία στη συνέχεια επεξεργάζεται από το σενάριο που έγραψα για να μιμηθεί το κλικ του αριστερού ποντικιού. Λόγω της έλλειψης συγκολλητικού σιδήρου, χρησιμοποίησα κολλητική ταινία για να συνδέσω τους βραχυκυκλωτήρες με το κουμπί.

Βήμα 3: Ανάπτυξη Python Script για τον σειριακό έλεγχο του δείκτη ποντικιού

Χρησιμοποίησα τη βιβλιοθήκη Pyautogui Python για τον έλεγχο του δείκτη του ποντικιού. Ο λόγος για τη χρήση αυτής της βιβλιοθήκης ήταν ότι λειτουργεί τόσο στο Linux όσο και στην πλατφόρμα των Windows. Προκειμένου να ελέγξω τον δείκτη του ποντικιού στο Raspberry Pi, πρώτα συνέδεσα το Pi μου σε μια οθόνη. Στη συνέχεια, χρησιμοποίησα τα ακόλουθα API που παρέχει η βιβλιοθήκη για τον έλεγχο του δείκτη του ποντικιού μου:

  1. pyautogui.move (0, 200, 2) # μετακινεί το ποντίκι προς τα κάτω κατά 200 εικονοστοιχεία για 2 δευτερόλεπτα
  2. pyautogui.click () # κάντε κλικ στο ποντίκι

Για να φιλτράρω τα δεδομένα σφαλμάτων που προέρχονται από το Επιταχυνσιόμετρο, χρησιμοποίησα τον μέσο όρο και άλλες μεθόδους φιλτραρίσματος που μπορούν εύκολα να γίνουν κατανοητές μέσω του συνημμένου κώδικα. Το API pyautogui.move (0, y) χρησιμοποιήθηκε με τέτοιο τρόπο ώστε ο δείκτης του ποντικιού να μπορεί να πηγαίνει πάνω-κάτω ή αριστερά-δεξιά κάθε φορά. Αυτό συμβαίνει επειδή το επιταχυνσιόμετρο αναφέρει άξονες σε κατεύθυνση Χ, Υ και Ζ, αλλά το API παίρνει μόνο 2 ορίσματα, άξονες Χ και Υ. Ως εκ τούτου, αυτή η προσέγγιση ήταν πολύ κατάλληλη για το επιταχυνσιόμετρό μου και για τη χαρτογράφηση των χειρονομιών στην οθόνη.

Βήμα 4: Ανάπτυξη Python Script για τον έλεγχο του δείκτη ποντικιού μέσω Bluetooth

Ανάπτυξη Python Script για τον έλεγχο του δείκτη ποντικιού μέσω Bluetooth
Ανάπτυξη Python Script για τον έλεγχο του δείκτη ποντικιού μέσω Bluetooth

Αυτό το μέρος είναι μια προηγμένη εφαρμογή όπου κάθε φορητός υπολογιστής που διαθέτει δυνατότητες Bluetooth μπορεί να επικοινωνεί με το Raspberry Pi σε μοντέλο επικοινωνίας διακομιστή-πελάτη και να μεταδίδει ασύρματα δεδομένα συντεταγμένων ποντικιού. Για να ρυθμίσετε ένα φορητό υπολογιστή Windows 10 64-bit για να επιτρέπεται η επικοινωνία Bluetooth, πρέπει να ακολουθήσουμε τα παρακάτω βήματα:

Windows 10:

  1. Δημιουργήστε μια εισερχόμενη θύρα COM Bluetooth.
  2. Συνδέστε το Bluetooth του Pi με το Bluetooth του φορητού υπολογιστή κάνοντας το Pi ανιχνεύσιμο.
  3. Εγκαταστήστε την Python στα Windows.
  4. Εγκαταστήστε το pip στα Windows. Το Pip χρησιμοποιείται για την εγκατάσταση βιβλιοθηκών σε μηχάνημα Linux ή Windows.
  5. Εγκαταστήστε το pyautogui στα Windows χρησιμοποιώντας: pip install pyautogui
  6. Μόλις εγκατασταθεί το pyautogui στη συσκευή, εγκαταστήστε το Pybluez στα Windows χρησιμοποιώντας την ακόλουθη εντολή στο τερματικό των Windows χρησιμοποιώντας: pip install PyBluez-win10. Το PyBluez ενεργοποιεί την επικοινωνία Bluetooth σε υπολογιστές Windows και Linux.
  7. Για να αναπτύξουμε μια εφαρμογή σε φορητό υπολογιστή Windows 10, πρέπει να εγκαταστήσουμε το Microsoft Visual Studio (απαιτούνται χώρο 15-20 GB) και τα εργαλεία κατασκευής του. Επομένως, μαζί με το PyBluez, πρέπει να ακολουθήσουμε τις παρακάτω οδηγίες,

    1. Κατεβάστε και εκτελέστε το "Visual Studio Installer":

    2. Εγκαταστήστε το "Visual Studio Build Tools 2017", επιλέξτε "Visual C ++ build tools" και "Universal Windows Platform tools build"
    3. git κλώνος
    4. cd pybluez
    5. python setup.py install

  8. Εάν ακολουθούνται σωστά οι παραπάνω οδηγίες, η εκτέλεση της Python στο τερματικό των Windows και η εισαγωγή της μονάδας pyautogui και Bluetooth θα πρέπει να λειτουργούν χωρίς σφάλματα, σύμφωνα με την παραπάνω εικόνα.
  9. Στη βιβλιοθήκη pybluez που είναι εγκατεστημένη στο μηχάνημα Windows, μεταβείτε στο: pybluez-master / example / simple / rfcomm-server.py και εκτελέστε χρησιμοποιώντας python rfcomm-server.py. Εάν το τερματικό μεταβεί σε κατάσταση αναμονής χωρίς σφάλματα, μεταβείτε στην παρακάτω ενότητα για τη ρύθμιση του Bluetooth στο Pi. Εάν υπάρχουν σφάλματα κατά την εγκατάσταση του pybluez, ανατρέξτε στα Ζητήματα GitHub για εντοπισμό σφαλμάτων.

Raspbian στο Raspberry Pi:

  1. Εγκαταστήστε το PyBluez στο Pi
  2. Εκτελέστε το παράδειγμα του διακομιστή στα Windows. Στη συνέχεια, στο Pi, πλοηγηθείτε στο pybluez-master / samples / simple / rfcomm-client.py και εκτελέστε. Εάν οι δύο συσκευές έχουν αρχίσει να επικοινωνούν, το Bluetooth έχει πλέον ρυθμιστεί και στις δύο συσκευές. Για να κατανοήσετε περισσότερα για το πώς λειτουργεί η επικοινωνία υποδοχής με την Python, ανατρέξτε σε αυτόν τον σύνδεσμο από το MIT.

Θα απαιτηθούν ορισμένες πρόσθετες αναλύσεις δεδομένων για την αποστολή δεδομένων αξόνων από το Pi στον υπολογιστή, καθώς τα δεδομένα αποστέλλονται σε byte. Ανατρέξτε στον συνημμένο κώδικα για περισσότερες πληροφορίες σχετικά με την επικοινωνία δεδομένων πελάτη και διακομιστή.

Βήμα 5: Ενσωμάτωση επιταχυνσιόμετρου και κουμπιού στο γάντι

Ενσωμάτωση επιταχυνσιόμετρου και κουμπιού στο γάντι
Ενσωμάτωση επιταχυνσιόμετρου και κουμπιού στο γάντι
Ενσωμάτωση επιταχυνσιόμετρου και κουμπιού στο γάντι
Ενσωμάτωση επιταχυνσιόμετρου και κουμπιού στο γάντι

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

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

Συνιστάται: