Innehållsförteckning:

Bärbar - Slutprojekt: 7 steg
Bärbar - Slutprojekt: 7 steg

Video: Bärbar - Slutprojekt: 7 steg

Video: Bärbar - Slutprojekt: 7 steg
Video: 7 steg till en content marketing plan som funkar i praktiken 2024, Juni
Anonim
Bärbar - Slutprojekt
Bärbar - Slutprojekt

INTRODUKTION

I detta projekt hade vi i uppgift att göra en funktionell bärbar prototyp baserad på en cyborg -funktioner. Visste du att ditt hjärta synkroniseras med BPM av musik? Du kan försöka kontrollera ditt humör genom musik, men tänk om vi låter tekniken hjälpa oss att lugna ner sig? Vi behöver bara några komponenter, en Arduino och dina hörlurar. Låt oss förnya!

Projekt av Marc Vila, Guillermo Stauffacher och Pau Carcellé

Steg 1: Material och komponenter

Material och komponenter
Material och komponenter

Byggmaterial:

- 3D -tryckt armband

- M3 skruvar (x8)

- M3 muttrar (x12)

- Magväska

Elektroniska material:

-BPM för pulssensor

- Knappar (x2)

- Potentiometer

- LCD C 1602 MODUL

- MODUL DFPLAYER MINI MP3

- 3,5 mm Jack Stereo TRRS HEADSET

- MicroSD -kort

- Arduino Uno -tallrik

- Svetsare

- Bakelitplatta

Steg 2: Designa ett armband

Designa ett armband
Designa ett armband
Designa ett armband
Designa ett armband

Först gör vi flera skisser för att organisera de olika komponenterna i armbandet.

Med den klara idén tog vi mätningar av gruppens tre armar, sedan gjorde vi genomsnittet för att hitta det optimala måttet för designen. Slutligen designar vi produkten med ett 3D -program och skriver ut den med en 3D -skrivare.

Du kan ladda ner. STL -filerna här.

Steg 3: Elektroniska anslutningar

Elektroniska anslutningar
Elektroniska anslutningar

Vi fortsätter att göra de nödvändiga kontrollerna av vår 3d -design, vi gjorde en första montering av alla komponenter i prototypen för att se att mätningarna var korrekta.

För att ansluta alla komponenter till Arduino -kortet gjorde vi olika anslutningar från komponenterna med hjälp av 0, 5 meter kablar, på detta sätt minskar vi synligheten på kortet och vi organiserar prototypen bättre.

Steg 4: Koden

Koden
Koden
Koden
Koden
Koden
Koden

Detta projekt är en cyborg -prototyp. Uppenbarligen har vi inte introducerat komponenterna under huden, så vi har simulerat det med ett armband som en ortos (extern enhet applicerad på kroppen för att ändra de funktionella aspekterna).

Vår kod tar användarens knapptryckningar och visar dem med hjälp av LCD -skärmen. Förutom BPM visar skärmen önskad intensitet så att användaren kan jämföra den med sin puls. Det finns många situationer där det är intressant att öka eller minska din egen BPM. Till exempel måste uthållighetsidrottare kontrollera pulsationerna för att inte tröttna för mycket. Ett vardagligt exempel skulle vara att vilja sova eller lugna sig i en nervös situation. Det kan också tillämpas som en terapeutisk metod för personer med autism för att minska stressen de känner. Bredvid skärmen finns två knappar för att styra önskad intensitet och öka eller minska pulsen. Beroende på intensiteten spelas en tidigare studerad typ av musik. Det finns studier som visar att musik kan förändra BPM. Enligt Beats per Minute i låten efterliknar och matchar människokroppen BPM.

int SetResUp = 11; // pin 10 av Arduino med intensitetsökningsknapp. int SetResDown = 12; // stift 11 på Arduino med knapp för intensitetsminskning

int ResButtonCounter = 0; // gånger räknare som ökar eller minskar motståndsinställningen, initialt värde på 0 int ResButtonUpState = 0; // nuvarande tillstånd för intensitetsökningsknappen int ResButtonDownState = 0; // nuvarande tillstånd för intensitetsminskningsknappen int lastResButtonUpState = 0; // sista tillståndet för intensitetsökningsknappen int lastResButtonDownState = 0; // sista tillståndet för intensitetsminskningsknappen

int pulsPin = 0; // Pulsgivare ansluten till port A0 // Dessa variabler är flyktiga eftersom de används under avbrottsrutinen i den andra fliken. flyktig int BPM; // Beats per minute flyktig int Signal; // Pulssensordatainmatning flyktig int IBI = 600; // Pulstid flyktig boolsk puls = falsk; // Sant när pulsvågen är hög, falsk när den är Låg flyktig boolsk QS = falsk;

# definiera Start_Byte 0x7E # definiera Version_Byte 0xFF # definiera Command_Length 0x06 # definiera End_Byte 0xEF # definiera Bekräfta 0x00 // Returnerar info med kommando 0x41 [0x01: info, 0x00: ingen info]

// PANTALLA #include // Ladda upp biblioteket för funktionerna på LCD -skärmen #include #include

LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // Ange portarna där LCD -skärmen är ansluten

// LEKTOR #inkludera #inkludera // Ladda upp biblioteket för funktionerna i modulen dfplayer mini MP3.

char serialData; int nsong; på tv;

SoftwareSerial comm (9, 10); // Deklarera portarna där DFPlayer är ansluten DFRobotDFPlayerMini mp3;

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

// Definiera måtten på LCD -skärmen (16x2) lcd.begin (16, 2); // Vi väljer i vilken kolumn och på vilken rad texten börjar visa // LECTOR comm.begin (9600);

mp3.begin (komm); // Komponent startar serialData = (char) (('')); mp3.start (); Serial.println ("Spela"); // Spela en låt mp3.volym (25); // Definiera volym}

void loop () {if (digitalRead (11) == LOW) {mp3.next (); // Om knappen trycks in passerar låten} if (digitalRead (12) == LOW) {mp3.previous (); // Om du trycker på knappen, föregående låt} // if (SetResUp && SetResDown == LOW) {

int pulso = analogRead (A0); // Läs värdet på pulsmätaren ansluten till analog port A0

Serial.println (pulso/6); if (QS == true) {// Flag of Quantified Self is true like the arduino search the BPM QS = false; // Återställ flaggan för det kvantifierade jaget}

lcd.setCursor (0, 0); // Visa önskad text lcd.print ("BPM:"); lcd.setCursor (0, 1); // Visa önskad text lcd.print ("INT:"); lcd.setCursor (5, 0); // Visa önskad text lcd.print (pulso); lcd.setCursor (5, 1); // Visa önskad text lcd.print (ResButtonCounter); fördröjning (50); lcd.clear (); ResButtonUpState = digitalRead (SetResUp); ResButtonDownState = digitalRead (SetResDown);

// jämför TempButtonState med dess tidigare tillstånd

if (ResButtonUpState! = lastResButtonUpState && ResButtonUpState == LOW) {// om det senaste tillståndet ändrades, öka räknaren

ResButtonCounter ++; }

// spara det aktuella läget som det sista tillståndet, // för nästa gång slingan körs lastResButtonUpState = ResButtonUpState;

// jämför knappens tillstånd (öka eller minska) med det senaste läget

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

// om det senaste tillståndet ändrades, minska räknaren

ResButtonCounter--; }

// spara det aktuella läget som det sista tillståndet, // för nästa gång slingan körs lastResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);

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

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

}

}

Steg 5: Total montering

Med koden programmerad korrekt och de två delarna av vår prototyp redan monterade. Vi sätter alla komponenter på plats och förenar det med tejp för att fästa det på armbandet. Komponenterna i armbandet är pulsmätaren BPM, de två knapparna, potentiometern och LCD -skärmen, var och en i sitt respektive hål som tidigare utformats i 3D -filen. Med den första delen klar fokuserar vi på protoboardet, varje kontakt på rätt stift på Arduino -kortet. Slutligen, med den verifierade driften av varje komponent, lägger vi in den i packpaketet för att dölja trådarna.

Steg 6: Video

Steg 7: Slutsats

Det mest intressanta med detta projekt är att lära sig att efterlikna människokroppen omedvetet med musik. Detta öppnar dörren till många alternativ för framtida projekt. Jag tror att detta är ett komplett projekt, vi har ganska många komponenter med en fungerad kod. Om vi börjar om skulle vi tänka på andra komponentalternativ eller köpa dem av bättre kvalitet. Vi har haft många problem med trasiga kablar och svetsningar, de är små och mycket känsliga (särskilt BPM). Å andra sidan måste du vara försiktig när du ansluter komponenterna, de har många utgångar och det är lätt att göra misstag.

Det är ett mycket berikande projekt där vi har berört en mängd olika Arduino -hårdvaru- och programvarualternativ.

Rekommenderad: