Inhaltsverzeichnis:

Wearable Tech: Sprachändernder Handschuh - Gunook
Wearable Tech: Sprachändernder Handschuh - Gunook

Video: Wearable Tech: Sprachändernder Handschuh - Gunook

Video: Wearable Tech: Sprachändernder Handschuh - Gunook
Video: CES 2024: Insane Wearable Tech! 2024, November
Anonim
Wearable Tech: Sprachändernder Handschuh
Wearable Tech: Sprachändernder Handschuh
Wearable Tech: Sprachverändernder Handschuh
Wearable Tech: Sprachverändernder Handschuh

Nun, es scheint, als ob Handschuhe mit unglaublichen Kräften heutzutage der letzte Schrei sind. Der Infinity Gauntlet von Thanos ist zwar ein ziemlich mächtiger Handschuh, aber wir wollten einen Handschuh machen, der etwas noch bemerkenswerteres kann: die Stimme des Trägers in Echtzeit ändern.

Dieses Instructable bietet eine exemplarische Vorgehensweise, wie wir einen stimmverändernden Handschuh entworfen haben. Unser Design nutzte verschiedene Sensoren und einen Mikrocontroller im Handschuh, um Bewegungen zu erkennen, die über einen Arduino-Code an einen Max-Patch gesendet wurden, wo unser Audiosignal dann auf lustige Weise verändert und verzerrt wurde. Die von uns verwendeten spezifischen Sensoren, Bewegungen und Klangänderungen sind alle flexibel für unterschiedliche Überlegungen; Dies ist nur eine Möglichkeit, einen stimmverändernden Handschuh zu erstellen!

Dieses Projekt war Teil einer Gemeinschaftspartnerschaft zwischen Studenten des Pomona College und der Fremont Academy of Engineering Femineers. Es ist eine wirklich lustige Mischung aus elektronischen Ingenieurs- und elektronischen Musikelementen!

Schritt 1: Materialien

Materialien
Materialien
Materialien
Materialien
Materialien
Materialien

Teile:

  • HexWear-Mikrocontroller (ATmega32U4) (https://hexwear.com/)
  • MMA8451 Beschleunigungsmesser (https://www.adafruit.com/product/2019)
  • Kurze Flex-Sensoren (x4) (https://www.adafruit.com/product/1070)
  • Leichter Laufhandschuh
  • #2 Schrauben und Unterlegscheiben (x8)
  • Crimp-Anschlussstecker; 22-18 Gauge (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100 Stück)
  • 50kΩ Widerstand (x4)
  • Draht (~20 Gauge)
  • Selbstklebende Sicherheitsnadel
  • Filz oder anderer Stoff (~10 Quadratzoll)
  • Nähgarn
  • Kabelbinder
  • Laptop
  • USB-Mikrofon

Werkzeuge

  • Lötkit
  • Abisolierzangen und Drahtschneider
  • Isolierband
  • Heiße Luft Pistole
  • Schraubenzieher
  • Schere
  • Nähnadel

Software:

  • Max von Cycling '74 (https://cycling74.com)
  • Arduino-Software (https://www.arduino.cc/en/Main/Software)

Schritt 2: Installieren der Software

Wir beginnen mit dem wirklich aufregendsten Teil eines jeden Projekts: der Installation von Bibliotheken (und mehr).

Arduino:

Laden Sie die Arduino-Software herunter und installieren Sie sie (https://www.arduino.cc/en/Main/Software).

HexWear:

1) (Nur Windows, Mac-Benutzer können diesen Schritt überspringen) Installieren Sie den Treiber, indem Sie https://www.redgerbera.com/pages/hexwear-driver-installation besuchen. Laden Sie den Treiber herunter und installieren Sie ihn (die.exe-Datei, die in Schritt 2 oben auf der verlinkten RedGerbera-Seite aufgeführt ist).

2) Installieren Sie die erforderliche Bibliothek für Hexware. Öffnen Sie die Arduino-IDE. Wählen Sie unter "Datei" "Einstellungen". Fügen Sie in das Feld für zusätzliche Boards-Manager-URLs ein

github.com/RedGerbera/Gerbera-Boards/raw/master/package_RedGerbera_index.json.

Klicken Sie dann auf „OK“.

Gehen Sie zu Tools -> Board: -> Board-Manager. Wählen Sie im Menü in der oberen linken Ecke "Beigetragen".

Suchen Sie nach, klicken Sie dann auf Gerbera Boards und klicken Sie auf Installieren. Beenden Sie die Arduino IDE und öffnen Sie sie erneut.

Um sicherzustellen, dass die Bibliothek richtig installiert ist, gehen Sie zu Tools -> Board und scrollen Sie zum Ende des Menüs. Sie sollten einen Abschnitt mit dem Titel „Gerbera Boards“sehen, unter dem zumindest HexWear erscheinen sollte (wenn nicht mehr Boards wie Mini-HexWear).

Beschleunigungsmesser:

Laden Sie die Beschleunigungsmesser-Bibliothek herunter und installieren Sie sie (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)

Schritt 3: Anbringen des Beschleunigungsmessers

Anbringen des Beschleunigungsmessers
Anbringen des Beschleunigungsmessers
Anbringen des Beschleunigungsmessers
Anbringen des Beschleunigungsmessers

Wir benötigen zwei Haupttypen von Sensoren, um mit diesem Projekt zu interagieren: einen Beschleunigungsmesser und Flex-Sensoren. Wir werden diese nacheinander untersuchen, beginnend mit dem Beschleunigungsmesser. Zuerst müssen die Hardwareverbindungen übereinstimmen.

Um eine Beschädigung Ihres Hex zu vermeiden, empfehlen wir, eine Schraube Nr. 2 und eine Unterlegscheibe durch die gewünschten Anschlüsse zu stecken und dann alle Verbindungen an dieser Schraube anzubringen. Um zu verhindern, dass sich beim Spielen mit dem Handschuh etwas löst, sollten Verbindungen gelötet und/oder gecrimpt werden. Verwenden Sie für jede Verbindung ein paar Zentimeter Draht und stellen Sie die folgenden Verbindungen vom Hex zum Beschleunigungsmesser her (siehe die Pinbelegung oben als Referenz):

EINGANGSSPANNUNG VINGROUND GNDSCL/D3 SCLSDA/D2 SDA

Wenn alles verkabelt ist, sind wir bereit zum Testen!

Führen Sie als Test den Beschleunigungsmesser-Beispielcode in Arduino aus (Datei->Beispiele->Adafruit_MMA8451->MMA8451demo), um sicherzustellen, dass er an den seriellen Monitor ausgegeben werden kann. Es sollte die Erdbeschleunigung (~10m/s) in z-Richtung ausgeben, wenn es waagerecht gehalten wird. Durch Neigen des Beschleunigungsmessers wird diese Beschleunigung in x- oder y-Richtung gemessen; Wir verwenden dies, um dem Träger zu ermöglichen, den Ton durch Drehen seiner Hand zu ändern!

Jetzt müssen wir die Beschleunigungsmesserdaten so präsentieren, dass sie mit Max verbunden werden können. Dazu müssen wir die Werte von x und y ausgeben, möglicherweise modifiziert, um dem gewünschten Bereich zu entsprechen (siehe Teil 6). In unserem hier angehängten Code machen wir Folgendes:

//Messen der x-Richtung und y-Richtung. Wir dividieren und multiplizieren, um in die richtigen Bereiche für MAX zu gelangen (Bereich von 1000 in x und Bereich von 40 in y) xdir = event.acceleration.x/0.02; ydir = abs(event.acceleration.y)*2; // Alles in einem lesbaren Format für Max drucken - mit Leerzeichen zwischen jeder Zahl Serial.print (xdir); Serial.print (" ");

Dies sollte dazu führen, dass das Hex die modifizierten Werte der x- und y-Richtung des Beschleunigungsmessers jede Zeile druckt. Jetzt sind wir bereit, die Flex-Sensoren hinzuzufügen!

Schritt 4: Anbringen der Flexsensoren

Anbringen der Flexsensoren
Anbringen der Flexsensoren
Anbringen der Flexsensoren
Anbringen der Flexsensoren
Anbringen der Flexsensoren
Anbringen der Flexsensoren

Der Träger kann viele potenzielle Geräuschkontrollen erhalten, wenn wir beugende Finger erkennen können. Die Flexsensoren werden genau das tun. Jeder Flex-Sensor ist im Wesentlichen ein Potentiometer, wobei ungebogen einen Widerstand von ~25KΩ hat, während voll gebeugt einen Widerstand von ~100KΩ hat. Wir stecken jeden Flex-Sensor in einen einfachen Spannungsteiler mit einem 50K-Widerstand, wie im ersten Bild gezeigt.

Wieder mit ziemlich kurzen Drahtlängen (denken Sie daran, dass dies alles auf die Rückseite eines Handschuhs passt), löten Sie vier Spannungsteilermodule. Die vier Module teilen sich den gleichen Vin und die gleiche Masse - wir haben die abisolierten Enden der Drähte zusammengedreht, so dass wir nur eine Leitung zum Löten haben. Nehmen Sie schließlich die vier Module und stellen Sie die im zweiten Bild gezeigten Verbindungen her (wenn jemand weiß, wie das geht, ohne ein schreckliches Durcheinander zu verursachen, geben Sie bitte Ihre Geheimnisse preis).

Jetzt brauchen wir den Arduino-Code, um die Spannungen von jedem Sensor einzulesen. Für unsere Zwecke haben wir die Flexsensoren als Schalter behandelt; sie waren entweder an oder aus. Daher legt unser Code einfach einen Spannungsschwellenwert fest – über diesem Schwellenwert geben wir eine 1 an den seriellen Port aus (was bedeutet, dass der Sensor verbogen ist), andernfalls geben wir eine 0 aus:

// Nimm eine Reihe von

analoge Samples und addieren Sie diese für jeden Flex-Sensor

while (sample_count < NUM_SAMPLES) {

sum10 += analogRead(A10);

sum9 += analogRead(A9);

sum7 += analogRead(A7);

sum11 += analogRead(A11);

sample_count++;

//Kurze Verzögerung, um sie nicht zu schnell zu nehmen

Verzögerung(5);

}

// die Spannung berechnen, Mittelung über die schnellen Proben

// verwende 5.0 für einen 5.0V ADC

Referenz Spannung

// 5.015V ist die kalibrierte

Referenz Spannung

Spannung10 = ((Schwimmer)Summe10 /

(float)NUM_SAMPLES * 5.015) / 1024.0;

Spannung9 = ((Float)Summe9/

(float)NUM_SAMPLES * 5.015) / 1024.0;

Spannung7 = ((Float)Summe7 /

(float)NUM_SAMPLES * 5.015) / 1024.0;

Spannung11 = ((Float)Summe11 /

(float)NUM_SAMPLES * 5.015) / 1024.0;

// Überprüfen Sie, ob jeder Flexsensor

ist größer als der Schwellenwert (Thresh) - wenn ja, geben Sie die Zahl ein

//Kleiner Finger

if (Spannung10 > Schwelle)

{

//-5 zu erhöhen

Stimmhöhe um eine Oktave

flex10 = -10;

}

sonst flex10 = 0;

//Ringfinger

wenn (Spannung9 >

(Schwellwert-0.4)) {

// um zu senken

Stimmhöhe um eine Oktave

flex9 = 5;

}

sonst flex9 = 0;

//Mittelfinger

if (Spannung7 > Schwelle) {

// zum Einstellen

Halleffekt

flex7 = 1;

}

sonst flex7 = 0;

//Zeigefinger

if (Spannung11 > Schwelle)

{

//50 zu setzen

Zyklen bis 50

flex11 = 93;

}

sonst flex11 = 0;

// Alle Zählungen zurücksetzen

variabel auf 0 für die nächste Schleife

Sample_count = 0;

Summe10 = 0;

Summe9 = 0;

Summe7 = 0;

Summe11 = 0;

An dieser Stelle sollte der serielle Port Werte für die Ausrichtung des Beschleunigungsmessers anzeigen und auch, ob jeder Flexsensor verbogen ist. Wir sind bereit, unseren Arduino-Code mit Max ins Gespräch zu bringen!

Schritt 5: Schnittstelle mit Max

Schnittstelle zu Max
Schnittstelle zu Max

Da der Hex-Code jetzt viele Zahlen über den seriellen Port ausgibt, benötigen wir die Max-Software, um diese Signale zu lesen. Der oben abgebildete Codeblock tut genau das! Sie sind herzlich willkommen.

Wichtiger Hinweis: Schließen Sie nach dem Hochladen des Codes auf den Hex-Port alle Fenster der seriellen Schnittstelle und ändern Sie dann den eingekreisten Buchstaben im Max-Code, damit er dem Hex-Port entspricht. Wenn Sie sich nicht sicher sind, welchen Buchstaben Sie einstellen sollen, werden durch Drücken des „Drucken“-Teils des Max-Codes alle angeschlossenen Ports aufgelistet.

Die gedruckte Zeile von der seriellen Schnittstelle des Hex wird durch den Max-Codeblock gelesen und dann basierend auf den Leerzeichen getrennt. Die Ausgabe am Ende des Max-Blocks ermöglicht es Ihnen, jede Zahl einzeln zu erfassen, also verbinden wir den ersten Ausgaberaum mit der Stelle, an der die x-Richtung des Beschleunigungsmessers gehen soll, der zweite Raum ist die y-Richtung usw. Für Verbinden Sie diese nun einfach mit Nummernblöcken, um sicherzustellen, dass sie funktionieren. Sie sollten in der Lage sein, den Beschleunigungsmesser und die Flexsensoren zu bewegen und die Zahlen in der Max-Software ändern zu sehen.

Schritt 6: Den Rest des Max-Codes erstellen

Angesichts der Kraft der Max-Sprache können Sie hier Ihrer Fantasie freien Lauf lassen und das eingehende Tonsignal mit Ihrem magischen Power-Handschuh verändern. Wenn Ihnen jedoch die Ideen ausgehen, finden Sie oben eine Übersicht darüber, was unser Max-Code macht und wie er funktioniert.

Für jeden Parameter, den Sie ändern möchten, möchten Sie wahrscheinlich mit dem Wertebereich des Arduino-Codes herumspielen, um genau die richtige Empfindlichkeit zu erhalten.

Einige andere Tipps zur Fehlerbehebung bei Max:

  • Wenn Sie keinen Ton hören

    • Stellen Sie sicher, dass Max so eingestellt ist, dass er Audio von Ihrem Mikrofon empfängt (Optionen Audiostatus-Eingabegerät)
    • Stellen Sie sicher, dass der Master Volume-Schieberegler in Max aufgedreht ist und alle anderen Lautstärkeregler, die Sie möglicherweise in Ihrem Code haben
  • Wenn der Code nichts zu tun scheint

    • Stellen Sie sicher, dass Ihr Patch gesperrt ist (Schlosssymbol in der unteren linken Ecke)
    • Stellen Sie über Auslesungen im Max-Patch sicher, dass Ihr Max-Patch noch Daten vom seriellen Arduino-Port erhält. Wenn nicht, versuchen Sie, den seriellen Port zurückzusetzen (wie in Schritt 5 beschrieben) und/oder überprüfen Sie Ihre physischen Kabelverbindungen.
  • Seltsame Clipping-Geräusche beim Ändern von Parametern

    das hat etwas damit zu tun, wie ~tapin und ~tapout funktionieren; Insbesondere wenn Sie ihre Werte ändern, werden sie zurückgesetzt, was das Clipping verursacht. Angesichts unserer begrenzten Kenntnisse des Programms sind wir fast sicher, dass es in Max eine bessere Möglichkeit gibt, dies zu tun und das Problem zu beseitigen …

Schritt 7: Buchstäblich alles zusammenfügen

Buchstäblich alles zusammenfügen
Buchstäblich alles zusammenfügen
Buchstäblich alles zusammenfügen
Buchstäblich alles zusammenfügen
Buchstäblich alles zusammenfügen
Buchstäblich alles zusammenfügen
Buchstäblich alles zusammenfügen
Buchstäblich alles zusammenfügen

Jetzt müssen Sie nur noch unsere Schaltung an unserem Handschuh befestigen. Nehmen Sie Ihren zusätzlichen Stoff und schneiden Sie Streifen aus, die etwas größer als die Flexsensoren sind. Nähen Sie den zusätzlichen Stoff an den Finger des Handschuhs, wo sich der Knöchel biegt, und lassen Sie eine Art Hülle für den Flexsensor übrig (wir können die Flexsensoren nicht einfach direkt auf den Handschuh kleben, da sich der Handschuhstoff beim Biegen der Finger dehnt). Wenn der Ärmel größtenteils genäht ist, schieben Sie den Flexsensor hinein und nähen Sie die Kabel vorsichtig an den Handschuh, um den Flexsensor zu fixieren. Wiederholen Sie dies für jeden Flexsensor.

Als nächstes verwenden Sie die selbstklebende Sicherheitsnadel, um den Hex an der Rückseite des Handschuhs zu befestigen (Sie möchten möglicherweise etwas Heißkleber auf die Nadel kleben, um sicherzustellen, dass sie sich beim Tragen nicht löst). Nähen Sie den Beschleunigungsmesser an das Handgelenk des Handschuhs. Verwenden Sie schließlich die Magie von Kabelbindern, um alle unansehnlichen Drähte schön zu reinigen.

Sie sind bereit, Ihren ultimativen Singing-Power-Handschuh auf die Probe zu stellen! (Dürfen wir Daft Punks "Harder Better Faster Stronger" wärmstens empfehlen, um Ihre stimmverändernden Fähigkeiten voll zur Geltung zu bringen)

Empfohlen: