collapse

* Posts Recentes

Motoserra Stihl 120C por almamater
[09 de Outubro de 2024, 17:01]


Meu novo robô por josecarlos
[06 de Outubro de 2024, 13:33]


Sirene NOVA maluca por dropes
[01 de Outubro de 2024, 18:26]


Shelly em jeito de watchdog por TigPT
[30 de Setembro de 2024, 21:21]


Transmissão de energia sem fios por dropes
[21 de Setembro de 2024, 16:50]


Spot Welder - O que acham? por jm_araujo
[20 de Setembro de 2024, 09:34]


Fita Isoladora - Tipos ou Qualidades diferentes? por dropes
[21 de Agosto de 2024, 15:53]


Cabo/Tubo? para passar ligação sensores - horta por SerraCabo
[21 de Agosto de 2024, 12:14]


Impressora - Valerá a pena? por dropes
[16 de Agosto de 2024, 17:09]


Fonte Monitor Samsung por jm_araujo
[14 de Agosto de 2024, 14:49]

Autor Tópico: QTR 8A - Polulu  (Lida 19096 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline artur36

  • Mini Robot
  • *
  • Mensagens: 795
Re: QTR 8A - Polulu
« Responder #15 em: 26 de Fevereiro de 2017, 09:28 »
O teu problema para o robótica estar sempre a "snifar" a linha toda (oscilação muito grande no loop de controlo) é k o código está muito cru e não responde com a rapidez suficiente (been there done that). Tens de melhorar a resposta desse código, vais ver que não é difícil e que o resultado é bom.
Basicamente tens de transformar as saídas do sensor numa variável única para depois comparares com o que consideras o valor central (setpoint) e obteres o erro, é esse erro que terás de aplicar à fórmula do PID para obteres a saída para os motores, para facilitar a introdução usa apenas a parte proporcional e já terás um resultado aceitável.

Offline dropes

  • Mini Robot
  • *
  • Mensagens: 2.246
Re: QTR 8A - Polulu
« Responder #16 em: 26 de Fevereiro de 2017, 10:36 »
Bem dito, usando apenas a proporcional já se consegue bom resultado.
O que fiz no meu foi registar a direcção em que fazia a curva, assim se não consegui-se fazer a tempo e já sem linha, continuava a curvar.
http://pdropes.blogspot.pt/2016/09/seguidor-de-linha.html?m=1

Offline edeweld

  • Mini Robot
  • *
  • Mensagens: 540
Re: QTR 8A - Polulu
« Responder #17 em: 26 de Fevereiro de 2017, 12:15 »
Sim, estou a ver que a solução passa mesmo pelo PID. Estive a experimentar se funcionava sem PID, mas os resultados são sempre aos solavancos, fica uma coisa muito bruta!

Já estive a ler documentação sobre PID e parece-me uma coisa bonita mas ao mesmo tempo bastante complexa  ;D

Offline jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.975
  • NERD!
Re: QTR 8A - Polulu
« Responder #18 em: 26 de Fevereiro de 2017, 12:32 »
"Entender"* PIDs são duas semestrais da faculdade...

* - Como todas as cadeiras, vai da capacidade do professor e do interesse do aluno. Como todas dá para passar na base do marranço sem preocupação em aprender(ou em ensinar)

Offline edeweld

  • Mini Robot
  • *
  • Mensagens: 540
Re: QTR 8A - Polulu
« Responder #19 em: 26 de Fevereiro de 2017, 12:39 »
"Entender"* PIDs são duas semestrais da faculdade...

* - Como todas as cadeiras, vai da capacidade do professor e do interesse do aluno. Como todas dá para passar na base do marranço sem preocupação em aprender(ou em ensinar)

Já tinha percebido isso em relação ao PID. Vejo pessoal a inventar com PID, mas não gosto muito dessa prática. Concordo que no inventar por vezes está a solução, mas grande parte das vezes prefiro ir pelo caminho da lógica e estudo antes de começar a inventar.
Principalmente em programação. Quando começam a inventar tiram-me do sério! "Coloca um ciclo, coloca um array..." Bolas, mas desde de quando é que se consegue programar atirando códigos à sorte!?

Offline artur36

  • Mini Robot
  • *
  • Mensagens: 795
Re: QTR 8A - Polulu
« Responder #20 em: 26 de Fevereiro de 2017, 13:09 »
Vamos lá por partes, primeiro que tudo a aquisição de dados pelo sensor:
- Tens de montar o sensor o mais perto possível da linha, segundo o datasheet no máximo 6mm.
- Tens de ler 8 sinais analógicos.
- Idealmente tens de conseguir comandar os LEDs de forma independente.
- Testa primeiro o sensor fora do robot e ligado a uma porta de série do PC (o Arduíno cria uma virtual sem problemas e podes ler os dados directo na consola sem te chateares), fica aqui o "meu" algoritmo em pseudo-linguagem para obter o sinal "correcto" de um sensor individual:
1. Coloca o sensor em cima do papel mas fora da linha.
2. Lê o sinal analógico do sensor com o led desligado e guarda numa variável;
3. Lê o sinal analógico do mesmo sensor com o led ligado e guarda o valor  noutra variável;
4. Subtrai as duas variáveis, assim tens um resultado sem contar com a interferência da luz ambiente, este valor com alguma margem adicionada será o valor zero;
5. Repete tudo com o sensor em cima da linha para teres o valor um.

Offline jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.975
  • NERD!
Re: QTR 8A - Polulu
« Responder #21 em: 26 de Fevereiro de 2017, 13:14 »
Já tinha percebido isso em relação ao PID. Vejo pessoal a inventar com PID, mas não gosto muito dessa prática. Concordo que no inventar por vezes está a solução, mas grande parte das vezes prefiro ir pelo caminho da lógica e estudo antes de começar a inventar.

Então nunca na vida vais usar PIDs :D
Entender PIDs é mais por desenvolvimento pessoal do que para poder usar os mesmos.
A forma de determinar os parámetros é quase sempre com base em receitas pré-estabelecidas do género, mete assim, faz isto, se deu aquilo muda para assado, sem ter de fazer comboios de equações diferenciais com termos impossíveis de determinar! E nem podia ser de outra forma, senão perdia-se uma ferramenta de controlo extremamente útil! Ou então carrega-se no botão "Autotune" :)

Em engenharia nem tudo é determinístico, tens de ter uma dose de intuição que vais desenvolvendo com o tempo e experiência. Muitas vezes não há uma solução ótima, mas muitas soluções aceitáveis e nenhuma claramente melhor que as outras. Podes passar horas a otimizar um circuito, código ou uma PCB que chegas ao fim e faz exatamente o mesmo. Com a experiência esse tempo vai-se tornando cada vez mais útil para outras coisas. Ou então tens que cumprir um orçamento ou entregar num prazo, e se não segues uns atalhos não duras muito tempo.
« Última modificação: 26 de Fevereiro de 2017, 13:16 por jm_araujo »

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: QTR 8A - Polulu
« Responder #22 em: 26 de Fevereiro de 2017, 14:57 »
"Entender"* PIDs são duas semestrais da faculdade...

* - Como todas as cadeiras, vai da capacidade do professor e do interesse do aluno. Como todas dá para passar na base do marranço sem preocupação em aprender(ou em ensinar)

Já tinha percebido isso em relação ao PID. Vejo pessoal a inventar com PID, mas não gosto muito dessa prática. Concordo que no inventar por vezes está a solução, mas grande parte das vezes prefiro ir pelo caminho da lógica e estudo antes de começar a inventar.
Principalmente em programação. Quando começam a inventar tiram-me do sério! "Coloca um ciclo, coloca um array..." Bolas, mas desde de quando é que se consegue programar atirando códigos à sorte!?

E PID para o que vais fazer, e em código é uma dúzia de linhas de código e o inventar é fazer escalamento do input e do output, e ter jeito para afinar o P, I e D.
Se chamas a isso inventar com pid, também andas a inventar com um atmega porque estás a atirar código para cima sem saber bem o que ele faz, e estás a começar a casa pelo telhado...

Se ainda não tens dados confiáveis dos sensores como é que queres testar os teus algoritmos se nem sabes se o robot está a "ver" o mundo como tu achas que ele devia estar?
Avr fanboy