Índice:

Post-shirt: Detecção de postura vestível em tempo real: 9 etapas
Post-shirt: Detecção de postura vestível em tempo real: 9 etapas

Vídeo: Post-shirt: Detecção de postura vestível em tempo real: 9 etapas

Vídeo: Post-shirt: Detecção de postura vestível em tempo real: 9 etapas
Vídeo: Me dá muito medo esse som de Silent Hill! 2024, Novembro
Anonim
Image
Image
Post-shirt: Detecção de postura vestível em tempo real
Post-shirt: Detecção de postura vestível em tempo real

O 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 postura incorreta e cria uma notificação push quando o usuário começa a ficar desleixado, a detecção também funciona durante a caminhada.

Suprimentos

Eletrônicos

1 x smartphone Android

1 x Pena Adafruit

1 x bateria de polímero de íon de lítio - 3,7v 100mAh (opcional para uso sem fio)

2 acelerômetro de eixo triplo ADXL335

Materiais

Fio de conexão

Rolo de fita

Etapa 1: instalar IDEs e bibliotecas necessárias

Pena Adafruit

Primeiro instale o Arduino IDE e depois siga as etapas para instalar a biblioteca Adafruit nRF51 BLE

Notebook Jupyter

Primeiro instale o Jupyter Notebook e, em seguida, as seguintes bibliotecas necessárias

  • https://scikit-learn.org/stable/
  • https://github.com/nok/sklearn-porter

Android

Instale o Android Studio

Código do projeto

Baixe todo o código do projeto do GitHub

Etapa 2: conecte os acelerômetros à pena

Conecte os acelerômetros à pena
Conecte os acelerômetros à pena
Conecte os acelerômetros à pena
Conecte os acelerômetros à pena

Para ler os dados do ADXL335s, conecte o fio de conexão aos pinos Vin, terra, Xout, Yout e Zout. Para ambos os acelerômetros, conecte as outras extremidades dos fios Vin ao pino de 3 V do Feather e as outras extremidades dos pinos de aterramento ao pino de aterramento do Feather. Conecte os fios Xout, Yout e Zout do primeiro acelerômetro aos pinos A0, A1 e A2 do Feather. Conecte os fios Xout, Yout e Zout do segundo acelerômetro aos pinos A3, A4 e A5 do Feather.

Os acelerômetros podem ser conectados de qualquer maneira, mas recomenda-se soldar os fios e encolher ou enrolar fita elétrica em torno dos pontos de conexão para evitar que as seções expostas entrem em contato umas com as outras.

Etapa 3: Anexe acelerômetros à camisa

Anexar acelerômetros à camisa
Anexar acelerômetros à camisa

Usando fita adesiva, prenda os acelerômetros na parte de trás da camisa. O acelerômetro conectado aos pinos A0-2 deve ser colocado horizontalmente no centro na parte inferior das costas. O acelerômetro conectado aos pinos A3-5 deve ser colocado horizontalmente no centro da nuca. Ambos os acelerômetros devem ser alinhados de forma que os pinos fiquem ao longo do lado inferior e os sensores devem ser bem colados e seguros contra a camisa.

Nota: Para um uso mais permanente, os sensores podem ser costurados na roupa, mas eles devem ser colados e testados primeiro para garantir que os posicionamentos dos sensores estejam efetivamente posicionados.

Etapa 4: executando o código no Arduino

Executando código no Arduino
Executando código no Arduino

Para começar a coletar dados no Feather, inicie o IDE do Arduino e abra o arquivo GestureDataSender na seção Arduino do código do projeto. Com este arquivo aberto defina a placa e a porta que está sendo usada e selecione "Verificar" e "Upload" para fazer o upload do código para o Feather.

Etapa 5: executando o código no Android

Executando código no Android
Executando código no Android

Para executar o aplicativo no Android, primeiro inicie o Android Studio e selecione a opção para abrir um projeto Android existente. Navegue até o código do projeto e selecione a pasta "Android". O Android Studio vai demorar um pouco para sincronizar os arquivos do projeto e pode solicitar a instalação de algumas bibliotecas necessárias, aceite essas opções. Assim que o projeto estiver pronto, conecte o dispositivo Android ao computador e selecione a opção de execução na parte superior da janela. Selecione o dispositivo no prompt exibido e deixe o aplicativo ser criado para o dispositivo.

Etapa 6: Testar a conexão de sinal Bluetooth

Testando conexão de sinal Bluetooth
Testando conexão de sinal Bluetooth
Testando conexão de sinal Bluetooth
Testando conexão de sinal Bluetooth
Testando conexão de sinal Bluetooth
Testando conexão de sinal Bluetooth

Assim que o aplicativo estiver aberto, certifique-se de que o Feather esteja ligado e selecione o Adafruit Bluefruit LE na lista de dispositivos que aparece no telefone. Aguarde até que o dispositivo se conecte; se a conexão falhar na primeira vez, tente conectar novamente antes de realizar outras etapas de depuração. Após o dispositivo ter sido conectado, selecione o módulo "Detector de postura" que, se estiver funcionando corretamente, exibirá um gráfico de atualização ao vivo, bem como as previsões atuais de postura e movimento. Para testar se o arduino está comunicando os dados do sensor, mova corretamente os dois acelerômetros em direções aleatórias e verifique se todas as linhas no gráfico mudam. Se algumas linhas permanecerem constantemente planas, certifique-se de que os acelerômetros estejam conectados corretamente ao Feather. Se tudo estiver funcionando, coloque a camiseta e teste se a detecção de postura está prevendo corretamente sua postura. Parabéns! Você configurou com sucesso um wearable de detecção de postura. Continue com este instrutível para aprender como criar seu próprio conjunto de dados e personalizar sua própria detecção de postura.

Etapa 7: Coletando Seus Próprios Dados

Coletando Seus Próprios Dados
Coletando Seus Próprios Dados
Coletando Seus Próprios Dados
Coletando Seus Próprios Dados

Para coletar seus próprios dados, volte para a tela de seleção do módulo e abra o módulo Gravador de Dados. Assim que esta tela for aberta, preencha o rótulo dos dados que você coletará; para treinar facilmente com seus dados você deve incluir a palavra "bom" no nome de todas as gravações com boa postura e "ruim" em todas as gravações com postura. Para iniciar a coleta, toque no botão "Coletar Dados" e execute a ação pretendida; quando terminar, toque no botão novamente para finalizar e salvar os dados. Todos os dados gravados serão armazenados em uma pasta chamada "GestureData" na pasta de documentos do seu sistema de arquivos. Quando terminar de gravar todos os seus dados, copie os arquivos para o seu computador para o treinamento do modelo.

Etapa 8: treinar seus dados no Jupyter Notebook

Treinamento de seus dados no Jupyter Notebook
Treinamento de seus dados no Jupyter Notebook
Treinamento de seus dados no Jupyter Notebook
Treinamento de seus dados no Jupyter Notebook

O código do projeto inicial contém os dados originais usados para treinamento na pasta "dados" na seção do Jupyter Notebook. Para treinar seus próprios dados, exclua todos os arquivos nesta pasta e, em seguida, copie seus próprios dados para a pasta. Em seguida, execute o Jupyter Notebook e abra "PostureDetectorTrainer.ipynb". Este notebook é projetado para separar automaticamente todos os arquivos na pasta de dados por boa e má postura e, em seguida, treinar um SVM linear para classificação para treinar o modelo, basta selecionar o menu suspenso "Célula" e selecionar "Executar tudo". O notebook pode demorar um pouco para ser executado, mas uma vez completo, role até o ponto que fornece a precisão da previsão da postura para o modelo, se a precisão for baixa, você pode querer garantir que suas gravações anteriores sejam verdades precisas e consistentes. Se os resultados parecerem bons, role para a próxima célula onde uma classe Java terá sido gerada. Role até o final desta célula até ver uma parte comentada como parâmetros. Copie esses valores, pois você precisará deles na próxima etapa.

Etapa 9: Modificando o aplicativo Android com o novo modelo

Modificando o aplicativo Android com um novo modelo
Modificando o aplicativo Android com um novo modelo

Para alterar o modelo no aplicativo Android, use o Android Studio para navegar até o arquivo "PostureDetectorFragment.java" na seção java da estrutura do projeto. Neste arquivo, role para baixo até a seção comentada como "Classificador de postura", que terá as mesmas 4 variáveis correspondentes que as 4 geradas no Jupyter Notebook. Substitua os valores dessas 4 variáveis pelos valores copiados do Jupyter Notebook, certificando-se de que os nomes das variáveis não sejam alterados de p_vectors, p_coefficients, etc. Feito isso, salve o arquivo e selecione a opção Executar novamente para construir o aplicativo para o seu dispositivo. Agora siga as mesmas etapas de antes para abrir o módulo Detector de postura e você deverá ver o classificador trabalhando com seu modelo recém-treinado. Se ainda não parecer ter um bom desempenho, você deve considerar gravar mais dados e recriar o modelo. Caso contrário, parabéns! Agora você importou seu classificador treinado pessoalmente para o Postshirt!

Recomendado: