Cuprins:

Wearable - Proiect final: 7 pași
Wearable - Proiect final: 7 pași

Video: Wearable - Proiect final: 7 pași

Video: Wearable - Proiect final: 7 pași
Video: Imprimare 3D - 7 pași 2024, Iunie
Anonim
Wearable - Proiect final
Wearable - Proiect final

INTRODUCERE

În acest proiect am avut sarcina de a realiza un prototip portabil funcțional bazat pe funcții cyborg. Știați că inima dvs. se sincronizează cu BPM-ul muzicii? Puteți încerca să vă controlați starea de spirit prin muzică, dar dacă lăsăm tehnologia să ne ajute să ne liniștim? Avem nevoie doar de câteva componente, un Arduino și căștile dvs. Să inovăm!

Proiect de Marc Vila, Guillermo Stauffacher și Pau Carcellé

Pasul 1: Materiale și componente

Materiale și componente
Materiale și componente

Materiale de construcție:

- brățară imprimată 3D

- Șuruburi M3 (x8)

- Piulițe M3 (x12)

- Borseta

Materiale electronice:

-BPM senzor ritm cardiac

- Butoane (x2)

- Potențiometru

- MODUL LCD C 1602

- MODUL DFPLAYER MINI MP3

- CASCĂ TRRS Jack stereo de 3,5 mm

- Card MicroSD

- Placă Arduino Uno

- Sudor

- farfurie de bakelită

Pasul 2: Proiectați o brățară

Proiectează o brățară
Proiectează o brățară
Proiectează o brățară
Proiectează o brățară

Mai întâi realizăm mai multe schițe pentru a organiza diferitele componente din brățară.

Cu ideea clară, am luat măsurători ale celor trei brațe ale membrilor grupului, apoi am făcut media pentru a găsi măsura optimă pentru proiectare. În cele din urmă, proiectăm produsul cu un program 3D și îl imprimăm cu o imprimantă 3D.

Puteți descărca fișierele. STL aici.

Pasul 3: Conexiuni electronice

Conexiuni electronice
Conexiuni electronice

Continuăm să facem verificările necesare ale designului nostru 3D, am făcut o primă asamblare a tuturor componentelor din prototip pentru a vedea dacă măsurătorile au fost corecte.

Pentru a conecta toate componentele la placa Arduino, am făcut conexiuni diferite de la componente folosind cabluri de 0, 5 metri, reducem astfel vizibilitatea plăcii și organizăm mai bine prototipul.

Pasul 4: Codul

Codul
Codul
Codul
Codul
Codul
Codul

Acest proiect este un prototip cyborg. Evident, nu am introdus componentele sub piele, așa că am simulat-o cu o brățară ca o orteză (dispozitiv extern aplicat corpului pentru a modifica aspectele funcționale).

Codul nostru preluează tastele utilizatorului și le arată folosind ecranul LCD. Pe lângă BPM, ecranul arată intensitatea dorită, astfel încât utilizatorul să o poată compara cu ritmul cardiac. Există multe situații în care este interesant să creșteți sau să reduceți propriul BPM. De exemplu, sportivii de anduranță trebuie să controleze pulsațiile pentru a nu obosi excesiv. Un exemplu de zi cu zi ar fi să vrei să dormi sau să te calmezi într-o situație nervoasă. Ar putea fi aplicat și ca metodă terapeutică pentru persoanele cu autism pentru a reduce stresul pe care îl simt. Lângă ecran sunt două butoane pentru a controla intensitatea dorită și pentru a crește sau a reduce ritmul cardiac. În funcție de intensitate, este redat un tip de muzică studiat anterior. Există studii care arată că muzica poate modifica BPM. Conform Beats per Minute a piesei, corpul uman imită și se potrivește cu cele ale BPM.

int SetResUp = 11; // pinul 10 din Arduino cu buton de creștere a intensității.int SetResDown = 12; // pinul 11 din Arduino cu butonul de scădere a intensității

int ResButtonCounter = 0; // contor de ori care mărește sau scade setarea rezistenței, valoarea inițială 0 int ResButtonUpState = 0; // starea curentă a butonului de creștere a intensității int ResButtonDownState = 0; // starea curentă a butonului de scădere a intensității int lastResButtonUpState = 0; // ultima stare a butonului de creștere a intensității int lastResButtonDownState = 0; // ultima stare a butonului de scădere a intensității

int pulsePin = 0; // Senzor de impuls conectat la portul A0 // Aceste variabile sunt volatile deoarece sunt utilizate în timpul rutinei de întrerupere din a doua filă. volatile BPM int; // Bătăi pe minut volatile int Semnal; // Intrare date senzor impulsuri volatile int IBI = 600; // Timp impuls puls boolean volatil = fals; // Adevărat când unda pulsului este ridicată, falsă atunci când este booleană cu volatilitate redusă QS = fals;

# define Start_Byte 0x7E # define Version_Byte 0xFF # define Command_Length 0x06 # define End_Byte 0xEF # define Confirmați 0x00 // Returnează informații cu comanda 0x41 [0x01: info, 0x00: fără informații]

// PANTALLA #include // Încărcați biblioteca pentru funcțiile ecranului LCD #include #include

LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // Declarați porturile la care este conectat ecranul LCD

// LECTOR #include #include // Încărcați biblioteca pentru funcțiile modulului dfplayer mini MP3.

char serialData; int nsong; în televizor;

SoftwareSerial comm (9, 10); // Declarați porturile unde este conectat DFPlayer DFRobotDFPlayerMini mp3;

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

// Definiți dimensiunile LCD (16x2) lcd.begin (16, 2); // Selectăm în ce coloană și în ce linie începe să apară textul // LECTOR comm.begin (9600);

mp3.begin (comm); // Componenta pornește serialData = (char) (('')); mp3.start (); Serial.println („Joacă”); // Redați o melodie mp3.volume (25); // Definiți volumul}

bucla void () {if (digitalRead (11) == LOW) {mp3.next (); // Dacă butonul este apăsat, melodia trece} if (digitalRead (12) == LOW) {mp3.previous (); // Dacă butonul este apăsat, melodia anterioară} // if (SetResUp && SetResDown == LOW) {

int pulso = analogRead (A0); // Citiți valoarea monitorului de ritm cardiac conectat la portul analog A0

Serial.println (pulso / 6); if (QS == true) {// Flag of Quantified Self este adevărat ca și căutarea arduino în BPM QS = false; // Resetați steagul Sinelui Cuantificat}

lcd.setCursor (0, 0); // Afișați textul dorit lcd.print ("BPM:"); lcd.setCursor (0, 1); // Afișați textul dorit lcd.print ("INT:"); lcd.setCursor (5, 0); // Afișați textul dorit lcd.print (pulso); lcd.setCursor (5, 1); // Afișați textul dorit lcd.print (ResButtonCounter); întârziere (50); lcd.clear (); ResButtonUpState = digitalRead (SetResUp); ResButtonDownState = digitalRead (SetResDown);

// comparați TempButtonState cu starea sa anterioară

if (ResButtonUpState! = lastResButtonUpState && ResButtonUpState == LOW) {// dacă ultima stare s-a schimbat, măriți contorul

ResButtonCounter ++; }

// salvați starea curentă ca ultima stare, // pentru următoarea dată când bucla este executată lastResButtonUpState = ResButtonUpState;

// comparați starea butonului (crește sau micșorați) cu ultima stare

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

// dacă s-a schimbat ultima stare, decrementați contorul

ResButtonCounter--; }

// salvați starea curentă ca ultima stare, // pentru următoarea dată când bucla este executată lastResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);

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

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

}

}

Pasul 5: Asamblare totală

Cu codul programat corect și cele două părți ale prototipului nostru deja asamblate. Punem toate componentele la locul lor și le unim cu bandă pentru a o fixa pe brățară. Componentele care se află în brățară sunt senzorul de ritm cardiac BPM, cele două butoane, potențiometrul și ecranul LCD, fiecare în orificiul respectiv proiectat anterior în fișierul 3D. Odată cu prima parte realizată, ne concentrăm pe protoboard, fiecare conector pe pinul corect al plăcii Arduino. În cele din urmă, odată cu funcționarea verificată a fiecărei componente, o punem în pachetul pentru a ascunde firele.

Pasul 6: Video

Pasul 7: Concluzie

Cel mai interesant lucru despre acest proiect este învățarea despre imitarea inconștientă a corpului uman cu muzica. Acest lucru deschide ușa către multe opțiuni pentru proiecte viitoare. Cred că acesta este un proiect complet, avem o varietate de componente cu un cod lucrat. Dacă începem din nou, ne-am gândi la alte alternative componente sau le-am cumpăra de o calitate mai bună. Am avut o mulțime de probleme cu cablurile și sudurile rupte, acestea sunt mici și foarte delicate (în special BPM). Pe de altă parte, trebuie să aveți grijă atunci când conectați componentele, acestea au multe ieșiri și este ușor să greșiți.

Este un proiect foarte îmbogățitor în care am atins o mare varietate de opțiuni hardware și software Arduino.

Recomandat: