Obsah:

Nositelné - závěrečný projekt: 7 kroků
Nositelné - závěrečný projekt: 7 kroků

Video: Nositelné - závěrečný projekt: 7 kroků

Video: Nositelné - závěrečný projekt: 7 kroků
Video: Živý poslech: Kompletní kolekce #BringYourWorth (oficiální zvuk) 2024, Listopad
Anonim
Nositelné - závěrečný projekt
Nositelné - závěrečný projekt

ÚVOD

V tomto projektu jsme měli za úkol vytvořit funkční nositelný prototyp založený na kyborgských funkcích. Věděli jste, že se vaše srdce synchronizuje s BPM hudby? Můžete se pokusit ovládat svou náladu pomocí hudby, ale co když necháme technologii, aby nám pomohla uklidnit se? Potřebujeme jen nějaké komponenty, Arduino a vaše sluchátka. Pojďme inovovat!

Projekt Marc Vila, Guillermo Stauffacher a Pau Carcellé

Krok 1: Materiály a součásti

Materiály a součásti
Materiály a součásti

Konstrukční materiály:

- 3D potištěný náramek

- šrouby M3 (x8)

- M3 matice (x12)

- Ledvinka

Elektronické materiály:

-Snímač srdeční frekvence BPM

- Tlačítka (x2)

- Potenciometr

- LCD C 1602 MODUL

- MODUL DFPLAYER MINI MP3

- 3,5 mm jack stereo TRRS Náhlavní souprava

- Karta MicroSD

- Deska Arduino Uno

- Svářečka

- Bakelitový talíř

Krok 2: Navrhněte náramek

Navrhněte náramek
Navrhněte náramek
Navrhněte náramek
Navrhněte náramek

Nejprve uděláme několik skic pro uspořádání různých komponentů v náramku.

S jasnou myšlenkou jsme provedli měření tří ramen členů skupiny a poté jsme udělali průměr, abychom našli optimální míru pro návrh. Nakonec navrhneme produkt pomocí 3D programu a vytiskneme jej pomocí 3D tiskárny.

Zde si můžete stáhnout soubory. STL.

Krok 3: Elektronické připojení

Elektronická připojení
Elektronická připojení

Pokračujeme v nezbytných kontrolách našeho 3D návrhu, provedli jsme první montáž všech komponent v prototypu, abychom zjistili, že měření byla správná.

Abychom připojili všechny komponenty k desce Arduino, provedli jsme různá připojení od komponent pomocí kabelů o délce 0, 5 metrů, čímž snížíme viditelnost desky a lépe organizujeme prototyp.

Krok 4: Kód

Kód
Kód
Kód
Kód
Kód
Kód

Tento projekt je prototypem kyborga. Očividně jsme nezavedli součásti pod kůži, takže jsme to simulovali pomocí náramku jako ortézy (externí zařízení aplikované na tělo za účelem úpravy funkčních aspektů).

Náš kód bere stisknutí kláves uživatele a zobrazuje je pomocí LCD obrazovky. Kromě BPM obrazovka ukazuje požadovanou intenzitu, aby ji uživatel mohl porovnat se svou srdeční frekvencí. Existuje mnoho situací, kdy je zajímavé zvýšit nebo snížit vlastní BPM. Vytrvalostní sportovci například musí kontrolovat pulzy, aby se nadměrně neunavovali. Každodenním příkladem by bylo chtít spát nebo se uklidnit v nervové situaci. Mohla by být také použita jako terapeutická metoda pro lidi s autismem ke snížení stresu, který cítí. Vedle obrazovky jsou dvě tlačítka pro ovládání požadované intenzity a zvýšení nebo snížení srdeční frekvence. V závislosti na intenzitě se přehraje dříve studovaný typ hudby. Existují studie, které ukazují, že hudba může změnit BPM. Podle Beats per Minute písně lidské tělo napodobuje a odpovídá těm BPM.

int SetResUp = 11; // pin 10 Arduina s tlačítkem pro zvýšení intenzity.int SetResDown = 12; // pin 11 Arduina s tlačítkem pro snížení intenzity

int ResButtonCounter = 0; // krát čítač, který zvyšuje nebo snižuje nastavení odporu, počáteční hodnota 0 int ResButtonUpState = 0; // aktuální stav tlačítka pro zvýšení intenzity int ResButtonDownState = 0; // aktuální stav tlačítka pro snížení intenzity int lastResButtonUpState = 0; // poslední stav tlačítka zvýšení intenzity int lastResButtonDownState = 0; // poslední stav tlačítka pro snížení intenzity

int pulsePin = 0; // Pulzní senzor připojený k portu A0 // Tyto proměnné jsou nestálé, protože se používají během rutiny přerušení na druhé záložce. volatile int BPM; // tepy za minutu volatile int Signál; // Vstup dat pulzního senzoru volatile int IBI = 600; // doba pulsu volatile boolean Pulse = false; // True, když je pulzní vlna vysoká, false, když je Low volatile boolean QS = false;

# define Start_Byte 0x7E # define Version_Byte 0xFF # define Command_Length 0x06 # define End_Byte 0xEF # define Acknowledge 0x00 // Returns info with command 0x41 [0x01: info, 0x00: no info]

// PANTALLA #include // Nahrajte knihovnu funkcí LCD obrazovky #include #include

LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // Deklarujte porty, ke kterým je připojen LCD

// LEKTOR #include #include // Nahrajte knihovnu pro funkce modulu dfplayer mini MP3.

char serialData; int nsong; int v;

Software Sériová komunikace (9, 10); // Deklarace portů, kde je připojen přehrávač DFPlayer DFRobotDFPlayerMini mp3;

neplatné nastavení () {Serial.begin (9600); pinMode (SetResUp, INPUT); pinMode (SetResDown, INPUT);

// Definujte rozměry LCD (16x2) lcd.begin (16, 2); // Vybereme, ve kterém sloupci a v jakém řádku se začne text zobrazovat // LECTOR comm.begin (9600);

mp3.begin (komunikace); // Komponent spustí serialData = (char) (('')); mp3.start (); Serial.println („Play“); // Přehrajte skladbu mp3.volume (25); // Definovat hlasitost}

void loop () {if (digitalRead (11) == LOW) {mp3.next (); // Pokud je tlačítko stisknuto, skladba přejde} if (digitalRead (12) == LOW) {mp3.previous (); // Pokud je tlačítko stisknuto, předchozí skladba} // if (SetResUp && SetResDown == LOW) {

int pulso = analogRead (A0); // Odečte hodnotu monitoru srdečního tepu připojeného k analogovému portu A0

Serial.println (pulso/6); if (QS == true) {// Flag of Quantified Self is true like a arduino search the BPM QS = false; // Reset vlajky Quantified Self}

lcd.setCursor (0, 0); // Zobrazit požadovaný text lcd.print ("BPM:"); lcd.setCursor (0, 1); // Zobrazit požadovaný text lcd.print ("INT:"); lcd.setCursor (5, 0); // Zobrazit požadovaný text lcd.print (pulso); lcd.setCursor (5, 1); // Zobrazit požadovaný text lcd.print (ResButtonCounter); zpoždění (50); lcd.clear (); ResButtonUpState = digitalRead (SetResUp); ResButtonDownState = digitalRead (SetResDown);

// porovnání TempButtonState s předchozím stavem

if (ResButtonUpState! = lastResButtonUpState && ResButtonUpState == LOW) {// pokud se poslední stav změnil, zvyšte počitadlo

ResButtonCounter ++; }

// uložení aktuálního stavu jako posledního stavu, // pro další spuštění smyčky lastResButtonUpState = ResButtonUpState;

// porovnat stav tlačítka (zvýšení nebo snížení) s posledním stavem

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

// pokud se poslední stav změnil, snižte čítač

ResButtonCounter--; }

// uložení aktuálního stavu jako posledního stavu, // pro další spuštění smyčky lastResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);

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

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

}

}

Krok 5: Celková montáž

S kódem správně naprogramovaným a dvěma částmi našeho prototypu již sestavenými. Vložíme všechny součásti na místo a spojíme je páskou, abychom je upevnili k náramku. Komponenty, které jsou součástí náramku, jsou snímač tepové frekvence BPM, dvě tlačítka, potenciometr a obrazovka LCD, každá v příslušném otvoru, který byl dříve navržen ve 3D souboru. Když je první část hotová, zaměříme se na protoboard, každý konektor na správném pinu desky Arduino. Nakonec s ověřeným provozem každé součásti jsme ji vložili do balíčku fanny, abychom skryli dráty.

Krok 6: Video

Krok 7: Závěr

Nejzajímavější na tomto projektu je naučit se napodobovat nevědomě lidské tělo pomocí hudby. To otevírá dveře mnoha možnostem pro budoucí projekty. Myslím, že se jedná o kompletní projekt, máme celkem rozmanité komponenty se zpracovaným kódem. Pokud začneme znovu, přemýšlíme o jiných alternativách komponent nebo je koupíme v lepší kvalitě. Měli jsme spoustu problémů s přerušenými kabely a svary, jsou malé a velmi jemné (zejména BPM). Na druhou stranu musíte být opatrní při připojování komponent, mají mnoho výstupů a je snadné dělat chyby.

Je to velmi obohacující projekt, ve kterém jsme se dotkli široké škály hardwarových a softwarových možností Arduino.

Doporučuje: