Kit Chassi Robô 2WD

Kit Chassi 2WD para Robô é um conjunto projetado para entusiastas, iniciantes, hobbystas e estudantes interessados em construir seu próprio carro robô. O Kit oferece uma experiência prática de aprendizado e diversão, permitindo explorar os princípios da robótica e desenvolver habilidades técnicas. O Chassi possui 2 motores com roda e uma terceira roda boba (universal) livre para a sustentação. Você pode montar um robô segue-faixa ou robô com sensor ultrassônico para evitar obstáculos. É possível adicionar vários itens neste chassi, como placas controladoras, sensores de presença, sensores ultrassônicos, câmeras e entre outros para personalizar o seu projeto.

Composição do Kit Chassi

    • 02 Rodas com pneus (65mm);
    • 01 Chassi em acrílico tipo 3D (dimensões 21,5 x 14,9 cm);
    • 02 Motores DC com redução;
    • 04 Espaçadores L10mm;
    • 04 Parafusos M3x30mm;
    • 08 Parafusos M3x08mm;
    • 02 parafusos M3x10mm;
    • 06 Porcas M3;
    • 02 Discos de código de precisão (encoder) de velocidade de 20 linhas;
    • 04 Suportes em acrílico para fixar o motor da roda;
    • 01 Suporte para 04 pilhas AA;
    • 01 Chave On-Off;
    • Esquema de montagem.

Kit Chassi Robô 2WD

Especificações Técnicas

    • Tensão DC 3V: Corrente 100mA, RPM 110;
    • Tensão DC 5V: Corrente 100mA; RPM 190;
    • Tensão DC 6V: Corrente 120mA, RPM 240;
    • Taxa de redução: 1:48;
    • Diâmetro roda: 65 mm;
    • Peso do motor: 50 g;
    • Tamanho do motor: 70mm x 22mm x 18mm;
    • Nível de ruído: < 68db;
    • Peso: ~350g.

Projeto para o Kit Chassi

O projeto consiste simplesmente em construir um carro robô autônomo com a possibilidade de desviar dos obstáculos.

Material

    • 01 Chassi completo com dois motores DC (3~6v) com caixa de redução, duas rodas de borracha e uma roda giratória de apoio;
    • 01 Arduino;
    • 01 Módulo Driver Ponte H L298N;
    • 01 Servo Motor;
    • 01 Sensor Ultrassônico HC-SR04;
    • 01 Arduino Sensor Shield (opcional);
    • 02 baterias 18650 (ou outra fonte de alimentação);
    • 01 Caixa para duas Baterias 18650 (ou outro suporte);
    •  Fios e jumpes para conexão.

Montagem

Primeiramente, monta-se  a plataforma Kit Chassi Carro Robô conforme as instruções, podendo haver adaptações a critério do projetista.
Em seguida, teremos que fazer a fixação dos componentes necessários para o movimento e correto funcionamento do robô conforme o esquema a seguir:

ESQUEMA KIT CARRO ROBÔ 2WDCódigo

Após ter feito todas as conexões dos dispositivos no kit chassi, basta carregar o seguinte código:

#include <Servo.h>    // Ativa a biblioteca Servo Motor
#include <NewPing.h>  // Biblioteca do Sensor Ultrassônico

// Pinagem do L298N

#define enA 4                 //  ENA
#define MotorDireitoAvante 3  // IN1
#define MotorDireitoAtras 2   // IN2

#define enB 8                  // ENB
#define MotorEsquerdoAvante 7  // IN3
#define MotorEsquerdoAtras 6   // IN4


// Pinagem do senssor ultrassônico
#define trig_pin A0  // Trig no pino analógico A0
#define echo_pin A1  // Echo no pino analógico A1

#define dist_maxima 300

boolean Adiante = false;
int dist;

NewPing sonar(trig_pin, echo_pin, dist_maxima);  // Inicializa o NewPing

Servo servo_motor;  //  Define servo_motor

void setup() {
  Serial.begin(9600);
  pinMode(MotorDireitoAvante, OUTPUT);   // IN1
  pinMode(MotorDireitoAtras, OUTPUT);    // IN2
  pinMode(MotorEsquerdoAvante, OUTPUT);  // IN3
  pinMode(MotorEsquerdoAtras, OUTPUT);   // IN4


  servo_motor.attach(12);  // servo motor setado no pino 12

  servo_motor.write(115);  // Ângulo inicial calibrado para frente (ângulo 0° relativo ao carro)
  delay(2000);
  dist = LerPing();
  delay(100);
  dist = LerPing();
  delay(100);
  dist = LerPing();
  delay(100);
  dist = LerPing();
  delay(100);
}

void loop() {

  int dist_Direita = 0;
  int dist_Esquerda = 0;
  int dist_Adiante = 0;

  if (dist <= 50) {
    Parar();
    delay(500);
    MoverAtras();
    delay(500);
    Parar();
    dist_Direita = VarrerDireita();
    delay(100);
    dist_Esquerda = VarrerEsquerda();
    delay(100);
    dist_Direita = VarrerDireita();
    delay(100);
    dist_Esquerda = VarrerEsquerda();
    delay(100);

    if (dist_Direita >= dist_Esquerda) {
      VirarDireita();
      delay(400);
      Parar();
      delay(500);
      dist = LerPing();
    } else {
      VirarEsquerda();
      delay(400);
      Parar();
      delay(500);
      dist = LerPing();
    }
  } else {
    delay(100);
    MoverAdiante();
  }

  dist = LerPing();
}

int VarrerDireita() {
  servo_motor.write(50);
  int dist = LerPing();
  delay(500);
  dist = LerPing();
  servo_motor.write(115);
  return dist;
}

int VarrerEsquerda() {
  servo_motor.write(180);
  int dist = LerPing();
  delay(500);
  dist = LerPing();
  servo_motor.write(115);
  return dist;
}

int LerPing() {
  int dist_cm = sonar.ping_cm();
  Serial.println(dist_cm);
  return dist_cm;
}

void Parar() {
  digitalWrite(MotorDireitoAvante, LOW);   // IN1
  digitalWrite(MotorDireitoAtras, LOW);    // IN2
  digitalWrite(MotorEsquerdoAvante, LOW);  // IN3
  digitalWrite(MotorDireitoAtras, LOW);    // IN4
  analogWrite(enA, 0);
  analogWrite(enB, 0);
}

void MoverAdiante() {
  if (!Adiante) {
    Adiante = true;

    digitalWrite(MotorDireitoAvante, HIGH);   // IN1
    digitalWrite(MotorDireitoAtras, LOW);     // IN2
    digitalWrite(MotorEsquerdoAvante, HIGH);  // IN3
    digitalWrite(MotorEsquerdoAtras, LOW);    // IN4
    analogWrite(enA, 100);                    // Valor de 0 a 255
    analogWrite(enB, 100);
  }
}

void MoverAtras() {
  Adiante = false;

  digitalWrite(MotorDireitoAtras, HIGH);   // IN2
  digitalWrite(MotorEsquerdoAtras, HIGH);  // IN4
  digitalWrite(MotorDireitoAvante, LOW);   // IN1
  digitalWrite(MotorEsquerdoAvante, LOW);  // IN3
  analogWrite(enA, 80);
  analogWrite(enB, 80);
}

void VirarDireita() {
  digitalWrite(MotorDireitoAtras, HIGH);
  digitalWrite(MotorEsquerdoAvante, HIGH);
  digitalWrite(MotorDireitoAvante, LOW);
  digitalWrite(MotorEsquerdoAtras, LOW);
  analogWrite(enA, 80);
  analogWrite(enB, 80);
}

void VirarEsquerda() {
  digitalWrite(MotorDireitoAvante, HIGH);
  digitalWrite(MotorEsquerdoAtras, HIGH);
  digitalWrite(MotorDireitoAtras, LOW);
  digitalWrite(MotorEsquerdoAvante, LOW);
  analogWrite(enA, 80);
  analogWrite(enB, 80);
}

Então, feito isso, basta agora ligar e observar o comportamento do carro robô.
Quando o carro robô se aproxima do obstáculo, ele para imediatamente. Então, move-se um pouco para trás, faz a leitura por duas vezes para cada lado, faz o giro para onde a distância é maior e aí então continua a mover-se.

Onde comprar Carro Robô 2WD?

Onde Comprar Carro Robô 4WD?

Conheça também!

Lojas.