Spisu treści:

Wearable - projekt końcowy: 7 kroków
Wearable - projekt końcowy: 7 kroków

Wideo: Wearable - projekt końcowy: 7 kroków

Wideo: Wearable - projekt końcowy: 7 kroków
Wideo: Robótka z Aurelią - Szydełkowanie w ciemno - Serwetka Helena - Połączenie [Odcinek 7] 2024, Listopad
Anonim
Urządzenia do noszenia - projekt końcowy
Urządzenia do noszenia - projekt końcowy

WPROWADZANIE

W tym projekcie mieliśmy za zadanie wykonać funkcjonalny prototyp ubieralny oparty na funkcjach cyborga. Czy wiesz, że twoje serce synchronizuje się z BPM muzyki? Możesz próbować kontrolować swój nastrój poprzez muzykę, ale co jeśli pozwolimy, by technologia pomogła nam się uspokoić? Potrzebujemy tylko kilku komponentów, Arduino i twoich słuchawek. Wprowadzajmy innowacje!

Projekt Marca Vili, Guillermo Stauffachera i Pau Carcellé

Krok 1: Materiały i komponenty

Materiały i komponenty
Materiały i komponenty

Materiały budowlane:

-3d drukowana opaska na nadgarstek

- śruby M3 (x8)

- Nakrętki M3 (x12)

- Nerka

Materiały elektroniczne:

-Czujnik tętna BPM

- Guziki (x2)

-Potencjometr

- MODUŁ LCD C 1602

- MODUŁ DFPLAYER MINI MP3

- ZESTAW SŁUCHAWKOWY TRRS 3,5 mm stereo

- Karta micro sd

- Płytka Arduino Uno

- Spawacz

- Talerz bakelitowy

Krok 2: Zaprojektuj opaskę

Zaprojektuj opaskę
Zaprojektuj opaskę
Zaprojektuj opaskę
Zaprojektuj opaskę

Najpierw wykonujemy kilka szkiców, aby uporządkować różne elementy opaski.

Mając jasny pomysł, wykonaliśmy pomiary trzech ramion członków grupy, a następnie dokonaliśmy średniej, aby znaleźć optymalną miarę projektu. Na koniec projektujemy produkt w programie 3d i drukujemy go drukarką 3D.

Tutaj możesz pobrać pliki. STL.

Krok 3: Połączenia elektroniczne

Połączenia elektroniczne
Połączenia elektroniczne

Kontynuujemy niezbędne kontrole naszego projektu 3D, wykonaliśmy pierwszy montaż wszystkich komponentów w prototypie, aby sprawdzić, czy pomiary są prawidłowe.

Aby połączyć wszystkie komponenty z płytką Arduino, wykonaliśmy różne połączenia z komponentów za pomocą kabli o długości 0,5 metra, w ten sposób zmniejszamy widoczność płytki i lepiej organizujemy prototyp.

Krok 4: Kodeks

Kod
Kod
Kod
Kod
Kod
Kod

Ten projekt to prototyp cyborga. Oczywiście nie wprowadziliśmy składników pod skórę, więc zasymulowaliśmy to za pomocą bransoletki jako ortezy (zewnętrzne urządzenie nakładane na ciało w celu modyfikacji aspektów funkcjonalnych).

Nasz kod pobiera naciśnięcia klawiszy użytkownika i pokazuje je na ekranie LCD. Oprócz BPM ekran pokazuje pożądaną intensywność, aby użytkownik mógł porównać ją z tętnem. Istnieje wiele sytuacji, w których interesujące jest zwiększenie lub zmniejszenie własnego BPM. Na przykład sportowcy wytrzymałościowi muszą kontrolować pulsacje, aby nadmiernie się nie męczyć. Codziennym przykładem może być chęć spania lub uspokojenia się w nerwowej sytuacji. Może być również stosowany jako metoda terapeutyczna dla osób z autyzmem w celu zmniejszenia odczuwanego przez nie stresu. Obok ekranu znajdują się dwa przyciski do sterowania żądaną intensywnością oraz zwiększania lub zmniejszania tętna. W zależności od intensywności odtwarzany jest wcześniej przestudiowany rodzaj muzyki. Istnieją badania, które pokazują, że muzyka może zmienić BPM. Według Beats per Minute utworu ludzkie ciało naśladuje i dopasowuje te BPM.

int SetResUp = 11; // pin 10 Arduino ze wzrostem intensywności button.int SetResDown = 12; // pin 11 Arduino z przyciskiem zmniejszania intensywności

int ResButtonCounter = 0;// licznik razy zwiększający lub zmniejszający ustawienie rezystancji, wartość początkowa 0 int ResButtonUpState = 0; // aktualny stan przycisku zwiększania intensywności int ResButtonDownState = 0; // aktualny stan przycisku zmniejszania intensywności int lastResButtonUpState = 0; // ostatni stan przycisku zwiększania intensywności int lastResButtonDownState = 0; // ostatni stan przycisku zmniejszania intensywności

int impulsPin = 0; // Czujnik impulsu podłączony do portu A0 // Te zmienne są nietrwałe, ponieważ są używane podczas procedury przerwania na drugiej karcie. niestabilny int BPM; // Uderzenia na minutę ulotne int Signal; // Wejście danych czujnika impulsowego volatile int IBI = 600; // Czas impulsu volatile boolean Pulse = false; // Prawda, gdy fala tętna jest wysoka, fałsz, gdy jest Niska niestabilna wartość logiczna QS = false;

# define Start_Byte 0x7E # define Version_Byte 0xFF # define Command_Length 0x06 # define End_Byte 0xEF # define Acknowledge 0x00 //Zwraca informacje poleceniem 0x41 [0x01: info, 0x00: brak informacji]

//PANTALLA #include // Prześlij bibliotekę funkcji ekranu LCD #include #include

LCD LiquidCrystal (7, 6, 5, 4, 3, 2); // Zadeklaruj porty, do których podłączony jest wyświetlacz LCD

//LECTOR #include #include // Prześlij bibliotekę funkcji modułu dfplayer mini MP3.

char serialData; int nong; w telewizji;

OprogramowanieKomunikacja szeregowa (9, 10); // zadeklaruj porty, do których podłączony jest DFPlayer DFRobotDFPlayerMini mp3;

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

//Określ wymiary wyświetlacza LCD (16x2) lcd.begin(16, 2); //Wybieramy, w której kolumnie iw której linii tekst zaczyna się wyświetlać //LECTOR comm.begin(9600);

mp3.początek(comm); //Komponent uruchamia serialData = (char)((' ')); mp3.start(); Serial.println("Odtwórz"); // Odtwórz utwór mp3.volume(25); //Zdefiniuj głośność }

void loop() { if (digitalRead(11) == LOW){ mp3.next(); //Jeśli przycisk zostanie naciśnięty, utwór przejdzie } if (digitalRead(12) == LOW){ mp3.previous(); //Jeśli przycisk jest wciśnięty, poprzedni utwór } //if (SetResUp && SetResDown == LOW) {

int pulso = analogRead(A0); //Odczytaj wartość pulsometru podłączonego do portu analogowego A0

Serial.println(impuls/6); if (QS == true) { // Flag of Quantified Self jest true jak arduino przeszukuje BPM QS = false; // Zresetuj flagę Quantified Self }

lcd.setCursor(0, 0); //Pokaż żądany tekst lcd.print("BPM:"); lcd.setCursor(0, 1); //Pokaż żądany tekst lcd.print("INT:"); lcd.setCursor(5, 0); //Pokaż żądany tekst lcd.print(pulso); lcd.setCursor(5, 1); //Pokaż żądany tekst lcd.print(ResButtonCounter); opóźnienie(50); lcd.clear(); ResButtonUpState = digitalRead(SetResUp); ResButtonDownState = digitalRead(SetResDown);

// porównaj TempButtonState z poprzednim stanem

if (ResButtonUpState != lastResButtonUpState && ResButtonUpState == LOW) { // jeśli ostatni stan się zmienił, zwiększ licznik

ResButtonCounter++; }

// zapisz aktualny stan jako ostatni, // przy następnym wykonaniu pętli lastResButtonUpState = ResButtonUpState;

// porównaj stan przycisku (zwiększenie lub zmniejszenie) ze stanem ostatnim

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

// jeśli ostatni stan się zmienił, zmniejsz licznik

ResButtonCounter--; }

// zapisz aktualny stan jako ostatni, // przy następnym wykonaniu pętli lastResButtonDownState = ResButtonDownState; { Serial.println(ResButtonCounter);

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

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

}

}

Krok 5: Całkowity montaż

Z poprawnie zaprogramowanym kodem i zmontowanymi dwiema częściami naszego prototypu. Wszystkie elementy układamy na miejscu i łączymy taśmą, aby przymocować do bransoletki. Komponenty znajdujące się w bransoletce to czujnik tętna BPM, dwa przyciski, potencjometr i ekran LCD, każdy w odpowiednim otworze wcześniej zaprojektowanym w pliku 3D. Po wykonaniu pierwszej części skupiamy się na płytce prototypowej, każde złącze na odpowiednim pinie płyty Arduino. Na koniec, po zweryfikowaniu działania każdego elementu, wkładamy go do saszetki, aby ukryć przewody.

Krok 6: Wideo

Krok 7: Wniosek

Najciekawszą rzeczą w tym projekcie jest nauka nieświadomego naśladowania ludzkiego ciała za pomocą muzyki. Otwiera to drzwi do wielu opcji dla przyszłych projektów. Myślę, że to kompletny projekt, mamy dość różnorodne komponenty z działającym kodem. Jeśli zaczniemy od nowa, pomyślelibyśmy o innych alternatywach komponentów lub kupilibyśmy je lepszej jakości. Mieliśmy sporo problemów z uszkodzonymi kablami i spawami, są małe i bardzo delikatne (zwłaszcza BPM). Z drugiej strony należy uważać przy podłączaniu komponentów, mają one wiele wyjść i łatwo o pomyłki.

Jest to bardzo wzbogacający projekt, w którym dotknęliśmy szerokiej gamy opcji sprzętowych i programowych Arduino.

Zalecana: