Sadržaj:

Nosivi - Završni projekat: 7 koraka
Nosivi - Završni projekat: 7 koraka

Video: Nosivi - Završni projekat: 7 koraka

Video: Nosivi - Završni projekat: 7 koraka
Video: Основные ошибки при возведении перегородок из газобетона #5 2024, Jun
Anonim
Nosivi - završni projekat
Nosivi - završni projekat

UVOD

U ovom projektu imali smo zadatak napraviti funkcionalni nosivi prototip zasnovan na kiborg funkcijama. Jeste li znali da se vaše srce sinhronizuje sa BPM muzike? Svojim raspoloženjem možete pokušati kontrolirati glazbu, ali što ako dopustimo da nam tehnologija pomogne da se smirimo? Trebaju nam samo neke komponente, Arduino i vaše slušalice. Hajde da inoviramo!

Projekt Marc Vila, Guillermo Stauffacher i Pau Carcellé

Korak 1: Materijali i komponente

Materijali i komponente
Materijali i komponente

Građevinski materijal:

- 3D štampana narukvica

- M3 vijci (x8)

- matice M3 (x12)

- Fanny čopor

Elektronski materijali:

-Senzor otkucaja srca BPM

- Dugmad (x2)

- Potenciometar

- LCD C 1602 MODUL

- MODUL DFPLAYER MINI MP3

- 3,5 mm Jack stereo stereo TRRS SLUŠALICA

- MicroSD kartica

- Arduino Uno ploča

- Varioc

- Bakelitna ploča

Korak 2: Dizajnirajte narukvicu

Dizajnirajte narukvicu
Dizajnirajte narukvicu
Dizajnirajte narukvicu
Dizajnirajte narukvicu

Prvo napravimo nekoliko skica kako bismo organizirali različite komponente u narukvici.

S jasnom idejom, mjerili smo tri ruke članova grupe, zatim smo napravili prosjek kako bismo pronašli optimalnu mjeru za dizajn. Na kraju dizajniramo proizvod pomoću 3D programa i ispisujemo ga 3D štampačem.

. STL datoteke možete preuzeti ovdje.

Korak 3: Elektronske veze

Elektronske veze
Elektronske veze

Nastavljamo s potrebnim provjerama našeg 3D dizajna, napravili smo prvi sklop svih komponenti u prototipu kako bismo vidjeli da li su mjerenja ispravna.

Za povezivanje svih komponenti na Arduino ploču, napravili smo različite veze od komponenti pomoću kabela od 0,5 metara, na ovaj način smanjujemo vidljivost ploče i bolje organiziramo prototip.

Korak 4: Kôd

Kodeks
Kodeks
Kodeks
Kodeks
Kodeks
Kodeks

Ovaj projekat je prototip kiborga. Očigledno nismo unijeli komponente ispod kože, pa smo ih simulirali narukvicom kao ortozu (vanjski uređaj primijenjen na tijelo radi izmjene funkcionalnih aspekata).

Naš kôd uzima korisničke pritiske i prikazuje ih pomoću LCD ekrana. Osim BPM -a, ekran prikazuje željeni intenzitet kako bi ga korisnik mogao usporediti sa svojim otkucajima srca. Postoje mnoge situacije u kojima je zanimljivo povećati ili smanjiti vlastiti BPM. Na primjer, sportaši izdržljivosti moraju kontrolirati pulsiranje kako se ne bi previše umarali. Svakodnevni primjer bio bi htjeti spavati ili se smiriti u nervoznoj situaciji. Može se primijeniti i kao terapijska metoda za osobe s autizmom kako bi se smanjio stres koji osjećaju. Pored ekrana nalaze se dva dugmeta za kontrolu željenog intenziteta i povećanje ili smanjenje otkucaja srca. Ovisno o intenzitetu, svira se prethodno proučena vrsta muzike. Postoje studije koje pokazuju da muzika može promijeniti BPM. Prema Beats per Minute pjesme, ljudsko tijelo oponaša i podudara se s tim BPM -om.

int SetResUp = 11; // pin 10 Arduina sa gumbom za povećanje intenziteta.int SetResDown = 12; // iglica 11 Arduina s gumbom za smanjenje intenziteta

int ResButtonCounter = 0; // brojač puta koji povećava ili smanjuje postavku otpora, početna vrijednost 0 int ResButtonUpState = 0; // trenutno stanje dugmeta za povećanje intenziteta int ResButtonDownState = 0; // trenutno stanje dugmeta za smanjenje intenziteta int lastResButtonUpState = 0; // zadnje stanje dugmeta za povećanje intenziteta int lastResButtonDownState = 0; // zadnje stanje dugmeta za smanjenje intenziteta

int pulsePin = 0; // Pulsni senzor spojen na port A0 // Ove varijable su promjenjive jer se koriste za vrijeme prekida rutine u drugoj kartici. isparljivi int BPM; // volatile int signal otkucaja u minuti; // Ulazni podaci senzora impulsa promjenjivi int IBI = 600; // promjenjivo booleansko vrijeme impulsa Pulse = false; // Tačno kada je pulsni talas visok, netačno kada je nisko isparljivo boolean QS = false;

# define Start_Byte 0x7E # definirajte Version_Byte 0xFF # definirajte Command_Length 0x06 # definirajte End_Byte 0xEF # definirajte Potvrda 0x00 // Vraća informacije naredbom 0x41 [0x01: info, 0x00: nema podataka]

// PANTALLA #include // Otpremite biblioteku za funkcije LCD ekrana #include #include

LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // Deklarirajte portove na koje je LCD priključen

// LECTOR #include #include // Otpremite biblioteku za funkcije modula dfplayer mini MP3.

char serialData; int nsong; int v;

SoftwareSerial comm (9, 10); // Deklarirajte portove na koje je povezan DFPlayer DFRobotDFPlayerMini mp3;

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

// Definiranje dimenzija LCD (16x2) lcd.begin (16, 2); // Biramo u kojoj koloni i u kojem redu tekst počinje da se prikazuje // LECTOR comm.begin (9600);

mp3.begin (comm); // Komponenta počinje serialData = (char) (('')); mp3.start (); Serial.println ("Reproduciraj"); // Reproduciraj pjesmu mp3.volume (25); // Definiraj glasnoću}

void loop () {if (digitalRead (11) == LOW) {mp3.next (); // Ako je dugme pritisnuto, pjesma prolazi} if (digitalRead (12) == LOW) {mp3.previous (); // Ako je dugme pritisnuto, prethodna pjesma} // if (SetResUp && SetResDown == LOW) {

int pulso = analogRead (A0); // Očitajte vrijednost monitora otkucaja srca spojenog na analogni priključak A0

Serial.println (pulso/6); if (QS == true) {// Zastava kvantificiranog ja je istinita poput arduino pretraživanja BPM QS = false; // Poništite zastavicu kvantificiranog sebe}

lcd.setCursor (0, 0); // Prikaz željenog teksta lcd.print ("BPM:"); lcd.setCursor (0, 1); // Prikaz željenog teksta lcd.print ("INT:"); lcd.setCursor (5, 0); // Prikaz željenog teksta lcd.print (pulso); lcd.setCursor (5, 1); // Prikaz željenog teksta lcd.print (ResButtonCounter); kašnjenje (50); lcd.clear (); ResButtonUpState = digitalRead (SetResUp); ResButtonDownState = digitalRead (SetResDown);

// uspoređujemo TempButtonState s prethodnim stanjem

if (ResButtonUpState! = lastResButtonUpState && ResButtonUpState == LOW) {// ako se zadnje stanje promijenilo, povećajte brojač

ResButtonCounter ++; }

// sprema trenutno stanje kao posljednje stanje, // sljedeći put kada se petlja izvršava lastResButtonUpState = ResButtonUpState;

// uporedimo stanje dugmeta (povećanje ili smanjenje) sa poslednjim stanjem

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

// ako se zadnje stanje promijenilo, smanjite brojač

ResButtonCounter--; }

// sprema trenutno stanje kao posljednje stanje, // sljedeći put kada se petlja izvršava lastResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);

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

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

}

}

Korak 5: Potpuna montaža

S ispravno programiranim kodom i dva dijela našeg prototipa već sastavljenim. Stavili smo sve komponente na mjesto i spojili ih trakom kako bismo je pričvrstili na narukvicu. Komponente koje se nalaze u narukvici su senzor otkucaja srca BPM, dva dugmeta, potenciometar i LCD ekran, svaki u odgovarajućoj rupi prethodno dizajniran u 3D datoteci. S dovršenim prvim dijelom, fokusiramo se na protoboard, svaki konektor na ispravnom pinu Arduino ploče. Konačno, s provjerenim radom svake komponente, stavili smo je u pakiranje kako bismo sakrili žice.

Korak 6: Video

Korak 7: Zaključak

Najzanimljivija stvar u ovom projektu je učenje o oponašanju ljudskog tijela nesvjesno muzikom. Ovo otvara vrata mnogim mogućnostima za buduće projekte. Mislim da je ovo kompletan projekt, imamo dosta različitih komponenti s radnim kodom. Ako počnemo iznova, razmislili bismo o drugim zamjenskim komponentama ili ih kupili boljeg kvaliteta. Imali smo mnogo problema sa pokidanim kablovima i zavarivanjima, oni su mali i vrlo osjetljivi (posebno BPM). S druge strane, morate biti oprezni pri povezivanju komponenti, jer imaju mnogo izlaza i lako je pogriješiti.

To je vrlo bogat projekt u kojem smo se dotakli širokog spektra Arduino hardverskih i softverskih opcija.

Preporučuje se: