Controle Web do braço robótico com a Vespa




Introdução

Neste tutorial você verá como controlar o movimento do RoboARM através do seu smartphone, através da Vespa. Para isso, você montará o RoboARM com a Vespa, o circuito elétrico e a seguir verá os passos de conexão para acessar a página de controle.

Lista de Materiais

Atenção: antes de continuar, você deve seguir as etapas em Primeiros passos com a Vespa, pois ensina como instalar as ferramentas essenciais para usar a placa.

Montagem Mecânica

O primeiro passo para desenvolver o projeto deste tutorial é montar mecanicamente o RoboARM e fixar a Vespa em sua base. Para fazer isso, siga o guia de montagem do RoboARM usando o botão abaixo.

Guia de montagem RoboARM

A Vespa possui o mesmo padrão de furos de fixação das placas da plataforma Arduino UNO, então aproveite o furo 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 abaixo em sua Vespa.

Descricao Breve da Imagem
Circuito elétrico

Nota: os servomotores podem ser conectados diretamente na placa através dos terminais S1 a S4. Apenas preste atenção à polaridade.

Para fixar o adaptador P4 na Vespa é necessário abrir e fechar os contatos dos terminais removíveis da placa, conforme mostrado no GIF abaixo.

Consertando os fios no bloco terminal

Programando

Agora que o robô está fisicamente montado, temos que escrever o código que será utilizado para controlá-lo.

Bibliotecas

Antes de enviar 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

Após o download dos arquivos, siga o caminho da imagem abaixo no IDE do Arduino para instalar as bibliotecas do arquivo compactado.

caminho_instalacao_bibliotecas
Caminho para instalação da biblioteca

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

Como necessitamos das três bibliotecas disponíveis acima para que o código funcione, é necessário repetir este procedimento também para os outros dois arquivos baixados.

Code

Com as bibliotecas instaladas, carregue o seguinte código em sua Vespa. Lembrando que é necessário seguir os passos das configurações iniciais da placa instalar todas as ferramentas necessárias ao seu funcionamento, bem como entender como carregar códigos nele.

Compreendendo o Código

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

A página web do servidor é totalmente programada em código, e é graças a ela que a interface de controle é apresentada. Na 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 os dados em formato JSON para a Vespa, que por sua vez os interpreta e depois controla o respectivo servo para a posição atualizada.

Outra característica interessante da interface de controle é o medidor de tensão de entrada da placa, que é um dos muitos recursos da Vespa. A placa mede sua tensão de entrada a cada 5 segundos e depois atualiza a tensão exibida na interface. Talvez isso não seja muito importante para o uso com fontes de alimentação, pois a tensão será sempre constante, mas pode ser muito útil se você quiser usar o RoboARM com baterias, pois você sempre saberá quando for necessário trocar ou recarregar as baterias.

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

angulos_sliders
Angulos dos "Sliders"

A maior parte das funções do projeto são monitoradas pelo monitor serial, então você pode, se quiser, monitorar as informações da placa. Para isso, basta abrir o monitor serial na porta serial da sua placa, com velocidade de 115200 bps.

O que deve acontecer

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

rede_wifi_encontrada_conectada
Rede Wi-Fi encontrada e conectada

Nota: O sufixo da rede Vespa Wi-Fi "xx:xx" é retirado dos últimos caracteres do endereço MAC ESP32 da placa para tornar a rede única, então não se preocupe se o nome da rede for diferente do nome da rede da imagem, como isso é esperado.

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

Lembre-se que você pode, caso queira, alterar o nome e a senha da rede Wi-Fi criada pela placa, bastando alterar estes parâmetros no código de configuração (função void setup()).

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

interface_web_controle
Interface de controle da Web

Assim que a Vespa estiver pronta para ser controlada, seu LED L permanecerá aceso e você poderá mover os ?sliders? para controlar o movimento do robô, como no GIF abaixo.

Atenção: as posições dos motores não são limitadas pelo programa, portanto deve-se evitar forçar os movimentos caso as peças se toquem, 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, conforme mostrado em Tutorial de controle remoto do Rocket Tank.

Solução de problemas

O Robô está se batendo ou não está atingindo seus movimentos máximos

Caso o robô esteja se batendo ao ser controlado para alguns movimentos, ou não esteja atingindo seus movimentos máximos, verifique a montagem mecânica dos servos, pois é possível que tenham sido montados muito próximos de seus limites mecânicos. Vale lembrar também que os ?sliders? não possuem limitação, portanto acompanhe o movimento do robô para pará-lo, ou mova-o de outra forma, caso os servos estejam travados, para não danificá-los.

O LED vermelho está aceso

O LED vermelho rotulado como R na placa é um LED indicador de polaridade reversa, portanto, se estiver aceso, espera-se que a placa não ligue como proteção. Desconecte o terminal de alimentação da placa e inverta a polaridade da fonte de alimentação ou da bateria.

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

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