Controle Web de Braço Robótico com a Vespa




Introdução

Neste tutorial você verá como controlar a movimentação do RoboARM através do seu celular, graças à Vespa. Para isso, você montará o RoboARM 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 RoboARM e fixar a Vespa sobre a sua base. Para isso, siga o manual de montagem do RoboARM através do botão a seguir.

Manual de Montagem RoboARM

A Vespa possui o mesmo padrão de furação de fixação que as placas da plataforma Arduino UNO, portanto aproveite a furação desta plataforma disponível na base da estrutura para fixá-la.

Montagem Eletrônica

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

Descricao Breve da Imagem
Legenda

Observação: os servo motores devem ser conectados diretamente na placa pelos terminais S1 a S4. Apenas atente-se à polaridade.

Para fixar os jumpers entre o adaptador P4 e a Vespa, é necessário abrir e fechar os contatos dos bornes removíveis da placa e do borne do adaptador, 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. Ná página são exibidos quatro "sliders", onde cada um é responsável por controlar a posição de um dos servomotores do RoboARM. Ao mover um dos "sliders", a página encaminha dados em formato JSON para a Vespa, que por sua vez os interpreta e então controla o respectivo servo para a posição atualizada.

Outra funcionalidade interessante da interface de controle está no medidor de tensão de entrada da placa, que é uma das diversas funcionalidades da Vespa. A placa mede a sua tensão de entrada a cada 5 segundos e, em seguida, atualiza a tensão exibida na interface. Talvez isso não seja muito importante para o uso de fontes, já que a tensão será sempre constante, mas pode ser muito útil caso deseje utilizar o RoboARM com baterias, já que você sempre saberá quando é necessário trocar ou recarregar as baterias do robô.

A principal função deste código está no controle dos servomotores, já que ela é a responsável pela movimentação do RoboARM. Nela, é verificado o ângulo em que cada um dos "sliders" está posicionado (tomando como referência os ângulos mostrados na imagem abaixo) e então os respectivos servos são comandados para suas novas posições. Por exemplo, se o primeiro "slider" estiver posicionado no ângulo de 90°, o servo da base, conectado ao pino S1 da placa, será atualizado para o ângulo 90°.

angulos_sliders
Ângulos "Sliders"

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 "robocore", 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 os "sliders" para controlar a movimentação do robô, como no GIF abaixo.

Atenção: as posições dos motores não são limitadas pelo programa, logo você deve evitar de forçar os movimentos se as peças estiverem encostadas, pois isso pode danificar os servos.

Resultado Final

Conclusão

Neste tutorial vimos como aproveitar as funcionalidades da Vespa para fazer um controle remoto de braços robóticos e agora você pode aproveitar o projeto criado para se divertir!

Indo Além

Além do controle remoto do RoboARM, também é possível utilizar os mesmos conceitos para controlar robôs com rodas, como mostramos no tutorial de controle remoto do Rocket Tank.

Solução de Problemas

O robô está se batendo ou não está alcançando suas movimentações máximas

Se o robô estiver se batendo quando for controlado para algumas movimentações, ou não estiver alcançando suas movimentações máximas, verifique a montagem mecânica dos servos, pois é possível que eles tenham sido montados perto demais de seus limites mecânicos. Também vale lembrar que os "sliders" não possuem limitação, portanto acompanhe a movimentação do robô para pará-lo, ou movê-lo de outra maneira, se os servos estiverem travados, para evitar danificá-los.

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.