Inhaltsverzeichnis:

Eine Anwendung einer ausziehbaren Taste mit Vibrationsfeedback - Gunook
Eine Anwendung einer ausziehbaren Taste mit Vibrationsfeedback - Gunook

Video: Eine Anwendung einer ausziehbaren Taste mit Vibrationsfeedback - Gunook

Video: Eine Anwendung einer ausziehbaren Taste mit Vibrationsfeedback - Gunook
Video: DESHALB solltest du 2 Schwämme in dein Waschmaschinen Fach legen 💥 (GENIAL) 🤯 2024, November
Anonim
Eine Anwendung einer ausziehbaren Taste mit Vibrations-Feedback
Eine Anwendung einer ausziehbaren Taste mit Vibrations-Feedback
Eine Anwendung einer ausziehbaren Taste mit Vibrations-Feedback
Eine Anwendung einer ausziehbaren Taste mit Vibrations-Feedback

In diesem Tutorial zeigen wir Ihnen zunächst, wie Sie mit einem Arduino Uno einen Vibrationsmotor über eine erweiterte Taste steuern. Die meisten Tutorials zu Drucktasten beinhalten die Taste auf dem physischen Steckbrett, während in diesem Tutorial die Taste geändert wurde, um stattdessen über Jumperkabel mit dem Steckbrett verbunden zu werden. Mit dieser Taste können Sie die Stärke und das Vibrationsmuster des Motors steuern. Anschließend zeigen wir einen möglichen Prototyp einer tragbaren Technologie, die dieses Setup nutzt. Dieses Wearable ist ein Handschuh mit ausziehbaren Fingerspitzen mit Knöpfen am Ende, die so programmiert sind, dass sie dem Träger ein einzigartiges Vibrationsfeedback basierend auf dem jeweiligen gedrückten Knopf geben.

Schritt 1: Komponenten, die für die Einrichtung des Knopfes zum Vibrationsmotor benötigt werden

Erforderliche Komponenten für die Einrichtung des Knopf-zu-Vibrationsmotors
Erforderliche Komponenten für die Einrichtung des Knopf-zu-Vibrationsmotors
  • Arduino Uno
  • Steckbrett
  • Münzvibrator Vibrationsmotor
  • Grove-Taste
  • Stecker-zu-Stecker-Überbrückungsdrähte (x10)
  • Überbrückungsdraht 4 Pin
  • Haptischer Motortreiber
  • Stecker-zu-Buchse Kantenverbinder
  • Lötkolben

Schritt 2: Schaltpläne für die Einrichtung des Knopfes zum Vibrationsmotor

Schemata für die Einrichtung des Knopf-zu-Vibrationsmotors
Schemata für die Einrichtung des Knopf-zu-Vibrationsmotors

Das obige Diagramm wurde mit Fritzing.org erstellt.

Schritt 3: Die Einrichtung des Knopfes zum Vibrationsmotor-Setup

Schritt 1: Löten Sie den Randstecker an den Vibrationsmotortreiber. Löten Sie die Drähte des Münzvibrators in die Anschlüsse des Vibrationsmotortreibers.

Schritt 2: Verbinden Sie das 4-polige Überbrückungskabel mit dem Tastenausbruch.

Schritt 3: Verbinden Sie mit einem der Überbrückungsdrähte den GRD-Pin des Arduino mit einer Reihe auf dem Steckbrett.

Schritt 4: Verbinden Sie mit einem anderen Überbrückungsdraht den Volt 3.3-Pin des Arduino mit einer anderen Reihe auf dem Steckbrett.

Schritt 5: Jetzt verbinden wir den Vibrationsmotortreiber mit dem Arduino. Verbinden Sie mit einem dritten Überbrückungskabel den GND-Pin des Vibrationsmotortreibers mit der gleichen Reihe auf dem Steckbrett wie den GRD-Pin des Arduino. Machen Sie dasselbe mit einem anderen Draht für VCC (Volt) am Vibrationsmotortreiber zur Voltreihe des Steckbretts.

Schritt 6: Verwenden Sie ein weiteres Kabel, um den SDA-Pin des Vibrationsmotortreibers mit dem SDA-Pin direkt am Arduino zu verbinden. Wiederholen Sie dasselbe mit den SCL-Pins an beiden. Befolgen Sie alternativ einen ähnlichen Ansatz wie in Schritt 5 und verbinden Sie die SDA- und SCL-Pins des Arduino über Steckbrücken mit ihren eigenen Reihen auf dem Steckbrett. Führen Sie dann einen Draht aus der Reihe, in der der SDA-Pin auf dem Steckbrett mit dem SDA-Pin des Motortreibers verbunden ist. Machen Sie dasselbe für die SCL-Reihe auf dem Steckbrett zum SCL-Pin am Motortreiber.

Schritt 7: Jetzt schließen wir ab, indem wir die Taste mit dem Vibrationsmotortreiber und Arduino verbinden. Verwenden Sie ein anderes Überbrückungskabel, um das GRD von dem 4-poligen Überbrückungskabel, das mit dem Knopfausbruch verbunden ist, mit der gleichen Reihe wie die anderen GRD-Drähte auf dem Steckbrett zu verbinden. Machen Sie dasselbe mit Volt noch einmal (VCC).

Schritt 8: Verbinden Sie einen letzten Schreibvorgang von SIG auf dem Button-Breakout mit einem Pin auf dem Arduino (für die Zwecke unseres Codes haben wir Pin 7 verwendet).

Schritt 9: Schließen Sie das Arduino an und laden Sie den Code hoch und sehen Sie zu, wie es funktioniert!

Schritt 4: Der Code

Knopf-Vibrations-Motor.c

/* Code angepasst von https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide?_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 */
#enthalten//SparkFun Haptic Motor Driver Library
#enthalten//I2C-Bibliothek
SFE_HMD_DRV2605L HMD; // Erstellen Sie ein haptisches Motortreiberobjekt
int-Taste = 7; // Wählen Sie den Eingangspin 7 für die Drucktaste
int button_val = 0; // Variable zum Lesen des Pin-Status
voidsetup()
{
/* Haptisches Motortreiberobjekt initialisieren */
HMD.begin();
Serial.begin (9600);
HMD. Modus(0); // Interner Trigger-Eingangsmodus -- Muss die GO ()-Funktion verwenden, um die Wiedergabe auszulösen.
HMD. MotorSelect(0x36); // ERM-Motor, 4x Bremsen, mittlere Schleifenverstärkung, 1.365x Gegen-EMK-Verstärkung
HMD. Bibliothek(2); //1-5 & 7 für ERM-Motoren, 6 für LRA-Motoren
}
Leerschleife()
{
/* Vibrationsmotor starten */
HMD.go();
button_val = digitalRead (Taste);
if(button_val== HIGH) {
/* Dies wird ausgegeben, um zu protokollieren, dass die Schaltfläche gedrückt wurde, zum Debuggen verwenden*/
Serial.println ("Taste gedrückt.");
/* Die Wellenformbibliothek enthält 0-122 verschiedene Wellentypen */
HMD. Wellenform(0, 69);}
anders{
/* Wenn die Taste nicht gedrückt wird, stoppen Sie den Vibrationsmotor */
HMD.stop();
}
}

rawButton-Vibration-Motor.c anzeigen, gehostet mit ❤ von GitHub

Schritt 5: Video der Einrichtung des Knopfes zum Vibrationsmotor

Image
Image

Schritt 6: Prototyp des ausziehbaren Handschuhs

Prototyp des ausziehbaren Handschuhs
Prototyp des ausziehbaren Handschuhs
Prototyp des ausziehbaren Handschuhs
Prototyp des ausziehbaren Handschuhs

Eine mögliche Anwendung des Knopfes am Vibrationsmotor ist der oben gezeigte Handschuh. Wir haben billig zugängliche Materialien wie Spritzen modifiziert, um ausziehbare "Fingerspitzen" zu machen. Wir haben die Groove-Knöpfe mit Klettverschluss am Ende der modifizierten Spritzen befestigt, Löcher in die Fingerkuppen eines Handschuhs geschnitten und jede Spritze durch die Löcher gesteckt. Die 4-poligen Überbrückungsdrähte der Tasten werden durch die Spritzen gefädelt und sind lang genug, um die Spritzen auf ihre volle Länge ausfahren zu können. Das Arduino und das Steckbrett werden per Klettverschluss an der Oberseite des Handschuhs befestigt, wodurch die Drähte der Tasten einfach durch einen kleinen Schlitz an der Unterseite jeder Fingerspitze verbunden werden können. Der Motortreiber wird durch die Öffnung an der Unterseite des Handschuhs befestigt, um den Vibrationsmotor an der Innenseite des Handschuhs zu kleben. Wenn der Träger den Handschuh trägt, sitzt der Vibrationsmotor an der Unterseite des Handgelenks des Trägers. Wenn der Träger eine Oberfläche berührt und einen der Knöpfe drückt, wird durch den Motor eine einzigartige Feedback-Vibration abgegeben.

Der Denkprozess hinter einem solchen Handschuh wäre, jemandem, der ihn trägt, zu erlauben, Dinge zu "berühren", die über die Reichweite seiner normalen Fingerspitzen hinausgehen, und eine Rückmeldung zu erhalten, dass er diese Oberflächen berührt. Die Vibrationsrückmeldung ändert sich abhängig davon, welcher Finger die Oberfläche berührt, so dass es dem Benutzer möglich ist, anhand des Vibrationsmusters zu erkennen, welcher Finger die Oberfläche berührt.

Es gibt viele Möglichkeiten, den Prototyp weiterzuentwickeln, z. B. die Finger dehnbarer zu machen oder das Feedback basierend auf der Art der berührten Oberfläche zu ändern. Idealerweise würden ausziehbare Finger per 3D-Druck erstellt, um bessere Teleskopiermöglichkeiten zu bieten. Anstelle der Tasten könnte ein Temperatursensor verwendet werden, um eine Rückmeldung darüber zu ermöglichen, wie heiß die Oberfläche ist, die der Benutzer berührt, oder ein Feuchtigkeitssensor für ähnliche Zwecke. Eine Möglichkeit zu erfassen, wie weit der "Finger" ausgestreckt wurde, könnte implementiert werden, damit der Benutzer weiß, wie weit das Objekt, das er berührt, entfernt ist. Dies sind nur einige mögliche Optionen, um diesen Prototypen weiterzuentwickeln.

Dieser Handschuh kann aus gängigen Materialien hergestellt werden, um Ihre Sinne zu erweitern und Feedback zu geben, das der Benutzer fühlen und verstehen kann.

Schritt 7: Code für mehrere Tasten mit einzigartiger Vibrationsleistung

mutliple_buttons_to_vibmotor.ino

/* Code von SparkFun angepasst https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide */
#enthalten//SparkFun Haptic Motor Driver Library
#enthalten//I2C-Bibliothek
SFE_HMD_DRV2605L HMD; // Erstellen Sie ein haptisches Motortreiberobjekt
int button_middle = 7;
int button_index = 5; // wähle den Eingangspin für die Drucktaste
int button_ring = 9;
int button_pinky = 3;
voidsetup()
{
HMD.begin();
Serial.begin (9600);
HMD. Modus(0); // Interner Trigger-Eingangsmodus -- Muss die GO ()-Funktion verwenden, um die Wiedergabe auszulösen.
HMD. MotorSelect(0x36); // ERM-Motor, 4x Bremsen, mittlere Schleifenverstärkung, 1.365x Gegen-EMK-Verstärkung
HMD. Bibliothek(2); //1-5 & 7 für ERM-Motoren, 6 für LRA-Motoren
}
Leerschleife()
{
HMD.go(); // Vibrationsmotor starten
/* Überprüfen Sie, welche Taste gedrückt wird und geben Sie die Wellenform 0-122 aus */
if(digitalRead(button_middle)== HIGH) {
Serial.println ("Taste gedrückt.");
HMD. Wellenform(0, 112);}
elseif (digitalRead (button_index) == HIGH) {
HMD. Wellenform(0, 20);
}
elseif (digitalRead (button_ring) == HIGH) {
HMD. Wellenform(0, 80);
}
elseif (digitalRead (button_pinky) == HIGH) {
HMD. Wellenform(0, 100);
}
/* Wenn keine Taste gedrückt wird, dann stoppen */
anders{
HMD.stop();
}
}

rawmutliple_buttons_to_vibmotor.ino anzeigen, gehostet mit ❤ von GitHub

Empfohlen: