Este tutorial ensina como controlar um carro robô sem fio usando um Arduino a partir de um navegador web no seu smartphone ou PC via WiFi. O controle é feito por meio de uma interface gráfica de usuário web que utiliza a tecnologia WebSocket, permitindo uma operação suave e dinâmica do carro.
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.
Sobre o Carro RC 2WD e o WebSocket
Agora, por que escolher o WebSocket? Veja os motivos:
Sem o WebSocket, você teria que recarregar a página toda vez que quisesse mudar a direção do carro. Isso não é eficiente!
Com o WebSocket, uma conexão especial é estabelecida entre a página web e o Arduino. Isso permite enviar comandos ao Arduino em segundo plano, sem precisar recarregar a página. O resultado? O carro robô responde de forma suave e instantânea. Bem impressionante, não é?
Em resumo, o WebSocket possibilita o controle suave e em tempo real do robô.
Temos tutoriais específicos sobre o Carro RC 2WD e o WebSocket. Cada tutorial contém informações detalhadas e instruções passo a passo sobre a pinagem do hardware, o princípio de funcionamento, a ligação com o Arduino, o código Arduino... Saiba mais sobre eles nos links a seguir:
O código do Arduino configura tanto um servidor web quanto um servidor WebSocket. Veja como funciona:
Quando você digita o endereço IP do Arduino em um navegador web, ele envia uma requisição pela página web (Interface do Usuário) ao Arduino.
O servidor web do Arduino responde entregando o conteúdo da página web (HTML, CSS, JavaScript).
Seu navegador web então exibe essa página web.
Dentro da página web, o código JavaScript inicia uma conexão WebSocket com o servidor WebSocket no Arduino.
Quando essa conexão WebSocket está ativa, qualquer pressionamento ou liberação de botão na página web faz o código JavaScript enviar discretamente comandos ao Arduino por essa conexão.
O servidor WebSocket no Arduino recebe esses comandos e dirige o carro robô de acordo.
Abaixo está uma tabela com a lista de comandos que a página web envia ao Arduino com base nas ações do usuário:
Ação do Usuário
Botão
Comando
Ação do Carro
PRESSIONAR
CIMA
1
MOVER PARA FRENTE
PRESSIONAR
BAIXO
2
MOVER PARA TRÁS
PRESSIONAR
ESQUERDA
4
VIRAR À ESQUERDA
PRESSIONAR
DIREITA
8
VIRAR À DIREITA
PRESSIONAR
PARAR
0
PARAR
SOLTAR
CIMA
0
PARAR
SOLTAR
BAIXO
0
PARAR
SOLTAR
ESQUERDA
0
PARAR
SOLTAR
DIREITA
0
PARAR
SOLTAR
PARAR
0
PARAR
Diagrama de Ligação entre o Carro RC 2WD e o Arduino
This image is created using Fritzing. Click to enlarge image
O módulo L9110S (que funciona como driver dos motores) alimenta os motores diretamente pelos seus pinos VCC e GND e não possui regulador de 5V integrado. Isso permite alimentar tudo a partir de uma única fonte – quatro pilhas de 1,5V, totalizando 6V. Veja como fazer:
Conecte a bateria de 6V aos pinos VCC e GND do módulo L9110S para alimentar os motores.
Conecte a mesma bateria de 6V aos pinos Vin e GND do Arduino para alimentar a placa Arduino.
Certifique-se de que o módulo L9110S e o Arduino compartilhem um GND comum.
Diferente do L298N, o L9110S não tem jumpers de habilitação ENA/ENB nem borne de parafuso de 12V, então a ligação é mais simples.
O carro RC 2WD inclui uma chave liga/desliga, dando a você a opção de conectar a bateria através da chave. Essa configuração permite ligar e desligar a alimentação do carro conforme necessário. Se preferir uma montagem mais simples, você pode optar por não usar a chave.
Código Arduino
O conteúdo da página web (HTML, CSS, JavaScript) fica armazenado separadamente em um arquivo index.h. Assim, teremos dois arquivos de código na Arduino IDE:
Um arquivo .ino, que é o código do Arduino, que cria um servidor web e um servidor WebSocket e controla o carro
Um arquivo .h, que contém o conteúdo da página web.
Agora você tem o código em dois arquivos: ArduinoGetStarted.com.ino e index.h
Clique no botão Upload na Arduino IDE para carregar o código no Arduino.
Abra o Serial Monitor
Confira o resultado no Serial Monitor.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Arduino Uno R4 WiFi - WebSocket Server
Connected! IP Address: 192.168.0.254
SSID: YOUR_WIFI_SSID
IP Address: 192.168.0.254
Signal strength (RSSI): -44 dBm
WebSocket server started on port 81
WebSocket URL: ws://192.168.0.254:81
WebSocket server enabled successfully
Ln 11, Col 1
Arduino Uno on COM15
2
Anote o endereço IP exibido e digite esse endereço na barra de endereços de um navegador web no seu smartphone ou PC.
Você verá a página web como abaixo:
Clique no botão CONNECT para conectar a página web ao Arduino via WebSocket.
Agora você pode controlar o carro para virar à esquerda/direita e mover para frente/para trás pela interface web.
Para economizar a memória do Arduino, as imagens dos botões de controle NÃO são armazenadas no Arduino. Em vez disso, elas ficam armazenadas na internet; por isso, seu celular ou PC precisa ter conexão com a internet para carregar as imagens da página de controle web.
※ Nota:
Se você modificar o conteúdo HTML no index.h e não mexer em nada no arquivo ArduinoGetStarted.com.ino, quando você compilar e carregar o código no Arduino, a Arduino IDE não vai atualizar o conteúdo HTML.
Para fazer a Arduino IDE atualizar o conteúdo HTML nesse caso, faça uma alteração no arquivo ArduinoGetStarted.com.ino (por exemplo, adicionar uma linha vazia, adicionar um comentário....)
Explicação do Código Linha por Linha
O código Arduino acima contém explicações linha por linha. Leia os comentários no código!
Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!