Kazalo:

Nosljivo - Končni projekt: 7 korakov
Nosljivo - Končni projekt: 7 korakov

Video: Nosljivo - Končni projekt: 7 korakov

Video: Nosljivo - Končni projekt: 7 korakov
Video: ⚡️ Я НЕ СДАМСЯ! AMAZON 2.0 | Интернет магазин с нуля - Часть 3 2024, November
Anonim
Nosljiv - končni projekt
Nosljiv - končni projekt

UVOD

V tem projektu smo imeli nalogo izdelati funkcionalni nosljivi prototip, ki temelji na funkcijah kiborga. Ali ste vedeli, da se vaše srce sinhronizira z BPM glasbe? Svoje razpoloženje lahko poskusite nadzorovati z glasbo, kaj pa, če pustimo, da nam tehnologija pomaga, da se pomirimo? Potrebujemo le nekaj komponent, Arduino in vaše slušalke. Naj inovacije!

Projekt Marc Vila, Guillermo Stauffacher in Pau Carcellé

1. korak: Materiali in komponente

Materiali in komponente
Materiali in komponente

Gradbeni materiali:

- 3D natisnjena zapestnica

- vijaki M3 (x8)

- matice M3 (x12)

- Fanny paket

Elektronski materiali:

-Senzor srčnega utripa BPM

- Gumbi (x2)

- potenciometer

- LCD C 1602 MODUL

- MODUL DFPLAYER MINI MP3

- 3,5 mm stereo stereo slušalka TRRS

- kartica microSD

- Arduino Uno plošča

- Varilec

- Bakelitna plošča

2. korak: Oblikujte zapestnico

Oblikujte zapestnico
Oblikujte zapestnico
Oblikujte zapestnico
Oblikujte zapestnico

Najprej naredimo več skic za organizacijo različnih sestavnih delov zapestnice.

Z jasno idejo smo naredili meritve treh krakov članov skupine, nato pa naredili povprečje, da smo našli optimalno merilo za zasnovo. Nazadnje izdelek oblikujemo s 3D programom in ga natisnemo s 3D tiskalnikom.

Datoteke. STL lahko prenesete tukaj.

3. korak: Elektronske povezave

Elektronske povezave
Elektronske povezave

Nadaljujemo s potrebnimi preverjanji našega 3D oblikovanja, prvič smo sestavili vse komponente v prototipu, da bi ugotovili, ali so bile meritve popravljene.

Za priključitev vseh komponent na ploščo Arduino smo s komponentami dolžine 0,5 metra naredili različne povezave od komponent, na ta način zmanjšamo vidljivost plošče in bolje organiziramo prototip.

4. korak: Koda

Kodeks
Kodeks
Kodeks
Kodeks
Kodeks
Kodeks

Ta projekt je prototip kiborga. Očitno komponent nismo uvedli pod kožo, zato smo jo simulirali z zapestnico kot ortozo (zunanja naprava, ki se uporablja za spreminjanje funkcionalnih vidikov telesa).

Naša koda sprejme uporabnikove pritiske na tipke in jih prikaže z uporabo LCD zaslona. Na zaslonu je poleg BPM prikazana želena intenzivnost, tako da jo lahko uporabnik primerja s srčnim utripom. Obstaja veliko situacij, ko je zanimivo povečati ali zmanjšati lastni BPM. Na primer, vzdržljivi športniki morajo nadzorovati utripanje, da se ne utrudijo preveč. Vsakdanji primer bi bil, da bi želeli spati ali se umiriti v živčni situaciji. Lahko bi ga uporabili tudi kot terapevtsko metodo za ljudi z avtizmom za zmanjšanje občutka stresa. Poleg zaslona sta dva gumba za nadzor želene intenzivnosti ter povečanje ali zmanjšanje srčnega utripa. Odvisno od intenzivnosti se predvaja že preučena vrsta glasbe. Obstajajo študije, ki kažejo, da lahko glasba spremeni BPM. Po Beats per Minute pesmi človeško telo posnema in se ujema s tem BPM.

int SetResUp = 11; // pin 10 Arduina z gumbom za povečanje intenzivnosti.int SetResDown = 12; // pin 11 Arduina z gumbom za zmanjšanje intenzivnosti

int ResButtonCounter = 0; // števec krat, ki poveča ali zmanjša nastavitev upora, začetna vrednost 0 int ResButtonUpState = 0; // trenutno stanje gumba za povečanje intenzivnosti int ResButtonDownState = 0; // trenutno stanje gumba za zmanjšanje intenzivnosti int lastResButtonUpState = 0; // zadnje stanje gumba za povečanje intenzivnosti int lastResButtonDownState = 0; // zadnje stanje gumba za zmanjšanje intenzivnosti

int pulzPin = 0; // Pulzni senzor, priključen na vrata A0 // Te spremenljivke so nestanovitne, ker se uporabljajo med rutino prekinitve v drugem zavihku. hlapni int BPM; // Volatile int Signal utripov na minuto; // vhodni podatki senzorja impulzov hlapni int IBI = 600; // nestanoviten logični impulz časa impulza = false; // True, ko je pulzni val visok, false, ko je Low Low Lolative Boolean QS = false;

# define Start_Byte 0x7E # define Version_Byte 0xFF # define Command_Length 0x06 # define End_Byte 0xEF # define Acknowledge 0x00 // Vrne podatke z ukazom 0x41 [0x01: info, 0x00: ni podatkov]

// PANTALLA #include // Naložite knjižnico za funkcije LCD zaslona #include #include

LCD tekoči kristal (7, 6, 5, 4, 3, 2); // Razglasite vrata, na katera je priključen LCD

// LECTOR #include #include // Naložimo knjižnico za funkcije modula dfplayer mini MP3.

char serialData; int nsong; int v;

SoftwareSerial comm (9, 10); // Razglasite vrata, kjer je povezan DFPlayer DFRobotDFPlayerMini mp3;

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

// Določimo dimenzije LCD (16x2) lcd.begin (16, 2); // Izberemo, v katerem stolpcu in v kateri vrstici se začne prikazovati besedilo // LECTOR comm.begin (9600);

mp3.začetek (comm); // Komponenta zažene serialData = (char) (('')); mp3.start (); Serial.println ("Predvajaj"); // Predvajaj pesem mp3.volume (25); // Določite glasnost}

void loop () {if (digitalRead (11) == LOW) {mp3.next (); // Če pritisnete gumb, pesem mine} if (digitalRead (12) == LOW) {mp3.previous (); // Če pritisnete gumb, se prikaže prejšnja skladba} // if (SetResUp && SetResDown == LOW) {

int pulso = analogRead (A0); // Odčitajte vrednost merilnika srčnega utripa, priključenega na analogna vrata A0

Serial.println (pulso/6); if (QS == true) {// Zastava količinsko opredeljenega ja je resnična, kot je iskanje arduino, BPM QS = false; // Ponastavi zastavico količinsko opredeljenega sebe}

lcd.setCursor (0, 0); // Prikaz želenega besedila lcd.print ("BPM:"); lcd.setCursor (0, 1); // Prikaz želenega besedila lcd.print ("INT:"); lcd.setCursor (5, 0); // Prikaz želenega besedila lcd.print (pulso); lcd.setCursor (5, 1); // Prikaz želenega besedila lcd.print (ResButtonCounter); zamuda (50); lcd.clear (); ResButtonUpState = digitalno branje (SetResUp); ResButtonDownState = digitalno branje (SetResDown);

// primerjamo TempButtonState s prejšnjim stanjem

if (ResButtonUpState! = lastResButtonUpState && ResButtonUpState == LOW) {// če se je zadnje stanje spremenilo, povečajte števec

ResButtonCounter ++; }

// shranimo trenutno stanje kot zadnje stanje, // za naslednjič, ko se zanka izvede lastResButtonUpState = ResButtonUpState;

// primerjamo stanje gumba (povečanje ali zmanjšanje) z zadnjim stanjem

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

// če se je zadnje stanje spremenilo, zmanjšajte števec

ResButtonCounter--; }

// shranimo trenutno stanje kot zadnje stanje, // za naslednjič, ko se zanka izvede lastResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);

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

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

}

}

5. korak: Skupna montaža

S pravilno programirano kodo in dvema delima našega prototipa že sestavljenimi. Vse komponente postavimo na svoje mesto in jih povežemo s trakom, da jih pritrdimo na zapestnico. Sestavni deli zapestnice so senzor srčnega utripa BPM, dva gumba, potenciometer in LCD zaslon, vsak v svoji luknji, predhodno oblikovani v datoteki 3D. Ko je prvi del končan, se osredotočimo na protoboard, vsak priključek na pravilen zatič plošče Arduino. Nazadnje, s preverjenim delovanjem vsake komponente, jo damo v paket fanny, da skrijemo žice.

6. korak: Video

7. korak: Zaključek

Najbolj zanimivo pri tem projektu je učenje o posnemanju človeškega telesa nezavedno z glasbo. To odpira vrata številnim možnostim za prihodnje projekte. Mislim, da je to celoten projekt, imamo precej različnih komponent z obdelano kodo. Če bi začeli znova, bi pomislili na druge komponente ali jih kupili bolj kakovostno. Imeli smo veliko težav z pretrganimi kabli in varjenjem, majhni so in zelo občutljivi (zlasti BPM). Po drugi strani pa morate biti previdni pri povezovanju komponent, saj imajo veliko izhodov in je enostavno narediti napako.

Gre za zelo bogat projekt, v katerem smo se dotaknili najrazličnejših možnosti strojne in programske opreme Arduino.

Priporočena: