Spisu treści:
- Krok 1: Materiały i komponenty
- Krok 2: Zaprojektuj opaskę
- Krok 3: Połączenia elektroniczne
- Krok 4: Kodeks
- Krok 5: Całkowity montaż
- Krok 6: Wideo
- Krok 7: Wniosek
Wideo: Wearable - projekt końcowy: 7 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
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 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ę
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
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
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:
Zbuduj Wearable Motion Tracker (BLE od Arduino do niestandardowej aplikacji Android Studio): 4 kroki
Zbuduj Wearable Motion Tracker (BLE Od Arduino do niestandardowej aplikacji Android Studio): Bluetooth Low Energy (BLE) to forma komunikacji Bluetooth o niskim poborze mocy. Urządzenia do noszenia, takie jak inteligentne ubrania, które pomagam projektować w Predictive Wear, muszą ograniczać zużycie energii, gdy tylko jest to możliwe, aby przedłużyć żywotność baterii i często korzystać z BLE
Wearable Tech Final Project – kask DJ-a: 6 kroków
Wearable Tech Final Project - DJ Helmet: Celem tego projektu jest stworzenie kasku DJ z diodami LED reagującymi na muzykę do pokazu i efektu wow. Używamy adresowalnej taśmy LED z Amazon.com oraz kasku motocyklowego, Arduino uno i drutu
ATtiny Wearable Device - złącze krawędzi PCB: 4 kroki
ATtiny Wearable Device - PCB Edge Connector: Witam, to druga część serii narzędzi do programowania urządzeń do noszenia, w tym samouczku wyjaśniam, jak utworzyć urządzenie do noszenia na krawędzi PCB, które może być używane z moją tarczą programistyczną Arduino ATtiny. na przykład użyłem ATtiny85 uC w
Cat Whisker Sensory Extension Wearable (2.0): 6 kroków (ze zdjęciami)
Cat Whisker Sensory Extension Wearable (2.0): Ten projekt jest kontynuacją i nową wizją mojego byłego kolegi (metaterra) „Whisker Sensory Extension Wearable”. Celem tego projektu było skupienie się na stworzeniu nowatorskich, wzbogaconych obliczeniowo „rozszerzeń sensorycznych”, które
Sterowanie LED z potencjometrem - egzamin końcowy: 3 kroki
Sterowanie LED za pomocą potencjometru - FinalExam: Na potrzeby mojego projektu egzaminu końcowego stworzyłem kontroler LED za pomocą potencjometru. Celem tego projektu jest wykorzystanie potencjometru do kontrolowania, które diody LED są włączone. Gdy potencjometr jest obrócony zgodnie z ruchem wskazówek zegara, diody LED są zaciemniane, dzięki czemu pierwsza dioda LED