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:

Practical Presentation

Smart Presentation

Essential Presentation

Akihabara Presentation

Pastel Color Presentation

Nature Presentation

Higher Education Presentation

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