Índice:

Tecnologia vestível: luva de troca de voz: 7 etapas
Tecnologia vestível: luva de troca de voz: 7 etapas

Vídeo: Tecnologia vestível: luva de troca de voz: 7 etapas

Vídeo: Tecnologia vestível: luva de troca de voz: 7 etapas
Vídeo: Mais uma dica 👍#enfermagem #enfjanniotorres 2024, Novembro
Anonim
Tecnologia vestível: luva de troca de voz
Tecnologia vestível: luva de troca de voz
Tecnologia vestível: luva de troca de voz
Tecnologia vestível: luva de troca de voz

Bem, parece que luvas com poderes incríveis estão na moda atualmente. Embora a Manopla do Infinito de Thanos seja uma luva muito poderosa, queríamos fazer uma luva que pudesse fazer algo ainda mais notável: mudar a voz do usuário em tempo real.

Este Instructable fornece um passo a passo de como projetamos uma luva de mudança de voz. Nosso projeto utilizou vários sensores e um microcontrolador na luva para detectar movimentos, que foram enviados por meio de um código Arduino para um patch Max, onde nosso sinal de áudio foi alterado e distorcido de maneiras divertidas. Os sensores, movimentos e alterações de som específicos que usamos são todos flexíveis para diferentes considerações; esta é apenas uma maneira de criar uma luva de mudança de voz!

Este projeto foi parte de uma parceria comunitária entre os alunos do Pomona College e a Fremont Academy of Engineering Femineers. É uma mistura divertida de elementos de engenharia eletrônica e música eletrônica!

Etapa 1: Materiais

Materiais
Materiais
Materiais
Materiais
Materiais
Materiais

Partes:

  • Microcontrolador HexWear (ATmega32U4) (https://hexwear.com/)
  • Acelerômetro MMA8451 (https://www.adafruit.com/product/2019)
  • Sensores Short Flex (x4) (https://www.adafruit.com/product/1070)
  • Luva de corrida leve
  • # 2 parafusos e arruelas (x8)
  • Conectores terminais de crimpagem; Calibre 22-18 (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100pk)
  • Resistor de 50kΩ (x4)
  • Fio (bitola ~ 20)
  • Alfinete de segurança autoadesivo
  • Feltro ou outro tecido (~ 10 pol. Quadrados)
  • Linha de costura
  • Zipties
  • Computador portátil
  • Microfone USB

Ferramentas

  • Kit de solda
  • Decapantes e cortadores de fio
  • Fita isolante
  • Pistola de ar quente
  • Chave de fenda
  • Tesoura
  • Agulha de costura

Programas:

  • Max by Cycling '74 (https://cycling74.com)
  • Software Arduino (https://www.arduino.cc/en/Main/Software)

Etapa 2: Instalando o software

Começamos com o que é realmente a parte mais estimulante de qualquer projeto: instalação de bibliotecas (e muito mais).

Arduino:

Baixe e instale o software Arduino (https://www.arduino.cc/en/Main/Software).

HexWear:

1) (Somente Windows, usuários de Mac podem pular esta etapa) Instale o driver visitando https://www.redgerbera.com/pages/hexwear-driver-installation. Baixe e instale o driver (o arquivo.exe listado na Etapa 2 na parte superior da página vinculada do RedGerbera).

2) Instale a biblioteca necessária para Hexware. Abra o IDE do Arduino. Em “Arquivo”, selecione “Preferências”. No espaço fornecido para URLs de gerenciadores de placas adicionais, cole

github.com/RedGerbera/Gerbera-Boards/raw/master/package_RedGerbera_index.json.

Em seguida, clique em “OK”.

Vá para Ferramentas -> Placa: -> Gerenciador de Placa. No menu do canto superior esquerdo, selecione “Contribuído”.

Procure, clique em Placas Gerbera e clique em Instalar. Saia e reabra o IDE do Arduino.

Para garantir que a biblioteca esteja instalada corretamente, vá para Ferramentas -> Quadro e role até a parte inferior do menu. Você deverá ver uma seção intitulada “Placas Gerbera,” sob a qual deve aparecer pelo menos HexWear (se não mais placas como mini-HexWear).

Acelerômetro:

Baixe e instale a biblioteca do acelerômetro (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)

Etapa 3: conectando o acelerômetro

Anexando o acelerômetro
Anexando o acelerômetro
Anexando o acelerômetro
Anexando o acelerômetro

Precisamos de dois tipos principais de sensores para interagir com este projeto: um acelerômetro e sensores flex. Vamos examinar um de cada vez, começando com o acelerômetro. Primeiro, precisamos que as conexões de hardware correspondam.

Para evitar danos ao Hex, recomendamos colocar um parafuso nº 2 e uma arruela nas portas desejadas e, em seguida, prender todas as conexões a esse parafuso. Para evitar que algo se solte ao brincar com a luva, as conexões devem ser soldadas e / ou crimpadas. Usando alguns centímetros de fio para cada conexão, faça as seguintes conexões do Hex ao acelerômetro (consulte as pinagens acima para referência):

TENSÃO DE ENTRADA VINGROUND GNDSCL / D3 SCLSDA / D2 SDA

Com tudo conectado, estamos prontos para testar!

Como um teste, execute o código de amostra do acelerômetro em Arduino (Arquivo-> Exemplos-> Adafruit_MMA8451-> MMA8451demo), certificando-se de que ele pode enviar para o monitor Serial. Deve produzir a aceleração devido à gravidade (~ 10m / s) na direção z quando mantido nivelado. Inclinando o acelerômetro, essa aceleração será medida na direção x ou y; vamos usar isso para permitir que o usuário mude o som girando a mão!

Agora, precisamos apresentar os dados do acelerômetro de forma que possam ter interface com o máx. Para fazer isso, devemos imprimir os valores de xey, talvez modificados para corresponder ao intervalo desejado (consulte a Parte 6). Em nosso código anexado aqui, fazemos o seguinte:

// Meça a direção xe a direção y. Dividimos e multiplicamos para obter os intervalos corretos para MAX (intervalo de 1000 em xe intervalo de 40 em y) xdir = event.acceleration.x / 0,02; ydir = abs (event.acceleration.y) * 2; // Imprime tudo em um formato legível para Max - com espaços entre cada número Serial.print (xdir); Serial.print ("");

Isso deve fazer com que o Hex imprima os valores modificados das direções xey do acelerômetro a cada linha. Agora estamos prontos para adicionar os sensores flex!

Etapa 4: conectando os sensores Flex

Conectando os Sensores Flex
Conectando os Sensores Flex
Conectando os Sensores Flex
Conectando os Sensores Flex
Conectando os Sensores Flex
Conectando os Sensores Flex

O usuário pode obter muitos controles de som potenciais se pudermos detectar dedos dobrados. Os sensores flex farão exatamente isso. Cada sensor flexível é essencialmente um potenciômetro, onde não flexionado tem uma resistência de ~ 25KΩ, enquanto totalmente flexionado tem uma resistência de ~ 100KΩ. Colocamos cada sensor flexível em um divisor de tensão simples com um resistor de 50K, conforme mostrado na primeira imagem.

Novamente, usando fios curtos (tenha em mente que tudo isso caberá na parte de trás de uma luva), solde quatro módulos divisores de tensão. Os quatro módulos compartilharão o mesmo Vin e aterramento - nós torcemos as extremidades desencapadas dos fios para termos apenas um cabo de solda. Por fim, pegue os quatro módulos e faça as conexões mostradas na segunda imagem (se alguém souber fazer isso sem fazer uma bagunça horrível, revele seus segredos).

Agora, precisamos do código do Arduino para ler as tensões de cada sensor. Para nossos propósitos, tratamos os sensores flex como interruptores; eles estavam ligados ou desligados. Como tal, nosso código simplesmente define um limite de tensão - acima desse limite, enviamos 1 para a porta serial (o que significa que o sensor está dobrado), caso contrário, geramos 0:

// Pegue uma série de

amostras analógicas e soma-as para cada sensor Flex

while (amostra_contagem <NUM_SAMPLES) {

soma10 + = leitura analógica (A10);

soma9 + = leitura analógica (A9);

soma7 + = leitura analógica (A7);

soma11 + = leitura analógica (A11);

sample_count ++;

// Curto atraso para não pegá-los muito rápido

atraso (5);

}

// calcule a tensão, calculando a média sobre as amostras rápidas

// use 5.0 para um ADC 5.0V

Voltagem de referência

// 5.015V é o calibrado

Voltagem de referência

voltagem 10 = ((flutuante) soma 10 /

(flutuante) NUM_SAMPLES * 5.015) / 1024.0;

voltagem9 = ((flutuante) soma9 /

(flutuante) NUM_SAMPLES * 5.015) / 1024.0;

voltagem7 = ((flutuante) soma7 /

(flutuante) NUM_SAMPLES * 5.015) / 1024.0;

voltagem11 = ((flutuante) soma11 /

(flutuante) NUM_SAMPLES * 5.015) / 1024.0;

// Verifique se cada sensor flexível

é maior que o limite (limite) - em caso afirmativo, defina o número

// dedo mindinho

if (voltagem10> limite)

{

// - 5 para aumentar

tom de voz em uma oitava

flex10 = -10;

}

else flex10 = 0;

//Dedo anelar

if (voltagem9>

(limite-0,4)) {

// 5 para diminuir

tom de voz em uma oitava

flex9 = 5;

}

senão flex9 = 0;

//Dedo do meio

if (voltagem7> limite) {

// 1 para definir

efeito de reverberação

flex7 = 1;

}

senão flex7 = 0;

//Dedo indicador

if (voltagem11> limite)

{

// 50 para definir

ciclos para 50

flex11 = 93;

}

else flex11 = 0;

// Reinicia toda a contagem

variável para 0 para o próximo loop

sample_count = 0;

soma10 = 0;

soma9 = 0;

soma7 = 0;

soma11 = 0;

Neste ponto, a porta serial deve mostrar valores para a orientação do acelerômetro e também se cada sensor flexível está dobrado. Estamos prontos para colocar nosso código Arduino em contato com Max!

Etapa 5: interface com o Max

Interface com o Max
Interface com o Max

Agora que o código Hex está emitindo muitos números pela porta serial, precisamos do software Max para ler esses sinais. O bloco de código ilustrado acima faz exatamente isso! Você é muito bem-vindo.

Observação importante: depois de enviar o código para o Hex, feche todas as janelas da porta serial e, a seguir, altere a letra circulada no código Max para corresponder à porta Hex. Se você não tiver certeza de qual letra definir, pressione a parte “imprimir” do código máximo para listar todas as portas conectadas.

A linha impressa da porta serial do Hex é lida através do bloco de código Max e, em seguida, dividida com base nos delimitadores de espaço. A saída no final do bloco Max permite que você pegue cada número individualmente, então conectaremos o primeiro espaço de saída para onde queremos que a direção x do acelerômetro vá, o segundo espaço será a direção y, etc. Para agora, basta conectá-los aos blocos numéricos para garantir que estejam funcionando. Você deve ser capaz de mover os sensores do acelerômetro e flex e ver a mudança dos números no software Max.

Etapa 6: Construindo o resto do código máximo

Dado o poder da linguagem Max, você pode realmente deixar sua imaginação correr solta aqui com todas as maneiras de alterar o sinal de som de entrada com sua luva de poder mágica. Ainda assim, se você ficar sem ideias, acima está um resumo do que nosso código Max faz e como funciona.

Para cada parâmetro que você está tentando alterar, você provavelmente vai querer mexer com a gama de valores vindos do código do Arduino para obter a sensibilidade certa.

Algumas outras dicas de solução de problemas do Max:

  • Se você não está ouvindo som

    • certifique-se de que Max está configurado para receber áudio de seu microfone (Opções Dispositivo de entrada de status de áudio)
    • certifique-se de que o controle deslizante Master Volume no Max está aumentado e quaisquer outros controles de volume que você possa ter em seu código
  • Se o código não parece estar fazendo nada
    • certifique-se de que seu patch está bloqueado (símbolo de cadeado no canto esquerdo inferior)
    • garanta, por meio de leituras no patch Max, que o patch Max ainda está recebendo dados da porta serial do Arduino. Caso contrário, tente redefinir a porta serial (conforme descrito na Etapa 5) e / ou verificar as conexões de fiação física.
  • Ruídos de recorte estranhos ao alterar os parâmetros

    isso tem a ver com como ~ tapin e ~ tapout funcionam; especificamente que quando você altera seus valores, eles são redefinidos, o que causa o recorte. Dado nosso conhecimento limitado do programa, temos quase certeza de que há uma maneira melhor de fazer isso no Max e eliminar o problema …

Etapa 7: literalmente juntando tudo

Literalmente juntando tudo
Literalmente juntando tudo
Literalmente juntando tudo
Literalmente juntando tudo
Literalmente juntando tudo
Literalmente juntando tudo
Literalmente juntando tudo
Literalmente juntando tudo

Tudo o que resta agora é conectar nosso circuito à nossa luva. Pegue seu tecido adicional e corte tiras um pouco maiores do que os sensores flex. Costure o tecido adicional ao dedo da luva onde a junta dobra, deixando uma espécie de manga para o sensor de flexão (não podemos simplesmente colar os sensores de flexão diretamente na luva porque o tecido da luva estica conforme os dedos dobram) Assim que a manga estiver quase toda costurada, deslize o sensor flexível para dentro e costure cuidadosamente as pontas da luva, fixando o sensor flexível no lugar. Repita isso para cada sensor flexível.

Em seguida, use o pino de segurança autoadesivo para prender o hexágono na parte de trás da luva (você pode colocar um pouco de cola quente no pino para garantir que ele não se desfaça durante o uso). Costure o acelerômetro no pulso da luva. Finalmente, use a magia dos laços zip para limpar lindamente todos os fios feios.

Você está pronto para colocar sua melhor luva de poder cantante em teste! (Podemos altamente recomendar "Harder Better Faster Stronger" do Daft Punk para mostrar totalmente suas capacidades de mudança de voz)

Recomendado: