blog-eletrogate-logo-desktop blog-eletrogate-logo-mobile
  • Categorias
    • Voltar
    • INICIANTES
    • INTERMEDIÁRIOS
    • AVANÇADOS
    • divide
    • Automação Residencial
    • Componentes Eletrônicos
    • Impressão 3D
    • IoT
    • Modelagem 3D
    • Módulos Wifi
    • Por trás da tecnologia
    • Projetos
    • Raspberry Pi
    • Robótica
    • Sensores
    • Shields
    • Sistemas Operacionais
    • Tipos de Arduino
    • Tutoriais
  • Apostilas
  • Quem Somos
  • Seja um redator
  • Trabalhe Conosco
    • Categorias
      • Voltar
      • INICIANTES
      • INTERMEDIÁRIOS
      • AVANÇADOS
      • divide
      • Automação Residencial
      • Componentes Eletrônicos
      • Impressão 3D
      • IoT
      • Modelagem 3D
      • Módulos Wifi
      • Por trás da tecnologia
      • Projetos
      • Raspberry Pi
      • Robótica
      • Sensores
      • Shields
      • Sistemas Operacionais
      • Tipos de Arduino
      • Tutoriais
    • Apostilas
    • Quem Somos
    • Seja um redator
    • Trabalhe Conosco
Loja Eletrogate
voltar
  • Descrição
  • Montagem e cofiguração
  • Conclusão
  • Referências
  • Sobre o Autor
IoT

ESP Motor Shield: controlando motores via WiFi

Eletrogate 26 de abril de 2021Atualizado em: 17 maio 2022

Há algum tempo, mostramos aqui no blog algumas shields para controle de motor, montagem e programação de plataformas robóticas e até mesmo um controle remoto com Arduino, e hoje não vai ser diferente. Vamos te ensinar a usar a ESP Motor Shield, uma shield para o ESP8266 baseada no chip L293D e que te permite controlar seu carrinho via Wi-Fi, além de todas as possibilidades que o ESP8266 pode nos proporcionar! Mas antes, vamos às apresentações:


Descrição

Chip L293D

Já apresentamos aqui todo o funcionamento de uma ponte H baseada no chip L293D em sua versão para Arduino, mas, de forma resumida, é um CI que possui duas pontes H internas, sendo possível o controle de até 2 motores DC individuais ou um motor de passo. Suporta tensões de até 36V e corrente de 600mA.

ESP8266

O ESP 8266 também já foi apresentado diversas vezes aqui no blog, principalmente em projetos de IOT. É uma placa de desenvolvimento que traz o chip ESP-12E, contando com Wi-fi integrado e 11 portas de uso geral (GPIO). Para conhecer mais sobre essa placa, acesse nossa série de posts sobre o ESP-12 clicando aqui.

Shield

Como já dito anteriormente, a Shield é baseada no CI L293D e foi desenvolvida para o NodeMCU ESP8266 V2 (é importante salientar que o modelo NodeMCU ESP8266 V3 não é compatível com essa shield!), permitindo assim o controle de até dois motores DC individuais ou um motor de passo. Veja abaixo todos os pinos e conexões presentes na nossa shield:

 


Montagem e cofiguração

Para testar a ESP Motor Shield vamos utilizar:

  • 1x ESP Motor Shield
  • 1x NodeMCU ESP 8266 V2
  • 1x Plataforma robótica 4WD (você também pode utilizar uma 2DW!)
  • 4x pilhas AA
  • Smartphone

Montagem

A montagem do hardware é bem simples. Siga o diagrama abaixo para efetuar as ligações elétricas necessárias.

Nota: Se você quiser alimentar o ESP usando a mesma bateria dos motores (conforme indicado em amarelo no diagrama e considerando que a tensão máxima seja de 7V), coloque um Jumper ligando os pinos Vin e Vm. Caso sua configuração esteja assim e o ESP se desconectar com frequência, experimente alimentá-lo separadamente, usando o conector ESP Power.

Configuração

A configuração do nosso projeto será dividida em duas etapas: programação no Smartphone e programação do ESP. Para o Smartphone, vamos usar uma plataforma chamada Blynk, que é uma plataforma de integração entre hardware e software voltada à projetos de IOT. O serviço é baseado em um aplicativo personalizável que nos permite controlar um hardware programável, além de retornar dados ao app, de acordo com a necessidade do seu projeto. A integração é feita através de bibliotecas que devem ser importadas no seu sketch e toda a comunicação é feita via web, através do acesso à uma rede WiFi e, consequentemente, aos servidores Blynk. O download do app, tanto para Android como iOS, o download das bibliotecas e o acesso ao servidor Blynk são gratuitos. Porém, ao criar um projeto, é descontado uma determinada quantidade de Energy – uma espécie de moeda virtual do sistema – para cada componente (widget) adicionado e, ao ser excluído, o valor dele é integrado novamente à sua conta. Ao criar uma conta você recebe 2.000 Energys e esse valor é mais que suficiente desenvolvermos nossos projetos.

Vamos iniciar fazendo o download do app. Para isso, basta ir até sua loja de aplicativos e buscar por “Blynk”.

Ao iniciar o app, essa tela será exibida:

Clique em “Create New Account” para criar sua conta. É importante que você use um email ativo, pois todos os códigos de autenticação dos seus projetos serão enviados por ele.

Feito isso, vamos iniciar nosso projeto clicando em “New Project”

O próximo passo será definir um nome para o seu projeto, selecionar qual plataforma você estará utilizando e o tipo de conexão. Para o nosso tutorial, vamos utilizar o ESP8266 via WiFi. Caso deseje, você também pode alternar o tema da interface entre modo claro e escuro, na opção Theme. Ao final, Clique em Create.

Em seguida, você receberá uma mensagem dizendo que um email contendo o auth token foi enviado para o email que você cadastrou.

Guarde esse código. Você irá usá-lo no código que será carregado no ESP mais à frente!

Clique em OK e, após isso, o ambiente de criação da plataforma será exibido.

Clique em qualquer espaço vazio e uma janela chamada “Widget Box” será exibida. Através dela você pode consultar seu saldo de Energy e adicionar componentes ao projeto.

Comece adicionando um Joystick para o controle do nosso carrinho.

Clique no widget e uma janela com as configurações será exibida.

  • Em Output, mude a opção selecionada para Merge.
  • Em Pin, você pode escolher o que quiser, basta informar o selecionado no código. Para o nosso exemplo, vamos usar o V1.
  • Repare que ao lado do pino selecionado existe uma inscrição dizendo “To access values use:”. Anote esses parâmetros para também os informar no código.

Feito isso, retorne à tela anterior. O próximo passo será a programação do ESP na IDE do Arduino:

Primeiramente, verifique se a sua IDE já possui as placas ESP instaladas. Caso não tenha, siga este tutorial para fazer a instalação.

Com as placas ESP configuradas, vamos instalar as bibliotecas Blynk. Para isso, existem duas maneiras: Você pode instalar diretamente pelo gerenciador de bibliotecas do Arduino ou baixando o arquivo .zip clicando aqui.

Feito isso, cole o seguinte código na sua IDE. A explicação do funcionamento estão descritas nos comentários acima de cada bloco.

//inclusão de bibliotecas
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

//definição de funções e pinos
#define BLYNK_PRINT Serial
#define RightMotorSpeed 5
#define RightMotorDir   0 
#define LeftMotorSpeed  4
#define LeftMotorDir    2

//variáveis referentes à conexão WiFi
char auth[] = "*********************";
char nome_rede[] = "*************";
char senha[] = "*********";

//variáveis de controle dos motores
int minRange = 300;
int maxRange = 900;
int minSpeed = 450;
int maxSpeed = 1020;
int noSpeed = 0;


void movimento(int x, int y){
//mover para frente
   if(y >= maxRange && x >= minRange && x <= maxRange){
    digitalWrite(RightMotorDir,HIGH); 
    digitalWrite(LeftMotorDir,HIGH);
    analogWrite(RightMotorSpeed,maxSpeed);
    analogWrite(LeftMotorSpeed,maxSpeed);
  }

//mover para frente e para direita
  else if(x >= maxRange && y >= maxRange){
    digitalWrite(RightMotorDir,HIGH);
    digitalWrite(LeftMotorDir,HIGH);
    analogWrite(RightMotorSpeed,minSpeed);
    analogWrite(LeftMotorSpeed,maxSpeed);
  }

//mover para frente e para esquerda
  else if(x <= minRange && y >= maxRange){
    digitalWrite(RightMotorDir,HIGH);
    digitalWrite(LeftMotorDir,HIGH);
    analogWrite(RightMotorSpeed,maxSpeed);
    analogWrite(LeftMotorSpeed,minSpeed);
  }

  //zona neutra
  else if(y < maxRange && y > minRange && x < maxRange && x > minRange){
    analogWrite(RightMotorSpeed,noSpeed);
    analogWrite(LeftMotorSpeed,noSpeed);
  }

 //mover para trás
  else if(y <= minRange && x >= minRange && x <= maxRange){
    digitalWrite(RightMotorDir,LOW);
    digitalWrite(LeftMotorDir,LOW);
   analogWrite(RightMotorSpeed,maxSpeed);
    analogWrite(LeftMotorSpeed,maxSpeed);
  }

  //mover para trás e para direita
  else if(y <= minRange && x <= minRange){
    digitalWrite(RightMotorDir,LOW);
    digitalWrite(LeftMotorDir,LOW);
    analogWrite(RightMotorSpeed,minSpeed);
    analogWrite(LeftMotorSpeed,maxSpeed); 
  }

  //mover para trás e para esquerda
  else if(y <= minRange && x >= maxRange){
    digitalWrite(RightMotorDir,LOW);
    digitalWrite(LeftMotorDir,LOW);
    analogWrite(RightMotorSpeed,maxSpeed);
    analogWrite(LeftMotorSpeed,minSpeed);
  }
}

void setup(){
//iniciando a comunicação serial para verificação da conexão WiFi  
  Serial.begin(9600);
  Blynk.begin(auth, nome_rede, senha);
 
//setando os pinos referentes aos motores
  pinMode(RightMotorSpeed, OUTPUT);
  pinMode(LeftMotorSpeed, OUTPUT);
  pinMode(RightMotorDir, OUTPUT);
  pinMode(LeftMotorDir, OUTPUT);
  
//iniciando o carrinho com os motores desligados e sentido de rotação à frente
  digitalWrite(RightMotorSpeed, LOW);
  digitalWrite(LeftMotorSpeed, LOW);
  digitalWrite(RightMotorDir, HIGH);
  digitalWrite(LeftMotorDir,HIGH);
}

void loop(){
//comando para execução do código
   Blynk.run();
}

//inserção dos parâmetros informados pelo app
BLYNK_WRITE(V1){               //pino virtual selecionado no joystick
  int x = param[0].asInt();
  int y = param[1].asInt();
  movimento(x,y);
}

As alterações básicas que você deve fazer no código se resumem a informar o código de autenticação que lhe foi enviado por email, nome da sua rede WiFi e senha, diferenciando letras maiúsculas e minúsculas, nas variáveis referentes à conexão WiFi:

//variáveis referentes à conexão WiFi
char auth[] = "*********************"; 
char nome_rede[] = "*************"; 
char senha[] = "*********";

Feito isso, basta carregar o código no seu ESP e, ao final, verificar se o mesmo está conectado à rede. Para isso, pressione o botão Reset do seu ESP, em seguida abra o Monitor Serial da IDE do Arduino e verifique se a seguinte mensagem foi printada na tela:

Com a conexão WiFi efetuada, basta conectar seu ESP à shield, energizar o carrinho e fazer a conexão com o aplicativo, clicando no botão Play:

Com tudo conectado, basta movimentar o joystick e se divertir com seu carrinho conectado à sua rede WiFi. Veja abaixo um gif de como ficou o nosso projetinho:

 


Conclusão

Concluímos aqui a montagem de mais uma plataforma robótica, dessa vez controlado através da rede WiFi. A ESP Motor Shield é uma plaquinha extremamente versátil que nos abre um novo leque de possibilidades nesse segmento de robôs e, uma sugestão que deixamos a você, leitor, é: aperfeiçoe o código, implemente outras funções como controle de velocidade, sensores e outras funcionalidades capazes de automatizar ainda mais o seu robô. Fazendo isso você estará praticando e evoluindo ao máximo seus conhecimentos adquiridos até aqui!

Um forte abraço e até a próxima.

 


Referências

https://www.instructables.com/Simplest-Wifi-Car-Using-ESP8266-Motorshield/
https://cdn.hackaday.io/files/8856378895104/user-mannual-for-esp-12e-motor-shield.pdf
https://blog.eletrogate.com/nodemcu-esp12-introducao-1/
https://blog.eletrogate.com/motor-shield-l293d-driver-ponte-h-para-arduino/


Se interessou por esse projeto? Não deixe de conferir nossa loja e os produtos para evoluir ainda mais o seu projeto. Fez o carrinho? Poste o resultado e nos marque no Instagram @Eletrogate. Estamos ansiosos para ver o seu resultado!


Sobre o Autor

 


Samuel Martins
@samuel.martins192

Cursando Eletroeletrônica no SENAI CETEL. Fanático por eletrônica, automação, impressão 3D e afins, dedico meu tempo livre a pesquisas e projetos ligados às principais áreas de interesse, pratico aeromodelismo e sou curioso por astrofotografia.


Eletrogate

26 de abril de 2021 Atualizado em: 17 maio 2022

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Módulos Wifi

Placa de Desenvolvimento Arduino Uno WiFi

Eletrogate24 de maio de 2022

Neste post, você conhecerá uma placa que une o melhor das baseadas em ESP8266 com o melhor da família de placas baseadas no ATmega328p: a Uno WiFi.

Módulos Wifi

Placa de Desenvolvimento Arduino Uno WiFi

Eletrogate24 de maio de 2022

Neste post, você conhecerá uma placa que une o melhor das baseadas em ESP8266 com o melhor da família de placas baseadas no ATmega328p: a Uno WiFi.

Projetos

Radar/Sonar Ultrassônico para seus Projetos

Eletrogate19 de maio de 2022

Neste projeto, iremos construir um Radar (‘Radio Detection And Ranging’) ultrassônico com a Arduino e o software Processing. Iremos usar o conhecimento em programação com o sensor ultrassônico no Arduino obtido no post “Sensor Ultrassônico HC-SR04 com Arduino”.

Projetos

Radar/Sonar Ultrassônico para seus Projetos

Eletrogate19 de maio de 2022

Neste projeto, iremos construir um Radar (‘Radio Detection And Ranging’) ultrassônico com a Arduino e o software Processing. Iremos usar o conhecimento em programação com o sensor ultrassônico no Arduino obtido no post “Sensor Ultrassônico HC-SR04 com Arduino”.

Projetos

Levitação Ultrassônica com Arduino

Eletrogate17 de maio de 2022

Não é nenhuma varinha mágica ou encantamento como “Wingardium Leviosa” que você vai precisar para esse projeto. Com um Arduino, um driver de motor ponte H e um sensor de distância ultrassônico HC-SR04 você consegue criar uma máquina capaz de fazer objetos levitarem.

Projetos

Levitação Ultrassônica com Arduino

Eletrogate17 de maio de 2022

Não é nenhuma varinha mágica ou encantamento como “Wingardium Leviosa” que você vai precisar para esse projeto. Com um Arduino, um driver de motor ponte H e um sensor de distância ultrassônico HC-SR04 você consegue criar uma máquina capaz de fazer objetos levitarem.

Modelagem 3D

Conheça o Tinkercad

Eletrogate12 de maio de 2022

Se você já pensou em criar um projeto eletrônico, mas não tinha os componentes necessários e queria fazer um teste antes, este post foi feito pra você! Neste post, iremos conhecer a plataforma Tinkercad. Através dela, você poderá testar projetos, circuitos eletrônicos, códigos, criar designs 3D e muito mais.

Modelagem 3D

Conheça o Tinkercad

Eletrogate12 de maio de 2022

Se você já pensou em criar um projeto eletrônico, mas não tinha os componentes necessários e queria fazer um teste antes, este post foi feito pra você! Neste post, iremos conhecer a plataforma Tinkercad. Através dela, você poderá testar projetos, circuitos eletrônicos, códigos, criar designs 3D e muito mais.

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!

blog-eletrogate-logo-footer

Rua Rio de Janeiro, 441 - Sala 1301
Centro - Belo Horizonte/MG
CEP 30160-041
*Não temos atendimento físico

ANWAR SLEIMAN HACHOUCHE - ME
CNPJ: 18.917.521/0001-73

Atendimento

(31) 3142-3800

contato@eletrogate.com


Seg a Sex - das 8h às 17h

Institucional

  • Apostilas
  • Quem Somos
  • Privacidade
  • Seja um Redator
  • Trabalhe Conosco

Nos acompanhe

Facebook Instagram Youtube

© ELETROGATE 2022 - Todos os direitos reservados. Termos de uso e Política de privacidade.