Seguidor de Linha com controle PID: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Sem resumo de edição
Linha 39: Linha 39:
  0 0 0 0 0 1 1  --> Erro  5
  0 0 0 0 0 1 1  --> Erro  5
  0 0 0 0 0 0 1  --> Erro  6
  0 0 0 0 0 0 1  --> Erro  6
==Vetor de sensores QTR-8==
O '''vetor de sensores de reflectância QTR-8''' possui '''8 leds IR/fototransistores''' (emissores infravermelho/receptores) montados em uma única placa, projetado para ser utilizado em '''seguidores de linha'''.
Há dois tipos de sensores '''QTR-8''':
*[https://www.pololu.com/product/960 QTR-8A]: Utiliza leitura analógica dos sensores
*[https://www.pololu.com/product/961 QTR-8RC]: Utiliza portas digitais para fazer leitura dos sensores
;Biblioteca para Arduíno: [https://www.pololu.com/docs/0J19 Arduino Library for the Pololu QTR Reflectance Sensors]


==Controle de velocidade de robô Seguidor de Linha==
==Controle de velocidade de robô Seguidor de Linha==
Linha 63: Linha 73:
:*Posteriormente, ajustou novo valor para '''Kp''' e '''Kd''' para '''1/2 Kp''' utilizado com o controle proporcional único e prosseguiu com novos testes.
:*Posteriormente, ajustou novo valor para '''Kp''' e '''Kd''' para '''1/2 Kp''' utilizado com o controle proporcional único e prosseguiu com novos testes.
:*O autor não implementou o controle '''Ki'''.
:*O autor não implementou o controle '''Ki'''.
==Vetor de sonsores==
O '''vetor de sensores de reflectância QTR-8''' possui '''8 leds IR/fototransistores''' (emissores infravermelho/receptores) montados em uma única placa, projetado para ser utilizado em '''seguidores de linha'''.
Há dois tipos de sensores '''QTR-8''':
*[https://www.pololu.com/product/960 QTR-8A]: Utiliza leitura analógica dos sensores
*[https://www.pololu.com/product/961 QTR-8RC]: Utiliza portas digitais para fazer leitura dos sensores
;Biblioteca para Arduíno: [https://www.pololu.com/docs/0J19 Arduino Library for the Pololu QTR Reflectance Sensors]


==Ajuste de parâmetros via Bluetooth==
==Ajuste de parâmetros via Bluetooth==

Edição das 11h32min de 19 de outubro de 2018

Seguidor de Linha com controle PID

Teoria sobre Sistemas de Controle PID

Sistemas de Controle
Um resumo da teoria sobre Sistemas de Controle em Malha Fechada e do Controle Proporcional Integral Derivativo.

Ações de Controle PID sobre o Seguidor de Linha

Ações de Controle PID sobre o Seguidor de Linha
Descrição das ações de Controle PID sobre o Seguidor de Linha, hipóteses e problemas a serem experimentados.

Vetor de Sensores e Determinação do Erro

O Seguidor de Linha utiliza um vetor com sete sensores para seguir a linha e determinar o erro do robô em relação a linha.

Dependendo da posição do vetor sobre a linha, apenas um ou dois sensores podem reconhecer a linha ao mesmo tempo, como mostra as figuras abaixo [1]:

Apenas sensor central (s3) reconhece a linha.

Sensor central (s3) e sensor (s4) reconhecem a linha.
Possibilidades para o vetor de sensores
Quando o sensor central está sobre a linha o erro é zero.
Quando o carrinho deriva para esquerda, sensibilizando os sensores a direita do ponto central, o erro é positivo. Quando deriva para direita, sensibilizando os sensores a esquerda do ponto central, o erro é negativo.
  Sensores
0 1 2 3 4 5 6  
-------------
1 0 0 0 0 0 0  --> Erro -6
1 1 0 0 0 0 0  --> Erro -5
0 1 0 0 0 0 0  --> Erro -4
0 1 1 0 0 0 0  --> Erro -3
0 0 1 0 0 0 0  --> Erro -2
0 0 1 1 0 0 0  --> Erro -1
0 0 0 1 0 0 0  --> Erro  0
0 0 0 1 1 0 0  --> Erro  1
0 0 0 0 1 0 0  --> Erro  2
0 0 0 0 1 1 0  --> Erro  3
0 0 0 0 0 1 0  --> Erro  4
0 0 0 0 0 1 1  --> Erro  5
0 0 0 0 0 0 1  --> Erro  6

Vetor de sensores QTR-8

O vetor de sensores de reflectância QTR-8 possui 8 leds IR/fototransistores (emissores infravermelho/receptores) montados em uma única placa, projetado para ser utilizado em seguidores de linha.

Há dois tipos de sensores QTR-8:

  • QTR-8A: Utiliza leitura analógica dos sensores
  • QTR-8RC: Utiliza portas digitais para fazer leitura dos sensores
Biblioteca para Arduíno
Arduino Library for the Pololu QTR Reflectance Sensors

Controle de velocidade de robô Seguidor de Linha

Um robô Seguidor de Linha equipado com motores de corrente contínua tem seu controle de velocidade e sentido de rotação a partir de tensão elétrica variável aplicada em seus terminais:

  • Sentido de rotação: Tensão positiva gira em um sentido e tensão negativa em outro sentido;
  • Velocidade: Controlada pela amplitude da tensão aplicada.
Arduíno e Ponte H
Com o Arduíno equipado com um módulo Ponte H permite o controle de motores de corrente contínua através de saídas digitais e analógicas:
  1. O sentido de rotação dos motores é realizado a partir de saídas digitais, com LOW para um sentido e HIGH para o outro.
  2. O controle da velocidade dos motores é realizado a partir de "saídas analógicas", com modulação PWM de 8 bits, correspondendo a valores decimais entre O e 255. Estes valores correspondem a faixa entre 0 V e 5 V em caso de tensão nominal de 5 V.
Entretanto, dependendo dos motores, a faixa de ajuste da velocidades geralmente varia de valorMínimo a 255, onde o valorMínimo é a modulação PWM mínima para romper a inércia dos motores (algo entre 40 e 80, dependendo do tipo de motores e do peso do robô).
Funcionamento do Seguidor de Linha e a ação do Controle
  1. Suponha que um Seguidor de Linha seja programado para percorrer a pista com uma velocidade normal estabelecida com a modulação PWM velNormal = 120 e que tenhamos somente o controle proporcional ativo, com Kp = 20.
  2. Suponha que em dado momento tenhamos erro = 1, com o robô derivando para esquerda.
Neste caso, a ação do controle proporcional modificará a trajetória do robô aumentando a velocidade do motor esquerdo e diminuindo a velocidade do motor direito:
velMotorEsq = velNormal + Kp * erro = 120 + 20 * 1 = 140
velMotorDir = velNormal - Kp * erro = 120 - 20 * 1 = 100
Ajuste dos parâmetros PID
O projeto apresentado em [1] utiliza motores de passo também controlados por modulação PWM. O autor sugere iniciar com Kp = 25, com Ki = 0 e Kd = 0.
  • Experimentalmente foi aumentando o valor de Kp de forma que o robô continuasse a seguir linha de forma estável. O autor chegou a um valor de Kp = 50 após testes.
  • Posteriormente, ajustou novo valor para Kp e Kd para 1/2 Kp utilizado com o controle proporcional único e prosseguiu com novos testes.
  • O autor não implementou o controle Ki.

Ajuste de parâmetros via Bluetooth

Para facilitar o ajuste dos parâmetros, foi introduzido um módulo bluetooth no robô para que os parâmetros sejam transferidos via Bluetooth de um aplicativo em um celular Android.

O aplicativo foi desenvolvido com o App Inventor.

A comunicação usando Bluetooth foi construída baseado nos exemplos apresentados em:

Materiais sobre Seguidor de Linha com controle PID

Projetos
Artigos e TCCs

Referências


--Evandro.cantu (discussão) 08h58min de 16 de maio de 2018 (BRT)