Indholdsfortegnelse:

Bærbar - Afsluttende projekt: 7 trin
Bærbar - Afsluttende projekt: 7 trin

Video: Bærbar - Afsluttende projekt: 7 trin

Video: Bærbar - Afsluttende projekt: 7 trin
Video: Bossa Nova Covers Popular Songs (5 Hours) 2024, November
Anonim
Bærbar - Afsluttende projekt
Bærbar - Afsluttende projekt

INTRODUKTION

I dette projekt havde vi til opgave at lave en funktionel bærbar prototype baseret på en cyborg -funktioner. Vidste du, at dit hjerte synkroniserer med BPM af musik? Du kan prøve at kontrollere dit humør gennem musik, men hvad nu hvis vi lader teknologien hjælpe os med at falde til ro? Vi mangler bare nogle komponenter, en Arduino og dine hovedtelefoner. Lad os innovere!

Projekt af Marc Vila, Guillermo Stauffacher og Pau Carcellé

Trin 1: Materialer og komponenter

Materialer og komponenter
Materialer og komponenter

Byggematerialer:

- 3D -trykt armbånd

- M3 skruer (x8)

- M3 møtrikker (x12)

- Fanny pack

Elektroniske materialer:

-Pulsfrekvenssensor BPM

- Knapper (x2)

- Potentiometer

- LCD C 1602 MODUL

- MODULE DFPLAYER MINI MP3

- 3,5 mm Jack Stereo TRRS HEADSET

- MicroSD -kort

- Arduino Uno -tallerken

- Svejser

- Bakelitplade

Trin 2: Design et armbånd

Design et armbånd
Design et armbånd
Design et armbånd
Design et armbånd

Først laver vi flere skitser for at organisere de forskellige komponenter i armbåndet.

Med den klare idé tog vi målinger af gruppens tre arme, derefter lavede vi gennemsnittet for at finde det optimale mål for designet. Endelig designer vi produktet med et 3d -program og udskriver det med en 3D -printer.

Du kan downloade. STL -filerne her.

Trin 3: Elektroniske forbindelser

Elektroniske forbindelser
Elektroniske forbindelser

Vi fortsætter med at foretage de nødvendige kontroller af vores 3d -design, vi lavede en første samling af alle komponenterne i prototypen for at se, at målingerne var korrekte.

For at forbinde alle komponenterne til Arduino -kortet lavede vi forskellige forbindelser fra komponenterne ved hjælp af 0, 5 meter kabler, på denne måde reducerer vi tavlens synlighed, og vi organiserer prototypen bedre.

Trin 4: Koden

Koden
Koden
Koden
Koden
Koden
Koden

Dette projekt er en cyborg -prototype. Vi har naturligvis ikke introduceret komponenterne under huden, så vi har simuleret det med et armbånd som en ortose (ekstern enhed påført kroppen for at ændre de funktionelle aspekter).

Vores kode tager brugerens tastetryk og viser dem ved hjælp af LCD -skærmen. Ud over BPM viser skærmen den ønskede intensitet, så brugeren kan sammenligne den med sin puls. Der er mange situationer, hvor det er interessant at øge eller reducere din egen BPM. For eksempel skal udholdenhedsudøvere kontrollere pulsationerne for ikke at blive for trætte. Et dagligdags eksempel ville være at ville sove eller falde til ro i en nervøs situation. Det kan også anvendes som en terapeutisk metode for mennesker med autisme til at reducere den stress, de føler. Ved siden af skærmen er der to knapper til at styre den ønskede intensitet og øge eller reducere pulsen. Afhængigt af intensiteten afspilles en tidligere undersøgt type musik. Der er undersøgelser, der viser, at musik kan ændre BPM. Ifølge Beats per Minute i sangen efterligner og sammenligner menneskekroppen disse BPM.

int SetResUp = 11; // pin 10 af Arduino med intensitetsforøgelsesknap. int SetResDown = 12; // pin 11 af Arduino med intensitetsknap

int ResButtonCounter = 0; // gange tæller, der øger eller formindsker modstandsindstillingen, startværdien på 0 int ResButtonUpState = 0; // nuværende tilstand af intensitetsforøgelsesknappen int ResButtonDownState = 0; // Aktuel tilstand af intensitetsfaldsknappen int lastResButtonUpState = 0; // sidste tilstand af intensitetsforøgelsesknappen int lastResButtonDownState = 0; // sidste tilstand af intensitetsknappen

int pulsPin = 0; // Pulssensor forbundet til port A0 // Disse variabler er flygtige, fordi de bruges under afbrydelsesrutinen i den anden fane. flygtig int BPM; // Beats per minute flygtige int Signal; // Pulssensordataindgang flygtig int IBI = 600; // Pulstid flygtig boolsk puls = falsk; // Sandt når pulsbølgen er høj, falsk når den er lav flygtig boolsk QS = falsk;

# definere Start_Byte 0x7E # definere Version_Byte 0xFF # definere Command_Length 0x06 # definere End_Byte 0xEF # definere Bekræft 0x00 // Returnerer info med kommando 0x41 [0x01: info, 0x00: ingen info]

// PANTALLA #include // Upload biblioteket for funktionerne på LCD -skærmen #include #include

LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // Angiv de porte, hvor LCD'et er tilsluttet

// LECTOR #include #include // Upload biblioteket til funktionerne i modulet dfplayer mini MP3.

char serialData; int nsong; int v;

SoftwareSerial comm (9, 10); // Angiv de porte, hvor DFPlayer er tilsluttet DFRobotDFPlayerMini mp3;

ugyldig opsætning () {Serial.begin (9600); pinMode (SetResUp, INPUT); pinMode (SetResDown, INPUT);

// Definer dimensionerne på LCD (16x2) lcd.begin (16, 2); // Vi vælger i hvilken kolonne og i hvilken linje teksten begynder at vise // LECTOR comm.begin (9600);

mp3.begynd (komm); // Komponent starter serialData = (char) (('')); mp3.start (); Serial.println ("Afspil"); // Afspil en sang mp3.volumen (25); // Definer lydstyrke}

void loop () {if (digitalRead (11) == LOW) {mp3.next (); // Hvis der trykkes på knappen, passerer sangen} if (digitalRead (12) == LOW) {mp3.previous (); // Hvis der trykkes på knappen, den forrige sang} // if (SetResUp && SetResDown == LOW) {

int pulso = analogRead (A0); // Læs værdien af pulsmåleren, der er tilsluttet den analoge port A0

Serial.println (pulso/6); hvis (QS == true) {// Flag of Quantified Self er sandt som arduino -søgningen, er BPM QS = false; // Nulstil flaget for kvantificeret selv}

lcd.setCursor (0, 0); // Vis den ønskede tekst lcd.print ("BPM:"); lcd.setCursor (0, 1); // Vis den ønskede tekst lcd.print ("INT:"); lcd.setCursor (5, 0); // Vis den ønskede tekst lcd.print (pulso); lcd.setCursor (5, 1); // Vis den ønskede tekst lcd.print (ResButtonCounter); forsinkelse (50); lcd.clear (); ResButtonUpState = digitalRead (SetResUp); ResButtonDownState = digitalRead (SetResDown);

// sammenligne TempButtonState med sin tidligere tilstand

hvis (ResButtonUpState! = lastResButtonUpState && ResButtonUpState == LOW) {// hvis den sidste tilstand ændrede sig, øges tælleren

ResButtonCounter ++; }

// gem den aktuelle tilstand som den sidste tilstand, // for næste gang sløjfen udføres lastResButtonUpState = ResButtonUpState;

// sammenligne tastens tilstand (forøg eller formindsk) med den sidste tilstand

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

// hvis den sidste tilstand ændres, skal tælleren reduceres

ResButtonCounter--; }

// gem den aktuelle tilstand som den sidste tilstand, // for næste gang sløjfen udføres lastResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);

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

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

}

}

Trin 5: Total samling

Med koden programmeret korrekt og de to dele af vores prototype allerede samlet. Vi sætter alle komponenterne på plads og forbinder det med tape for at fastgøre det til armbåndet. Komponenterne i armbåndet er pulsmålerens BPM, de to knapper, potentiometer og LCD -skærmen, hver i sit respektive hul, der tidligere var designet i 3D -filen. Når den første del er færdig, fokuserer vi på protoboardet, hvert stik på den korrekte pin på Arduino -kortet. Endelig, med den verificerede drift af hver komponent, lagde vi den i fanny -pakken for at skjule ledningerne.

Trin 6: Video

Trin 7: Konklusion

Det mest interessante ved dette projekt er at lære at efterligne menneskekroppen ubevidst med musik. Dette åbner døren til mange muligheder for fremtidige projekter. Jeg synes, at dette er et komplet projekt, vi har en lang række komponenter med en fungeret kode. Hvis vi starter igen, ville vi tænke på andre komponentalternativer eller købe dem af bedre kvalitet. Vi har haft mange problemer med ødelagte kabler og svejsninger, de er små og meget sarte (især BPM). På den anden side skal du være forsigtig, når du tilslutter komponenterne, de har mange output, og det er let at lave fejl.

Det er et meget berigende projekt, hvor vi har berørt en lang række Arduino hardware- og softwaremuligheder.

Anbefalede: