Innholdsfortegnelse:

Bærbar - sluttprosjekt: 7 trinn
Bærbar - sluttprosjekt: 7 trinn

Video: Bærbar - sluttprosjekt: 7 trinn

Video: Bærbar - sluttprosjekt: 7 trinn
Video: САМЫЙ ТОНКИЙ 15-дюймовый игровой ноутбук AMD — обзор Legion Slim 7 2024, Juni
Anonim
Bærbar - sluttprosjekt
Bærbar - sluttprosjekt

INTRODUKSJON

I dette prosjektet hadde vi som oppgave å lage en funksjonell bærbar prototype basert på en cyborg -funksjon. Visste du at hjertet ditt synkroniserer med BPM av musikk? Du kan prøve å kontrollere humøret ditt gjennom musikk, men hva om vi lar teknologien hjelpe oss med å roe ned? Vi trenger bare noen komponenter, en Arduino og hodetelefonene dine. La oss innovere!

Prosjekt av Marc Vila, Guillermo Stauffacher og Pau Carcellé

Trinn 1: Materialer og komponenter

Materialer og komponenter
Materialer og komponenter

Bygningsmaterialer:

- 3D -trykt armbånd

- M3 skruer (x8)

- M3 muttere (x12)

- Rumpetaske

Elektroniske materialer:

-Pulsfrekvenssensor BPM

- Knapper (x2)

- Potensiometer

- LCD C 1602 MODUL

- MODUL DFPLAYER MINI MP3

- 3,5 mm Jack Stereo TRRS HEADSET

- MicroSD -kort

- Arduino Uno -tallerken

- Sveiser

- Bakelittplate

Trinn 2: Design et armbånd

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

Først lager vi flere skisser for å organisere de forskjellige komponentene i armbåndet.

Med den klare ideen tok vi målinger av de tre armene til gruppemedlemmene, så gjorde vi gjennomsnittet for å finne det optimale målet for designet. Til slutt designer vi produktet med et 3d -program og skriver det ut med en 3D -skriver.

Du kan laste ned. STL -filene her.

Trinn 3: Elektroniske tilkoblinger

Elektroniske tilkoblinger
Elektroniske tilkoblinger

Vi fortsetter å gjøre de nødvendige kontrollene av vårt 3d -design, vi foretok en første samling av alle komponentene i prototypen for å se at målingene var korrigerte.

For å koble alle komponentene til Arduino -kortet gjorde vi forskjellige tilkoblinger fra komponentene ved hjelp av 0, 5 meter kabler, på denne måten reduserer vi synligheten til brettet og vi organiserer prototypen bedre.

Trinn 4: Koden

Koden
Koden
Koden
Koden
Koden
Koden

Dette prosjektet er en cyborg -prototype. Tydeligvis har vi ikke introdusert komponentene under huden, så vi har simulert det med et armbånd som en ortose (ekstern enhet påført kroppen for å endre de funksjonelle aspektene).

Koden vår tar brukerens tastetrykk og viser dem ved hjelp av LCD -skjermen. I tillegg til BPM viser skjermen ønsket intensitet slik at brukeren kan sammenligne den med pulsen. Det er mange situasjoner der det er interessant å øke eller redusere din egen BPM. For eksempel må utholdenhetsidrettsutøvere kontrollere pulsasjonene for ikke å bli for slitne. Et daglig eksempel er å ville sove eller roe seg ned i en nervøs situasjon. Det kan også brukes som en terapeutisk metode for personer med autisme for å redusere stresset de føler. Ved siden av skjermen er to knapper for å kontrollere ønsket intensitet og øke eller redusere pulsen. Avhengig av intensiteten spilles en tidligere studert musikkart. Det er studier som viser at musikk kan endre BPM. I følge Beats per Minute av sangen, etterligner menneskekroppen og BPM.

int SetResUp = 11; // pin 10 av Arduino med intensitetsøkningsknapp. int SetResDown = 12; // pin 11 av Arduino med intensitetsknapp

int ResButtonCounter = 0; // ganger teller som øker eller reduserer motstandsinnstillingen, startverdien på 0 int ResButtonUpState = 0; // nåværende tilstand for intensitetsøkningsknappen int ResButtonDownState = 0; // nåværende tilstand for intensitetsknappen int lastResButtonUpState = 0; // siste tilstand av intensitetsøkningsknappen int lastResButtonDownState = 0; // siste tilstand av knappen for reduksjon av intensitet

int pulsPin = 0; // Pulssensor koblet til port A0 // Disse variablene er flyktige fordi de brukes under avbruddsrutinen i den andre kategorien. flyktig int BPM; // Beats per minute flyktig int Signal; // Pulssensordatainngang flyktig int IBI = 600; // Pulstiden flyktig boolsk Pulse = false; // Sant når pulsbølgen er høy, usann når den er Lav flyktig boolsk QS = false;

# definere Start_Byte 0x7E # definere Version_Byte 0xFF # definere Kommando_Lengde 0x06 # definere End_Byte 0xEF # definere Bekreft 0x00 // Returnerer info med kommando 0x41 [0x01: info, 0x00: ingen info]

// PANTALLA #include // Last opp biblioteket for funksjonene på LCD -skjermen #include #include

LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // Angi portene der LCD -skjermen er tilkoblet

// LECTOR #include #include // Last opp biblioteket for funksjonene til modulen dfplayer mini MP3.

char serialData; int nsong; int v;

SoftwareSerial comm (9, 10); // Angi portene der DFPlayer er tilkoblet DFRobotDFPlayerMini mp3;

ugyldig oppsett () {Serial.begin (9600); pinMode (SetResUp, INPUT); pinMode (SetResDown, INPUT);

// Definer dimensjonene til LCD (16x2) lcd.begin (16, 2); // Vi velger i hvilken kolonne og på hvilken linje teksten begynner å vises // LECTOR comm.begin (9600);

mp3.begin (komm); // Komponent starter serialData = (char) (('')); mp3.start (); Serial.println ("Play"); // Spill en sang mp3.volum (25); // Definer volum}

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

int pulso = analogRead (A0); // Les verdien av pulsmåleren som er koblet til analog port A0

Serial.println (pulso/6); if (QS == true) {// Flag of Quantified Self is true like the arduino search the BPM QS = false; // Tilbakestill flagget for kvantifisert selv}

lcd.setCursor (0, 0); // Vis ønsket tekst lcd.print ("BPM:"); lcd.setCursor (0, 1); // Vis ønsket tekst lcd.print ("INT:"); lcd.setCursor (5, 0); // Vis ønsket tekst lcd.print (pulso); lcd.setCursor (5, 1); // Vis ønsket 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 siste tilstanden ble endret, øk telleren

ResButtonCounter ++; }

// lagre gjeldende tilstand som siste tilstand, // for neste gang løkken utføres lastResButtonUpState = ResButtonUpState;

// sammenligne tilstanden til knappen (øk eller reduser) med den siste tilstanden

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

// hvis den siste tilstanden endret seg, reduser telleren

ResButtonCounter--; }

// lagre nåværende tilstand som den siste tilstanden, // for neste gang løkken utføres lastResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);

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

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

}

}

Trinn 5: Total montering

Med koden riktig programmert og de to delene av prototypen vår allerede montert. Vi setter alle komponentene på plass og fester det med tape for å feste det til armbåndet. Komponentene i armbåndet er pulsmåler BPM, de to knappene, potensiometeret og LCD -skjermen, hver i sitt respektive hull som tidligere var designet i 3D -filen. Med den første delen ferdig, fokuserer vi på protoboardet, hver kontakt på den riktige pinnen på Arduino -kortet. Til slutt, med den verifiserte driften av hver komponent, legger vi den i pakken for å skjule ledningene.

Trinn 6: Video

Trinn 7: Konklusjon

Det mest interessante med dette prosjektet er å lære om å etterligne menneskekroppen ubevisst med musikk. Dette åpner døren til mange alternativer for fremtidige prosjekter. Jeg tror dette er et komplett prosjekt, vi har ganske mange komponenter med en bearbeidet kode. Hvis vi starter på nytt, ville vi tenke på andre komponentalternativer eller kjøpe dem av bedre kvalitet. Vi har hatt mange problemer med ødelagte kabler og sveisinger, de er små og veldig delikate (spesielt BPM). På den annen side må du være forsiktig når du kobler komponentene, de har mange utganger og det er lett å gjøre feil.

Det er et veldig berikende prosjekt der vi har berørt et stort utvalg av Arduino -maskinvare- og programvarealternativer.

Anbefalt: