Innehållsförteckning:

En tillämpning av en utdragbar knapp med vibrationsåterkoppling: 7 steg (med bilder)
En tillämpning av en utdragbar knapp med vibrationsåterkoppling: 7 steg (med bilder)

Video: En tillämpning av en utdragbar knapp med vibrationsåterkoppling: 7 steg (med bilder)

Video: En tillämpning av en utdragbar knapp med vibrationsåterkoppling: 7 steg (med bilder)
Video: Utdragbar jeans knapp frn Svenexpress.se 2024, November
Anonim
En tillämpning av en utdragbar knapp med vibrationsåterkoppling
En tillämpning av en utdragbar knapp med vibrationsåterkoppling
En tillämpning av en utdragbar knapp med vibrationsåterkoppling
En tillämpning av en utdragbar knapp med vibrationsåterkoppling

I denna handledning kommer vi först att visa dig hur du använder en Arduino Uno för att styra en vibrationsmotor via en förlängd knapp. De flesta självstudier om tryckknappar involverar knappen på det fysiska brödbrädet, medan i den här självstudien har knappen ändrats för att anslutas till brödbrädan via bygelkablar istället. Med den här knappen kan du styra motorns styrka och vibrationsmönster. Efter det kommer vi att visa en möjlig prototyp av en bärbar teknik som använder denna konfiguration. Denna bärbara är en handske med utdragbara fingertoppar med knappar fästa vid änden, programmerad för att ge unika vibrationsåterkopplingar till bäraren baserat på den specifika tryckta knappen.

Steg 1: Komponenter som behövs för inställning av knapp till vibrationsmotor

Komponenter som behövs för inställning av knapp till vibrationsmotor
Komponenter som behövs för inställning av knapp till vibrationsmotor
  • Arduino Uno
  • Bakbord
  • Myntvibratorvibrationsmotor
  • Grove -knapp
  • Man-till-man-bygelkablar (x10)
  • Jumper Wire 4 Pin
  • Haptic motorförare
  • Man-till-hona kantkontakt
  • Lödkolv

Steg 2: Schema för inställning av knapp till vibrationsmotor

Schema för inställning av knapp till vibrationsmotor
Schema för inställning av knapp till vibrationsmotor

Föregående diagram skapades med Fritzing.org.

Steg 3: Inställning av knapp till inställning av vibrationsmotor

Steg 1: Löd kantkontakten till vibrationsmotordrivrutinen. Löd myntvibratorns trådar i terminalerna på vibrationsmotordrivrutinen.

Steg 2: Anslut den 4 -poliga bygelkabeln till knappbrytningen.

Steg 3: Anslut GRD -stiftet på Arduino med en av bygelstrådarna till en rad på brödbrädet.

Steg 4: Använd en annan bygelkabel, anslut Volt 3.3 -stiftet på Arduino till en annan rad på brödbrädet.

Steg 5: Nu ansluter vi vibrationsmotordrivrutinen till Arduino. Använd en tredje bygelkabel, anslut GND -stiftet på vibrationsmotordrivrutinen till samma rad på brödbrädet som GRD -stiftet från Arduino. Gör samma sak med en annan kabel för VCC (volt) på vibrationsmotordrivrutinen, till raden volt på brödbrädet.

Steg 6: Använd ännu en tråd för att ansluta SDA -stiftet på vibrationsmotordrivrutinen till SDA -stiftet direkt på Arduino. Återigen, gör samma sak med SCL -stiften på båda. Alternativt kan du följa ett liknande tillvägagångssätt för steg 5 och anslut SDA- och SCL -stiften på Arduino till sina egna rader på brödbrädet via bygelkablar. Dra sedan en tråd från raden där SDA -stiftet är anslutet på brödbrädet till SDA -stiftet på motordrivrutinen. Gör samma sak för SCL -raden på brödbrädan till SCL -stiftet på motorföraren.

Steg 7: Nu avslutar vi med att ansluta knappen till vibrationsmotordrivrutinen och Arduino. Använd en annan bygelkabel för att ansluta GRD från den 4 -poliga bygelkabeln som är ansluten till knappbrytningen till samma rad som de andra GRD -trådarna på brödbrädet. Gör samma sak med volt igen (VCC).

Steg 8: Anslut en sista skrivning från SIG på knapputbrottet till en stift på Arduino (för vår kod använde vi stift 7).

Steg 9: Anslut Arduino och ladda upp koden och se hur den fungerar!

Steg 4: Koden

Knapp-vibrationsmotor. C

/ * Kod anpassad från https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide?_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 */
#omfatta// SparkFun Haptic Motor Driver Library
#omfatta// I2C -bibliotek
SFE_HMD_DRV2605L HMD; // Skapa haptiskt motordrivrutinobjekt
int -knapp = 7; // välj ingångsstift 7 för tryckknapp
int button_val = 0; // variabel för att läsa pin -status
voidsetup ()
{
/ * Initiera Haptic Motor Driver Object */
HMD.begin ();
Serial.begin (9600);
HMD. Mode (0); // Internt utlösarinmatningsläge - Måste använda GO () -funktionen för att utlösa uppspelning.
HMD. MotorSelect (0x36); // ERM -motor, 4x bromsning, medelhög slingförstärkning, 1.365x tillbaka EMF -förstärkning
HMD. Library (2); // 1-5 & 7 för ERM-motorer, 6 för LRA-motorer
}
voidloop ()
{
/ * Starta vibrationsmotorn */
HMD.go ();
button_val = digitalRead (knapp);
if (button_val == HIGH) {
/* Denna utmatning för att logga den knappen har tryckts, använd för debugginh*/
Serial.println ("Knapp intryckt.");
/ * Vågformsbiblioteket har 0-122 olika typer av vågor */
HMD. Waveform (0, 69);}
annan{
/ * Om knappen inte trycks in, stoppa vibrationsmotorn */
HMD.stop ();
}
}

visa rawButton-Vibration-Motor.c värd med ❤ av GitHub

Steg 5: Video med inställning av knapp till vibrationsmotor

Image
Image

Steg 6: Prototyp av Glove Extendable

Prototyp av handsken som kan förlängas
Prototyp av handsken som kan förlängas
Prototyp av handske som kan förlängas
Prototyp av handske som kan förlängas

En möjlig tillämpning av knappen på vibrationsmotorn är handsken som visas ovan. Vi har modifierat billigt tillgängliga material som sprutor för att göra utdragbara "fingertoppar". Vi fäst lundknapparna i slutet av de modifierade sprutorna med kardborreband, skar hål i fingertopparna på en handske och placerade varje spruta genom hålen. Knapparnas 4 -stifts bygelstrådar är gängade genom sprutor och är tillräckligt långa för att du ska kunna förlänga sprutor till sin fulla längd. Arduino och brödbräda är fästa via kardborrband på toppen av handsken, vilket gör att knapparnas trådar enkelt kan anslutas genom en liten slits på basen av varje fingertopp. Motordrivrutinen är fäst vid handskens undersida vid öppningen för att hålla vibrationsmotorn på insidan av handsken. När bäraren har handsken på sitter vibrationsmotorn på undersidan av bärarens handled. När bäraren vidrör en yta och trycker ned en av knapparna, ges en unik återkopplingsvibration genom motorn.

Tankeprocessen bakom en sådan handske skulle vara att låta någon som bär den "röra" saker utanför sina vanliga fingertoppar och få feedback om att de rör vid dessa ytor. Vibrationsåterkopplingen ändras beroende på vilket finger som rör vid ytan, så att det är möjligt för användaren att berätta vilket finger som rör vid ytan baserat på vibrationsmönstret.

Det finns många sätt att ta prototypen vidare, till exempel att göra fingrarna mer utdragbara eller att ändra feedbacken baserat på typen av yta som berörs. Helst skulle förlängningsbara fingrar skapas via 3D -utskrift, för bättre teleskopalternativ. En temperatursensor kan användas istället för knapparna för att ge feedback om hur het ytan användaren vidrör eller en fuktsensor för liknande ändamål. Ett sätt att känna hur långt "fingret" har förlängts kan genomföras, så att användaren kan veta hur långt bort föremålet de rör vid är. Detta är bara några möjliga alternativ för att ta denna prototyp vidare.

Denna handske kan tillverkas med vanliga material som ett enkelt sätt att utöka dina sinnen och skapa feedback som användaren kan känna och förstå.

Steg 7: Kod för flera knappar med unik vibrationsutgång

mutliple_buttons_to_vibmotor.ino

/ * Kod anpassad från SparkFun https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide */
#omfatta// SparkFun Haptic Motor Driver Library
#omfatta// I2C -bibliotek
SFE_HMD_DRV2605L HMD; // Skapa haptiskt motordrivrutinobjekt
int button_middle = 7;
int button_index = 5; // välj inmatningsstift för tryckknapp
int button_ring = 9;
int button_pinky = 3;
voidsetup ()
{
HMD.begin ();
Serial.begin (9600);
HMD. Mode (0); // Internt utlösarinmatningsläge - Måste använda GO () -funktionen för att utlösa uppspelning.
HMD. MotorSelect (0x36); // ERM -motor, 4x bromsning, medelhög slingförstärkning, 1,365x tillbaka EMF -förstärkning
HMD. Library (2); // 1-5 & 7 för ERM-motorer, 6 för LRA-motorer
}
voidloop ()
{
HMD.go (); // starta vibrationsmotorn
/ * Kontrollera vilken knapp som trycks in och mata ut vågform 0-122 */
if (digitalRead (button_middle) == HIGH) {
Serial.println ("Knapp intryckt.");
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);
}
/ * Om ingen knapp trycks in stoppar du */
annan{
HMD.stop ();
}
}

visa rawmutliple_buttons_to_vibmotor.ino värd med ❤ av GitHub

Rekommenderad: