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

Robô de prevenção de obstáculos controlado por Bluetooth

Componentes e suprimentos

Arduino Nano R3
× 1
Drivers de motor SparkFun Dual H-Bridge L298
× 1
Sensor ultrassônico - HC-SR04 (genérico)
× 1
Módulo Bluetooth HC-05
× 1
RGB Diffused Common Anode
× 1
Conversor de nível lógico SparkFun - bidirecional
× 1
Resistor 330 ohm
× 1
Breadboard (genérico)
× 1
SparkFun Breadboard Power Supply Stick 5V / 3,3V
× 1
Motor DC, 12 V
× 2
Cabos de jumper masculino / feminino
× 1

Aplicativos e serviços online

Arduino IDE
Arduino BlueControl
Disponível na Playstore.

Sobre este projeto


O projeto usa um celular para se comunicar com um robô via bluetooth. Sempre quis construir um robô e controlá-lo via celular. Após um longo intervalo de mais de 12 anos, assumi a tarefa de construir um robô e operá-lo. Este também é meu primeiro projeto no hub de projetos do Arduino. Eletrônica e robótica é um dos meus hobbies favoritos e por isso assumi a tarefa de construir o robô neste tempo de bloqueio devido à Covid19.

O robô detecta sinais bluetooth transmitidos do telefone celular. Ele usa o módulo bluetooth HC-05 para detectar os sinais de comando do telefone celular e controlar o robô. Usei o aplicativo ArduinoBlueControl para controlar o robô.





O coração do robô é o Arduino Nano. Ele recebe os sinais do módulo HC-05 via comunicação serial e controla os motores via módulo acionador de motor L298N para movimento nas direções para frente, reverso, esquerda e direita.

Deve-se ter cuidado ao conectar os pinos TX e RX do módulo HC-05 ao Arduino Nano. Um conversor de nível lógico é usado para o mesmo.

O robô usa o módulo sensor ultrassônico HC SR-04 para detectar obstáculos em seu caminho. Ao detectar qualquer obstáculo durante seu movimento para frente, o robô para. Um LED RGB é usado para mostrar o status do robô.

O robô é montado em uma base de 2 rodas composta por dois motores de transmissão. O circuito é montado em uma placa de ensaio com fonte de alimentação (3,3 V e 5 V). O Arduino Nano não pode acionar os motores diretamente devido ao requisito de corrente muito maior para os motores. Portanto, o módulo acionador de motor L298N é usado para acionar os motores. Os sinais PWM do Arduino Nano são usados ​​para controlar a velocidade dos motores por meio dos pinos ENA e ENB do módulo de driver de motor L298N.



Aqui está um breve vídeo do robô em operação:





Espero que você tenha gostado do meu robô para evitar obstáculos controlado por bluetooth. Este robô pode ser modificado e estendido para uso em automação residencial, veículos para evitar obstáculos para o chão de fábrica, etc. e muitos outros usos.

Código

  • Código Robot_Arduino controlado por Bluetooth.
Código Robot_Arduino controlado por Bluetooth. C / C ++
 / * Robô de prevenção de obstáculos controlado por Bluetooth Preparado por:Alok Talukdar Data:09.05.2020 * / # include  // Para usar qualquer pino no Arduino para comunicação serial.// Defina os pinos digitais para o motor L298 módulo de controle. # define IN1 5 // para motor direito # define IN2 4 // para motor direito # define IN3 3 // para motor esquerdo # define IN4 2 // para motor esquerdo # define ENA 9 // Habilita A para controle PWM do motor direito # define ENB 10 // Habilita B para controle PWM do motor esquerdo // Define os pinos digitais para controle RGB LED # define redLED 8 # define greenLED A0 # define blueLED 11 // Configure o módulo de sensor ultrassônico HC-SR04 trigPin int =6; // Pino TRIG conectado ao pino D6 do Arduino Nanoconst int echoPin =7; // pino ECHO conectado ao pino D7 do Arduino Nanoint i, j, k =0; duração de flutuação, distância; // variáveis ​​para medição de distância // Configurar o módulo HC05 BluetoothSoftwareSerial mySerial (12,13); // (12 -> RX, 13 -> TX) String data; // variáveis ​​para Bluetooth controlint btVal; void setup () {// coloque seu código de configuração aqui, para ser executado uma vez:pinMode (trigPin, OUTPUT); // Configure o pino D6 para transmitir pulsos ultrassônicos pinMode (echoPin, INPUT); // Configure o pino D7 para receber pulsos ultrassônicos mySerial.begin (9600); // Configure o serial do software na taxa de Baud 9600 pinMode (IN1, OUTPUT); // Configure IN1 - IN4 como OUTPUT para controlar motores pinMode (IN2, OUTPUT); pinMode (IN3, OUTPUT); pinMode (IN4, OUTPUT); pinMode (ENA, SAÍDA); pinMode (ENB, OUTPUT); pinMode (redLED, OUTPUT); pinMode (blueLED, OUTPUT); pinMode (greenLED, OUTPUT); digitalWrite (IN1, LOW); // Configure o estado do IN1 - IN4 como LOW digitalWrite (IN2, LOW); digitalWrite (IN3, LOW); digitalWrite (IN4, LOW); analogWrite (redLED, 255); // Desligue os LEDs. O LED RGB é um tipo de ânodo comum. digitalWrite (blueLED, HIGH); digitalWrite (greenLED, HIGH);} void loop () {// coloque seu código principal aqui, para executar repetidamente:while (mySerial.available ()) {data =mySerial.readStringUntil ('\ n'); } btVal =(data.toInt ()); switch (btVal) {case 1:forward (); digitalWrite (greenLED, LOW); analogWrite (redLED, 255); digitalWrite (blueLED, HIGH); dist (); pausa; caso 2:reverso (); digitalWrite (greenLED, HIGH); analogWrite (redLED, 255); digitalWrite (blueLED, LOW); pausa; caso 3:esquerda (); pausa; caso 4:direito (); pausa; caso 5:stoprobot (); digitalWrite (greenLED, HIGH); analogWrite (redLED, 0); digitalWrite (blueLED, HIGH); pausa; padrão:digitalWrite (greenLED, HIGH); analogWrite (redLED, 255); digitalWrite (blueLED, HIGH); pausa; } if (mySerial.available () <0) {//Serial.println("No Bluetooth Data "); }} // declarações da função de controle do motor void forward () {for (i =0; i <=100; i ++) {analogWrite (ENA, i); analogWrite (ENB, i); digitalWrite (IN1, HIGH); digitalWrite (IN2, LOW); digitalWrite (IN3, LOW); digitalWrite (IN4, HIGH); }} void reverse () {para (j =0; j <=100; j ++) {analogWrite (ENA, j); analogWrite (ENB, j); digitalWrite (IN1, LOW); digitalWrite (IN2, HIGH); digitalWrite (IN3, HIGH); digitalWrite (IN4, LOW); }} void left () {analogWrite (ENA, 127); analogWrite (ENB, 0); digitalWrite (IN1, HIGH); digitalWrite (IN2, LOW); digitalWrite (IN3, HIGH); digitalWrite (IN4, HIGH); } void right () {analogWrite (ENA, 0); analogWrite (ENB, 127); digitalWrite (IN1, HIGH); digitalWrite (IN2, HIGH); digitalWrite (IN3, LOW); digitalWrite (IN4, HIGH); } void stoprobot () {analogWrite (ENA, 0); analogWrite (ENB, 0); digitalWrite (IN1, LOW); digitalWrite (IN2, LOW); digitalWrite (IN3, LOW); digitalWrite (IN4, LOW); } void dist () {digitalWrite (trigPin, LOW); // para enviar um pulso através do pino TRIG de HC-SR04 delayMicroseconds (2); digitalWrite (trigPin, HIGH); atrasoMicrosegundos (10); digitalWrite (trigPin, LOW); duração =pulseIn (echoPin, HIGH); // ler a duração da distância do pulso =(duração * 0,0343) / 2; // medir a distância em cms. A velocidade do som é 340 m / s ou 0,0343 cm / us if (distance <20) // se a distância for <20 cms, STOP robot {stoprobot (); digitalWrite (greenLED, HIGH); analogWrite (redLED, 0); digitalWrite (blueLED, HIGH); } atraso (1000); } 

Esquemas

Diagrama de circuito do robô.

Processo de manufatura

  1. Um robô móvel com prevenção de obstáculos baseada na visão
  2. Robô Raspberry Pi controlado por Bluetooth
  3. Construa seu robô de streaming de vídeo controlado pela Internet com Arduino e Raspberry Pi
  4. Robô controlado por gestos usando Raspberry Pi
  5. ROBÔ WIFI RASPBERRY PI CONTROLADO PELO TELEFONE INTELIGENTE ANDROID
  6. Núcleo IoT do Windows 10:robô controlado por fala
  7. Robô controlado por Wi-Fi usando Raspberry Pi
  8. ROObockey:Robô de hóquei de rua com controle remoto e auxílio de mira
  9. Evitar Obstáculos usando Inteligência Artificial
  10. Robô controlado por fala