Sadržaj:

Primjena proširivog dugmeta s povratnom vibracijom: 7 koraka (sa slikama)
Primjena proširivog dugmeta s povratnom vibracijom: 7 koraka (sa slikama)

Video: Primjena proširivog dugmeta s povratnom vibracijom: 7 koraka (sa slikama)

Video: Primjena proširivog dugmeta s povratnom vibracijom: 7 koraka (sa slikama)
Video: Ментальные науки: Эдинбург и Доре (Часть 1) 2024, Novembar
Anonim
Primjena proširivog dugmeta sa povratnom spregom vibracije
Primjena proširivog dugmeta sa povratnom spregom vibracije
Primjena proširivog dugmeta sa povratnom spregom vibracije
Primjena proširivog dugmeta sa povratnom spregom vibracije

U ovom vodiču prvo ćemo vam pokazati kako koristiti Arduino Uno za upravljanje motorom vibracija putem produženog gumba. Većina vodiča o gumbima uključuje gumb na fizičkoj ploči, dok je u ovom vodiču gumb izmijenjen tako da se umjesto toga poveže s matičnom pločom pomoću kratkospojnih kabela. Ovo dugme će vam omogućiti kontrolu snage i vibracije motora. Nakon toga pokazat ćemo mogući prototip nosive tehnologije koja koristi ovu postavku. Ova nosive rukavice su rukavice s produživim vrhovima prstiju s gumbima pričvršćenim na kraju, programirane za davanje jedinstvene vibracijske povratne informacije korisniku na temelju specifičnog gumba pritisnutog.

Korak 1: Komponente potrebne za postavljanje motora na dugme za vibraciju

Komponente potrebne za postavljanje motora na dugme za vibraciju
Komponente potrebne za postavljanje motora na dugme za vibraciju
  • Arduino Uno
  • Breadboard
  • Motor za vibracije sa vibratorom novčića
  • Grove Button
  • Žice kratkospojnika muški na muški (x10)
  • Žica kratkospojnika 4 Pin
  • Vozač haptičkog motora
  • Rubni konektor muško-ženski
  • Lemilica

Korak 2: Sheme za postavljanje motora s gumbom na vibraciju

Sheme za postavljanje motora s gumbom na vibraciju
Sheme za postavljanje motora s gumbom na vibraciju

Prethodni dijagram je kreiran sa Fritzing.org.

Korak 3: Postavljanje dugmeta na vibracijski motor

Korak 1: Lemite rubni konektor na pokretač motora vibracije. Lemiti žice novčića vibratora u stezaljke pogona motora za vibracije.

Korak 2: Spojite 4 -pinski kratkospojnik na prekidač dugmeta.

Korak 3: Pomoću jedne od kratkospojnika povežite GRD iglu na Arduinu u red na matičnoj ploči.

Korak 4: Pomoću druge kratkospojne žice spojite iglu Volt 3.3 na Arduinu u drugi red na matičnoj ploči.

Korak 5: Sada ćemo spojiti upravljački program motora s vibracijama na Arduino. Pomoću treće kratkospojne žice spojite GND pin na upravljačkom programu motora s vibracijama u isti red na matičnoj ploči kao i GRD pin iz Arduina. Učinite isto s drugom žicom za VCC (volt) na pogonu motora vibracije, do reda volta na ploči.

Korak 6: Upotrijebite još jednu žicu za povezivanje SDA pina na upravljačkom programu motora s vibracijama sa SDA pinom izravno na Arduinu. Opet, učinite isto sa SCL pinovima na oba. Alternativno, slijedite sličan pristup koraku 5 i spojite SDA i SCL pinove na Arduinu s vlastitim redovima na matičnoj ploči putem kratkospojnih žica. Zatim vodite žicu iz reda gdje je SDA pin spojen na matičnoj ploči sa SDA iglom na upravljačkom programu motora. Učinite isto za SCL red na matičnoj ploči sa SCL iglom na upravljačkom programu motora.

Korak 7: Sada ćemo završiti povezivanjem gumba s upravljačkim programom motora za vibracije i Arduinom. Upotrijebite drugu kratkospojnu žicu za spajanje GRD -a sa 4 -pinske kratkospojne žice spojene na prekidač dugmeta u isti red kao i ostale GRD žice na ploči. Učinite isto s voltom još jednom (VCC).

Korak 8: Spojite posljednje pisanje iz SIG -a na prekidaču dugmeta s pinom na Arduinu (za potrebe našeg koda koristili smo pin 7).

Korak 9: Uključite Arduino i prenesite kôd i gledajte kako radi!

Korak 4: Kôd

Button-Vibration-Motor.c

/ * Kôd prilagođen sa https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide?_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 */
#include// SparkFun biblioteka upravljačkih programa haptičkih motora
#include// I2C biblioteka
SFE_HMD_DRV2605L HMD; // Kreiranje objekta upravljačkog programa haptičkog motora
int dugme = 7; // odaberite ulazni pin 7 za tipku
int button_val = 0; // varijabla za čitanje statusa pina
voidsetup ()
{
/ * Pokretanje objekta haptičkog pogonskog motora */
HMD.begin ();
Serial.begin (9600);
HMD. Mode (0); // Interni način unosa okidača - Morate koristiti funkciju GO () za pokretanje reprodukcije.
HMD. MotorSelect (0x36); // ERM motor, 4x kočenje, pojačanje srednje petlje, 1,365x nazad EMF pojačanje
HMD. Library (2); // 1-5 i 7 za ERM motore, 6 za LRA motore
}
voidloop ()
{
/ * Pokrenite motor za vibracije */
HMD.go ();
button_val = digitalRead (dugme);
if (button_val == HIGH) {
/* Ovaj izlaz za zapis da je pritisnuto dugme, koristite za otklanjanje grešaka*/
Serial.println ("Dugme pritisnuto.");
/ * Biblioteka talasnih oblika ima 0-122 različitih tipova talasa */
HMD. Waveform (0, 69);}
else {
/ * Ako dugme nije pritisnuto, zaustavite motor za vibracije */
HMD.stop ();
}
}

pogledajte rawButton-Vibration-Motor.c hostirano sa ❤ od strane GitHub-a

Korak 5: Video zapis gumba za podešavanje vibracijskog motora

Image
Image

Korak 6: Prototip rukavica koje se mogu produžiti

Prototip rukavica proširivih
Prototip rukavica proširivih
Prototip rukavica proširivih
Prototip rukavica proširivih

Jedna od mogućih primjena gumba na motoru za vibracije je gornja rukavica. Modificirali smo jeftine pristupačne materijale, poput šprica, kako bismo napravili "vrhove prstiju" koji se mogu produžiti. Pričvrstili smo dugmad na kraju modificiranih štrcaljki pomoću čičak trake, izrezali rupe na vrhovima prstiju rukavice i svaku štrcaljku stavili kroz rupe. 4 -iglične kratkospojne žice dugmadi provučene su kroz štrcaljke i dovoljno su dugačke da ih možete izvući do pune dužine. Arduino i ploča za pričvršćivanje pričvršćeni su čičkom na vrh rukavice, što omogućava lako povezivanje žica dugmadi kroz mali prorez na dnu svakog vrha prsta. Vozač motora je pričvršćen na donju stranu rukavice otvorom, kako bi zalijepio motor za vibracije na unutrašnjost rukavice. Kad nosilac nosi rukavicu, motor za vibracije sjedi na donjoj strani zgloba. Kada korisnik dodirne površinu i pritisne jedno od dugmadi, kroz motor se daje jedinstvena povratna vibracija.

Proces razmišljanja iza takve rukavice bio bi omogućiti nekome ko je nosi da "dodirne" stvari izvan dosega njihovih uobičajenih vrhova prstiju i primi povratnu informaciju da dodiruje te površine. Povratne informacije o vibracijama mijenjaju se ovisno o tome koji prst dodiruje površinu, tako da je korisniku moguće reći koji prst dodiruje površinu na osnovu uzorka vibracija.

Postoji mnogo načina da se prototip poboljša, poput povećavanja prstiju ili mijenjanja povratnih informacija ovisno o vrsti površine koju se dodiruje. U idealnom slučaju, rastegljivi prsti bi se stvorili putem 3D štampe, radi boljih mogućnosti teleskopiranja. Senzor temperature mogao bi se koristiti umjesto gumba, kako bi se omogućila povratna informacija o tome koliko je vruća površina koju korisnik dodiruje, ili senzor vlage za slične svrhe. Mogao bi se primijeniti način da se osjeti koliko je "prst" produžen, kako bi se korisniku omogućilo da zna koliko je udaljen objekt koji dodiruje. Ovo je samo nekoliko mogućih opcija za daljnji razvoj ovog prototipa.

Ova rukavica može biti izrađena od uobičajenih materijala kao jednostavan način za proširenje vaših osjetila i stvaranje povratnih informacija koje korisnik može osjetiti i razumjeti.

Korak 7: Kôd za više tipki s jedinstvenim izlazom vibracije

mutliple_buttons_to_vibmotor.ino

/ * Kod prilagođen sa SparkFuna https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide */
#include// SparkFun biblioteka upravljačkih programa haptičkih motora
#include// I2C biblioteka
SFE_HMD_DRV2605L HMD; // Kreiranje objekta pogonitelja haptičkog motora
int button_middle = 7;
int button_index = 5; // odabir ulaznog pina za tipku
int button_ring = 9;
int button_pinky = 3;
voidsetup ()
{
HMD.begin ();
Serial.begin (9600);
HMD. Mode (0); // Interni način unosa okidača - Morate koristiti funkciju GO () za pokretanje reprodukcije.
HMD. MotorSelect (0x36); // ERM motor, 4x kočenje, pojačanje srednje petlje, 1,365x nazad EMF pojačanje
HMD. Library (2); // 1-5 i 7 za ERM motore, 6 za LRA motore
}
voidloop ()
{
HMD.go (); // pokretanje motora za vibracije
/ * Provjerite koje je dugme pritisnuto i izlažite valni oblik 0-122 */
if (digitalRead (button_middle) == HIGH) {
Serial.println ("Dugme pritisnuto.");
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);
}
/ * Ako nije pritisnuto nijedno dugme, zaustavite */
else {
HMD.stop ();
}
}

pogledajte rawmutliple_buttons_to_vibmotor.ino hosted with ❤ by GitHub

Preporučuje se: