Sommario:

Wearable - Progetto finale: 7 passaggi
Wearable - Progetto finale: 7 passaggi

Video: Wearable - Progetto finale: 7 passaggi

Video: Wearable - Progetto finale: 7 passaggi
Video: Progetto Wearhap: Wearable Haptics for Humans and Robots 2024, Giugno
Anonim
Indossabile - Progetto finale
Indossabile - Progetto finale

INTRODUZIONE

In questo progetto abbiamo avuto il compito di realizzare un prototipo indossabile funzionale basato su funzioni cyborg. Sapevi che il tuo cuore si sincronizza con i BPM della musica? Puoi provare a controllare il tuo umore attraverso la musica, ma cosa succede se lasciamo che la tecnologia ci aiuti a calmarci? Abbiamo solo bisogno di alcuni componenti, un Arduino e le tue cuffie. Innoviamo!

Progetto di Marc Vila, Guillermo Stauffacher e Pau Carcellé

Passaggio 1: materiali e componenti

Materiali e componenti
Materiali e componenti

Materiali di costruzione:

- Braccialetto stampato in 3D

- Viti M3 (x8)

- Dadi M3 (x12)

- Borsa a marsupio

Materiali elettronici:

-Sensore di frequenza cardiaca BPM

- Pulsanti (x2)

- Potenziometro

- MODULO LCD C 1602

- MODULO DFPLAYER MINI MP3

- AURICOLARE TRRS stereo jack da 3,5 mm

- Scheda MicroSD

- Piastra Arduino Uno

- Saldatore

- Piatto in bachelite

Passaggio 2: progettare un braccialetto

Disegna un braccialetto
Disegna un braccialetto
Disegna un braccialetto
Disegna un braccialetto

Per prima cosa facciamo diversi schizzi per organizzare i diversi componenti nel braccialetto.

Con l'idea chiara, abbiamo preso le misure delle tre braccia dei membri del gruppo, poi abbiamo fatto la media per trovare la misura ottimale per il disegno. Infine progettiamo il prodotto con un programma 3D e lo stampiamo con una stampante 3D.

Puoi scaricare i file. STL qui.

Passaggio 3: connessioni elettroniche

Connessioni elettroniche
Connessioni elettroniche

Continuiamo a fare le necessarie verifiche della nostra progettazione 3d, abbiamo fatto un primo assemblaggio di tutti i componenti nel prototipo per vedere che le misure fossero corrette.

Per collegare tutti i componenti alla scheda Arduino, abbiamo effettuato collegamenti diversi dai componenti utilizzando cavi da 0,5 metri, in questo modo riduciamo la visibilità della scheda e organizziamo meglio il prototipo.

Passaggio 4: il codice

Il codice
Il codice
Il codice
Il codice
Il codice
Il codice

Questo progetto è un prototipo di cyborg. Ovviamente non abbiamo introdotto i componenti sottocutanei, quindi lo abbiamo simulato con un braccialetto come ortesi (dispositivo esterno applicato al corpo per modificare gli aspetti funzionali).

Il nostro codice prende le battute dell'utente e le mostra utilizzando lo schermo LCD. Oltre al BPM, lo schermo mostra l'intensità desiderata in modo che l'utente possa confrontarla con la sua frequenza cardiaca. Ci sono molte situazioni in cui è interessante aumentare o ridurre il proprio BPM. Ad esempio, gli atleti di resistenza devono controllare le pulsazioni per non stancarsi eccessivamente. Un esempio quotidiano sarebbe voler dormire o calmarsi in una situazione nervosa. Potrebbe anche essere applicato come metodo terapeutico per le persone con autismo per ridurre lo stress che sentono. Accanto allo schermo ci sono due pulsanti per controllare l'intensità desiderata e aumentare o diminuire la frequenza cardiaca. A seconda dell'intensità, viene riprodotto un tipo di musica precedentemente studiato. Ci sono studi che mostrano che la musica può alterare il BPM. Secondo Beats per Minute della canzone, il corpo umano imita e abbina quei BPM.

int SetResUp = 11; // pin 10 di Arduino con aumento di intensità button.int SetResDown = 12; // pin 11 di Arduino con pulsante di diminuzione dell'intensità

int ResButtonCounter = 0;// contatore di volte che aumenta o diminuisce l'impostazione della resistenza, valore iniziale di 0 int ResButtonUpState = 0; // stato attuale del pulsante di aumento dell'intensità int ResButtonDownState = 0; // stato attuale del pulsante di riduzione dell'intensità int lastResButtonUpState = 0; // ultimo stato del pulsante di aumento dell'intensità int lastResButtonDownState = 0; // ultimo stato del pulsante di riduzione dell'intensità

int PulsePin = 0; // Sensore di impulsi connesso alla porta A0 // Queste variabili sono volatili perché vengono utilizzate durante la routine di interrupt nella seconda scheda. BPM int volatile; // Battiti al minuto volatile int Signal; // Ingresso dati sensore impulsi volatile int IBI = 600; // Tempo di impulso volatile booleano Pulse = false; // Vero quando l'onda di impulso è alta, falso quando è bassa booleana volatile QS = false;

# define Start_Byte 0x7E # define Version_Byte 0xFF # define Command_Length 0x06 # define End_Byte 0xEF # define Acknowledge 0x00 //Restituisce info con comando 0x41 [0x01: info, 0x00: no info]

//PANTALLA #include // Carica la libreria per le funzioni dello schermo LCD #include #include

LCD a cristalli liquidi (7, 6, 5, 4, 3, 2); // Dichiara le porte a cui è collegato l'LCD

//LECTOR #include #include // Carica la libreria per le funzioni del modulo dfplayer mini MP3.

char serialData; int nsong; in tv;

SoftwareComunicazione seriale(9, 10); // Dichiara le porte a cui è connesso DFPlayer DFRobotDFPlayerMini mp3;

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

//Definisce le dimensioni dell'LCD (16x2) lcd.begin(16, 2); //Selezioniamo in quale colonna e in quale riga il testo inizia a mostrare //LECTOR comm.begin(9600);

mp3.begin(comm); //Componente avvia serialData = (char)((' ')); mp3.start(); Serial.println("Riproduci"); // Riproduce una canzone mp3.volume(25); //Definisci il volume }

void loop() { if (digitalRead(11) == LOW){ mp3.next(); //Se il pulsante viene premuto, la canzone passa } if (digitalRead(12) == LOW){ mp3.previous(); //Se si preme il pulsante, viene riprodotta la canzone precedente } //if (SetResUp && SetResDown == LOW) {

int impulso = analogRead(A0); //Leggi il valore del cardiofrequenzimetro collegato alla porta analogica A0

Serial.println(pulso/6); if (QS == true) { // Flag of Quantified Self è vero come l'arduino cerca il BPM QS = false; // Reimposta il flag di Quantified Self }

lcd.setCursor(0, 0); //Mostra il testo desiderato lcd.print("BPM:"); lcd.setCursor(0, 1); //Mostra il testo desiderato lcd.print("INT:"); lcd.setCursor(5, 0); //Mostra il testo desiderato lcd.print(pulso); lcd.setCursor(5, 1); //Mostra il testo desiderato lcd.print(ResButtonCounter); ritardo(50); lcd.clear(); ResButtonUpState = digitalRead(SetResUp); ResButtonDownState = digitalRead(SetResDown);

// confronta TempButtonState con il suo stato precedente

if (ResButtonUpState != lastResButtonUpState && ResButtonUpState == LOW) { // se l'ultimo stato è cambiato, aumenta il contatore

ResButtonCounter++; }

// salva lo stato corrente come ultimo stato, // per la prossima esecuzione del ciclo lastResButtonUpState = ResButtonUpState;

// confronta lo stato del pulsante (aumenta o diminuisci) con l'ultimo stato

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

// se l'ultimo stato è cambiato, decrementa il contatore

ResButtonCounter--; }

// salva lo stato corrente come ultimo stato, // per la prossima esecuzione del ciclo lastResButtonDownState = ResButtonDownState; { Serial.println(ResButtonCounter);

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

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

}

}

Passaggio 5: assemblaggio totale

Con il codice programmato correttamente e le due parti del nostro prototipo già assemblate. Mettiamo a posto tutti i componenti e lo uniamo con del nastro adesivo per fissarlo al braccialetto. I componenti che si trovano nel braccialetto sono il Sensore di Frequenza Cardiaca BPM, i due pulsanti, il potenziometro e lo Schermo LCD, ognuno nel suo rispettivo foro precedentemente disegnato nel file 3D. Con la prima parte fatta, ci concentriamo sulla scheda prototipi, ogni connettore sul pin corretto della scheda Arduino. Infine, con il funzionamento verificato di ogni componente, lo mettiamo nel marsupio per nascondere i fili.

Passaggio 6: video

Passaggio 7: conclusione

La cosa più interessante di questo progetto è imparare a imitare il corpo umano inconsciamente con la musica. Questo apre le porte a molte opzioni per progetti futuri. Penso che questo sia un progetto completo, abbiamo una discreta varietà di componenti con un codice funzionante. Se ricominciassimo penseremmo ad altre alternative di componenti o le compreremmo di migliore qualità. Abbiamo avuto molti problemi con cavi rotti e saldature, sono piccoli e molto delicati (soprattutto il BPM). D'altra parte bisogna stare attenti quando si collegano i componenti, hanno molte uscite ed è facile sbagliare.

È un progetto molto arricchente in cui abbiamo toccato un'ampia varietà di opzioni hardware e software Arduino.

Consigliato: