Inhoudsopgave:
- Stap 1: Benodigde componenten voor het instellen van de knop naar de vibratiemotor
- Stap 2: Schema's voor het instellen van de knop naar de vibratiemotor
- Stap 3: De set-up van knop naar vibratiemotor set-up
- Stap 4: De code
- Stap 5: Video van knop naar trillingsmotor instellen
- Stap 6: Prototype van uitschuifbare handschoen
- Stap 7: Codeer voor meerdere knoppen met unieke vibratie-output
Video: Een toepassing van een uitschuifbare knop met vibratiefeedback - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
In deze tutorial laten we je eerst zien hoe je een Arduino Uno gebruikt om een vibratiemotor aan te sturen via een uitgebreide knop. De meeste tutorials over drukknoppen hebben betrekking op de knop op het fysieke breadboard, terwijl in deze tutorial de knop is aangepast om in plaats daarvan via startkabels op het breadboard te worden aangesloten. Met deze knop kunt u de kracht en het trillingspatroon van de motor regelen. Daarna laten we een mogelijk prototype zien van een draagbare technologie die gebruik maakt van deze opstelling. Deze wearable is een handschoen met uitschuifbare vingertoppen met knopen aan het uiteinde, geprogrammeerd om unieke vibratiefeedback te geven aan de drager op basis van de specifieke knop die wordt ingedrukt.
Stap 1: Benodigde componenten voor het instellen van de knop naar de vibratiemotor
- Arduino Uno
- Breadboard
- Muntvibrator Trillingsmotor
- Grove-knop
- Man-naar-mannelijke doorverbindingsdraden (x10)
- Doorverbindingsdraad 4-pins
- Haptische Motor Driver
- Male-naar-Female Edge Connector
- Soldeerbout
Stap 2: Schema's voor het instellen van de knop naar de vibratiemotor
Het voorgaande diagram is gemaakt met Fritzing.org.
Stap 3: De set-up van knop naar vibratiemotor set-up
Stap 1: Soldeer de randconnector aan de aandrijving van de vibratiemotor. Soldeer de draden van de muntvibrator in de klemmen van de aandrijving van de vibratiemotor.
Stap 2: Sluit de 4-pins jumperkabel aan op de knopuitbraak.
Stap 3: Gebruik een van de jumperdraden om de GRD-pin op de Arduino aan te sluiten op een rij op het breadboard.
Stap 4: Gebruik een andere jumperdraad om de Volt 3.3-pin op de Arduino aan te sluiten op een andere rij op het breadboard.
Stap 5: Nu gaan we de vibratiemotordriver verbinden met de Arduino. Gebruik een derde jumperdraad om de GND-pin op de vibratiemotordriver aan te sluiten op dezelfde rij op het breadboard als de GRD-pin van de Arduino. Doe hetzelfde met een andere draad voor VCC (volt) op de aandrijving van de vibratiemotor, naar de voltrij van het breadboard.
Stap 6: Gebruik nog een andere draad om de SDA-pin op de vibratiemotordriver rechtstreeks op de Arduino aan te sluiten op de SDA-pin. Nogmaals, doe hetzelfde met de SCL-pinnen op beide. U kunt ook een vergelijkbare benadering volgen als stap 5 en de SDA- en SCL-pinnen op de Arduino verbinden met hun eigen rijen op het breadboard via jumperdraden. Leid vervolgens een draad van de rij waar de SDA-pin is aangesloten op het breadboard naar de SDA-pin op de motordriver. Doe hetzelfde voor de SCL-rij op het breadboard naar de SCL-pin op de motordriver.
Stap 7: Nu zullen we eindigen door de knop te verbinden met de vibratiemotordriver en Arduino. Gebruik een andere jumperdraad om de GRD van de 4-pins jumperdraad die is aangesloten op de knopuitbraak aan te sluiten op dezelfde rij als de andere GRD-draden op het breadboard. Doe hetzelfde met volt nogmaals (VCC).
Stap 8: Verbind een laatste schrijven van SIG op de knopuitbraak met een pin op de Arduino (voor onze code hebben we pin 7 gebruikt).
Stap 9: Sluit de Arduino aan en upload de code, en kijk hoe het werkt!
Stap 4: De code
Knop-vibratie-motor.c
/* Code aangepast van https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide?_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 */ |
#erbij betrekken |
#erbij betrekken |
SFE_HMD_DRV2605L HMD; //Maak een haptisch motorstuurprogramma-object |
int-knop = 7; // kies de ingang pin 7 voor drukknop |
int button_val = 0; // variabele voor het lezen van de pinstatus |
voidsetup() |
{ |
/* Haptic Motor Driver-object initialiseren */ |
HMD.begin(); |
Serieel.begin(9600); |
HMD. Modus (0); // Interne trigger-invoermodus -- Moet de GO()-functie gebruiken om het afspelen te activeren. |
HMD. MotorSelect (0x36); // ERM-motor, 4x remmen, gemiddelde lusversterking, 1,365x EMF-versterking |
HMD. Bibliotheek(2); //1-5 & 7 voor ERM-motoren, 6 voor LRA-motoren |
} |
voidloop() |
{ |
/* Start de vibratiemotor */ |
HMD.go(); |
button_val = digitalRead (knop); |
if(button_val== HOOG) { |
/* Dit wordt uitgevoerd om te loggen dat de knop is ingedrukt, gebruik voor debugginh*/ |
Serial.println("Knop ingedrukt."); |
/* De golfvormbibliotheek heeft 0-122 verschillende soorten golven */ |
HMD. Golfvorm(0, 69);} |
anders{ |
/* Als de knop niet is ingedrukt, stop dan de vibratiemotor */ |
HMD.stop(); |
} |
} |
bekijk rawButton-Vibration-Motor.c gehost met ❤ door GitHub
Stap 5: Video van knop naar trillingsmotor instellen
Stap 6: Prototype van uitschuifbare handschoen
Een mogelijke toepassing van de knop op de vibratiemotor is de hierboven getoonde handschoen. We hebben goedkope toegankelijke materialen zoals spuiten aangepast om uitschuifbare "vingertoppen" te maken. We bevestigden de grove knoppen aan het uiteinde van de aangepaste spuiten met klittenband, sneden gaten in de vingertoppen van een handschoen en plaatsten elke spuit door de gaten. De 4-pins jumperdraden van de knoppen zijn door de spuiten geregen en zijn lang genoeg om de spuiten tot hun volledige lengte uit te schuiven. De Arduino en het breadboard zijn via klittenband aan de bovenkant van de handschoen bevestigd, waardoor de draden van de knoppen eenvoudig kunnen worden aangesloten via een kleine gleuf aan de onderkant van elke vingertop. De motordriver wordt door de opening aan de onderkant van de handschoen bevestigd om de vibratiemotor aan de binnenkant van de handschoen te plakken. Als de drager de handschoen aan heeft, zit de vibratiemotor aan de onderkant van de pols van de drager. Wanneer de drager een oppervlak aanraakt en een van de knoppen indrukt, wordt een unieke feedbacktrilling gegeven door de motor.
De gedachte achter zo'n handschoen zou zijn om iemand die hem draagt dingen te laten 'aanraken' die buiten het bereik van zijn normale vingertoppen liggen, en feedback te krijgen dat hij deze oppervlakken aanraakt. De trillingsfeedback verandert afhankelijk van welke vinger het oppervlak aanraakt, zodat de gebruiker op basis van het trillingspatroon kan zien welke vinger het oppervlak aanraakt.
Er zijn veel manieren om het prototype verder te brengen, zoals de vingers meer uitschuifbaar maken of de feedback veranderen op basis van het type oppervlak dat wordt aangeraakt. Idealiter zouden uitschuifbare vingers worden gemaakt via 3D-printen, voor betere telescopische opties. In plaats van de knoppen kan een temperatuursensor worden gebruikt om feedback te geven over hoe heet het oppervlak dat de gebruiker aanraakt, of een vochtsensor voor soortgelijke doeleinden. Een manier om te voelen hoe ver de "vinger" is uitgeschoven, zou kunnen worden geïmplementeerd, zodat de gebruiker kan weten hoe ver het object dat ze aanraken is verwijderd. Dit zijn slechts enkele mogelijke opties om dit prototype verder te brengen.
Deze handschoen kan gemaakt worden van gewone materialen als een gemakkelijke manier om je zintuigen te verbreden en feedback te creëren die de gebruiker kan voelen en begrijpen.
Stap 7: Codeer voor meerdere knoppen met unieke vibratie-output
mutliple_buttons_to_vibmotor.ino
/* Code aangepast van SparkFun https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide */ |
#erbij betrekken |
#erbij betrekken |
SFE_HMD_DRV2605L HMD; //Maak een haptisch motorstuurprogramma-object |
int button_middle = 7; |
int button_index = 5; // kies de invoerpin voor drukknop |
int button_ring = 9; |
int button_pinky = 3; |
voidsetup() |
{ |
HMD.begin(); |
Serieel.begin(9600); |
HMD. Modus (0); // Interne trigger-invoermodus -- Moet de GO()-functie gebruiken om het afspelen te activeren. |
HMD. MotorSelect (0x36); // ERM-motor, 4x remmen, gemiddelde lusversterking, 1,365x EMF-versterking |
HMD. Bibliotheek(2); //1-5 & 7 voor ERM-motoren, 6 voor LRA-motoren |
} |
voidloop() |
{ |
HMD.go(); // start de vibratiemotor |
/* Controleer welke knop is ingedrukt en geef golfvorm 0-122 weer */ |
if(digitalRead(button_middle)== HOOG) { |
Serial.println("Knop ingedrukt."); |
HMD. Golfvorm(0, 112);} |
elseif(digitalRead(button_index) == HOOG){ |
HMD. Golfvorm (0, 20); |
} |
elseif(digitalRead(button_ring) == HOOG){ |
HMD. Golfvorm (0, 80); |
} |
elseif(digitalRead(button_pinky) == HOOG){ |
HMD. Golfvorm (0, 100); |
} |
/* Als er geen knop wordt ingedrukt, stop dan */ |
anders{ |
HMD.stop(); |
} |
} |
bekijk rawmutliple_buttons_to_vibmotor.ino gehost met ❤ door GitHub
Aanbevolen:
Druk op de knop); // Een Arduino LCD-spel: 5 stappen (met afbeeldingen)
Druk op de knop); // Een Arduino LCD-spel: onlangs heb ik in Scouts gewerkt aan de verdienstenbadge voor Game Design. Voor een van de vereisten heb ik dit spel gebouwd met Arduino die is gebaseerd op de LED Rocker Game. Het doel van het spel is om het hoogst mogelijke aantal punten te scoren. Aan het begin van d
Toepassing van MCP-23008 met behulp van relaisinterface (I2C):: 6 stappen:
Toepassing van MCP-23008 met behulp van Relay Interface (I2C):: HelloGood Groeten..!! Ik (Somanshu Choudhary) namens Dcube tech ventures die relais gaan besturen via het I2C-protocol met behulp van Arduino nano en MCP23008
Een knop Kopie naar klembord op een webpagina plaatsen: 5 stappen (met afbeeldingen)
Een knop Kopie naar klembord op een webpagina plaatsen: dit klinkt misschien eenvoudig, en ik zie er misschien gek uit als ik het op Instructables zet, maar in werkelijkheid is het niet zo eenvoudig. Er is CSS, JQuery, HTML, wat fancy javascript, en, ach, je weet wel
DIY MusiLED, muziek gesynchroniseerde LED's met Windows- en Linux-toepassing met één klik (32-bits en 64-bits). Eenvoudig opnieuw te maken, gemakkelijk te gebruiken, gemakkelijk te porten: 3 stappen
DIY MusiLED, muziek gesynchroniseerde LED's met Windows- en Linux-toepassing met één klik (32-bits en 64-bits). Eenvoudig te recreëren, gemakkelijk te gebruiken, gemakkelijk te poorten: dit project helpt je om 18 LED's (6 rood + 6 blauw + 6 geel) op je Arduino-bord aan te sluiten en de realtime signalen van de geluidskaart van je computer te analyseren en door te sturen naar de LED's om ze op te lichten volgens de beat-effecten (Snare, High Hat, Kick)
Een batterijpakket van 4,5 volt maken van een batterij van 9 V: 4 stappen
Een 4,5 volt batterijpakket maken van een 9V-batterij: deze instructie gaat helemaal over het splitsen van een 9V-batterij in 2 kleinere 4,5V-batterijpakketten. De belangrijkste reden om dit te doen is 1. Je wilt 4,5 volt 2. Je wilt fysiek iets kleiners dan een 9V batterij