Inhoudsopgave:

Een toepassing van een uitschuifbare knop met vibratiefeedback - Ajarnpa
Een toepassing van een uitschuifbare knop met vibratiefeedback - Ajarnpa

Video: Een toepassing van een uitschuifbare knop met vibratiefeedback - Ajarnpa

Video: Een toepassing van een uitschuifbare knop met vibratiefeedback - Ajarnpa
Video: Hoe maak je een Verschuifbare Knoop? 2024, November
Anonim
Een toepassing van een uitschuifbare knop met vibratiefeedback
Een toepassing van een uitschuifbare knop met vibratiefeedback
Een toepassing van een uitschuifbare knop met vibratiefeedback
Een toepassing van een uitschuifbare knop met vibratiefeedback

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

Onderdelen die nodig zijn voor het instellen van de knop naar de vibratiemotor
Onderdelen die nodig zijn 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

Schema's voor het instellen van de knop naar de trillingsmotor
Schema's voor het instellen van de knop naar de trillingsmotor

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//SparkFun Haptische Motor Driver Bibliotheek
#erbij betrekken//I2C-bibliotheek
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

Image
Image

Stap 6: Prototype van uitschuifbare handschoen

Prototype van uitschuifbare handschoen
Prototype van uitschuifbare handschoen
Prototype van uitschuifbare handschoen
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//SparkFun Haptische Motor Driver Bibliotheek
#erbij betrekken//I2C-bibliotheek
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: