Índice:
Vídeo: Robô de auto-equilíbrio - Algoritmo de controle PID: 3 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
Este projeto foi concebido porque eu estava interessado em aprender mais sobre Algoritmos de Controle e como implementar efetivamente loops PID funcionais. O projeto ainda está em fase de desenvolvimento, pois um módulo Bluetooth ainda não foi adicionado, o que permitirá o controle do robô a partir de um smartphone habilitado para Bluetooth.
Os motores N20 DC usados eram relativamente baratos e, portanto, têm uma quantidade considerável de jogo neles. Isso leva a um pequeno solavanco quando os motores superam a 'folga' ao aplicar torque nas rodas. Conseqüentemente, é quase impossível alcançar um movimento perfeitamente suave. O código que escrevi é razoavelmente simples, mas demonstra efetivamente os recursos do algoritmo PID.
Resumo do projeto:
O chassi do robô é impresso em 3D usando uma impressora Ender 3 e é projetado para ser encaixado sob pressão.
O robô é controlado por um Arduino Uno que pega os dados do sensor do MPU6050 e controla os motores DC através de um driver de motor externo. Ele funciona com uma bateria de 7,4 V, 1500mAh. O driver do motor regula para 5 V para alimentar o Arduino e fornece 7,4 V para os motores.
O software foi escrito do zero com a ajuda das bibliotecas 'Arduino-KalmanFilter-master' e 'Arduino-MPU6050-master' do gitHub.
Suprimentos:
- Peças impressas em 3D
- Arduino UNO
- Sensor MPU6050 de 6 eixos
- Motor DC
- Motores N20 D. C (x2)
- Bateria 9V
Etapa 1: construção do robô
Impressão e montagem
A construção inteira deve ser ajustada à pressão, mas usei supercola para prender os componentes e garantir que o robô fique totalmente rígido durante o balanceamento.
Eu projetei as peças no Fusion 360 e otimizei cada peça para imprimir sem suportes para permitir tolerâncias mais estreitas e um acabamento de superfície mais limpo.
As configurações usadas na impressora Ender 3 foram: Layer Heights de 0,16 mm com preenchimento de 40% para todas as peças.
Etapa 2: Robô de impressão 3D
Chassi (x1)
Roda Esquerda (x2)
Carcaça do motor esquerdo (x2)
Capa Arduino (x1)
Etapa 3: Algoritmo de Controle PID
Escrevi um algoritmo de controle PID do zero usando as bibliotecas 'Arduino-KalmanFilter-master' e 'Arduino-MPU6050-master' do gitHub.
A premissa do Algoritmo é a seguinte:
- Leia os dados brutos do MPU6050
- Use o filtro Kalman para analisar os dados do giroscópio e do acelerômetro para cancelar as imprecisões nas leituras do giroscópio devido à aceleração do sensor. Isso retorna um valor relativamente suavizado para a inclinação do sensor em graus para duas casas decimais.
- Calcule o E rror no ângulo, ou seja: O ângulo entre o sensor e o ponto de ajuste.
- Calcule o erro proporcional como (Constante de proporcionalidade x erro).
- Calcule o erro integral como a soma parcial de (Constante de integração x erro).
- Calcule o erro derivado como constante como [(Constante de diferenciação) x (Mudança no erro / Mudança no tempo)]
- Some todos os erros para fornecer a saída de velocidade a ser enviada aos motores.
- Calcule em qual direção girar os motores com base no sinal do ângulo de erro.
- O loop será executado indefinidamente e se baseará na saída conforme a entrada varia. É um loop de feedback, usando os valores de saída como os novos valores de entrada para a próxima iteração.
A etapa final é ajustar os parâmetros Kp, Ki e Kd do loop PID.
- Um bom ponto de partida é aumentar lentamente o Kp até que o robô oscile em torno do ponto de equilíbrio e possa cair.
- Em seguida, inicie Kd em cerca de 1% do valor de Kp e aumente lentamente até que as oscilações desapareçam e o robô deslize suavemente quando empurrado.
- Finalmente, comece com Ki em torno de 20% do Kp e varie até que o robô "ultrapasse" o ponto de ajuste para pegar ativamente uma queda e retornar à vertical.
Recomendado:
Controle de gestos simples - controle seus brinquedos RC com o movimento de seu braço: 4 etapas (com imagens)
Controle de gestos simples - controle seus brinquedos RC com o movimento de seu braço: Bem-vindo ao meu 'ible' # 45. Um tempo atrás eu fiz uma versão RC totalmente funcional do BB8 usando peças de Lego Star Wars … https://www.instructables.com/id/Whats-Inside-My-R…Quando vi como era legal a banda de força feita por Sphero, pensei: " Ok, eu c
Controle de temperatura inicial com PID e Labview: 4 etapas
Controle de temperatura Home com PID e Labview: PID merupakan suatu sistem pengontrolan yang biasa digunakan pada dunia indusri yang telah bukti keandalannya disini kita kita akan mengimplementasikan kontrolloer PID pengatur suhu ruangan menggunakan labview
Visuino PID Escovas Controle do motor e codificador: 5 etapas
Visuino PID Brushes Motor Control and Encoder: Dzisiaj pokażę wam jak podłączyć servomotor szczotkowy z enkoderem optycznym do naszego arduino uno albo mega. Hoje vou mostrar como conectar um servo motor de escova com um codificador óptico ao nosso arduino uno ou mega
Ensino de controle PID com robôs Lego: 14 etapas
Ensinando controle PID com robôs Lego: Muitos jovens entusiastas de robôs estão interessados em tópicos de controle mais avançados, mas podem ser impedidos pelo cálculo frequentemente necessário para analisar sistemas de loop fechado. Existem recursos maravilhosos disponíveis online que simplificam a construção de um "
Robô de seguimento de linha baseado em PID com matriz de sensor POLOLU QTR 8RC: 6 etapas (com imagens)
Robô de seguimento de linha baseado em PID com matriz de sensor POLOLU QTR 8RC: Olá! Este é meu primeiro artigo sobre instructables, e hoje vou levá-lo pela estrada e explicar como construir uma linha baseada em PID seguindo o robô usando QTR-8RC matriz de sensores. Antes de prosseguir para a construção do robô, precisamos entender