Controle a velocidade do motor usando meditação e nível de atenção do cérebro (Parte 6/13)

Controle a velocidade do motor usando meditação e nível de atenção do cérebro (Parte 6/13)

Controle a velocidade do motor usando meditação e nível de atenção do cérebro

RESUMO

Depois de controlar o brilho do LED com o nível de meditação e atenção do cérebro, vamos passar para mais aplicações no Brain Wave. Como a resolução da experiência anterior não era clara, tentaremos agora uma experiência diferente para obter uma imagem mais clara.
Neste artigo, estou novamente pensando em mudar algo que possa nos dar uma compreensão mais clara sobre as variações, digamos, um motor CC. Aqui, controlaremos a velocidade de um motor usando os níveis de atenção e meditação do nosso cérebro em qualquer momento específico. Estaremos usando o Arduino UNO e o sensor mindflex para ler as ondas cerebrais e um MOTOR para mostrar os resultados. Também podemos usar um amplificador antes do motor DC para ver mais variações na velocidade.
DESCRIÇÃO
É importante observar que a velocidade do motor é controlada pela técnica PWM. É a mesma técnica que usamos para o controle de brilho.
Nota rápida: A técnica PWM é uma técnica para controlar dispositivos analógicos por saídas digitais. Através das saídas digitais estamos criando uma onda quadrada de padrões ON e OFF. Este padrão ON e OFF é usado para criar tensão analógica variando entre Baixa Tensão e Alta Tensão e podemos variar a tensão alterando a duração do tempo ON em relação ao tempo OFF.
Se passarmos esse padrão ON OFF para o motor em alta velocidade, uma tensão analógica será recebida e a velocidade do motor mudará de acordo.
Primeiro, vamos controlar a velocidade do motor usando o nível de atenção.
Então, agora para controlar a velocidade do motor, mediremos o nível de atenção a partir de e metros do chip TGAM1. Observe que este chip nos dá o nível de atenção em uma escala de 0 a 100. Também é interessante saber que o chip transmite os sinais de meditação somente quando o sensor está conectado com precisão ao cérebro e o módulo do sensor está recebendo 100% do sinal. força. A intensidade do sinal varia de 0 a 200.
Imagem mostrando a velocidade do motor DC sendo controlada pelo nível de meditação usando o sensor de ondas cerebrais
Fig. 1: Imagem mostrando a velocidade do motor DC sendo controlada pelo nível de meditação usando o sensor de ondas cerebrais
Dramaticamente, quando a intensidade do sinal é 100%, o sensor envia o valor 0, e quando o sensor envia 200, isso significa que não há conexão do sensor de metal com o nosso cérebro. Portanto, depois de confirmar que a intensidade do nosso sinal é 100% e que nosso sensor está enviando 0 em série para a intensidade do sinal, podemos realizar este experimento.
Agora sabemos que o PWM possui um ciclo de trabalho que determina o nível analógico. O ciclo de trabalho é basicamente o tempo ligado dividido pelo período total. Para alterar a velocidade do MOTOR com base no nível de atenção, alteraremos o ciclo de trabalho do PWM.
Imagem mostrando a velocidade do motor DC sendo controlada pelo nível de meditação usando o sensor de ondas cerebrais
Fig. 2: Imagem mostrando a velocidade do motor DC sendo controlada pelo nível de meditação usando o sensor de ondas cerebrais
Estamos obtendo o valor da meditação do sensor em uma escala de 0 a 100. Portanto, faremos com que o valor do ciclo de trabalho seja igual ao valor da meditação subtraído de 100. Por exemplo, se o valor da meditação do sensor for 40, o ciclo de trabalho será 100 – 40 = 60. Isto fará com que a velocidade do MOTOR fique paralela ao nível de meditação. Você pode verificar o código e o vídeo desta experiência.
Agora, após o nível de meditação, faremos o mesmo com o nível de atenção. Só para lembrá-lo novamente, verifique se a intensidade do sinal está chegando a 100% junto com o valor 0. Precisamos novamente retirar os valores de atenção do sensor e alterar o ciclo de trabalho PWM em relação aos valores de atenção. Novamente, faça com que o valor do ciclo de trabalho seja igual ao valor de atenção subtraído de 100. Por exemplo, se o valor da meditação do sensor for 40, o ciclo de trabalho será 100 – 40 = 60.
Imagem mostrando a velocidade do motor DC sendo controlada pelo nível de meditação usando o sensor de ondas cerebrais.
Fig. 3: Imagem mostrando a velocidade do motor DC sendo controlada pelo nível de meditação usando o sensor de ondas cerebrais
Confira a seção de software para ver como o PWM é implementado no código. Também concluímos o controle de velocidade usando valores de atenção. Confira o código e o vídeo para realizar o experimento você mesmo.
Diagrama de blocos do controlador de velocidade do motor DC baseado no sensor MindFlex Brainwave
Fig. 4: Diagrama de blocos do controlador de velocidade do motor DC baseado no sensor MindFlex Brainwave
Hardware: Encontre o diagrama de circuito anexo das conexões que precisam ser estabelecidas. Pegamos um pino do pino T do sensor mindflex e conectamos esse pino ao pino Rx do nosso Arduino UNO. Além disso, causamos um curto-circuito no aterramento do Sensor e do UNO por um fio. Tome especial cuidado ao soldar qualquer coisa ao sensor Mindflex, pois os pinos estão muito próximos uns dos outros. Após estabelecer as conexões, utilizamos um amplificador para amplificar a saída do arduino. Além disso, usamos um l293d para acionar o motor. Os PINS do Arduino são conectados à entrada do l293d e então o motor é conectado a ele.
Programas: A parte do software é exatamente igual ao experimento de brilho do LED. Mesmo assim expliquei tudo novamente para que você não precise voltar.
O sensor está nos enviando o valor de e metros através do pino T. Depois de recebermos o valor em qualquer ponto específico, só precisamos converter esse nível de valor na velocidade do MOTOR. Conforme discutido anteriormente, usaremos técnicas PWM. A função “analogWrite” do arduino é usada para implementar a tecnologia PWM
Por exemplo,
AnalogWrite(13.240);
AnalogWrite no Arduino é usado para escrever onda PWM em um pino. No exemplo acima, o primeiro parâmetro é o número PIN e o segundo é o valor PIN. Então, estamos escrevendo 240 no pino 13. Agora podemos calcular facilmente a tensão analógica no valor 240. A faixa total de tensão é de 0 V a 5 V e a faixa de valores é de 0 a 255.
Isso significa 240 = (5/255)*240 = ~4,70V.
Agora, os valores que obtemos de e metros estão no intervalo de 0 a 100.
Então, digamos que obtemos evalue = 70.
Multiplicaremos o valor de e por 2,55 para colocá-lo no intervalo de 0 a 255.
Portanto, será analogWrite(pin,evalue*2.55) em um loop.
Alguns pontos a serem observados:
O sensor costuma fornecer resistência de 60 a 80% devido à sua orientação e ao local onde o colocamos. Tente manter o sensor de metal exatamente acima do olho esquerdo. Também apliquei água salgada na testa para melhor conectividade com o sensor. A intensidade do sinal também atrapalha a forma como soldamos o fio ao pino T. Tente blindar este fio e também certifique-se de que as pontas de prova de referência estejam conectadas corretamente.
Se você tiver algum fio conectado ao pino EEG do sensor, desconecte esse fio, pois isso criará muitos distúrbios nos valores do sensor. Experimente esta experiência e deixe-me saber seus comentários. Fique ligado em nossos próximos experimentos que descrevem enviando uma mensagem para detectar se uma pessoa está dormindo.

Código-fonte do projeto

###

//Program to 

#incluir
// Configure o analisador cerebral, passe a ele o objeto serial de hardware que você deseja ouvir. Cérebro (Serial); //char a(400); Sequência a,a1; int v = 0; int z=0,saída; uint32_t num=0; uint32_t num1=0; configuração vazia { // Inicia a serial do hardware. Serial.begin(9600); pinMode(9, SAÍDA); } loop vazio { // Espere pacotes cerca de uma vez por segundo. // A função .readCSV retorna uma string (bem, char*) listando os dados cerebrais mais recentes, no seguinte formato: // "força do sinal, atenção, meditação, delta, teta, alfa baixo, alfa alto, beta baixo, beta alto, gama baixa, gama alta" if (brain.update ) { //Serial.println(brain.readErrors ); //Serial.println(brain.readCSV ); //sprintf(a, "%c",brain.readCSV ); a = cérebro.readCSV ; v = a.indexOf(','); v = a.indexOf(',',v+1); v = a.indexOf(',',v+1); v = a.indexOf(',',v+1); z = a.indexOf(',',v+1); a1 = a.substring(v+1,z); num = a1.toInt ; v = a.indexOf(',',z+1); a = a.substring(z+1,v); num1 = a.toInt ; //Serial.println(num); Serial.println(num1); analogWrite(9,saída) //brain.readCSV .toCharArray(a,200); } }

###

Diagramas de circuito

Circuito-Diagrama-MindFlex-Brainwave-Sensor-DC-Motor-Speed-Controller

Vídeo do projeto

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.