Servo motor com interface com nodemcu esp8266 12e: Controlando o servo motor por WiFi

Servo motor com interface com nodemcu esp8266 12e: Controlando o servo motor por WiFi

Este tutorial é sobre a interface de um servo motor com o módulo WiFi nodemcu esp8266. Uma página da web é servida pelo nodemcu que lista os controles do servo motor. O usuário pode se conectar ao nodemcu esp8266 e acessar a página da web. Para abrir a página da web no navegador, o usuário deve digitar o endereço HTTP do servidor que atende a página da web. Existem dois tipos de servomotores servomotores CA e CC. Os servos CA funcionam em corrente alternada e consomem muita energia. Muita potência significa que eles podem pegar cargas mais pesadas. Servos AC são usados ​​em aplicações industriais. Os servos CA podem mover seu eixo com precisão para qualquer posição angular ou linear. Possuem um controlador com mecanismo de feedback que é utilizado para ajustar as variáveis ​​de controle. Os servomotores CC, por outro lado, são populares em aplicações médias, como brinquedos, etc. Os servomotores CA e CC podem girar para frente e para trás com rotação de 360º. Pode-se controlar facilmente a velocidade e a velocidade dos servo motores usando qualquer controlador de servo motor disponível no mercado.

Servo motor no tutorial

Neste tutorial vou usar servo motor CC. Os servomotores CC são populares entre os fabricantes de circuitos DIY. Eles também são usados ​​em brinquedos e são conhecidos como servo motores RC. Os servomotores Rc são pequenos, baratos e fáceis de usar com sistemas que envolvem microcontroladores ou chips (usados ​​em brinquedos) dedicados a uma finalidade singular. Os servos RC podem girar apenas 180 graus. Sua finalidade é fornecer localização precisa em campos angulares de 0 a 180 graus. O servo motor Rc que vou usar no projeto é o tower pro micro servo sg90. O servo motor Sg90 funciona em 4,8 volts. O pequeno torque produzido pelo sg90 a 4,8 volts pode deslocar uma carga de 1,8 kg por cm. A rotação do eixo do servo motor sg90 depende da frequência do sinal pwm e do ciclo de trabalho. O requisito de frequência Pwm para a maioria dos servomotores RC é 50 Hz. Eles podem girar entre 0 a 180 graus no ciclo de trabalho do sinal pwm entre 1 milissegundo a 2 milissegundos. O ciclo de trabalho de 1 milissegundo na frequência de 50 Hz move o eixo do servo para um ângulo de 0 graus. 1,5 ms se move para 90 graus e 2 ms para 180 graus. Você mesmo pode calcular os ciclos de trabalho para outros ângulos. Por exemplo, para uma rotação do eixo de 45 graus, o ciclo de trabalho será 45/180 = 0,25, portanto 1 (0 graus) + 0,25 = 1,25 ms.

Requisitos de sinal pwm do servo motor Sg90, ciclo de trabalho e frequência

Requisitos de sinal pwm do servo motor Sg90, ciclo de trabalho e frequência
A imagem e a pinagem do servo motor Tower Pro sg90 são fornecidas abaixo. O servo motor Tower Pro possui 3 pinos. Dois são pinos de alimentação e o terceiro é o pino de controle pwm. Você pode conectar o fio vermelho a +5 volts. Faça um fundo preto. Conecte o fio amarelo ao sinal pwm do controlador que você está usando no projeto.

Foto

servomotor torre pro sg90

Diagrama de circuito do projeto

Nodemcu esp8266 funciona em 3,3 volts e o servo motor requer 5 volts para seu funcionamento. Portanto, precisamos de fontes de alimentação diferentes para ambos os periféricos. O Nodemcu é alimentado pela porta USB do computador e o servo é alimentado por outro adotante de 5 volts. O pino GPIO-2 ou D4 do nodemcu esp8266 12e está emitindo sinal pwm para rotação do servo motor. A saída do sinal Pwm pelo nodemcu também está no formato TTL de 3,3 V. Também deve ser aumentado para 5v TTL antes de alimentar o servo motor. Usei um par de transistores para essa finalidade. O primeiro transistor aumenta o sinal pwm para 5 volts, mas inverte o sinal. A saída do primeiro transistor é alimentada na entrada/base do segundo transistor. O segundo transistor inverte novamente o sinal e o traz de volta à forma original de origem com o nível TTL elevado para 5 v. Observe que o aterramento do nodemcu e da fonte de alimentação de 5 volts são aterrados em comum no circuito.

Servo motor com módulo WiFi nodemcu esp8266

Servo motor com módulo WiFi nodemcu esp8266
O código do projeto é escrito em Arduino IDE. Felizmente, o Arduino possui muitas bibliotecas para cada função que oferece. Para fazer a interface do servo com o arduino ou placas suportadas pelo arduino, existe uma biblioteca predefinida chamada “Servo.h”. Incluí essa biblioteca em meu código e chamei suas funções em um código que é bastante fácil de usar. Primeiro a biblioteca 'ESP8366WiFi.h' foi importada em código. Esta biblioteca contém funções usadas para inicializar o servidor nodemcu e iniciar o nodemcu esp8266 WiFi. Em seguida, a biblioteca 'Servo.h' foi importada. Depois disso, insira o SSID e a senha da rede WiFi à qual deseja que seu nodemcu esteja conectado. Espero que você esteja fazendo este projeto DIY em casa, neste caso você terá que conectar seu nodemcu ao roteador WiFi doméstico.

const char* ssid = “Seu SSID”;
const char* senha = “Sua senha Wifi”;

Insira o SSID e a senha entre aspas. Na função de configuração, o canal de comunicação serial do Arduino é aberto a uma taxa de transmissão de 115200 bps. Após o pino de saída nodemcu pwm (modulação por largura de pulso) ser definido. Em seguida, a solicitação nodemcu ao seu WiFi para uma atribuição de IP e o início das instruções do código do servidor são gravados.
Basta fazer o circuito e carregar o código acima em seu módulo WiFi nodemcu. Antes de fazer o upload, certifique-se de que a placa correta esteja selecionada no gerenciamento de placas. Após o upload, abra o monitor serial do nodemcu. Assim que você abrir o monitor serial, você verá o nodemcu solicitando ao seu roteador uma atribuição de IP. Após a atribuição do IP, o nodemcu iniciará seu servidor e imprimirá o endereço do servidor no monitor serial. Este endereço é na verdade o endereço da página da web que possui controles de servo motor. Você deve inserir este endereço no seu navegador. Se você não vir nada no monitor serial ou apenas caracteres arbitrários e completos, procure a taxa de transmissão na janela do monitor serial. Deve ser definido como 115200. Verifique todas as possíveis conexões perdidas.

Foto

Observação: Tanto o servidor (nodemcu) quanto o cliente (celular, desktop, laptop e notebook) devem estar conectados na mesma rede WiFi. Para nos comunicarmos uns com os outros. Se alguém estiver em outra rede, você não conseguirá carregar a página da web no navegador.
Quando você obtém o endereço do servidor na janela do monitor serial do Arduino como a fornecida acima. Você deve inseri-lo em seu navegador. Se o seu servidor e cliente estiverem na mesma rede, você verá a página de controle no seu navegador. Os controles da página de controle são fornecidos abaixo.

Servo motor com botões de controle de página web nodemcu

Servo motor com botões de controle de página da web do módulo nodemcu esp8266 WiFi
A página de controle mostra o status atual do eixo do servo motor. Ele também contém 3 botões. Você pode girar o eixo do servo motor nesses três ângulos definidos. O que acontece quando você pressiona o botão? A função de loop no código está em execução contínua. Está aguardando solicitação do cliente. Quando chega uma solicitação ele verifica o conteúdo da solicitação, decodifica-os e executa a função solicitada pelo cliente (Move o eixo do servo motor). Antes de fechar a função do loop de conexão responde ao cliente o status atual do eixo do servo motor.
Trabalho futuro

Este tutorial está limitado a apenas três ângulos. Para o futuro, pode-se definir uma caixa de texto na página HTML e pegar o ângulo de rotação do eixo como entrada do usuário e girar o eixo conforme inserido. Isso pode ser feito usando formulários HTML e o botão enviar.

Baixe o código do projeto. A pasta contém o arquivo .ino do projeto Arduino. O código é de código aberto. Pode-se editá-lo e modificá-lo de acordo com suas necessidades. Por favor, forneça-nos seu feedback sobre o projeto.
Códigos/Arquivos

Voltar para o blog

Deixe um comentário

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