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

M1 Rover: Robô Autônomo para Terrenos Acidentados

Componentes e Materiais

Driver de Motor Dual H-Bridge L298 (SparkFun) 1
Motor DC (genérico) 4
Arduino UNO 1
LED (genérico) 8
Resistor 220 Ω 8
Servo Tower Pro MG996R 1
Sensor Ultrassônico HC-SR04 1

Aplicações e Serviços Online

Sobre o Projeto

Após construir vários robôs para ambientes internos, decidi criar um robô capaz de navegar em terrenos acidentados ao ar livre. Chamei-o de M1-Robot.

O M1-Robot utiliza quatro motores DC controlados por um Arduino, tornando-o ideal para projetos de robótica mais potentes. Projetei do zero este robô 4x4 off-road.

Não é apenas um carro controlado por rádio: pode ser programado para seguir instruções de forma autônoma, ser controlado remotamente via computador ou operado com controles de jogo e joysticks personalizados.

Passo 1: Projeto

Projetar o próprio produto é divertido, mas torna-se complexo em escala real. Utilizei o Google SketchUp 2017, que permite exportar plantas para corte a laser ou impressão 3D.

Gastei três semanas projetando e construindo a estrutura do robô. O material base foi uma chapa de madeira de 3 mm. A fiação final não ficou perfeita devido ao tempo limitado, mas tudo foi acomodado no chassi.

O nome M1Rover foi escolhido pensando em futuras versões (M2, M3, etc.). O design é modular tipo kit, bastando parafusos para montagem.

Passo 2: Componentes e Características

Passo 3: Controlador de Motor

As pontes H controlam velocidade e direção dos motores. Pontos importantes:

Passo 4: Montagem do Chassi

O chassi foi cortado a laser em peças que se encaixam como um kit. Na frente, 4 LEDs brancos com resistores 220 Ω; atrás, 2 LEDs vermelhos. Todos controláveis pela aplicação.

Passo 5: Circuitos

A fiação exige atenção à sequência dos componentes. Principais conexões:

Passo 6: Software

O código considera diversos aspectos e permite monitoramento via interface gráfica. O código básico para controle via Bluetooth (celular ou laptop):

int frontled = 3;
int rearled = 4;
int outPin1 = 5;
int outPin2 = 6;
int outPin4 = 11;
int outPin3 = 12;
char bt = 0;
int buzzerPin = 2;
const int pingPin = 9;
const int echoPin = 8;

void setup() {
  Serial.begin(9600);
  pinMode(outPin1, OUTPUT);
  pinMode(outPin2, OUTPUT);
  pinMode(outPin3, OUTPUT);
  pinMode(outPin4, OUTPUT);
  pinMode(frontled, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    bt = Serial.read();
    digitalWrite(frontled, HIGH);
    long duration, inches, cm;
    pinMode(pingPin, OUTPUT);
    digitalWrite(pingPin, LOW);
    delayMicroseconds(2);
    digitalWrite(pingPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(pingPin, LOW);
    pinMode(echoPin, INPUT);
    duration = pulseIn(echoPin, HIGH);
    inches = microsecondsToInches(duration);
    cm = microsecondsToCentimeters(duration);

    if (cm > 10) {
      if (bt == 'F') { // frente
        digitalWrite(outPin1, HIGH); digitalWrite(outPin2, LOW);
        digitalWrite(outPin3, HIGH); digitalWrite(outPin4, LOW);
      } else if (bt == 'B') { // trás
        digitalWrite(outPin1, LOW); digitalWrite(outPin2, HIGH);
        digitalWrite(outPin3, LOW); digitalWrite(outPin4, HIGH);
      } else if (bt == 'S') { // para
        digitalWrite(outPin1, LOW); digitalWrite(outPin2, LOW);
        digitalWrite(outPin3, LOW); digitalWrite(outPin4, LOW);
      } else if (bt == 'R') { // direita
        digitalWrite(outPin1, HIGH); digitalWrite(outPin2, LOW);
        digitalWrite(outPin3, LOW); digitalWrite(outPin4, LOW);
      } else if (bt == 'L') { // esquerda
        digitalWrite(outPin1, LOW); digitalWrite(outPin2, LOW);
        digitalWrite(outPin3, HIGH); digitalWrite(outPin4, LOW);
      } else if (bt == 'I') { // frente-direita
        digitalWrite(outPin1, HIGH); digitalWrite(outPin2, LOW);
        digitalWrite(outPin3, LOW); digitalWrite(outPin4, HIGH);
      } else if (bt == 'G') { // frente-esquerda
        digitalWrite(outPin1, LOW); digitalWrite(outPin2, HIGH);
        digitalWrite(outPin3, HIGH); digitalWrite(outPin4, LOW);
      }
    } else {
      digitalWrite(buzzerPin, HIGH); delay(500);
      digitalWrite(buzzerPin, LOW); delay(500);
    }
  }
}

long microsecondsToInches(long microseconds) {
  return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds) {
  return microseconds / 29 / 2;
}

O código é compatível com qualquer controlador que envie comandos seriais (Bluetooth, PC, celular). Inclui também uma aplicação em C# (captura de tela anexa).

Passo 7: Pacotes Disponíveis

STARTER

Componentes básicos com placa superior para montagem fácil de sensores, hardware de manipulação ou computação.

EXPLORER

Funcionalidade autônoma básica indoor/outdoor. Usa câmera de celular via IP em vez de IP camera dedicada.

MAPPING

Rastreamento GPS em tempo real para uso externo.

MANIPULATION

Braço robótico com garra de dois dedos (50 mm) para interação com o ambiente.

Dica importante sobre servos: Nem todos têm rotação completa de 180°. Use servo.writeMicroseconds (faixa 1000-2000) para encontrar limites mecânicos e evite "queimar" o servo mantendo-o no fim de curso. Use constrain() para limitar o ângulo no código:

servo.write(constrain(angle, 10, 160));

Peças Personalizadas e Gabinetes

Arquivo DXF: m1rover_dxf_hackaday_4o7WTGHUGE.dxf

Esquemáticos

Disponível na seção de esquemáticos do projeto original.

Processo de manufatura

  1. Motores de Relutância Variável: Tipos, Operação e Aplicações
  2. Raspoulette: Protótipo de Sistema Autônomo de Porta de Galinheiro Alimentado por Energia Solar
  3. Construa um Rover Windows IoT Core com Raspberry Pi 2 – Guia do Iniciante ao Avançado
  4. Simple Pi Robot – Construa Rover Autônomo 2-WD com Raspberry Pi
  5. Construa seu Próprio Jogo UFO Attack com Arduino UNO e Display MAX7219
  6. Relógio 3D RGB Arduclock – Bluetooth, LEDs Endereçáveis e RTC
  7. Biblioteca Completa para Motor de Passo Bipolar com Arduino
  8. Palheta Motorizada e Pedal Stomp para Guitarra – DIY com Impressão 3D e Arduino
  9. Entendendo Motores Lineares: Da Energia Elétrica ao Movimento Linear Preciso
  10. Motores Servo Explicados: Como Funcionam e Por Que Importam