Sommario:
- Passaggio 1: materiali e componenti
- Passaggio 2: progettare un braccialetto
- Passaggio 3: connessioni elettroniche
- Passaggio 4: il codice
- Passaggio 5: assemblaggio totale
- Passaggio 6: video
- Passaggio 7: conclusione
Video: Wearable - Progetto finale: 7 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
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 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
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
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
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:
ATtiny Wearable Device - Connettore PCB Edge: 4 passaggi
ATtiny Wearable Device - PCB Edge Connector: Ciao, questa è la seconda parte della serie di strumenti di programmazione per dispositivi indossabili, in questo tutorial spiego come creare un dispositivo indossabile PCB edge, che può essere utilizzato con il mio scudo di programmazione Arduino ATtiny. In questo esempio, ho usato un ATtiny85 uC in
Simon dice che il gioco finale di ingegneria informatica: 3 passaggi
Finale di Ingegneria Informatica Simon Says Game: La mia idea: Il mio progetto è il Simon Says Game. In questo gioco ci sono quattro LED e quattro pulsanti. La musica verrà riprodotta dal cicalino mentre i LED si accendono in corrispondenza della musica. Quindi inizierà il gioco. Un LED si accenderà e dovrai fare clic sul calcio
Canzoni a 8 bit che utilizzano il tema finale Arduino / Zelda: 4 passaggi
Canzoni a 8 bit che utilizzano Arduino / Zelda Ending Theme: hai mai desiderato creare quel tipo di carte regalo o giocattoli che riproducono una canzone una volta che li apri o li stringi? Con una canzone a tua scelta? Forse anche una canzone che hai fatto tu? Beh, è la cosa più facile del mondo e non ti costerà nulla
Controllo LED con potenziometro - Esame finale: 3 passaggi
Controllo LED con potenziometro - FinalExam: per il mio progetto di esame finale, ho creato un controller LED utilizzando un potenziometro. Lo scopo di questo progetto è quello di utilizzare il potenziometro per controllare quali LED sono accesi. Quando il potenziometro viene ruotato in senso orario, i LED si accendono in modo che il primo LED
Finale di controllo LED: 3 passaggi
LED Control Final: In questo tutorial imparerai come controllare una fila di 5 LED con un potenziometro. Il potenziometro si sbiadirà tra i LED come appare nel diagramma di esempio