Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Página da web Node.js controlada por carro robótico (sem fio)

Componentes e suprimentos

Arduino UNO
× 1
Drivers de motor SparkFun Dual H-Bridge L298
× 1
Módulo Bluetooth HC-05
× 1
Fios de jumpers (genérico)
× 1
Bateria, 9 V
× 2
Motor DC, 12 V
× 2

Sobre este projeto





Ideia de Projeto


Node.js é uma das melhores opções para aplicativos em tempo real. Já trabalhei em alguns aplicativos em tempo real usando Sockets, então com o mesmo conceito, decidi fazer alguns projetos de IoT com servidor Node.js para autoaprendizagem.

Este meu Rover se comunica com meu servidor Node.js usando Bluetooth e, no front-end, envio comandos para o servidor usando Sockets.





Objetivo do projeto


Para estudar e implementar a comunicação wireless entre o servidor Node e o hardware (que neste caso é o nosso Rover), e para controlar remotamente o Rover com uma página web móvel servida pelo servidor Node usando Sockets.





Pré-requisito


Você precisa ter algum conhecimento básico de Nó, programação de soquete e funcionamento do driver do motor L298.





Requisitos

  • 1 Arduino Uno
  • 1 driver do motor L298
  • Módulo Bluetooth HC-05
  • Fios de jumpers
  • 2 baterias - 9 volts cada
  • 2 motores de engrenagem (6-9 volts)
  • 2 rodas compatíveis
  • Chassi
  • Computador com Node.js instalado em nosso servidor.





Etapa 1 - Construindo o Rover


Construir o Rover não é tão complicado, você pode comprar um "kit de chassi de 2 rodas" que está facilmente disponível online e vem com todas as unidades de montagem.

Nossos drivers de motor Arduino Uno e L298 estão integrados em nosso Rover, ambos alimentados por duas baterias de 9 volts separadamente.

O Arduino Uno, por sua vez, alimentará o módulo Bluetooth HC-05, que se comunicará com nosso servidor.





Diagrama de circuito


Conforme mostrado acima no diagrama de circuito, o driver do motor L298 é alimentado por uma bateria de 9 V, as duas saídas de controle do motor são conectadas ao Motor A e ao Motor B e como o motor não tem polaridade, você pode conectar qualquer terminal a ele, mas certifique-se de que ambos os motores giram na mesma direção. Não remova o jumper do regulador de 5 V.

Nota : se você alimentar o L298 com mais de 12 volts, o regulador de tensão de 5 V integrado será danificado.

O Arduino Uno também é alimentado por uma bateria de 9 V com seu terminal positivo conectado ao pino Vin do Arduino e o terminal negativo ao terra comum. O Arduino, por sua vez, alimentará o módulo Bluetooth, então conecte o pino Vcc do HC-05 a 5V do Arduino e o GND ao aterramento.

Para comunicação serial entre HC-05 e Arduino, conecte o pino TXD do HC-05 ao pino RX do Arduino e o pino RXD do HC-05 ao pino TX do Arduino.

Agora, para controlar o módulo L298, você pode conectar os pinos EN1 e EN2 com qualquer pino PWM do Arduino. E então conecte o pino -1, 2, 3, 4 de entrada do L298 com qualquer pino digital do Arduino.





Transmissão de dados


Conforme mostrado acima, é um diagrama que mostra a transmissão de sinais.

1. O usuário acessará a página da web servida pelo servidor do nó. O URL seria o endereço IP com o número da porta usado, por exemplo, "192.XXX.XXX.129:8080".

2. Quando o usuário clica em um botão na página da web, isso aciona o servidor para executar a função necessária. Essa comunicação acontece devido aos Sockets.

3. O servidor Node que está conectado ao módulo HC-05 via Bluetooth enviará os dados necessários para o módulo HC-05.

4. O HC-05 transmitirá dados para o Arduino UNO usando comunicação serial.

5. O Arduino UNO, por sua vez, controlará o módulo L298.





Etapa 2 - Configurando o servidor


Para nosso servidor, precisamos instalar o Node.js. Instale qualquer versão estável do nó, a minha é a versão 11.15. Precisamos instalar os seguintes pacotes-
  • node-gyp
  • expresso
  • node-bluetooth
  • socket.io
  • ejs

Nota - A instalação de "node-gyp" pode ser complicada, pois não suporta alguma versão mais recente do Node, então é melhor instalar a versão 11.15 do Node.

Agora, precisamos ouvir os eventos de uma página da web, assim que um evento for disparado durante a interação com a página da web, a página emitirá a função necessária que precisa ser executada em nosso servidor Node. O servidor, por sua vez, ouvirá essa mensagem e executará a função desejada (que é no nosso caso, enviar dados para o Bluetooth).

Portanto, crie um servidor e uma página da web usando pacotes como "express" e "EJS". Projete a página da web com os controles desejados e configure as conexões de soquete para ela criando um servidor de soquete. Você pode consultar esta documentação.

Para a configuração do Bluetooth, consulte esta documentação. Sempre que algum botão de controle é clicado, uma mensagem é enviada ao módulo HC-05.

Aqui está minha página da web simples -





Etapa 3 - Código Arduino


Como o Bluetooth se comunicará com o Arduino-Uno usando a comunicação serial, enviaremos uma "string" como um comando e uma letra adicional que nos dirá para encerrar e capturar a string.

Por exemplo-:para avançar, o Bluetooth irá transmitir "forwardT" e, no final do Arduino, assim que encontrarmos a letra "T", saberemos que a comunicação serial foi concluída.

E com esse comando de string de entrada, configuraremos o driver L298 para mover para frente, para trás, esquerda, direita, alterar a velocidade, etc.

Encontre o código do Arduino em anexo.





Etapa 4 - Resultado final





Aprimoramentos e escopo futuro


Em estágios posteriores, estou planejando controlar o rover usando comandos de voz e recurso de prevenção de obstáculos. Também posso manter um banco de dados onde irei manter registros de estatísticas, como distância percorrida, velocidade máxima, velocidade média, etc. Eu também adicionarei vários sensores, como temperatura, luz e umidade e irei manter o controle em intervalos regulares que irão ficam armazenados em nosso banco de dados.





Próxima versão


Confira meu próximo projeto "Rover controlado por voz usando celular"


Código

  • Código Node Rover Arduino
Código do Arduino do Node Rover Arduino
 const int en1 =9; const int en2 =3; const int inp1 =2; const int inp2 =4; const int inp4 =7; const int inp4 =8; char charRead; String inputString =""; configuração vazia () {Serial.begin (9600); pinMode (en1, SAÍDA); pinMode (en2, SAÍDA); pinMode (inp1, OUTPUT); pinMode (inp2, OUTPUT); pinMode (inp3, OUTPUT); pinMode (inp4, OUTPUT);} void loop () {// coloque seu código principal aqui, para executar repetidamente:if (Serial.available ()) {charRead =Serial.read (); if (charRead! ='T') {inputString + =charRead; } else {if (inputString =="forward") {// Para mover para frente digitalWrite (inp1, HIGH); digitalWrite (inp2, LOW); digitalWrite (inp3, HIGH); digitalWrite (inp4, LOW); } else if (inputString =="backward") {// Para mover para trás digitalWrite (inp1, LOW); digitalWrite (inp2, HIGH); digitalWrite (inp3, LOW); digitalWrite (inp4, HIGH); } else if (inputString =="fleft") {// Para mover para a esquerda digitalWrite (inp1, HIGH); digitalWrite (inp2, LOW); digitalWrite (inp3, LOW); digitalWrite (inp4, LOW); } else if (inputString =="scar") {// Para mover para a direita digitalWrite (inp1, LOW); digitalWrite (inp2, LOW); digitalWrite (inp3, HIGH); digitalWrite (inp4, LOW); } else if (inputString =="bleft") {// Para mover para trás à esquerda digitalWrite (inp1, LOW); digitalWrite (inp2, LOW); digitalWrite (inp3, LOW); digitalWrite (inp4, HIGH); } else if (inputString =="bright") {// Para voltar para a direita digitalWrite (inp1, LOW); digitalWrite (inp2, HIGH); digitalWrite (inp3, LOW); digitalWrite (inp4, LOW); } else if (inputString =="break") {// Para parar analogWrite (en1, 50); analogWrite (en2, 50); atraso (550); digitalWrite (inp1, LOW); digitalWrite (inp2, LOW); digitalWrite (inp3, LOW); digitalWrite (inp4, LOW); analogWrite (en1, 150); analogWrite (en2, 150); } else if (inputString =="maxspeed") {// Velocidade máxima analogWrite (en1, 250); analogWrite (en2, 250); } else if (inputString =="medspeed") {// Velocidade média analogWrite (en1, 180); analogWrite (en2, 180); } else if (inputString =="lowspeed") {// Baixa velocidade analogWrite (en1, 90); analogWrite (en2, 90); } else {// Parar digitalWrite (inp1, LOW); digitalWrite (inp2, LOW); digitalWrite (inp3, LOW); digitalWrite (inp4, LOW); } inputString =""; }}} 

Esquemas


Processo de manufatura

  1. Faça um veículo robótico sem fio usando sensores infravermelhos
  2. Tecnologia de servidor web eficiente para microcontroladores com recursos limitados
  3. Como instalar um servidor da Web incorporado seguro em um dispositivo WiFi $ 3
  4. Obter umidade / temperatura da web
  5. Ventilador com temperatura controlada
  6. Luz solar da garagem para o nó do sensor sem fio MSP430
  7. Raspberry Pi 4 como um servidor da Web [Crie seu próprio site]
  8. Transforme seu carro RC em carro RC Bluetooth
  9. Carro RC controlado por joystick
  10. Carro RC Wi-Fi - Qi ativado