collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[27 de Março de 2024, 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Pião  (Lida 4136 vezes)

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

Offline XicoMBD

  • Mini Robot
  • *
  • Mensagens: 571
    • FranciscoDias.net
Pião
« em: 09 de Janeiro de 2011, 22:42 »
Olá a todos!

Depois da conversa toda que se gerou neste tópico , acho que já está na altura de apresentar aqui "oficialmente" este robot:




Basicamente, foi o robot que construi para testar e dar uso à placa controladora de motores que desenhei.
O arduino, utilizando essa placa, controla por PWM os motores que eram de uns berbequins/ aparafusadoras baratos que já tinha de um projecto anterior.










Neste momento controlo-o utilizando xbee's a partir de um pc com uma câmara wireless, no entanto na altura em que tirei as únicas fotos e video que tenho, utilizava o pc em cima robot. Quando tirar novas partilho-as aqui.

Para este robot fiz algumas peças, utilizando polymorph, como os suportes para os motores e para o sonar, e posso-vos dizer que estou a gostar bastante de o utilizar. Basta mete-lo numa panela com água quente, esperar que fique transparente (sinal de que está "no ponto"), retirar e moldar. Pode-se utilizar as mãos à vontade que à temperatura que é, não queima e as peças até ficam boas.

Já o programei para acelerar gradualmente, o que o tornou muito mais "domesticável". Já o consigo controlar dentro de casa sem problema nenhum  :D

Em principio a próxima alteração será a adição de encoders. Vamos lá ver como corre  ;D



PS: Achei estranho uma coisa: Eu tenho dois xbee shields (http://arduino.cc/en/Main/ArduinoXbeeShield) e, não percebo porquê quando o coloco no arduino deixo de conseguir os PWM dos pinos 5 e 6. Resolvi o problema utilizando jumpers para ligar os pinos 0 e 1 e os ICSP ao shield, mas gostava de perceber porquê é que não dá para o ter colocado normalmente no arduino. Alguém sabe a quê é que se deve o problema?
« Última modificação: 09 de Janeiro de 2011, 22:47 por XicoMBD »

Offline XicoMBD

  • Mini Robot
  • *
  • Mensagens: 571
    • FranciscoDias.net
Re: Pião
« Responder #1 em: 12 de Janeiro de 2011, 21:13 »
O próximo passo são mesmo encoders, se encontrares sensores hall dá para fazer uns encoders magnéticos, mesmo com pó e sujidade funcionam, coisa que com óptico é diferente, visto ser um robot outdoor
Boas,
Tenho andado a tentar utilizar uns sensores de reflexão IV como encoders e não estou a ter grande sucesso. Mesmo só a fazer o "serial print" das leituras os valores não são muito consistentes.
Também tenho aqui os sensores e as respectivas rodas dentadas de um rato mas acho que não devem ficar bem aqui no robot.


Estava por isso a pensar nos hall, mas não tenho qualquer experiência com eles.
 - Quais são os aspectos a ter em conta quando se compra um?
 - Conhecem alguns bons e baratos à venda cá em Portugal?

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Pião
« Responder #2 em: 12 de Janeiro de 2011, 21:15 »
Não tens grande sucesso porque?
Avr fanboy

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Pião
« Responder #3 em: 12 de Janeiro de 2011, 21:33 »
Tens alguma foto dos sensores, um close-up dos sensores e das rodas dentadas?
Como estás a fazer a contagem?

Offline XicoMBD

  • Mini Robot
  • *
  • Mensagens: 571
    • FranciscoDias.net
Re: Pião
« Responder #4 em: 12 de Janeiro de 2011, 22:24 »

Os sensores que estou a utilizar são estes: http://loja.lusorobotica.com/64-optical-detector-phototransistor.html. Para começar, esta roda tem um autocolante com 8 divisões, 4 partes pretas e 4 partes brancas.


Eu nunca tinha usado encoders antes, esta é a minha 1ª vez. Ainda só criei um programa para enviar as leituras do sensor por serial para o pc, para assim as poder perceber. O 1º valor é o que é directamente obtido do sensor (varia entre 0 e 1023) o segundo varia só entre 0 e 1 consoante o 1º valor seja superior ou inferior a 600.


Aqui está o que obti, no inicio portou-se bem, teve sempre cinco valores de 1 e cinco valores de 0, mas lá para diante, passou a ter apenas quatro valores de 1 com cinco valores de 0. Não percebi porquê visto que as partes têm o mesmo tamanho... Estou a ser piquinhas de mais?
Código: [Seleccione]
sensor = 948    1
sensor = 846    1
sensor = 793    1
sensor = 769    1
sensor = 826    1
sensor = 272    0
sensor = 167    0
sensor = 155    0
sensor = 182    0
sensor = 231    0
sensor = 705    1
sensor = 761    1
sensor = 784    1
sensor = 945    1
sensor = 895    1
sensor = 332    0
sensor = 159    0
sensor = 190    0
sensor = 179    0
sensor = 200    0
sensor = 626    1
sensor = 792    1
sensor = 922    1
sensor = 904    1
sensor = 775    1
sensor = 284    0
sensor = 191    0
sensor = 149    0
sensor = 166    0
sensor = 196    0
sensor = 695    1
sensor = 949    1
sensor = 903    1
sensor = 778    1
sensor = 727    1
sensor = 309    0
sensor = 180    0
sensor = 166    0
sensor = 159    0
sensor = 212    0
sensor = 799    1
sensor = 867    1
sensor = 769    1
sensor = 806    1
sensor = 859    1
sensor = 422    0
sensor = 159    0
sensor = 154    0
sensor = 182    0
sensor = 228    0
sensor = 613    1
sensor = 764    1
sensor = 736    1
sensor = 943    1
sensor = 893    1
sensor = 428    0
sensor = 157    0
sensor = 193    0
sensor = 199    0
sensor = 187    0
sensor = 587    0
sensor = 828    1
sensor = 909    1
sensor = 918    1
sensor = 770    1
sensor = 359    0
sensor = 188    0
sensor = 175    0
sensor = 167    0
sensor = 179    0
sensor = 597    0
sensor = 941    1
sensor = 878    1
sensor = 793    1
sensor = 728    1
sensor = 475    0
sensor = 181    0
sensor = 143    0
sensor = 157    0
sensor = 198    0
sensor = 664    1
sensor = 871    1
sensor = 750    1
sensor = 811    1
sensor = 855    1
sensor = 496    0
sensor = 171    0
sensor = 154    0
sensor = 182    0
sensor = 212    0
sensor = 572    0
sensor = 765    1
sensor = 762    1
sensor = 960    1
sensor = 890    1
sensor = 442    0
sensor = 143    0
sensor = 190    0
sensor = 179    0
sensor = 201    0
sensor = 598    0
sensor = 818    1
sensor = 905    1
sensor = 904    1
sensor = 769    1
sensor = 337    0
sensor = 190    0
sensor = 176    0
sensor = 168    0
sensor = 193    0
sensor = 730    1
sensor = 930    1
sensor = 915    1
sensor = 765    1
sensor = 708    1
sensor = 221    0
sensor = 176    0
sensor = 166    0
sensor = 164    0
sensor = 252    0
sensor = 916    1
sensor = 842    1
sensor = 792    1
sensor = 760    1
sensor = 778    1
sensor = 217    0
sensor = 166    0
sensor = 157    0
sensor = 183    0
sensor = 357    0
sensor = 848    1
sensor = 737    1
sensor = 811    1
sensor = 875    1
sensor = 750    1
sensor = 190    0
sensor = 154    0
sensor = 182    0
sensor = 198    0
sensor = 379    0

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Pião
« Responder #5 em: 12 de Janeiro de 2011, 22:30 »
Isso é porque os encoders, se forem de quadratura têm um comportamento que não é logo linear á primeira vista.
Mas tens ou 4 ou 5 1's não é sempre 4, isso pode ser por causa da velocidade de leitura do adc e não de todo por causa do encoder.
Avr fanboy

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Pião
« Responder #6 em: 12 de Janeiro de 2011, 23:13 »
Eu também não vejo nada de anormal nisso :)
Agora vamos a outra parte, estás a usar interrupções?!

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Pião
« Responder #7 em: 12 de Janeiro de 2011, 23:22 »
Se está a usar adc quase de certeza que não.
Avr fanboy

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Pião
« Responder #8 em: 12 de Janeiro de 2011, 23:29 »
Se está a usar adc quase de certeza que não.

Que otario que fui :p estava a pensar nos encoders que normalmente se acopolam aos motores e que o sinal de saida é 0 ou 1. O ideal seria teres um atmega só a fazer isso, porque o que te vai interessar é saber quando passa de preto para branco e de branco para preto, cada vez que isto acontece incrementas e depois de x em x tempo ves quanto incrementou dai podes fazer as rpm.

Offline XicoMBD

  • Mini Robot
  • *
  • Mensagens: 571
    • FranciscoDias.net
Re: Pião
« Responder #9 em: 12 de Janeiro de 2011, 23:56 »
Pois, eu estou a utilizar um segundo arduino para fazer as leituras dos encoders, depois é pôr os dois a comunicar.
Se a coisa funcionar bem, depois sou capaz de fazer uma placa mais definitiva. Ando a desenvolver um "mini arduino" para servir de base a essas coisas.

« Última modificação: 12 de Janeiro de 2011, 23:58 por XicoMBD »

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Pião
« Responder #10 em: 13 de Janeiro de 2011, 00:11 »
Não me parece que precises de dois arduinos para ler dois encoders e tratar do resto do robot, mas isso depende do resto do código e de quantas interrupções por volta o encoder gera, pelo menos usar um atmega328p para isso é um desperdicio, um attiny seria mais inteligente.
Avr fanboy

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Pião
« Responder #11 em: 13 de Janeiro de 2011, 09:25 »
Não me parece que precises de dois arduinos para ler dois encoders e tratar do resto do robot, mas isso depende do resto do código e de quantas interrupções por volta o encoder gera, pelo menos usar um atmega328p para isso é um desperdicio, um attiny seria mais inteligente.

Senso o problema é que ele tem que estar sempre a ler o ADC, e se estiveres a fazer outras coisas não garantes isto! Eu acho que a solução de um atmega só para isto é necessária.

Offline andnobre

  • Mini Robot
  • *
  • Mensagens: 402
Re: Pião
« Responder #12 em: 13 de Janeiro de 2011, 12:14 »
tens ai uma bela maquina bom trabalho ;)