Inhaltsverzeichnis:

Wearable - Abschlussprojekt - Gunook
Wearable - Abschlussprojekt - Gunook

Video: Wearable - Abschlussprojekt - Gunook

Video: Wearable - Abschlussprojekt - Gunook
Video: Magic Hat - Ein tragbares IoT Projekt 2024, November
Anonim
Wearable - Abschlussprojekt
Wearable - Abschlussprojekt

EINLEITUNG

In diesem Projekt hatten wir die Aufgabe, einen funktionalen Wearable-Prototyp basierend auf Cyborg-Funktionen zu erstellen. Wussten Sie, dass sich Ihr Herz mit dem BPM der Musik synchronisiert? Sie können versuchen, Ihre Stimmung durch Musik zu kontrollieren, aber was ist, wenn wir uns von der Technologie beruhigen lassen? Wir brauchen nur einige Komponenten, einen Arduino und Ihre Kopfhörer. Lassen Sie uns innovativ sein!

Projekt von Marc Vila, Guillermo Stauffacher und Pau Carcellé

Schritt 1: Materialien und Komponenten

Materialien und Komponenten
Materialien und Komponenten

Baumaterialien:

- 3D gedrucktes Armband

- M3-Schrauben (x8)

- M3-Muttern (x12)

- Gürteltasche

Elektronische Materialien:

-Herzfrequenzsensor BPM

- Knöpfe (x2)

- Potentiometer

- LCD C 1602 MODUL

- MODUL DFPLAYER MINI MP3

- 3,5-mm-Klinken-Stereo-TRRS-HEADSET

- Micro SD Karte

- Arduino Uno-Platte

- Schweißer

- Bakelitplatte

Schritt 2: Entwerfen Sie ein Armband

Entwerfen Sie ein Armband
Entwerfen Sie ein Armband
Entwerfen Sie ein Armband
Entwerfen Sie ein Armband

Zuerst machen wir mehrere Skizzen, um die verschiedenen Komponenten im Armband zu organisieren.

Mit der klaren Idee haben wir die drei Arme der Gruppenmitglieder vermessen und dann den Durchschnitt gebildet, um das optimale Maß für das Design zu finden. Schließlich entwerfen wir das Produkt mit einem 3D-Programm und drucken es mit einem 3D-Drucker.

Sie können die. STL-Dateien hier herunterladen.

Schritt 3: Elektronische Verbindungen

Elektronische Verbindungen
Elektronische Verbindungen

Wir führen weiterhin die notwendigen Überprüfungen unseres 3D-Designs durch, wir haben eine erste Montage aller Komponenten im Prototyp vorgenommen, um zu sehen, dass die Messungen korrekt waren.

Um alle Komponenten mit dem Arduino-Board zu verbinden, haben wir verschiedene Verbindungen von den Komponenten mit 0,5-Meter-Kabeln hergestellt, auf diese Weise reduzieren wir die Sichtbarkeit des Boards und organisieren den Prototyp besser.

Schritt 4: Der Code

Der Code
Der Code
Der Code
Der Code
Der Code
Der Code

Dieses Projekt ist ein Cyborg-Prototyp. Natürlich haben wir die Komponenten nicht unter der Haut eingeführt, sondern haben es mit einem Armband als Orthese simuliert (äußeres Gerät, das am Körper angebracht wird, um die funktionellen Aspekte zu modifizieren).

Unser Code nimmt die Tastenanschläge des Benutzers und zeigt sie auf dem LCD-Bildschirm an. Zusätzlich zum BPM zeigt der Bildschirm die gewünschte Intensität an, damit der Benutzer diese mit seiner Herzfrequenz vergleichen kann. Es gibt viele Situationen, in denen es interessant ist, den eigenen BPM zu erhöhen oder zu reduzieren. Ausdauersportler müssen beispielsweise die Pulsationen kontrollieren, um nicht übermäßig zu ermüden. Ein alltägliches Beispiel wäre, in einer nervösen Situation schlafen oder sich beruhigen zu wollen. Es könnte auch als therapeutische Methode für Menschen mit Autismus angewendet werden, um den Stress zu reduzieren, den sie empfinden. Neben dem Bildschirm befinden sich zwei Tasten, um die gewünschte Intensität zu steuern und die Herzfrequenz zu erhöhen oder zu verringern. Je nach Intensität wird eine zuvor erlernte Musikrichtung gespielt. Es gibt Studien, die zeigen, dass Musik den BPM verändern kann. Laut Beats per Minute des Songs ahmt der menschliche Körper diese BPM nach und passt sie an.

int SetResUp = 11; // Pin 10 von Arduino mit Intensitätserhöhung button.int SetResDown = 12; // Pin 11 von Arduino mit Taste zum Verringern der Intensität

int ResButtonCounter = 0; // Zeitzähler, der die Widerstandseinstellung erhöht oder verringert, Anfangswert von 0 int ResButtonUpState = 0; // aktueller Zustand der Intensitätserhöhungstaste Int ResButtonDownState = 0; // aktueller Zustand der Taste zum Verringern der Intensität Int lastResButtonUpState = 0; // letzter Zustand der Intensitätserhöhungstaste Int lastResButtonDownState = 0; // letzter Zustand der Taste zum Verringern der Intensität

int pulsePin = 0; // Pulssensor an Port A0 angeschlossen // Diese Variablen sind flüchtig, da sie während der Interrupt-Routine in der zweiten Registerkarte verwendet werden. flüchtiger int-BPM; // Schläge pro Minute volatile int Signal; // Pulssensor-Dateneingang flüchtig Int IBI = 600; // Pulszeit volatile Boolean Pulse = false; // Wahr, wenn die Pulswelle hoch ist, falsch, wenn sie niedrig ist volatile Boolean QS = falsch;

# definiere Start_Byte 0x7E # definiere Version_Byte 0xFF # definiere Command_Length 0x06 # definiere End_Byte 0xEF # definiere Acknowledge 0x00 // Gibt Info mit Kommando 0x41 zurück [0x01: info, 0x00: no info]

//PANTALLA #include // Laden Sie die Bibliothek für die Funktionen des LCD-Bildschirms hoch #include #include

Flüssigkristall-LCD (7, 6, 5, 4, 3, 2); // Deklarieren Sie die Ports, an denen das LCD angeschlossen ist

//LECTOR #include #include // Laden Sie die Bibliothek für die Funktionen des Moduls dfplayer mini MP3 hoch.

char serialData; int nsong; im Fernsehen;

SoftwareSerielle Kommunikation(9, 10); // Deklarieren Sie die Ports, an denen der DFPlayer angeschlossen ist DFRobotDFPlayerMini mp3;

Void setup () { Serial.begin (9600); pinMode (SetResUp, INPUT); pinMode (SetResDown, INPUT);

// Definieren Sie die Abmessungen des LCD (16x2) lcd.begin (16, 2); //Wir wählen aus, in welcher Spalte und in welcher Zeile der Text angezeigt wird //LECTOR comm.begin(9600);

mp3.begin(comm); //Komponente startet serialData = (char)((' ')); mp3.start(); Serial.println("Wiedergabe"); // Spielen Sie ein Lied mp3.volume (25); //Volumen definieren }

Void Schleife () { wenn (digitalRead (11) == LOW) { mp3.next (); // Wenn die Taste gedrückt wird, passiert das Lied} if (digitalRead (12) == LOW) { mp3. previous (); //Wenn die Taste gedrückt wird, das vorherige Lied} //if (SetResUp && SetResDown == LOW) {

int pulso = analogRead (A0); // Lesen Sie den Wert des Herzfrequenzmessers, der an den analogen Port A0 angeschlossen ist

Serial.println (pulso/6); if (QS == true) {// Flag of Quantified Self ist wahr wie die Arduino-Suche das BPM QS = false; // Setzen Sie das Flag von Quantified Self zurück }

lcd.setCursor(0, 0); // Den gewünschten Text anzeigen lcd.print("BPM:"); lcd.setCursor(0, 1); //Gewünschten Text anzeigen lcd.print("INT:"); lcd.setCursor(5, 0); // Zeigen Sie den gewünschten Text lcd.print (pulso); lcd.setCursor(5, 1); // Den gewünschten Text anzeigen lcd.print (ResButtonCounter); Verzögerung (50); lcd.clear(); ResButtonUpState = digitalRead(SetResUp); ResButtonDownState = digitalRead (SetResDown);

// TempButtonState mit seinem vorherigen Zustand vergleichen

if (ResButtonUpState != lastResButtonUpState && ResButtonUpState == LOW) { // wenn sich der letzte Zustand geändert hat, den Zähler erhöhen

ResButtonCounter++; }

// aktuellen Zustand als letzten Zustand speichern, // für die nächste Ausführung der Schleife lastResButtonUpState = ResButtonUpState;

// vergleiche den Zustand des Buttons (erhöhen oder verringern) mit dem letzten Zustand

if (ResButtonDownState != lastResButtonDownState && ResButtonDownState == LOW) {

// wenn sich der letzte Zustand geändert hat, den Zähler dekrementieren

ResButtonCounter--; }

// aktuellen Zustand als letzten Zustand speichern, // für die nächste Ausführung der Schleife lastResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);

if (ResButtonCounter >= 10) { ResButtonCounter = 10; }

if (ResButtonCounter < 1) { ResButtonCounter = 1; }

}

}

Schritt 5: Gesamtmontage

Mit dem korrekt programmierten Code und den beiden Teilen unseres Prototyps bereits zusammengebaut. Wir setzen alle Komponenten ein und verbinden sie mit Klebeband, um sie am Armband zu befestigen. Die Komponenten, die sich im Armband befinden, sind der Herzfrequenzsensor BPM, die beiden Tasten, das Potentiometer und der LCD-Bildschirm, jeder in seinem jeweiligen Loch, das zuvor in der 3D-Datei entworfen wurde. Nachdem der erste Teil fertig ist, konzentrieren wir uns auf das Protoboard, wobei jeder Stecker auf dem richtigen Pin des Arduino-Boards liegt. Schließlich, mit der verifizierten Funktion jeder Komponente, legen wir sie in die Gürteltasche, um die Drähte zu verstecken.

Schritt 6: Video

Schritt 7: Fazit

Das Interessanteste an diesem Projekt ist, zu lernen, wie man den menschlichen Körper unbewusst mit Musik nachahmt. Dies öffnet die Tür zu vielen Optionen für zukünftige Projekte. Ich denke, dies ist ein komplettes Projekt, wir haben eine ganze Reihe von Komponenten mit einem funktionierenden Code. Wenn wir wieder anfangen, würden wir über andere Komponentenalternativen nachdenken oder diese in besserer Qualität kaufen. Wir hatten viele Probleme mit Kabelbrüchen und Schweißnähten, sie sind klein und sehr empfindlich (insbesondere der BPM). Andererseits muss man beim Anschluss der Komponenten vorsichtig sein, sie haben viele Ausgänge und man kann leicht Fehler machen.

Es ist ein sehr bereicherndes Projekt, in dem wir eine Vielzahl von Arduino-Hardware- und -Softwareoptionen berührt haben.