Anteriormente, fizemos um post ensinando a montar um robô controlado pelo bluetooth do celular. Este robô, por mais impressionante e divertido que seja, possuía duas limitações: o app para controla-lo estava disponível somente para aparelhos android e o alcance do bluetooth é, relativamente, pequeno. Neste post, mostraremos como montar e configurar uma nova versão deste projeto, implementando a comunicação por WiFi e o controle por meio de Web Server. Tal modelo permitirá que o robô seja controlado por qualquer aparelho com acesso aos principais navegadores e por distâncias maiores.
Para este projeto, precisaremos de:
Componentes do robô
Comprando o Kit Chassi 2WD, você se deparou com esses componentes:
Kit chassi 2WD
Para nosso projeto, optamos por retirar a película protetora do acrílico, como mostra a imagem abaixo:
Processo de retirada da película de proteção do acrílico
O primeiro passo da construção do robô é soldar os respectivos fios aos terminais dos motores. Para isso, primeiro, tiramos o motor de sua caixa de redução, removendo a alça que os une. Após tira-los, soldamos os fios e os colocamos de volta.
Caixa de redução com motor
Alça do motor solta
Motor com fios soldados
Caixa com motor com terminais soldados
Para fixar o motor ao chassi:
O resultado esperado pode ser visto abaixo:
Caixas fixadas no chassi
Caixas com rodas
A seguir, instalaremos a roda boba. Instalaremos os extensores ao suporte da roda e, então, iremos os parafusar ao chassi do robô, como mostram as seguintes imagens:
Roda boba com extensores montados
Roda boba montada no robô
Antes de posicionarmos os componentes de alimentação, devemos preparar seus interruptores. Tanto no suporte para as pilhas quanto no adaptador para bateria, corte o fio vermelho próximo ao item, solde uma parte a um terminal da chave gangorra e outra parte ao outro terminal.
Adaptador e suporte com chaves soldadas
Agora, fixaremos o suporte para pilhas na parte inferior do chassi. Estamos utilizando fita dupla face, mas cola quente também pode ser utilizada.
Suporte para pilhas colado na parte inferior do chassi
A bateria não será colada no chassi. Assim, evitaremos a necessidade de constantemente cola-la novamente ou trocar a fita. Para fixa-la, utilizaremos uma braçadeira de nylon. Com aperto suficiente, a bateria ficará firmemente fixada no chassi. Abaixo, você pode verificar como ficou em nosso robô.
Bateria fixada na parte inferior do chassi
Para controlar os motores, utilizaremos o módulo de ponte H L298N. A pinagem do módulo pode ser vista abaixo.
Pinagem do módulo de ponte H
Atenção: a entrada de 5 V não será utilizada, porque a tensão lógica será fornecida pelo regulador do módulo
A protoboard na qual o adaptador do ESP será encaixado, o módulo da ponte H e o Arduino foram fixados na parte superior do chassi. Diversas distribuições destes componentes ao longo dessa superfície podem ser adotadas. Abaixo, como ficou a nossa:
componentes superiores fixados no chassi
componentes superiores fixados no chassi
Para fornecer energia ao módulo e aos motores, conectaremos os terminais do suporte para pilhas nas entradas de alimentação do módulo. Nessa etapa, conecte, junto ao fio de GND do suporte, um jumper na entrada de GND do módulo. Esse será utilizado para manter o módulo na mesma referência dos demais componentes. Para alimentar a Uno e o ESP, conectaremos os terminais da bateria às entradas de energia da Uno e do conversor que fornecerá tensão para o ESP. Atenção: antes de conectar o adaptador do ESP ao conversor de tensão, é necessário ajustar a saída do segundo para 3.3 V. Tensões superiores a esta danificam a módulo e inferiores são insuficientes para seu funcionamento. Para ajustar, com segurança, a tensão saída do conversor, sem precisar de um multímetro:
void setup() { Serial.begin(9600); } void loop() { Serial.print(analogRead(A0) * 5.0 / 1024); Serial.println(" V"); delay(500); }
Conexão para ajuste da saída do conversor.
Ícone para acesso ao monitor serial do IDE.
Trimpot do conversor.
Leituras adequadas.
Após isso, encaixe o ESP no adaptador e o adaptador na protoboard, prestando atenção na seta, no adaptador, que indica a posição correta da conexão. Devemos, por fim, inserir os componentes responsáveis por converter o sinal lógico do Arduino para o ESP. Tal conversão não pode, neste caso, ser feita por um simples divisor resistivo, porque isso faria com que a GPIO2 do ESP estivesse em nível lógico baixo quando este fosse ligado, o colocando em modo de programação. Utilizaremos, então, um transistor NPN que manterá o pino em nível alto durante a inicialização e o passará para nível baixo quando o Arduino estiver pronto para receber dados.
Por fim, devemos conectar os pinos pendentes. Para nosso projeto, com o código que será mostrado adiante no post carregado no Arduino, todas as conexões do sistema podem ser vistas no esquemático abaixo.
Esquema de ligação elétrica do sistema
O robô, montado, ficará assim:
robô montado
robô montado
robô montado
Para ter acesso aos códigos deste kit, acesse o respectivo diretório em nosso perfil do Github. Se você já possui conta no Git, sugerimos que clone o repositório em seu PC, facilitando o acompanhamento das atualizações no projeto. Para baixar os códigos sem o uso de recursos de versionamento, siga o passo-a-passo:
Primeira etapa para download dos códigos
Segunda etapa para download dos códigos
Pasta do projeto descompactada
Pasta “arduino_main”
Menu ferramentas com seleção adequada ao carregamento na Uno
Tamanho da parte do terminal a ser utilizada
Conector devidamente dobrado
Conector encaixado no adaptador USB
ESP01 conectado ao adaptador USB com conector entre GND e GPIO0
Após cada carregamento, seja do programa ou dos arquivos, é necessário desconectar e reconectar o adaptador ao computador. Não é necessário alterar a posição ou desconectar o conector.
• No código, são utilizadas duas bibliotecas não embutidas: ESPAsyncWebServer e ESPAsyncTCP. Estas devem ser baixadas, respectivamente, de https://github.com/me-no-dev/ESPAsyncWebServer/archive/refs/heads/master.zip e https://github.com/me-no-dev/ESPAsyncTCP/archive/refs/heads/master.zip.
• Após baixados os arquivos zip, ambos devem ser descompactados na pasta de bibliotecas do IDE -geralmente, Documentos/Arduino/libraries.
Instalação das bibliotecas
Pasta “esp_main”
Menu “Ferramentas” com as opções referentes ao carregamento no ESP selecionadas
Pasta de diretórios do IDE
Menu do arquivo zip
Opções de extração do arquivo
Menu “Ferramentas” do Arduino IDE
Carregar o programa pode apagar os arquivos salvos na Flash. Por isso, o faça, caso ainda não tenha. Após, retire o adaptador da porta USB; insira-o novamente e, então, clique em “ESP8266 LittleFS Data Upload” para carregar os arquivos. Depois, conecte o ESP-01 ao adaptador para protoboard, no robô.
Quando o robô é ligado pela primeira vez, não há credenciais de rede cadastradas nele. Por isso, será criada uma rede chamada “ROBO_ELETROGATE”. Sua senha é, por padrão, 123456789. Entretanto, pode ser alterada no arquivo constantes.h.
Gerenciador de WiFi do smartphone exibindo a rede “ROBO_ELETROGATE”
É necessário conectar o aparelho a esta para acessar a interface do robô pela primeira vez. Ela não possui conexão com a internet e, portanto, o aparelho pode se desconectar automaticamente. Caso aconteça, deve-se, nas configurações do smartphone, desabilitar a desconexão automática. Com o smartphone conectado à rede do robô, acesse, em algum navegador, o endereço 192.168.4.1
Página do joystick conectada pelo AP
Por esta página, já é possível controlar o robô. Entretanto, a conexão por AP é menos responsiva e consome mais energia, reduzindo sua autonomia. Assim, o ideal é conecta-lo a algum ponto de acesso e o controlar a partir deste. Para isso, ainda conectado à rede “ROBO_ELETROGATE”, toque o botão “Gerenciar WiFi”, visto abaixo do joystick.
Gerenciador de WiFi do robô
No primeiro acesso ao gerenciador, o robô indica que não conseguiu se conectar a redes externas. Para cadastrar uma rede, é obrigatório preencher o campo “SSID” e, caso a rede possua senha, o campo “Senha”. Os campos IP e Gateway são opcionais:
Página do joystick conectada pelo STA
Gerenciador de WiFi exibindo o IP atribuído ao robô pela rede e seu respectivo gateway
Gerenciador de WiFi exibindo o IP atribuído ao robô pela rede e seu respectivo gateway, acessada pela rede cadastrada
Gerenciador de WiFi exibindo o IP atribuído ao robô pela rede e seu respectivo gateway. Acessado pela rede cadastrada e com o AP já desligado.
Página do joystick conectada pelo STA
Há um atalho para, caso necessário, apagar todas as credenciais salvas sem a necessidade de acessar o gerenciador de WiFi. Para utiliza-lo:
Conexão para a exclusão de todas as credenciais salvas.
Tenha a Metodologia Eletrogate na sua Escola! Conheça nosso Programa de Robótica Educacional.
|
|
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.
Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!