Want to create interactive content? It’s easy in Genially!

Get started free

self balance robot arduino

trodrigues2909

Created on July 2, 2023

Start designing with a free template

Discover more than 1500 professional designs like these:

Transcript

self balancing robot arduino

Apresentação da pap

Projeto elaborado por Tiago Rodrigues 12ºM Nº17

Start

Motor Presentation

Inrodução

O presente trabalho fala sobre um robô elaborado com arduino capaz de se equilibrar autonomamente. Nesta apresentação, vamos entender como funciona o robô equilibrista Arduino, explorar os seus componentes e analisar o processo de programação necessário para alcançar o equilíbrio dinâmico.

Motor Presentation

montagem do projeto

Motor Presentation

montagem do projeto

Esquema do projeto

Motor Presentation

Materiais e componetes utilizados

Motor Presentation

placas de madeira

  • 5 placas de madeira
  • 16,5 por 6,5

Motor Presentation

Controladora de motores

  • A controladora de motores L298N é uma placa eletrónica utilizada para controlar a velocidade e direção de motores, geralmente motores de corrente contínua (DC) ou motores de passo.

Motor Presentation

Placa de circuito impresso

Esta palca serve para soportar os componetes eletrónicos e as suas ligações . ,

Motor Presentation

Arduino nano

  • O Arduino Nano é uma placa microcontroladora de código aberto projetada para facilitar a prototipagem de projetos eletrónicos. Ele é baseado no microcontrolador Atmel ATmega328P ou ATmega168, dependendo da versão, e possui uma série de pinos de entrada/saída, permitindo conectar sensores, atuadores e outros componentes eletrónicos.

Motor Presentation

JUmPERS

  • Fêmea input/ Macho Output

Giroscopio/aselerometrompu-6050

  • É o componente responsável por manter o equilíbrio do robô. Ou seja, o Acelerômetro/Giroscópio é o componente capaz de medir a aceleração do objeto .

Motor Presentation

motor DC

  • Motor de corrente continua
  • Tem dois fios:
  • O fio negativo o preto
  • E o fio positivo o vermelho

Motor Presentation

ONDE PODEMOS ENCONTRAR O GIROSCOPIO

istórias.

Drones

Comandos de vedío jogos

Smart phone e tablets

aviação

Motor Presentation

código do projeto

#include <PID_v1.h> #include <LMotorController.h> #include "I2Cdev.h" #include "MPU6050_6Axis_MotionApps20.h" #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #include "Wire.h" #endif

  • Nesta parte, são incluídas as bibliotecas necessárias para o funcionamento do código.
  • PID_v1.h
  • LMotorController.h
  • I2Cdev.h

Motor Presentation

código do projeto

#define MIN_ABS_SPEED 20

  • Aqui esta defenida a constante "#define MIN_ABS_SPEED 20" com o valor 20

Motor Presentation

código do projeto

MPU6050 mpu; // Variáveis de controlo/estado do MPU6050 bool dmpReady = false; uint8_t mpuIntStatus; uint8_t devStatus; uint16_t packetSize; uint16_t fifoCount; uint8_t fifoBuffer[64]; // Variáveis de orientação/movimento Quaternion q; VectorFloat gravity; float ypr[3];

  • Essas variáveis são usadas para ler dados do sensor, como a orientação do dispositivo.

Motor Presentation

código do projeto

// Variáveis de configuração do PID double originalSetpoint = 167; double setpoint = originalSetpoint; double movingAngleOffset = 0.1; double input, output; double Kp = 100; double Kd = 8; double Ki = 60; PID pid(&input, &output, &setpoint, Kp, Ki, Kd, DIRECT); double motorSpeedFactorLeft = 0.6; double motorSpeedFactorRight = 0.6;

Motor Presentation

código do projeto

// Variáveis de controlo do motor int ENA = 5; int IN1 = 6; int IN2 = 7; int IN3 = 8; int IN4 = 9; int ENB = 10; LMotorController motorController(ENA, IN1, IN2, ENB, IN3, IN4, motorSpeedFactorLeft, motorSpeedFactorRight);

Motor Presentation

código do projeto

void setup(){ // Configuração inicial do MPU6050 // ... }

  • Aqui, é definida a função "setup()", que é chamada apenas uma vez no início do programa. Dentro dela, ocorre a inicialização do MPU6050 e o ajuste de configurações iniciais para o controle PID.

Motor Presentation

código do projeto

void loop() { // Loop principal // ... }

Esta é a função "loop()", que é executada continuamente após a função "setup()". Aqui, o código lê os dados do MPU6050, calcula o controle PID e ajusta a velocidade dos motores de acordo com os valores de saída do controlador

Motor Presentation

Leis de fízica presentes no projeto

  • Lei do centro de gravidade
  • Lei do centro de massa
  • Inercia

Motor Presentation

Estágio

Motor Presentation

conclusão

Motor Presentation

Bibliografia de imagens

https://ledistronica.pt/produto/microcontrolador-arduino-atmega328p-nano-v3/ https://docs.arduino.cc/resources/datasheets/ABX00028-datasheet.pdf https://www.botnroll.com/12175-large_default/m-dulo-driver-motores-l298n.jpg https://http2.mlstatic.com/D_NQ_NP_688916-MLA32229380472_092019-O.webp https://i0.wp.com/androidgeek.pt/wp-content/uploads/2019/02/o-que-e-o-giroscopio-de-um-smartphone-e-como-saber-se-o-vosso-smartphone-tem-androidgeek-2019-02-14_09-43-08_222681.png?resize=1170%2C728&ssl=1 https://www.noticiasaominuto.com/economia/2345849/taag-vai-alugar-9-aeronaves-airbus-a220-com-cores-e-branding-nacional

Motor Presentation

fim

Motor Presentation