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 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.

circuito_eletrico
Circuito Elétrico

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 "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 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.



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

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


granja8519
date Enviado: 2022-06-12 14:02:32
Boa tarde! o Manual do braço não ensina como conectar na placa vespa

luan.ferreira
date Enviado: 2022-06-13 09:18:01
granja8519
Olá! Após a montagem da estrutura do Braço Robótico, basta fixar a placa Vespa na parte traseira do Braço Robótico. Feito isso, basta conectar os fios dos servos diretamente à placa (atentando-se à polaridade), conforme mostrado na seção "Montagem Eletrônica".

gustavo.hdsr
date Enviado: 2022-06-06 08:44:39
Oi bom dia. Quando ligo minha vespa sem os motores estarem conectados ela aparece para acessar no Wi-fi, porém quando conecto os motores o led L da placa acende só que fica piscando intermitentemente e o Wi-fi não aparece para o celular. O que devo fazer?

luan.ferreira
date Enviado: 2022-06-06 10:18:27
gustavo.hdsr
Olá! A placa está sendo alimentada pelo USB do seu computador, ou por uma fonte externa? Se está sendo alimentada pela USB, isso pode ser um problema de alimentação, pois a USB não é capaz de fornecer corrente suficiente para alimentar a placa e os servomotores. Sendo assim, alimente a placa por uma fonte de alimentação externa, como recomendado no tutorial, e veja se o erro se repete.

gustavo.hdsr
date Enviado: 2022-06-06 10:25:33
gustavo.hdsr
Oi, estou alimentando com uma fonte externa que fornece 12v dc. Agora estou conseguindo controlar os servos, porém está desconectando toda hora o Wi-fi da  Vespa, ele conecta - consigo fazer alguns movimentos, trava aí desconecta.

gustavo.hdsr
date Enviado: 2022-06-06 10:42:28
gustavo.hdsr
Eu testei motor por motor, a conexão Wi-fi cai quando ligo todos os servos + o servo da garra, se desligo apenas a garra o braço todo funciona estávelmente, o que pode ser?

luan.ferreira
date Enviado: 2022-06-06 15:21:43
gustavo.hdsr
Primeiramente, vale lembrar que a faixa de tensão de alimentação externa da Vespa é de 7 a 11V, portanto não é recomendado alimentá-la com uma tensão acima de 11V. De toda forma, qual a corrente máxima que a fonte que está utilizando é capaz de fornecer? Perguntamos isso, pois, pelo comportamento mencionado, é sinal que a fonte não está sendo capaz de manter todos os servos alimentados em máxima eficiência em conjunto com a Vespa. Para a alimentação do conjunto utilizado neste tutorial, recomendamos o uso de uma fonte que forneça pelo menos 2A com uma tensão dentro da faixa aceitável da Vespa.

vitor.rodrigues.sgro
date Enviado: 2022-04-26 11:50:12
como eu integro essa programação junto a programaçao sem fio do Rocket Tank?

Giovanni5
date Enviado: 2022-04-26 13:02:16
vitor.rodrigues.sgro
Você pode mesclar as duas programações, principalmente a parte da página Web, e a parte de controle dos servos/motores de ambos os códigos. Já estamos trabalhando no desenvolvimento de um tutorial do controle conjunto do Rocket Tank com o RoboARM pela Vespa, e em breve ele será lançado. Fique por dentro das nossas redes sociais, para ser avisado quando o tutorial for publicado.

vitor.rodrigues.sgro
date Enviado: 2022-04-26 22:39:12
vitor.rodrigues.sgro
muito obrigado pelo retorno, nota 10

phsvcastro
date Enviado: 2022-04-11 20:13:48
É possível utilizar o modulo wifi ESP8266 junto com o adaptador do ESP8266 e integrar ele com uma placa Julieta para criar uma rede wifi e usar essa placa como se fosse a vespa? e se sim, como devo mudar o código para especificar que a comunicação deve ser feita a partir do modulo wifi e não como vocês estão sugerindo no código, que ja esta integrado para a vespa que tem essa função ja incluída?

Giovanni5
date Enviado: 2022-04-12 08:14:40
phsvcastro
Sim, é possível utilizar o ESP8266 com o adaptador e a Julieta ao invés da Vespa, e são necessárias diversas alterações de código para essa alteração, porém você pode aproveitar a página Web de controle, se quiser. Um ponto importante é que, caso queira usar o ESP8266 por comandos AT, o servidor aberto será síncrono, e provavelmente o controle do robô não será tão bom quanto usando um servidor assíncrono.

Giovanni5
date Enviado: 2022-04-12 08:15:41
phsvcastro
Caso queira utilizar o servidor assíncrono, como neste tutorial, é possível programar o ESP8266 diretamente, e utilizar comunicação serial com a Julieta para acionar os motores corretamente, ou seja, será necessário desenvolver dois códigos, um para o ESP8266 abrir a rede e o servidor, e outro para a Julieta ler os comandos do ESP8266 e acionar os motores.

phsvcastro
date Enviado: 2022-04-12 09:41:34
phsvcastro
Mas se eu não me engano  a Julieta não tem portas I/O de alimentação 5V/2A o suficiente para conectar todos os servo motores da garra, junto com o rocket tank... Tenho que usar um shield ou tem outra alternativa? 

O projeto que eu estou fazendo é um rocket tank que comprei separado junto com a garra, porem so tenho a Julieta para controlar os dois, é possível? 

Vocês tem uma aula desse projeto ja pronta, quando compra o kit do rocket tank + garra? (eu comprei o rocket tank, expansão do rocket tank e a garra, e ja tenho uma Julieta e um modulo wifi)

Giovanni5
date Enviado: 2022-04-12 11:39:59
phsvcastro
A Julieta sozinha é capaz de controlar o Rocket Tank e o RoboARM, sem precisar de qualquer Shield adicional, porém infelizmente não temos um Kit deste conjunto, e não temos ainda um tutorial específico para este controle dos robôs juntos com a Julieta pelo ESP8266.

phsvcastro
date Enviado: 2022-04-13 08:54:24
phsvcastro
Em qual portas voce recomenda que eu conecte os motores da garra na Julieta?

Giovanni5
date Enviado: 2022-04-13 09:35:53
phsvcastro
A Julieta utiliza os pinos 5, 6, 7 e 8 para controlar motores DC, portanto, tirando estes 4, e os pinos 0 e 1 que não são recomendados para conexão externa, para manter a comunicação USB disponível, qualquer outra porta digital pode ser utilizada para controlar servomotores.

phsvcastro
date Enviado: 2022-04-15 11:55:45
phsvcastro
Eu comprei uma vespa, então agora tenho um rocket tank, uma garra e uma vespa. Se eu mandar os números ide pedido para o suporte, tem como eu ter acesso a aula do kit completo do rocket tank?

phsvcastro
date Enviado: 2022-04-15 12:38:11
phsvcastro
Quais portas da vespa sao aptas para receber o sensor ultrassom? Na Julieta, são as portas digitais, mas na vespa não achei uma equivalente...

Giovanni5
date Enviado: 2022-04-18 08:21:18
phsvcastro
O material didático do Kit Robô Explorer é exclusivo para quem adquiriu o Kit completo, até porque o material didático é um item do Kit, portanto infelizmente não temos como lhe fornecer uma chave de acesso ao material, se comprou as peças separadamente. Em relação ao uso do sensor ultrassônico com a Vespa, como o sensor ultrassônico opera em 5V, é necessário utilizar dois dos pinos de S1 à S4 (servos), pois eles possuem conversão de nível lógico, que compatibiliza a tensão operacional externa de 5V, para 3,3V do ESP32.

djalmant
date Enviado: 2022-02-18 11:51:09
Olá pessoal, uma dúvida... os pinos S1-S4 usados como output para os servo motores na garra, poderiam ser utilizados como entrada digitais em outros projetos? Por exemplo, seria possível utilizá-los como entrada para enconders?

Giovanni5
date Enviado: 2022-02-18 12:04:55
djalmant
Sim, é possível utilizar esses pinos como entradas de sinais digitais, porém como estes pinos passam por conversores de nível lógico de 3,3V do ESP32 para 5V nos pinos, os sinais de entrada devem ser em 5V, caso contrário a placa pode não ler os sinais corretamente.

aluiz_cruz
date Enviado: 2021-12-30 22:51:07
Aparece quando acesso o IP de controle, a seguinte mensagem no celular:

192.168.4.1 diz
WebSocket Error #[object Event]

Giovanni5
date Enviado: 2022-01-04 09:25:44
aluiz_cruz
Normalmente esta mensagem é retornada quando o celular não está conectado à rede da placa, portanto verifique se a conexão está se mantendo ativa. Se o problema persistir, tente utilizar outros navegadores.

jpiccino
date Enviado: 2022-01-23 14:23:55
aluiz_cruz
Veja se você não acabou deixando o 4g ligado. É possível que o celular, reconhecendo que o wi-fi não tem acesso a internet mantém o 4g ligado e todas as conexões não vão para o Wi-Fi

aluiz_cruz
date Enviado: 2021-12-30 22:46:09
Fiz todos os procedimentos, me conecto pelo celular a rede vespa, mas o app não controla nada, movo os sliders no app pelo celular mas não acontece nada no roboarm

Giovanni5
date Enviado: 2022-01-04 09:24:06
aluiz_cruz
O LED L da placa está aceso? O LED L é o indicador que a placa está pronta para ser controlada remotamente. Se ele estiver apagado, a placa realmente não responderá ao controle.

marlonequel
date Enviado: 2021-12-13 11:28:24
Vocês tem o tutorial a vespa controlado o Rocket Tank e um servo motor ? Ou precisaria de 2 placas?

Giovanni5
date Enviado: 2021-12-13 11:49:38
marlonequel
Uma única Vespa é o suficiente para este controle, porém ainda não temos um tutorial para o controle do Rocket com servos pela Internet. Você pode utilizar o exemplo "Sweep" da biblioteca da Vespa para entender como controlar servos com ela, e adaptar este projeto, enquanto analisamos a possibilidade de divulgar um tutorial para este controle.

brunowd
date Enviado: 2021-11-19 22:45:08
Uma única placa aguenta ligar o Rocket Tank e o RoboARM ou neste caso precisaria de 2 placas, uma para cada componente?

Giovanni5
date Enviado: 2021-11-22 08:07:14
brunowd
Sim, uma única Vespa é capaz de controlar ambos os robôs em conjunto. Inclusive estamos avaliando a possibilidade de publicar um tutorial sobre este projeto. Portanto fique por dentro das nossas redes sociais para ser avisado caso o tutorial seja publicado.