Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Como criar um Robô Balanceador utilizando Arduino

Introdução

Os robôs balanceadores são fascinantes exemplos de sistemas de controle e equilíbrio. Eles utilizam sensores, atuadores e algoritmos de controle para manter-se em pé e se mover de forma estável. Neste artigo, vamos explorar como criar um robô balanceador utilizando a plataforma Arduino. Vamos cobrir desde a escolha dos componentes até a implementação do código necessário para o funcionamento do robô.

Componentes Necessários

Para construir um robô balanceador com Arduino, você precisará dos seguintes componentes:

  • Arduino Uno ou similar
  • Módulo MPU-6050 (acelerômetro e giroscópio)
  • Motores DC com encoders
  • Ponte H (L298N ou similar)
  • Bateria (LiPo recomendada)
  • Estrutura do robô (pode ser impressa em 3D ou feita de materiais como madeira ou acrílico)
  • Rodas e suporte para motores
  • Fios de conexão e protoboard

Montagem do Hardware

  1. Conecte o módulo MPU-6050 ao Arduino:

    • VCC -> 5V
    • GND -> GND
    • SCL -> A5 (ou SCL no Arduino Uno)
    • SDA -> A4 (ou SDA no Arduino Uno)
  2. Conecte os motores DC à ponte H:

    • Motores -> Saídas da ponte H
    • Entradas da ponte H -> Pinos digitais do Arduino (por exemplo, D3, D5, D6, D9)
  3. Conecte a bateria ao Arduino e à ponte H para fornecer energia.

Exemplos de Código

A seguir, apresentamos um exemplo de código para ler os dados do MPU-6050 e controlar os motores para manter o robô em equilíbrio.

#include <Wire.h>
#include <MPU6050.h>

MPU6050 mpu;

const int motorPin1 = 3;
const int motorPin2 = 5;
const int motorPin3 = 6;
const int motorPin4 = 9;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  mpu.initialize();

  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
}

void loop() {
  int16_t ax, ay, az;
  int16_t gx, gy, gz;

  mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

  float angle = atan2(ay, az) * 180 / PI;

  int motorSpeed = angle * 10; // Ajuste a constante conforme necessário

  if (motorSpeed > 255) motorSpeed = 255;
  if (motorSpeed < -255) motorSpeed = -255;

  if (motorSpeed > 0) {
    analogWrite(motorPin1, motorSpeed);
    analogWrite(motorPin2, 0);
    analogWrite(motorPin3, motorSpeed);
    analogWrite(motorPin4, 0);
  } else {
    analogWrite(motorPin1, 0);
    analogWrite(motorPin2, -motorSpeed);
    analogWrite(motorPin3, 0);
    analogWrite(motorPin4, -motorSpeed);
  }

  delay(10);
}

Este código básico lê os dados do MPU-6050, calcula o ângulo de inclinação e ajusta a velocidade dos motores para manter o equilíbrio. Para um controle mais preciso, recomenda-se implementar um controlador PID.

Conclusão

Criar um robô balanceador com Arduino é uma excelente maneira de aprender sobre sensores, atuadores e controle de sistemas. Com os componentes certos e um pouco de programação, você pode construir um robô que se equilibra sozinho e se move de forma estável. Experimente ajustar os parâmetros e adicionar funcionalidades para aprimorar seu robô.

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.