collapse

* Posts Recentes

Compra Colectiva Mouser N3-2018 (limite ~21 Julho 2019) [update] por Hugu
[18 de Julho de 2019, 16:28]


Fabricantes de PCB e Assemblage (produção em massa) por senso
[18 de Julho de 2019, 16:15]


Loja online "McMaster" na europa? por Alfredo Garcia
[16 de Julho de 2019, 23:17]


Stepper Motor HEM-17D3003 por jm_araujo
[15 de Julho de 2019, 09:22]


Bucha Berbequim por SerraCabo
[14 de Julho de 2019, 22:45]


Video Porteiro do Prédio por Hugu
[08 de Julho de 2019, 23:05]


Medidor de indutâncias por Hugu
[08 de Julho de 2019, 22:57]


Perfis V-Slot vs C-Beam vs Bosch vs 8020 por Hugu
[08 de Julho de 2019, 22:46]


Ressuscitar Bateria Li-On 36V por jm_araujo
[26 de Junho de 2019, 17:23]


Pequenas chapas de Aluminio - Onde comprar? por Hugu
[24 de Junho de 2019, 16:39]

Autor Tópico: QTR 8A - Polulu  (Lida 5239 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: 1.943
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.513
  • 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.513
  • 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.610
  • 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