Índice:
- Etapa 1: Materiais e Componentes
- Etapa 2: projete uma pulseira
- Etapa 3: conexões eletrônicas
- Etapa 4: O Código
- Etapa 5: Montagem Total
- Etapa 6: Vídeo
- Etapa 7: Conclusão
Vídeo: Vestível - Projeto final: 7 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
INTRODUÇÃO
Neste projeto tivemos a tarefa de fazer um protótipo vestível funcional baseado nas funções de um ciborgue. Você sabia que seu coração sincroniza com o BPM da música? Você pode tentar controlar seu humor por meio da música, mas e se deixarmos que a tecnologia nos ajude a nos acalmar? Precisamos apenas de alguns componentes, um Arduino e seus fones de ouvido. Vamos inovar!
Projeto de Marc Vila, Guillermo Stauffacher e Pau Carcellé
Etapa 1: Materiais e Componentes
Materiais de construção:
- pulseira impressa em 3D
- Parafusos M3 (x8)
- Porcas M3 (x12)
- Pacote de Fanny
Materiais eletrônicos:
- Sensor de frequência cardíaca BPM
- Botões (x2)
- Potenciômetro
- MÓDULO LCD C 1602
- MÓDULO DFPLAYER MINI MP3
- Jack estéreo de 3,5 mm TRRS HEADSET
- Cartão MicroSD
- Placa Arduino Uno
- Soldador
- Prato de baquelite
Etapa 2: projete uma pulseira
Primeiro, fazemos vários esboços para organizar os diferentes componentes da pulseira.
Com a ideia clara, tiramos medidas dos três braços dos membros do grupo, depois fizemos a média para encontrar a medida ótima para o projeto. Finalmente desenhamos o produto com um programa 3D e o imprimimos com uma impressora 3D.
Você pode baixar os arquivos. STL aqui.
Etapa 3: conexões eletrônicas
Continuamos fazendo as verificações necessárias do nosso projeto 3D, fizemos uma primeira montagem de todos os componentes do protótipo para ver se as medidas estavam corretas.
Para conectar todos os componentes à placa Arduino, fizemos conexões diferentes dos componentes usando cabos de 0, 5 metros, desta forma reduzimos a visibilidade da placa e organizamos melhor o protótipo.
Etapa 4: O Código
Este projeto é um protótipo de ciborgue. Obviamente, não introduzimos os componentes sob a pele, então o simulamos com uma pulseira como órtese (dispositivo externo aplicado ao corpo para modificar os aspectos funcionais).
Nosso código pega as teclas do usuário e as mostra usando a tela LCD. Além do BPM, a tela mostra a intensidade desejada para que o usuário possa comparar com sua frequência cardíaca. Existem muitas situações em que é interessante aumentar ou reduzir seu próprio BPM. Por exemplo, atletas de resistência devem controlar as pulsações para não se cansar excessivamente. Um exemplo do dia a dia seria querer dormir ou se acalmar em uma situação nervosa. Também pode ser aplicado como método terapêutico para pessoas com autismo para reduzir o estresse que sentem. Ao lado da tela há dois botões para controlar a intensidade desejada e aumentar ou diminuir a frequência cardíaca. Dependendo da intensidade, um tipo de música previamente estudado é tocado. Existem estudos que mostram que a música pode alterar o BPM. De acordo com o Beats per Minute da música, o corpo humano imita e corresponde àqueles BPM.
int SetResUp = 11; // pino 10 do Arduino com botão de aumento de intensidade.int SetResDown = 12; // pino 11 do Arduino com botão de diminuição de intensidade
int ResButtonCounter = 0; // contador de vezes que aumenta ou diminui a configuração de resistência, valor inicial de 0 int ResButtonUpState = 0; // estado atual do botão de aumento de intensidade int ResButtonDownState = 0; // estado atual do botão de diminuição de intensidade int lastResButtonUpState = 0; // último estado do botão de aumento de intensidade int lastResButtonDownState = 0; // último estado do botão de diminuição de intensidade
int pulsePin = 0; // Sensor de pulso conectado à porta A0 // Essas variáveis são voláteis porque são usadas durante a rotina de interrupção na segunda guia. volatile int BPM; // Batimentos por minuto volatile int Signal; // Entrada de dados do sensor de pulso volátil int IBI = 600; // Tempo de pulso volátil booleano Pulse = false; // Verdadeiro quando a onda de pulso é alta, falso quando é baixo volátil booleano QS = falso;
# define Start_Byte 0x7E # define Version_Byte 0xFF # define Command_Length 0x06 # define End_Byte 0xEF # define Acknowledge 0x00 // Retorna informações com o comando 0x41 [0x01: info, 0x00: sem informações]
// PANTALLA #include // Carregar a biblioteca para as funções da tela LCD #include #include
LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // Declara as portas onde o LCD está conectado
// LECTOR #include #include // Carrega a biblioteca para as funções do módulo dfplayer mini MP3.
char serialData; int nsong; na TV;
Comunicação serial de software (9, 10); // Declara as portas onde o DFPlayer está conectado DFRobotDFPlayerMini mp3;
void setup () {Serial.begin (9600); pinMode (SetResUp, INPUT); pinMode (SetResDown, INPUT);
// Defina as dimensões do LCD (16x2) lcd.begin (16, 2); // Selecionamos em qual coluna e em qual linha o texto começa a mostrar // LECTOR comm.begin (9600);
mp3.begin (comunicação); // O componente inicia serialData = (char) (('')); mp3.start (); Serial.println ("Reproduzir"); // Toca uma música mp3.volume (25); // Definir o volume}
void loop () {if (digitalRead (11) == LOW) {mp3.next (); // Se o botão for pressionado, a música passa} if (digitalRead (12) == LOW) {mp3.previous (); // Se o botão for pressionado, a música anterior} // if (SetResUp && SetResDown == LOW) {
pulso interno = leitura analógica (A0); // Lê o valor do monitor de frequência cardíaca conectado à porta analógica A0
Serial.println (pulso / 6); if (QS == true) {// Flag of Quantified Self é true como a pesquisa do Arduino o BPM QS = false; // Redefina o sinalizador de Quantified Self}
lcd.setCursor (0, 0); // Mostra o texto desejado lcd.print ("BPM:"); lcd.setCursor (0, 1); // Mostra o texto desejado lcd.print ("INT:"); lcd.setCursor (5, 0); // Mostra o texto desejado lcd.print (pulso); lcd.setCursor (5, 1); // Mostra o texto desejado lcd.print (ResButtonCounter); atraso (50); lcd.clear (); ResButtonUpState = digitalRead (SetResUp); ResButtonDownState = digitalRead (SetResDown);
// compare TempButtonState com seu estado anterior
if (ResButtonUpState! = lastResButtonUpState && ResButtonUpState == LOW) {// se o último estado mudou, aumente o contador
ResButtonCounter ++; }
// salve o estado atual como o último estado, // para a próxima vez que o loop for executado lastResButtonUpState = ResButtonUpState;
// compare o estado do botão (aumentar ou diminuir) com o último estado
if (ResButtonDownState! = lastResButtonDownState && ResButtonDownState == LOW) {
// se o último estado mudou, diminui o contador
ResButtonCounter--; }
// salve o estado atual como o último estado, // para a próxima vez que o loop for executado lastResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);
if (ResButtonCounter> = 10) {ResButtonCounter = 10; }
if (ResButtonCounter <1) {ResButtonCounter = 1; }
}
}
Etapa 5: Montagem Total
Com o código programado corretamente e as duas partes do nosso protótipo já montadas. Colocamos todos os componentes no lugar e os unimos com fita para fixá-los à pulseira. Os componentes que compõem a pulseira são o Sensor de Freqüência Cardíaca BPM, os dois botões, o potenciômetro e a Tela LCD, cada um em seu respectivo orifício previamente desenhado no arquivo 3D. Com a primeira parte feita, focamos no protoboard, cada conector no pino correto da placa Arduino. Finalmente, com o funcionamento verificado de cada componente, colocamos na pochete para esconder os fios.
Etapa 6: Vídeo
Etapa 7: Conclusão
O mais interessante neste projeto é aprender a imitar o corpo humano inconscientemente com música. Isso abre a porta para muitas opções para projetos futuros. Acho que este é um projeto completo, temos uma grande variedade de componentes com um código trabalhado. Se começarmos de novo, poderemos pensar em outras alternativas de componentes ou comprá-los de melhor qualidade. Tivemos muitos problemas com cabos rompidos e soldas, são pequenos e muito delicados (principalmente o BPM). Por outro lado deve-se ter cuidado ao conectar os componentes, eles possuem muitas saídas e é fácil cometer erros.
É um projeto muito enriquecedor no qual abordamos uma ampla variedade de opções de hardware e software do Arduino.
Recomendado:
Construir um rastreador de movimento vestível (BLE do Arduino para um aplicativo Android Studio personalizado): 4 etapas
Construir um rastreador de movimento vestível (BLE do Arduino para um aplicativo Android Studio personalizado): Bluetooth Low Energy (BLE) é uma forma de comunicação Bluetooth de baixa potência. Dispositivos vestíveis, como as roupas inteligentes que ajudo a projetar na Predictive Wear, devem limitar o consumo de energia sempre que possível para estender a vida útil da bateria e frequentemente utilizar BLE
Reator de arco de final de jogo impresso em 3D (filme preciso e vestível): 7 etapas (com imagens)
3D Printed Endgame Arc Reactor (Movie Accurate and Wearable): Tutorial completo do Youtube: Não consegui encontrar nenhum arquivo 3D com precisão de filme para o reator arc Mark 50 / alojamento para nanopartículas, então meu amigo e eu preparamos alguns doces. Demorou muitos ajustes para fazer com que a coisa parecesse precisa e incrível
Lanterna vestível (apresentando o CPX): 8 etapas
Lanterna vestível (com o CPX): Olá a todos, fiz uma lanterna vestível que pode ser usada na mão. Usei o código do Adafruit, um site de programação onde você coloca blocos de código juntos. Neste instrutível, direi o que fiz para codificar o CPX (Circuit Playground Ex
Post-shirt: Detecção de postura vestível em tempo real: 9 etapas
Postshirt: Detecção de postura vestível em tempo real: Postshirt é um sistema de detecção de postura sem fio em tempo real que transmite e classifica dados do acelerômetro de um Adafruit Feather para um aplicativo Android via Bluetooth. O sistema completo pode detectar em tempo real se o usuário está com má postura e c
Beatbox de fótons vestível: 7 etapas
Wearable Photon Beatbox: Este projeto foi inspirado no código para uma photon beat box que encontrei no Adafruit: https://makecode.adafruit.com/examples/photon-beat… Decidi elaborar esse conceito pegando o código e transformando-o em um colete eletrônico vestível que mudará