Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03
O objetivo é instalar um sensor de músculo com a ajuda do Arduino e processar os dados de entrada com Adafruit IO e recuperar a saída com um gatilho para que a luz passe de branco para vermelho por um minuto.
O que é um sensor muscular O sensor muscular mede a atividade elétrica de um músculo e produz um sinal de saída analógico que pode ser facilmente lido por um microcontrolador. A eletromiografia (EMG) mede a resposta muscular ou atividade elétrica em resposta à estimulação de um nervo do músculo. O teste é usado para ajudar a detectar anormalidades neuromusculares. Durante o teste, uma ou mais agulhas pequenas (também chamadas de eletrodos) são inseridas através da pele no músculo.
Para este projeto você precisa de: -Sensor de músculo MyoWare -eletrodos EMG -NodeMCU (esp8266) -Fio de capa de silicone -Cabo USB -Tira LED de neopixel
Bibliotecas necessárias: -Adafruit io Arduino (pelo menos versão 2.3.0) -Adafruit Neopixel (versão 1.2.5) -Adafruit MQTT library (1.0.3) -Arduino HttpClients (0.4.0) Se você não tiver bibliotecas instaladas ainda. Em seguida, vá para Sketch> Incluir Biblioteca> Gerenciar Bibliotecas … digite: [o nome da biblioteca que deseja instalar] no campo de pesquisa.
Etapa 1: Conectando o sensor muscular Myoware (especialmente para aqueles que nunca trabalharam com ele antes)
Se você nunca trabalhou com um sensor muscular Myoware, é bom primeiro entender como esse sensor é conectado e pode ser lido no monitor serial do Arduino. Esta operação é um procedimento padrão que já foi descrito em muitos manuais. A plataforma Adafruit tem uma descrição clara de como isso funciona em algumas etapas:
learn.adafruit.com/getting-started-with-my…
VerifiqueSe todas essas etapas forem realizadas, você verá no monitor serial que os valores mudam quando você tensiona os músculos. Quando você fecha o punho e contrai o músculo, os valores devem subir e quando você relaxa o músculo, esses valores devem cair novamente.
ImportanteEsta etapa serve apenas para configurar o sensor. O código que você usou não é necessário para o resto do manual. Apenas a maneira como você instala o sensor permanece a mesma para as próximas etapas.
Etapa 2: configuração do Adafruit IO
A primeira etapa é fazer o login ou criar uma conta no Adafruit IO, navegue até Adafruit IO. Adafruit IO é uma plataforma em nuvem, à qual você pode se conectar pela Internet. Adafruit IO torna os dados úteis com conexões de dados.
Quando você está em sua conta:
Crie o feed analógico Em seguida, você precisará criar um feed chamado Analog. Se precisar de ajuda para começar a criar feeds no Adafruit IO, consulte o guia Adafruit IO Feed Basics (como nas fotos 1 e 2).
Adicionando o Gauge Block e o Line chart BlockNext, crie um novo painel e nomeie-o como deseja (mostrado nas fotos 3, 4 e 5 para fazer um novo painel). Certifique-se de ter selecionado o feed analógico como a fonte de dados.
Quando você estiver no painel, adicione um novo bloco de Medidor clicando no sinal de adição azul no canto superior direito. Nomeie o bloco como quiser (mostrado nas fotos 6 e 7) e atribua a ele um valor máximo de 1024 e um valor mínimo de 0 (valores do sensor muscular).
Repita o mesmo com o bloco do gráfico de linhas (foto 8) como acima com o bloco Gauge.
VerifiqueSe você fez tudo acima, você deve ter uma tela semelhante à da última foto.
Etapa 3: entrada do Arduino
Na etapa 1, você configurou a fiação do sensor MyoWare Muscle corretamente. Nesta etapa, mergulharemos no código do Arduino que vem com a conexão com a etapa 2 do painel de controle do Adafruit IO. No final desta etapa, você verá os valores de entrada do sensor Myoware Muscle nos dois blocos que você configurou.
Configuração do Arduino
Certifique-se de ter todas as bibliotecas instaladas mencionadas acima na introdução.
Vamos trabalhar com um esboço de exemplo. Abra Arquivo> Exemplo> Adafruit IO Arduino> adafruitio_08_analog_in (foto 1). Por que esse esboço? porque estamos configurando primeiro a parte de entrada deste manual. O sensor MyoWare Muscle faz uso de saída analógica. Se você quiser se aprofundar mais no tópico sobre analógico.
Arduino Network ConfigPara definir as configurações de rede, clique na guia config.h no esboço. Você precisará definir seu nome de usuário Adafruit IO na definição IO_USERNAME, e sua chave Adafruit IO na definição IO_KEY. Você pode encontrar seu nome de usuário e chave no canto superior direito da tela em seu Arduino IO (exemplo na foto 2)
#define IO_USERNAME "your_username"
#define IO_KEY "your_key"
WiFi Config O WiFi está habilitado por padrão no config.h, portanto, se você estiver usando uma das placas WiFi suportadas, precisará apenas modificar as opções WIFI_SSID e WIFI_PASS na guia config.h.
#define WIFI_SSID "your_ssid" #define WIFI_PASS "your_pass"
Código do ArduinoSe você tiver alterado as configurações acima, podemos ir mais longe para o código real, adafruit_08_analog_in. O pino padrão neste exemplo é statet em AO. Este é o pino certo, pois você colocou o sensor muscular na placa na etapa 2.
Este exemplo usa um sensor de fotocélula, porque usamos um sensor de músculo vamos mudar este nome. Não importa se você fizer isso, só vai torná-lo semanticamente mais organizado. Altere PHOTOCELL_PIN para MUSCLESENSOR_PIN faça isso em dois lugares do esboço.
/ ************************* Exemplo começa aqui ********************** ********* /
// pino analógico 0 # define PHOTOCELL_PIN A0
Na última linha de código foi colocado um atraso. Este atraso é de 1 segundo, vamos definir é de 2 segundos, então 2.000. Fazemos isso porque há uma licença no Adafruit IO com um limite de dados, em dois segundos este esboço excede esse limite de dados e dará um AVISO DE ACELERAÇÃO. O que significa que não há nenhum valor entrando. Definir como dois segundos evita isso.
// espera um segundo (1000 milissegundos == 1 segundo) delay (2000);
Isso foi o que você teve que mudar no esboço para fazê-lo funcionar. Se você quiser saber exatamente como funciona todo o código. Você pode encontrá-lo em learn Adafruit, com uma explicação de cada bloco de código.
Faça o upload do sketch para a sua placa e abra o Arduino Serial Monitor. Sua placa agora deve se conectar ao Adafruit IO.
agora você pode apertar seu braço e deverá ver os valores alterados sendo enviados para Adafruit IO (como na foto 3). Se você não vir nenhum valor no monitor serial, verifique se você configurou a taxa Baud no monitor serial para 115200.
Adafruit IO DashboardCheck seu painel no Adafruit IO, e você deve ver o medidor e o gráfico de linha responder às mudanças nos valores do MyoWare Muscle Sensor.
Etapa 4: Configuração do acionador Adafruit IO
Até agora, pudemos fazer a entrada do sensor MyoWare Muscle para o funcionamento do Adafruit IO. Agora vamos começar a ler essas informações. Para que após 5 vezes um valor acima de X do sensor Muscular seja detectado, uma ação é realizada pela faixa de led Neopixel.
Esta seção foi para mim onde eu tive que investigar como posso ler a história do Adafruit IO. Eu já havia trabalhado com feeds e painéis antes, então pensei que o feed e o painel que foram criados poderiam ler isso e criar uma ação aqui no Arduino. Até agora não consegui. Depois de muita pesquisa e Adafruit IO, descobri que uma ação pode ser disparada com a função Trigger em Adafruit IO. Saiba mais sobre Triggers.
Um Feed extra Antes de podermos fazer um Trigger, devemos criar um outro feed para que possamos nomeá-lo no Arduino para obter a saída. Crie um feed com o nome AlertTriggered.
Crie um TriggerAo lado dos cabeçalhos Feed e Dashboard é Trigger, clique aqui. Crie um novo gatilho. Será perguntado se você deseja criar um acionador reativo ou acionador de programação, escolha acionador reativo e clique em criar. Isso porque você só quer acionar algo quando algo acontecer (foto 1).
Uma série de coisas devem ser configuradas (os próximos passos também são mostrados na foto 2).- Selecione a alimentação analógica no primeiro If, para que a entrada seja obtida a partir daqui.
-Você seleciona maior que, isso porque deseja acionar algo quando o valor ultrapassar esse número.
-Valor de comparação você pode inserir o número desejado para ativar o gatilho. Eu fiz 600 neste caso.
-Com o arduino você terá que receber um feedback quando exceder 600: então em Então selecione publicar uma mensagem para:.
-Depois disso, você pode selecionar seu segundo feed criado AlertTriggered.
Por último, clique em criar.
Etapa 5: Saída de Neopixel
A etapa final é gerar a saída. Feito no esboço do Arduino que você editou, chamando o feed AlertTriggered (que você criou na etapa anterior).
Para ser capaz de gerar saída, você deve primeiro conectar a faixa de led Neopixel ao NodeMCU.- + 5v (esquerda) fio de sua faixa de led no 3v de seu NodeMCU- fio GND (direito) em G do Nó (G = GND) - Centralize o fio DIN do LED no D5 (ou qualquer outra porta D)
CodeI incluí todo o esboço com alternâncias nesta etapa como um arquivo (pode ser encontrado na parte inferior desta etapa). Este é o mesmo esboço com o qual você trabalhou nas últimas etapas, mas agora o esboço final está incluído com as etapas que você deve realizar para gerar a saída. arquivo adafruitio_musclesensor_neopixel. Isso funciona com o config.h que você configurou anteriormente com seus dados. Todos os blocos de código são incluídos com comentários para que você possa ver o que está acontecendo.
Quais dados de saída foram codificados Neste código, criei um gatilho, quando o AlertTriggered (o que declaramos na etapa anterior sobre um valor maior que 600) é disparado mais de 5 vezes. Isso significa que, quando é acionado, a faixa de led do Neopixel é definida de branco para vermelho. Isso acontecerá por um minuto e então o estado vermelho irá desaparecer e voltar ao estado branco novamente.
Serial MonitorPara deixar isso mais claro para você como programador, o último conjunto de códigos é para o Serial Monitor. Quais são os valores e quando você aciona o nível de alerta. Juntamente com a adição de segundos quando o estado de Alerta está ativado, até depois de 60 segundos ele muda para o estado de Alerta novamente desativado. Esta parte é, portanto, opcional.
// para mostrar a passagem de segundos no Serial Monitor quando o alartstate está em Serial.println ("Seconds passes:"); Serial.println (secondsPassed); } else {secondsPassed = 0; }
VerifiqueSe você concluiu as etapas ou obteve o arquivo adafruitio_musclesensor_neopixel de esboço com seu próprio config.h, pode carregá-lo em seu NodeMCU. Se for feito, você deve ver algo semelhante ao abaixo em seu Monitor Serial:
Conectando-se ao Adafruit IO …
Adafruit IO conectado. Enviando -> 23 Enviando -> 78
A foto 1 é o monitor serial quando está em modo de alerta.
Não funciona? Verifique o seguinte - Verifique se o config.h está incluído da maneira correta - Você inseriu o nome de usuário e a chave do Adafruit IO corretos - Colocou o SSID correto e uma senha Wifi - Você colocou a fiação do MyoWare Sensor muscular direito e da tira Neopixel Led
Ou verifique as etapas anteriores.
Etapa 6: Resultados
Viva, você terminou! Para demonstrar e ver o produto final em ação, incluí um vídeo.
Recomendado:
Luz do relógio com tela de matriz de tira LED controlada por Wi-Fi: 3 etapas (com imagens)
Luz de relógio com tela de matriz de tira de LED controlada por WiFi: Tiras de LED programáveis, por ex. com base no WS2812, são fascinantes. As aplicações são múltiplas e você pode obter resultados impressionantes rapidamente. E de alguma forma construir relógios parece ser outro domínio no qual penso muito. Começando com alguma experiência em
Lâmpadas de tira de LED simples (atualize suas tiras de LED): 4 etapas (com fotos)
Lâmpadas de fita LED simples (atualize suas fitas de LED): Eu uso fitas de LED há um bom tempo e sempre adorei a simplicidade delas. Você apenas corta um pedaço de um papel, solda alguns fios nele, conecta uma fonte de alimentação e você tem uma fonte de luz. Ao longo dos anos, encontrei um c
Relógio Neopixel com Três Anéis Neopixel: 7 Passos
Relógio Neopixel com Três Anéis Neopixel: A brilhante criação do relógio Neo Pixel por Steve Manley me motivou a criar esta instrução sobre como criar um relógio semelhante com o mínimo de dinheiro. (Um importante hábito holandês é sempre tentar economizar dinheiro;-)) Eu descobri que o
Analisador de volume de tira de neopixel de LED: 4 etapas
LED Neopixel Strip Volume Analyzer: Eu tinha uma tira Neopixel sobressalente por aí e achei que seria legal fazer um analisador de espectro para meu sistema de som. Presumo que você esteja familiarizado com o ambiente de desenvolvimento do arduino, se não, existem muitos tutoriais disponíveis ali. Nota: Este
Digitando com EMG usando MyoWare: 8 etapas
Digitando com EMG usando MyoWare: Autores: L. Elizabeth Crawford & Dylan T. VavraIntrodução: Neste tutorial, vamos mostrar como criar um sistema simples de eletromiografia em casa (EMG) - ao custo de cerca de US $ 100 - que detectará a ativação muscular da superfície do