Cuprins:

O aplicație a unui buton extensibil cu feedback cu vibrații: 7 pași (cu imagini)
O aplicație a unui buton extensibil cu feedback cu vibrații: 7 pași (cu imagini)

Video: O aplicație a unui buton extensibil cu feedback cu vibrații: 7 pași (cu imagini)

Video: O aplicație a unui buton extensibil cu feedback cu vibrații: 7 pași (cu imagini)
Video: 10 Setări OBLIGATORII pentru IPHONE 2024, Noiembrie
Anonim
O aplicație a unui buton extensibil cu feedback cu vibrații
O aplicație a unui buton extensibil cu feedback cu vibrații
O aplicație a unui buton extensibil cu feedback cu vibrații
O aplicație a unui buton extensibil cu feedback cu vibrații

În acest tutorial, vă vom arăta mai întâi cum să utilizați un Arduino Uno pentru a controla un motor de vibrații printr-un buton extins. Majoritatea tutorialelor de pe butoanele cu apăsare implică butonul de pe panoul fizic, în timp ce în acest tutorial butonul a fost modificat pentru a fi conectat la panou prin cabluri jumper. Acest buton vă va permite să controlați puterea și modelul de vibrații al motorului. În continuare, vom arăta un posibil prototip al unei tehnologii purtabile care utilizează acest set-up. Acest purtabil este o mănușă cu vârfurile degetelor extensibile, cu butoane atașate la capăt, programate pentru a oferi feedback unic vibrației purtătorului pe baza butonului specific apăsat.

Pasul 1: Componente necesare pentru configurarea butonului la motorul de vibrații

Componente necesare pentru configurarea butonului la vibrația motorului
Componente necesare pentru configurarea butonului la vibrația motorului
  • Arduino Uno
  • Pană de pâine
  • Motor de vibrație a vibratorului de monede
  • Grove Button
  • Sârme jumper de la bărbat la bărbat (x10)
  • Jumper Wire 4 Pin
  • Driver Haptic Motor
  • Conector de la tată la tată
  • Ciocan de lipit

Pasul 2: Scheme pentru configurarea butonului la motorul de vibrație

Scheme pentru configurarea butonului la vibrația motorului
Scheme pentru configurarea butonului la vibrația motorului

Diagrama precedentă a fost creată cu Fritzing.org.

Pasul 3: Configurarea butonului pentru configurarea motorului de vibrații

Pasul 1: lipiți conectorul de margine la driverul motorului de vibrații. Lipiți firele vibratorului de monede în bornele driverului motorului de vibrații.

Pasul 2: Conectați cablul jumper cu 4 pini la butonul de deconectare.

Pasul 3: Utilizând unul dintre firele jumper, conectați pinul GRD de pe Arduino la un rând de pe panou.

Pasul 4: Folosind un alt cablu jumper, conectați pinul Volt 3.3 de pe Arduino la un rând diferit de pe panou.

Pasul 5: Acum vom conecta driverul motorului cu vibrații la Arduino. Folosind un al treilea cablu jumper, conectați pinul GND de pe driverul motorului de vibrație la același rând de pe panou ca pinul GRD de la Arduino. Faceți același lucru cu un alt fir pentru VCC (volt) de pe driverul motorului de vibrații, la rândul de volți al panoului.

Pasul 6: Utilizați încă un fir pentru a conecta pinul SDA de pe driverul motorului de vibrație la pinul SDA direct pe Arduino. Din nou, faceți același lucru cu pinii SCL de pe ambele. Alternativ, urmați o abordare similară cu pasul 5 și conectați pinii SDA și SCL de pe Arduino la propriile rânduri de pe panou prin fire jumper. Apoi rulați un fir de pe rândul în care pinul SDA este conectat pe placa de pin la pinul SDA de pe driverul motorului. Faceți același lucru pentru rândul SCL de pe panou cu pinul SCL de pe driverul motorului.

Pasul 7: Acum vom termina conectând butonul la driverul motorului cu vibrații și la Arduino. Utilizați un alt fir jumper pentru a conecta GRD de la firul jumper cu 4 pini conectat la butonul de rupere la același rând cu celelalte fire GRD de pe panou. Faceți același lucru cu volt încă o dată (VCC).

Pasul 8: Conectați o scriere finală de la SIG pe butonul de separare la un pin de pe Arduino (în scopul codului nostru, am folosit pinul 7).

Pasul 9: Conectați Arduino și încărcați codul și urmăriți-l cum funcționează!

Pasul 4: Codul

Buton-Vibrație-Motor.c

/ * Cod adaptat de la https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide?_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 * /
#include// Biblioteca de drivere motor SparkFun Haptic
#include// Biblioteca I2C
SFE_HMD_DRV2605L HMD; // Creați obiectul driverului de motor haptic
buton int = 7; // alegeți pinul de intrare 7 pentru buton
int button_val = 0; // variabilă pentru citirea stării pinului
voidsetup ()
{
/ * Inițializați obiectul driverului motorului Haptic * /
HMD.begin ();
Serial.begin (9600);
HMD. Mode (0); // Mod de introducere a declanșatorului intern - Trebuie să utilizați funcția GO () pentru a declanșa redarea.
HMD. MotorSelect (0x36); // Motor ERM, 4x Frânare, Câștig mediu în buclă, 1.365x Câștig EMF înapoi
HMD. Library (2); // 1-5 și 7 pentru motoare ERM, 6 pentru motoare LRA
}
voidloop ()
{
/ * Porniți motorul de vibrații * /
HMD.go ();
button_val = digitalRead (buton);
if (button_val == HIGH) {
/ * Această ieșire pentru a înregistra butonul respectiv a fost apăsat, utilizați pentru depanare * /
Serial.println ("Buton apăsat");
/ * Biblioteca de forme de undă are 0-122 tipuri diferite de unde * /
HMD. Waveform (0, 69);}
altceva {
/ * Dacă butonul nu este apăsat, opriți motorul de vibrație * /
HMD.stop ();
}
}

vizualizați rawButton-Vibration-Motor.c găzduit cu ❤ de GitHub

Pasul 5: Video al butonului la configurarea motorului de vibrații

Image
Image

Pasul 6: Prototip de mănușă extensibil

Prototip de mănușă extensibil
Prototip de mănușă extensibil
Prototip de mănușă extensibil
Prototip de mănușă extensibil

O posibilă aplicare a butonului la motorul cu vibrații este mănușa prezentată mai sus. Am modificat materiale accesibile ieftine, cum ar fi seringile, pentru a face „vârfurile degetelor” extensibile. Am atașat butoanele de grove la capătul seringilor modificate folosind velcro, am tăiat găuri în vârful degetelor unei mănuși și am așezat fiecare seringă prin găuri. Firele jumperului cu 4 pini ale butoanelor sunt filetate prin seringi și sunt suficient de lungi încât să le puteți extinde pe toată lungimea lor. Arduino și placa de prindere sunt atașate prin velcro la partea superioară a mănușii, ceea ce permite conectarea cu ușurință a firelor butoanelor printr-o mică fantă pe baza fiecărui vârf al degetului. Șoferul motorului este atașat de partea inferioară a mănușii prin deschidere, pentru a lipi motorul de vibrație în interiorul mănușii. Când purtătorul are mănușa pusă, motorul de vibrație stă la partea inferioară a încheieturii purtătorului. Când purtătorul atinge o suprafață și apasă unul dintre butoane, se produce o vibrație de feedback unică prin intermediul motorului.

Procesul de gândire din spatele unei astfel de mănuși ar fi acela de a permite unei persoane care o poartă să „atingă” lucruri dincolo de vârful degetelor obișnuite și să primească feedback că atinge aceste suprafețe. Feedback-ul vibrațiilor se schimbă în funcție de degetul care atinge suprafața, astfel încât utilizatorul să poată spune care deget atinge suprafața pe baza modelului de vibrații.

Există mai multe modalități de a duce prototipul mai departe, cum ar fi degetele mai extensibile sau modificarea feedback-ului în funcție de tipul de suprafață atins. În mod ideal, degetele extensibile ar fi create prin imprimare 3D, pentru opțiuni mai bune de telescopare. Un senzor de temperatură ar putea fi utilizat în locul butoanelor, pentru a permite feedback-ul cu privire la cât de fierbinte este suprafața pe care o atinge utilizatorul sau un senzor de umiditate în scopuri similare. O modalitate de a simți cât de departe „degetul” a fost extins ar putea fi implementată, pentru a permite utilizatorului să știe cât de departe este obiectul pe care îl atinge. Acestea sunt doar câteva opțiuni posibile pentru a duce mai departe acest prototip.

Această mănușă poate fi realizată cu materiale obișnuite ca o modalitate ușoară de a vă extinde simțurile și de a crea feedback pe care utilizatorul îl poate simți și înțelege.

Pasul 7: Cod pentru butoane multiple cu ieșire de vibrație unică

mutliple_buttons_to_vibmotor.ino

/ * Cod adaptat din SparkFun https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide * /
#include// Biblioteca de drivere motor SparkFun Haptic
#include// Biblioteca I2C
SFE_HMD_DRV2605L HMD; // Creați obiectul driverului de motor haptic
int button_middle = 7;
int button_index = 5; // alegeți pinul de intrare pentru buton
int button_ring = 9;
int button_pinky = 3;
voidsetup ()
{
HMD.begin ();
Serial.begin (9600);
HMD. Mode (0); // Mod de introducere a declanșatorului intern - Trebuie să utilizați funcția GO () pentru a declanșa redarea.
HMD. MotorSelect (0x36); // Motor ERM, 4x frânare, câștig mediu în buclă, 1.365x câștig EMF înapoi
HMD. Library (2); // 1-5 și 7 pentru motoare ERM, 6 pentru motoare LRA
}
voidloop ()
{
HMD.go (); // porniți motorul de vibrații
/ * Verificați ce buton este apăsat și forma de undă de ieșire 0-122 * /
if (digitalRead (button_middle) == HIGH) {
Serial.println ("Buton apăsat");
HMD. Waveform (0, 112);}
elseif (digitalRead (button_index) == HIGH) {
HMD. Waveform (0, 20);
}
elseif (digitalRead (button_ring) == HIGH) {
HMD. Waform (0, 80);
}
elseif (digitalRead (button_pinky) == HIGH) {
HMD. Waform (0, 100);
}
/ * Dacă nu este apăsat niciun buton, opriți * /
altceva {
HMD.stop ();
}
}

vizualizați rawmutliple_buttons_to_vibmotor.ino găzduit cu ❤ de GitHub

Recomandat: