Obsah:

Nositeľné - záverečný projekt: 7 krokov
Nositeľné - záverečný projekt: 7 krokov

Video: Nositeľné - záverečný projekt: 7 krokov

Video: Nositeľné - záverečný projekt: 7 krokov
Video: Everything I Crocheted This Summer! 11 Easy Crochet Projects for Beginners S08 E01 2024, Jún
Anonim
Nositeľné - záverečný projekt
Nositeľné - záverečný projekt

ÚVOD

V tomto projekte sme mali za úlohu vytvoriť funkčný nositeľný prototyp založený na kyborgských funkciách. Vedeli ste, že vaše srdce sa synchronizuje s BPM hudby? Môžete sa pokúsiť ovládať svoju náladu prostredníctvom hudby, ale čo keď necháme technológiu, aby nám pomohla upokojiť sa? Potrebujeme iba niektoré komponenty, Arduino a vaše slúchadlá. Poďme inovovať!

Projekt Marc Vila, Guillermo Stauffacher a Pau Carcellé

Krok 1: Materiály a komponenty

Materiály a súčasti
Materiály a súčasti

Konštrukčné materiály:

- 3D tlačený náramok

- Skrutky M3 (x8)

- Matice M3 (x12)

- Fanny balíček

Elektronické materiály:

-Snímač srdcovej frekvencie BPM

- Tlačidlá (x2)

- Potenciometer

- MODUL LCD C 1602

- MODUL DFPLAYER MINI MP3

- 3,5 mm jack stereo TRRS Náhlavná súprava

- Karta MicroSD

- Doska Arduino Uno

- Zvárač

- Bakelitový tanier

Krok 2: Navrhnite si náramok

Navrhnite náramok
Navrhnite náramok
Navrhnite náramok
Navrhnite náramok

Najprv urobíme niekoľko náčrtkov na usporiadanie rôznych komponentov v náramku.

S jasnou myšlienkou sme vykonali merania troch ramien členov skupiny a potom sme urobili priemer, aby sme našli optimálne opatrenie pre návrh. Nakoniec produkt navrhneme pomocou 3D programu a vytlačíme ho pomocou 3D tlačiarne.

Tu si môžete stiahnuť súbory. STL.

Krok 3: Elektronické pripojenia

Elektronické pripojenia
Elektronické pripojenia

Pokračujeme v potrebných kontrolách nášho 3D návrhu, urobili sme prvú montáž všetkých komponentov v prototype, aby sme zistili, že merania boli správne.

Aby sme k doske Arduino pripojili všetky komponenty, vykonali sme rôzne prepojenia od komponentov pomocou 0, 5 metrových káblov, čím znížime viditeľnosť dosky a lepšie zorganizujeme prototyp.

Krok 4: Kód

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

Tento projekt je prototypom kyborga. Očividne sme nezaviedli komponenty pod kožu, takže sme to simulovali s náramkom ako ortézou (externé zariadenie aplikované na telo na úpravu funkčných aspektov).

Náš kód preberá stlačenia klávesu používateľa a zobrazuje ich pomocou obrazovky LCD. Okrem BPM obrazovka zobrazuje požadovanú intenzitu, aby ju používateľ mohol porovnať so svojim srdcovým tepom. Existuje mnoho situácií, kedy je zaujímavé zvýšiť alebo znížiť vlastný BPM. Vytrvalostní športovci napríklad musia ovládať pulzy, aby sa nadmerne neunavovali. Každodenným príkladom by bolo chcieť spať alebo sa upokojiť v nervovej situácii. Dalo by sa to tiež použiť ako terapeutická metóda pre ľudí s autizmom na zníženie stresu, ktorý cítia. Vedľa obrazovky sú dve tlačidlá na ovládanie požadovanej intenzity a zvýšenie alebo zníženie srdcovej frekvencie. V závislosti od intenzity sa prehrá predtým študovaný typ hudby. Existujú štúdie, ktoré ukazujú, že hudba môže meniť BPM. Podľa Beats per Minute piesne ľudské telo tieto BPM napodobňuje a zhoduje sa s nimi.

int SetResUp = 11; // pin 10 Arduina s tlačidlom na zvýšenie intenzity.int SetResDown = 12; // pin 11 Arduina s tlačidlom zníženia intenzity

int ResButtonCounter = 0; // násobok počítadla, ktoré zvyšuje alebo znižuje nastavenie odporu, počiatočná hodnota 0 int ResButtonUpState = 0; // aktuálny stav tlačidla zvýšenia intenzity int ResButtonDownState = 0; // aktuálny stav tlačidla zníženia intenzity int lastResButtonUpState = 0; // posledný stav tlačidla zvýšenia intenzity int lastResButtonDownState = 0; // posledný stav tlačidla zníženia intenzity

int pulsePin = 0; // Pulzný snímač pripojený k portu A0 // Tieto premenné sú nestále, pretože sa používajú počas rutiny prerušenia na druhej karte. volatile int BPM; // tepy za minútu volatile int Signál; // Vstup dát pulzného senzora volatile int IBI = 600; // čas impulzu volatile boolean Pulse = false; // Pravda, keď je pulzná vlna vysoká, nepravdivá, keď je nízka. Prchavý booleovský 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 knižnicu pre funkcie obrazovky LCD #include #include

LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // Deklarujte porty, ku ktorým je pripojený LCD

// LEKTOR #include #include // Nahrajte knižnicu pre funkcie modulu dfplayer mini MP3.

char serialData; int nsong; int v;

SoftwareSériová komunikácia (9, 10); // Deklarujte porty, ku ktorým je pripojený prehrávač DFPlayer DFRobotDFPlayerMini mp3;

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

// Definujte rozmery LCD (16x2) lcd.begin (16, 2); // Vyberieme, v ktorom stĺpci a v ktorom riadku sa začne text zobrazovať // LECTOR comm.begin (9600);

mp3.begin (komunikácia); // Komponent spustí serialData = (char) (('')); mp3.start (); Serial.println („Play“); // Prehrajte skladbu mp3.volume (25); // Definovanie hlasitosti}

void loop () {if (digitalRead (11) == LOW) {mp3.next (); // Ak je tlačidlo stlačené, skladba prejde} if (digitalRead (12) == LOW) {mp3.previous (); // Ak je tlačidlo stlačené, predchádzajúca skladba} // if (SetResUp && SetResDown == LOW) {

int pulso = analogRead (A0); // Prečítajte si hodnotu monitora srdcovej frekvencie pripojeného k analógovému portu A0

Serial.println (pulso/6); if (QS == true) {// Vlajka kvantifikovaného ja je pravdivá ako arduino vyhľadávanie BPM QS = false; // Reset vlajky Quantified Self}

lcd.setCursor (0, 0); // Ukážte požadovaný text lcd.print ("BPM:"); lcd.setCursor (0, 1); // Zobraziť požadovaný text lcd.print ("INT:"); lcd.setCursor (5, 0); // Ukážte požadovaný text lcd.print (pulso); lcd.setCursor (5, 1); // Ukážte požadovaný text lcd.print (ResButtonCounter); oneskorenie (50); lcd.clear (); ResButtonUpState = digitalRead (SetResUp); ResButtonDownState = digitalRead (SetResDown);

// porovnanie TempButtonState s predchádzajúcim stavom

if (ResButtonUpState! = lastResButtonUpState && ResButtonUpState == LOW) {// ak sa zmenil posledný stav, zvýšte počítadlo

ResButtonCounter ++; }

// uloženie aktuálneho stavu ako posledného stavu, // pre ďalšie spustenie slučky lastResButtonUpState = ResButtonUpState;

// porovnanie stavu tlačidla (zvýšenie alebo zníženie) s posledným stavom

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

// ak sa zmenil posledný stav, znížte počítadlo

ResButtonCounter--; }

// uloženie aktuálneho stavu ako posledného stavu, // pre ďalšie spustenie slučky lastResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);

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

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

}

}

Krok 5: Kompletná montáž

S kódom naprogramovaným správne a dvoma časťami nášho prototypu už zostavenými. Dali sme všetky súčasti na svoje miesto a spojili sme ich páskou, aby sme ju pripevnili k náramku. Komponenty, ktoré sú súčasťou náramku, sú snímač srdcového tepu BPM, dve tlačidlá, potenciometer a obrazovka LCD, každé v príslušnom otvore, ktorý bol predtým navrhnutý v 3D súbore. Keď je prvá časť hotová, zameriame sa na protoboard, každý konektor na správnom pine dosky Arduino. Nakoniec s overenou prevádzkou každého komponentu sme ho vložili do fanny packu, aby sme skryli drôty.

Krok 6: Video

Krok 7: Záver

Najzaujímavejšie na tomto projekte je dozvedieť sa o nevedomom napodobňovaní ľudského tela hudbou. To otvára dvere mnohým možnostiam pre budúce projekty. Myslím si, že je to kompletný projekt, máme dosť rozmanité súčasti s prepracovaným kódom. Ak začneme znova, porozmýšľame nad inými alternatívami komponentov alebo ich kúpime v lepšej kvalite. Mali sme veľa problémov s zlomenými káblami a zvarmi, sú malé a veľmi chúlostivé (obzvlášť BPM). Na druhej strane musíte byť opatrní pri pripájaní komponentov, majú veľa výstupov a je ľahké robiť chyby.

Je to veľmi obohacujúci projekt, v ktorom sme sa dotkli širokej škály hardvérových a softvérových možností Arduino.

Odporúča: