SUPORTE TÉCNICO
De segunda à sexta pelo e-mail:
suporte@robocore.net
CENTRAL DE ATENDIMENTO
De segunda à sexta das 8:00 às 17:00
(11) 3522-7626 / vendas@robocore.net
Retornar
ao topo

Controle Web de Robô com a Vespa



Introdução

Neste tutorial você verá como controlar a movimentação do Rocket Tank através do seu celular, graças à Vespa. Para isso, você montará o Rocket Tank com a Vespa, montará o circuito elétrico, e então verá os passos de conexão para acessar a página de controle.

Lista de Materiais

Atenção: antes de prosseguir, é necessário seguir os passos de configurações iniciais com a Vespa, pois eles ensinam a instalar as ferramentas indispensáveis para o uso da placa.

Montagem Mecânica

O primeiro passo para desenvolver o projeto deste tutorial é fazer a montagem mecânica do Rocket Tank e fixar a Vespa e o suporte de baterias sobre a estrutura. Para isso, siga o manual de montagem do Rocket Tank através do botão a seguir.

Manual de Montagem Rocket Tank

A Vespa possui o mesmo padrão de furação de fixação que as placas da plataforma Arduino UNO, portanto é mais simples utilizar esses furos para fixá-la. Já para a fixação do suporte das baterias, você pode fixá-lo em qualquer lugar da estrutura do robô que preferir. Abaixo segue um exemplo de montagem.

exemplo_montagem_conjunto
Exemplo de Montagem do Conjunto

Montagem Eletrônica

Com a parte mecânica pronta, monte o circuito da imagem a seguir com a sua Vespa.

circuito_eletrico
Circuito Elétrico

Para fixar os fios dos motores e da bateria à placa, é necessário abrir e fechar os contatos dos bornes removíveis da placa, como mostrado no GIF abaixo.

Fixação dos Fios no Borne

Programação

Agora que o robô está fisicamente montado, temos que gravar o código que será utilizado para o seu controle.

Bibliotecas

Antes de carregar o código de exemplo para a placa, temos que instalar algumas bibliotecas que são utilizadas pelo código para que a placa execute o que desejamos. Para isso, baixe as bibliotecas necessárias através do botão abaixo.

Biblioteca ArduinoJson Biblioteca AsyncTCP Biblioteca ESPAsyncWebServer

Assim que os arquivos estiverem baixados, siga o caminho da imagem a seguir na Arduino IDE para instalar as bibliotecas pelo arquivo compactado.

caminho_instalacao_bibliotecas
Caminho para a Instalação das Bibliotecas

Ao selecionar esta opção, será aberta uma janela com os diretórios do seu computador. Navegue até o diretório em que os arquivos compactados (ZIP) foram salvos e então clique duas vezes sobre uma das pastas. Isso fará com que a biblioteca contida no arquivo selecionado seja instalada na sua IDE.

Como precisamos das três bibliotecas disponíveis acima para o funcionamento do código, é necessário repetir esse procedimento para os outros dois arquivos baixados também.

Código

Com as bibliotecas instaladas, carregue o código a seguir para a sua Vespa. Lembrando que é necessário seguir os passos de configurações iniciais da placa para instalar todas as ferramentas necessárias para o seu funcionamento, assim como para entender como carregar códigos nela.

Entendendo o Código

Neste código, a Vespa é responsável por criar uma rede Wi-Fi própria e um servidor web assíncrono. Com isso, podemos conectar celulares, tablets e até mesmo computadores à rede criada para acessar o servidor da placa. Após criar a sua rede, a placa também disponibiliza um endereço de IP, que será utilizado para acessar a página web do controle do robô.

A página web do servidor está inteiramente programada no código, e é graças à ela que a interface de controle é apresentada. Na página está presente, principalmente, um joystick que dá a direção ao robô. Ao mover o joystick, são enviados dados em formato JSON para a Vespa, que, por sua vez os identifica e age de acordo com o que foi comandado pelo joystick.

Outra funcionalidade interessante da interface de controle está no medidor de bateria, que é uma das diversas funcionalidades da Vespa. A placa mede a tensão da bateria a cada 5 segundos e, em seguida, atualiza a tensão exibida na interface. Com isso, você sempre saberá quando é necessário trocar ou recarregar as baterias do robô.

A função mais importante deste código é a de controle dos motores, já que é ela a responsável por dar a direção ao robô. Nela é verificado o ângulo em que o ponteiro do joystick está definido (tomando como referência os ângulos mostrados na imagem abaixo), e então os motores são acionados de acordo com o esperado. Por exemplo, quando o ponteiro está para cima/frente, ou seja, com um ângulo entre 80 e 100°, os motores são acionados para frente usando os comandos da biblioteca da placa.

angulos_joystick
Ângulos do Joystick

Grande parte das funções do projeto possuem monitoramento pelo monitor serial, então você pode, se quiser, acompanhar as informações da placa. Para isso, basta abrir o monitor serial na porta serial da sua placa, com a velocidade de 115200 bps.

O Que Deve Acontecer

Após carregar o código para a placa, desconecte o cabo USB, ligue-a pela chave liga/desliga de seu circuito, e então abra a lista de redes Wi-Fi disponíveis no dispositivo que você utilizará para o controle (celular, tablet ou computador). Após alguns instantes, será apresentada uma rede com o nome "Vespa-xx:xx", como na imagem abaixo, por exemplo.

rede_wifi_encontrada_conectada
Rede Wi-Fi Encontrada e Conectada

Observação: o sufixo "xx:xx" da rede Wi-Fi da Vespa é obtido a partir dos últimos caracteres do MAC Address do ESP32 da placa para tornar a rede única, portanto não se preocupe se o nome da rede for diferente da imagem, já que isso é esperado.

Para estabelecer a conexão com a rede, basta utilizar a senha "rc-vespa", que é a senha padrão do código.

Vale lembrar que você pode, se quiser, alterar o nome e a senha da rede Wi-Fi criada pela placa, basta alterar esses parâmetros na configuração do código (função void setup()).

Após conectar o seu dispositivo à rede da placa, abra o navegador de sua preferência e então acesse o endereço de IP "192.168.4.1". Ao acessar o endereço de IP, será aberta a página de interface de controle do projeto, como mostrado na imagem a seguir.

interface_web_controle
Interface Web de Controle

Assim que a Vespa estiver pronta para ser controlada, o seu LED L permanecerá aceso e você poderá mover o joystick para controlar a movimentação do robô, como no GIF abaixo.

Resultado Final

Conclusão

Neste tutorial vimos como aproveitar as funcionalidades da Vespa para fazer um controle remoto de robôs e agora você pode aproveitar o projeto criado para se divertir!

Indo Além

Além do controle remoto do Rocket Tank, também é possível utilizar os mesmos conceitos para controlar braços robóticos, como mostramos no tutorial de controle remoto do RoboARM.

Solução de Problemas

O robô não está andando no sentido correto

Caso o robô não esteja se comportando como o esperado e conforme o controlado pelo joystick, é provável que um dos motores esteja com a polaridade invertida. Levante o robô e veja qual dos motores está com o giro invertido ao comandar o robô para frente, por exemplo. Então desligue a placa, desconecte o borne do motor e inverta a conexão dos fios do motor. Isso deverá solucionar o problema.

O LED vermelho está aceso

O LED vermelho com a legenda R da placa é um LED indicador de polaridade reversa da placa, portanto, se ele estiver aceso, é esperado que a placa não ligue como uma proteção. Desconecte o borne de alimentação da placa e inverta a polaridade de alimentação da bateria.

Não é possível acessar o endereço de IP para o controle

Se a interface de controle não estiver sendo apresentada ao acessar o endereço de IP do servidor, verifique a sua conexão à rede da placa. É comum que dispositivos mais modernos se desconectem automaticamente de redes Wi-Fi sem internet (como é o caso da rede criada pela Vespa) para tentar se conectar em uma outra rede. Caso isso esteja ocorrendo, desabilite a desconexão automática do seu dispositivo.



Para fazer comentários é necessário estar logado. Efetuar login.

Você ainda nao é cadastrado? Cadastre-se agora!


vitor_leao
date Enviado: 2022-06-13 11:06:34
Giovanni,

Já encontrei a solução, quem for utilizar o VS Code, no arquivo platformIO.ini adicione a seguinte linha
build_unflags = -Werror=reorder

e pronto!!!

Giovanni5
date Enviado: 2022-06-13 12:00:13
vitor_leao
vitor_leao ficamos felizes em saber que tenha solucionado o problema, e sugerimos que poste a mensagem de erro que recebeu a solução posposta em nosso Fórum (https://www.robocore.net/modules.php?name=Forums). Assim outros usuários que tiverem o mesmo erro poderão encontrar a mensagem completa, e já solucionar o problema.

vitor_leao
date Enviado: 2022-06-13 10:57:12
Olá Giovanni,

Eu estou tentando compilar o código acima no VS Code e está dando o seguinte erro
In file included from lib/RoboCore_Vespa-master/src/VespaBattery.cpp:30:0:
lib/RoboCore_Vespa-master/src/RoboCore_Vespa.h: In constructor 'VespaBattery::VespaBattery(uint32_t)':
lib/RoboCore_Vespa-master/src/RoboCore_Vespa.h:118:13: error: 'VespaBattery::_battery_type' will be initialized after [-Werror=reorder]
     uint8_t _battery_type;
             ^

Giovanni5
date Enviado: 2022-06-13 12:01:10
vitor_leao
vitor_leao como você percebeu, o campo dos comentários não é o melhor lugar para se publicar códigos ou mensagens de erro, pela limitação de caracteres. Para isso, sugerimos o uso do Fórum, como mencionado no comentário acima.

jpcoutinho272
date Enviado: 2022-04-22 09:54:03
é possível controlar o rocket tank com a vespa e um receptor de 2.4ghz (rádio controle)?

Giovanni5
date Enviado: 2022-04-22 10:56:24
jpcoutinho272
Sim, isso é possível. É  necessário ler os sinais de PPM do receptor pelos pinos destinados a conexão de servos da Vespa, e então acionar os motores do Rocket Tank de acordo com os sinais lidos.

ebile2
date Enviado: 2022-04-08 20:59:49
estou montando um robo de batalha e precisava colocar um controle através do bluetooth

Giovanni5
date Enviado: 2022-04-11 08:12:56
ebile2
Notamos que os dois comentários foram enviados na sequência, então aproveitamos para responder apenas o primeiro abaixo.

ebile2
date Enviado: 2022-04-08 20:59:07
Boa noite qual o código para ligar o bluetooth da placa vespa, e gostaria de saber se tem como conectar um controle externo na vespa tipo do xbox one

Giovanni5
date Enviado: 2022-04-11 08:12:15
ebile2
Controles de XBox não são compatíveis com o ESP32 por trabalharem em 5GHz. Você pode utilizar a biblioteca "PS4-esp32" (https://github.com/aed3/PS4-esp32) para conectar um controle de PS4 à Vespa, por exemplo. Caso queira outros exemplos do uso do BLuetooth da Vespa, use como base os exemplos da biblioteca "ESP32 BLE Arduino" que é inclusa com o pacote de placas ESP32.

jailsonalves
date Enviado: 2022-03-24 08:20:13
bom dia! consigo adicionar outros controles (botões) para acionar pinos digitai e de leitura no mesmo controle?
obrigado

Giovanni5
date Enviado: 2022-03-24 08:59:16
jailsonalves
Sim, você pode fazer estas adições, só que é necessário alterar o código como um todo (página HTML e código C/C++ da Vespa), para que seja executado o que deseja.

luthiergarcia
date Enviado: 2021-11-18 18:47:46
como eu poderia conectar um esp32 cam externo na vespa para receber imagem via wifi em um rocket tank 
muito obrigado pela atenção

Giovanni5
date Enviado: 2021-11-19 08:04:57
luthiergarcia
Você pode conectar o ESP32-CAM à mesma rede e servidor que a Vespa cria neste projeto para exibir as imagens que ele coleta, ou então realizar comunicação serial entre as placas para transmitir as imagens do ESP32-CAM para a Vespa.

pedrobrasil11.pb
date Enviado: 2021-11-14 15:58:05
Tem tutoria de como usar o rocket tank + o robo arm?

Giovanni5
date Enviado: 2021-11-16 08:15:18
pedrobrasil11.pb
Infelizmente não temos ainda um tutorial de controle Web dos robôs juntos, mas já estamos trabalhando no desenvolvimento de um Kit voltado para a Vespa onde esse será uma dos tutoriais. Fique por dentro das nossas redes sociais para ser avisado quando este Kit for lançado.

michele1
date Enviado: 2021-11-10 22:12:50
Teria como eu programar a vespa para seguir linha?

Giovanni5
date Enviado: 2021-11-11 08:04:13
michele1
Sim, é possível utilizar a Vespa para controlar um robô seguidor de linhas. Inclusive já estamos trabalhando no desenvolvimento de um Kit didático que utiliza a Vespa para controlar diversos projetos de robôs, dentre eles o seguidor de linha. Fique por dentro das nossas redes sociais para ser avisada quando este novo Kit for lançado.

lucas.tardioli
date Enviado: 2021-11-10 17:09:07
É possível fazer esse controle usando uma Julieta com uma ESP8266? Ou é necessário uma ESP32?

Giovanni5
date Enviado: 2021-11-10 17:34:05
lucas.tardioli
Sim, é possível replicar este projeto para a Julieta com um ESP8266, porém é necessário adaptar o código de exemplo para que ele seja compatível com as placas utilizadas