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

Εφαρμογή ενός επεκτάσιμου κουμπιού με ανατροφοδότηση δόνησης: 7 βήματα (με εικόνες)
Εφαρμογή ενός επεκτάσιμου κουμπιού με ανατροφοδότηση δόνησης: 7 βήματα (με εικόνες)

Βίντεο: Εφαρμογή ενός επεκτάσιμου κουμπιού με ανατροφοδότηση δόνησης: 7 βήματα (με εικόνες)

Βίντεο: Εφαρμογή ενός επεκτάσιμου κουμπιού με ανατροφοδότηση δόνησης: 7 βήματα (με εικόνες)
Βίντεο: 15 Factor Apps - build release run and processes | PT 3 2024, Νοέμβριος
Anonim
Μια εφαρμογή ενός επεκτάσιμου κουμπιού με ανατροφοδότηση δόνησης
Μια εφαρμογή ενός επεκτάσιμου κουμπιού με ανατροφοδότηση δόνησης
Μια εφαρμογή ενός επεκτάσιμου κουμπιού με ανατροφοδότηση δόνησης
Μια εφαρμογή ενός επεκτάσιμου κουμπιού με ανατροφοδότηση δόνησης

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

Βήμα 1: Στοιχεία που απαιτούνται για τη ρύθμιση του κουμπιού για τον κινητήρα δόνησης

Απαιτούνται εξαρτήματα για τη ρύθμιση του κουμπιού για τη δόνηση του κινητήρα
Απαιτούνται εξαρτήματα για τη ρύθμιση του κουμπιού για τη δόνηση του κινητήρα
  • Arduino Uno
  • Breadboard
  • Κινητήρας δόνησης νομισμάτων νομισμάτων
  • Grove Button
  • Καλώδια από άντρα σε αρσενικό άλτη (x10)
  • Jumper Wire 4 ακίδων
  • Πρόγραμμα οδήγησης Haptic Motor
  • Συνδετήρας άκρου από άντρα σε γυναίκα
  • Συγκολλητικό σίδερο

Βήμα 2: Διαγράμματα για ρύθμιση του κουμπιού σε κινητήρα δόνησης

Διαγράμματα για τη ρύθμιση του μοτέρ του κουμπιού σε δόνηση
Διαγράμματα για τη ρύθμιση του μοτέρ του κουμπιού σε δόνηση

Το προηγούμενο διάγραμμα δημιουργήθηκε με το Fritzing.org.

Βήμα 3: Η ρύθμιση του κουμπιού στη ρύθμιση κινητήρα δόνησης

Βήμα 1: Συγκολλήστε τον ακροδέκτη ακμής στο πρόγραμμα οδήγησης κινητήρα δόνησης. Συγκολλήστε τα καλώδια του δονητή νομισμάτων στους ακροδέκτες του οδηγού κινητήρα δόνησης.

Βήμα 2: Συνδέστε το καλώδιο βραχυκυκλωτήρα 4 ακίδων στο ξεμπλοκάρισμα κουμπιών.

Βήμα 3: Χρησιμοποιώντας ένα από τα καλώδια βραχυκυκλωτήρων, συνδέστε τον πείρο GRD στο Arduino σε μια σειρά στον πίνακα ψωμιού.

Βήμα 4: Χρησιμοποιώντας ένα άλλο καλώδιο βραχυκυκλωτήρα, συνδέστε τον ακροδέκτη Volt 3.3 στο Arduino σε μια διαφορετική σειρά στο breadboard.

Βήμα 5: Τώρα θα συνδέσουμε το πρόγραμμα οδήγησης κινητήρα δόνησης στο Arduino. Χρησιμοποιώντας ένα τρίτο καλώδιο βραχυκυκλωτήρα, συνδέστε τον πείρο GND στο πρόγραμμα οδήγησης του κινητήρα δόνησης στην ίδια σειρά στο breadboard με τον πείρο GRD από το Arduino. Κάντε το ίδιο με ένα άλλο καλώδιο για VCC (volt) στο πρόγραμμα οδήγησης του κινητήρα δόνησης, στη γραμμή βολτ της σανίδας.

Βήμα 6: Χρησιμοποιήστε ένα άλλο καλώδιο για να συνδέσετε τον πείρο SDA στο πρόγραμμα οδήγησης κινητήρα δόνησης με τον πείρο SDA απευθείας στο Arduino. Και πάλι, κάντε το ίδιο με τις ακίδες SCL και στις δύο. Εναλλακτικά, ακολουθήστε μια παρόμοια προσέγγιση στο βήμα 5 και συνδέστε τις καρφίτσες SDA και SCL στο Arduino στις δικές τους σειρές στο breadboard μέσω καλωδίων βραχυκυκλωτήρων. Στη συνέχεια, τρέξτε ένα καλώδιο από τη σειρά όπου ο πείρος SDA είναι συνδεδεμένος στο ψωμί με τον πείρο SDA στο πρόγραμμα οδήγησης κινητήρα. Κάντε το ίδιο για τη σειρά SCL στο ψωμί προς τον πείρο SCL στο πρόγραμμα οδήγησης κινητήρα.

Βήμα 7: Τώρα θα ολοκληρώσουμε συνδέοντας το κουμπί στο πρόγραμμα οδήγησης του κινητήρα δόνησης και στο Arduino. Χρησιμοποιήστε ένα άλλο καλώδιο βραχυκυκλωτήρα για να συνδέσετε το GRD από το καλώδιο βραχυκυκλωτήρα 4 ακίδων που είναι συνδεδεμένο με το ξεμπλοκάρισμα κουμπιών στην ίδια σειρά με τα άλλα καλώδια GRD στον πίνακα ψωμιού. Κάντε το ίδιο με το volt για άλλη μια φορά (VCC).

Βήμα 8: Συνδέστε μια τελική εγγραφή από το SIG στο ξεμπλοκάρισμα κουμπιών σε μια καρφίτσα στο Arduino (για τους σκοπούς του κώδικα μας, χρησιμοποιήσαμε τον πείρο 7).

Βήμα 9: Συνδέστε το Arduino και ανεβάστε τον κώδικα και παρακολουθήστε τον να λειτουργεί!

Βήμα 4: Ο κώδικας

Κουμπί-Δόνηση-Μηχανή.γ

/ * Κωδικός προσαρμοσμένος από https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide?_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 */
#περιλαμβάνω// Βιβλιοθήκη οδηγών SparkFun Haptic Motor
#περιλαμβάνω// βιβλιοθήκη I2C
SFE_HMD_DRV2605L HMD; // Δημιουργία αντικειμένου απτικού οδηγού κινητήρα
κουμπί int = 7; // επιλέξτε τον πείρο εισόδου 7 για το κουμπί
int button_val = 0; // μεταβλητή για ανάγνωση της κατάστασης του pin
voidsetup ()
{
/ * Αρχικοποίηση αντικειμένου προγράμματος οδήγησης Haptic Motor * *
HMD.begin ();
Serial.begin (9600);
HMD. Mode (0); // Εσωτερική λειτουργία εισαγωγής σκανδάλης - Πρέπει να χρησιμοποιήσετε τη λειτουργία GO () για να ενεργοποιήσετε την αναπαραγωγή.
HMD. MotorSelect (0x36); // Κινητήρας ERM, 4x φρένα, Μεσαίο κέρδος βρόχου, 1.365x πίσω EMF κέρδος
HMD. Βιβλιοθήκη (2); // 1-5 & 7 για κινητήρες ERM, 6 για κινητήρες LRA
}
voidloop ()
{
/ * Εκκινήστε τον κινητήρα δόνησης */
HMD.go ();
button_val = digitalRead (κουμπί);
αν (button_val == HIGH) {
/* Αυτή η έξοδος για καταγραφή αυτού του κουμπιού έχει πατηθεί, χρησιμοποιήστε το για εντοπισμό σφαλμάτων*/
Serial.println ("Πατημένο το κουμπί.");
/ * Η βιβλιοθήκη κυματομορφής έχει 0-122 διαφορετικούς τύπους κυμάτων */
HMD. Waveform (0, 69);}
αλλού{
/ * Εάν δεν πατηθεί το κουμπί, σταματήστε τον κινητήρα δόνησης */
HMD.stop ();
}
}

προβολή rawButton-Vibration-Motor.c που φιλοξενείται με ❤ από το GitHub

Βήμα 5: Βίντεο του κουμπιού ρύθμισης κινητήρα δόνησης

Image
Image

Βήμα 6: Πρωτότυπο του Glove Extendable

Πρωτότυπο του Glove Extendable
Πρωτότυπο του Glove Extendable
Πρωτότυπο του Glove Extendable
Πρωτότυπο του Glove Extendable

Μια πιθανή εφαρμογή του κουμπιού στον κινητήρα δόνησης είναι το γάντι που φαίνεται παραπάνω. Έχουμε τροποποιήσει φθηνά προσβάσιμα υλικά, όπως σύριγγες, προκειμένου να γίνουν επεκτάσιμα "δάχτυλα". Συνδέσαμε τα κουμπιά του άλσους στο τέλος των τροποποιημένων συριγγών χρησιμοποιώντας velcro, κόψαμε τρύπες στις άκρες των δακτύλων ενός γαντιού και τοποθετήσαμε κάθε σύριγγα μέσα από τις τρύπες. Τα καλώδια με 4 πείρους των κουμπιών περνούν μέσα από τις σύριγγες και είναι αρκετά μακριά ώστε να μπορείτε να επεκτείνετε τις σύριγγες σε όλο τους το μήκος. Το Arduino και το breadboard συνδέονται μέσω velcro στο πάνω μέρος του γαντιού, το οποίο επιτρέπει στα καλώδια των κουμπιών να συνδέονται εύκολα μέσω μιας μικρής σχισμής στη βάση κάθε άκρου του δακτύλου. Ο οδηγός του κινητήρα είναι προσαρτημένος στην κάτω πλευρά του γαντιού από το άνοιγμα, προκειμένου να κολλήσει ο κινητήρας δόνησης στο εσωτερικό του γαντιού. Όταν ο χρήστης φοράει το γάντι, ο κινητήρας δόνησης κάθεται στην κάτω πλευρά του καρπού του χρήστη. Όταν ο χρήστης αγγίζει μια επιφάνεια και πιέζει ένα από τα κουμπιά, δίνεται μια μοναδική δόνηση ανάδρασης μέσω του κινητήρα.

Η διαδικασία σκέψης πίσω από ένα τέτοιο γάντι θα ήταν να επιτραπεί σε κάποιον που το φορά να «αγγίζει» πράγματα πέρα από την εμβέλεια των κανονικών δακτύλων του και να λαμβάνει ανατροφοδότηση ότι αγγίζει αυτές τις επιφάνειες. Η ανάδραση δόνησης αλλάζει ανάλογα με το δάχτυλο που αγγίζει την επιφάνεια, έτσι ώστε ο χρήστης να μπορεί να πει ποιο δάχτυλο αγγίζει την επιφάνεια με βάση το μοτίβο δόνησης.

Υπάρχουν πολλοί τρόποι για να πάτε το πρωτότυπο πιο μακριά, όπως το να κάνετε τα δάχτυλα πιο επεκτάσιμα ή να κάνετε την ανατροφοδότηση να αλλάξει με βάση τον τύπο της επιφάνειας που αγγίζεται. Ιδανικά, θα μπορούσαν να δημιουργηθούν επεκτάσιμα δάχτυλα μέσω τρισδιάστατης εκτύπωσης, για καλύτερες τηλεσκοπικές επιλογές. Ένας αισθητήρας θερμοκρασίας θα μπορούσε να χρησιμοποιηθεί στη θέση των κουμπιών, για να επιτρέψει την ανατροφοδότηση σχετικά με το πόσο ζεστή είναι η επιφάνεια που αγγίζει ο χρήστης ή ένας αισθητήρας υγρασίας για παρόμοιους σκοπούς. Θα μπορούσε να εφαρμοστεί ένας τρόπος για να αντιληφθεί πόσο μακριά έχει επεκταθεί το "δάχτυλο", ώστε να μπορεί ο χρήστης να γνωρίζει πόσο μακριά είναι το αντικείμενο που αγγίζει. Αυτές είναι μόνο μερικές πιθανές επιλογές για να πάρετε αυτό το πρωτότυπο περαιτέρω.

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

Βήμα 7: Κωδικός για πολλαπλά κουμπιά με μοναδική έξοδο δόνησης

mutliple_buttons_to_vibmotor.ino

/ * Κωδικός Προσαρμοσμένος από το SparkFun https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide */
#περιλαμβάνω// Βιβλιοθήκη οδηγών SparkFun Haptic Motor
#περιλαμβάνω// βιβλιοθήκη I2C
SFE_HMD_DRV2605L HMD; // Δημιουργία αντικειμένου απτικού οδηγού κινητήρα
int button_middle = 7;
int button_index = 5; // επιλέξτε την καρφίτσα εισόδου για το κουμπί
int button_ring = 9;
int button_pinky = 3;
voidsetup ()
{
HMD.begin ();
Serial.begin (9600);
HMD. Mode (0); // Εσωτερική λειτουργία εισαγωγής σκανδάλης - Πρέπει να χρησιμοποιήσετε τη λειτουργία GO () για να ενεργοποιήσετε την αναπαραγωγή.
HMD. MotorSelect (0x36); // Κινητήρας ERM, Φρενάρισμα 4x, Μεσαίο κέρδος βρόχου, 1.365x πίσω EMF κέρδος
HMD. Βιβλιοθήκη (2); // 1-5 & 7 για κινητήρες ERM, 6 για κινητήρες LRA
}
voidloop ()
{
HMD.go (); // εκκινήστε τον κινητήρα δόνησης
/ * Ελέγξτε ποιο κουμπί πιέζεται και εξέρχεται κυματομορφή 0-122 */
εάν (digitalRead (button_middle) == HIGH) {
Serial.println ("Πατημένο το κουμπί.");
HMD. Waveform (0, 112);}
elseif (digitalRead (button_index) == HIGH) {
HMD. Waveform (0, 20);
}
elseif (digitalRead (button_ring) == HIGH) {
HMD. Waveform (0, 80);
}
elseif (digitalRead (button_pinky) == HIGH) {
HMD. Waveform (0, 100);
}
/ * Εάν δεν πατήσετε κανένα κουμπί, σταματήστε */
αλλού{
HMD.stop ();
}
}

προβολή rawmutliple_buttons_to_vibmotor.ino που φιλοξενείται με ❤ από το GitHub

Συνιστάται: