LusoRobótica - Robótica em Português

Robótica => Iniciantes => Tópico iniciado por: amando96 em 21 de Fevereiro de 2009, 22:39

Título: fiz um walker com Arduino e preciso de ajuda a programar =/
Enviado por: amando96 em 21 de Fevereiro de 2009, 22:39
Então é assim hj é o meu segundo dia a programar, e não sei como fazer o walker virar xD

sei o movimento que preciso de fazer para ele virar, mas não sei como fazer o código...

este é o codigo para andar rápido...

#include <Servo.h>
Servo frontservo,backservo;
char forward[] = {60,100,100,100,100,60,60,60};
void setup()
{
frontservo.attach(9);
backservo.attach(10);
}
void loop()
{
for(int n=0;n<4;n++)
{
frontservo.write(forward[2*n]);
backservo.write(forward[(2*n)+1]);
delay(100);
}
}

a velociade muda-se ao mudar o ''delay'' pelo menos como eu faço... lol

e agora como faço para os dois servos do mesmo lado, divergirem um do outro?, assim várias vezes? ear assim que virava quando tava RC...

obrigado

há e já agora... aki está um video :)

http://s498.photobucket.com/albums/rr346/AmandoAbreu/?action=view&current=botwithArduino001.flv (http://s498.photobucket.com/albums/rr346/AmandoAbreu/?action=view&current=botwithArduino001.flv)

mas no vídeo está a andar devagar...
Título: Re:fiz um walker com Arduino e preciso de ajuda a programar =/
Enviado por: TigPT em 22 de Fevereiro de 2009, 00:05
Ui... pretendes que ele vire, para isso precisas antes de mais de menos derrape... vi que ele escorrega um bocado, pensa em melhorar o atrito para teres os movimentos mais controlados ;)

Quanto ao movimento.. não sei bem como o consegues só com 2 servos como tens, mas possivelmente terás que fazer com que ele rode em vez de entre o ângulo 90-x e 90+x que é o que estás a fazer para andar em frente, que ele passe a andar entre o ângulo 90-x+y e 90 +x+y, ao adicionares este valor y, estás a fazer com que as pernas permaneçam sempre ligeiramente viradas para o lado que pretendes, e assim ele rode nesse sentido... para rodar no outro sentido é só meter -y em ambos os pontos de rotação.

Estarei certo? é só uma teoria mas que os meus conhecimentos de física subscrevem!

Parabéns pela ideia, boa sorte com o teu robot ;)
Título: Re:fiz um walker com Arduino e preciso de ajuda a programar =/
Enviado por: amgcgoncalves em 22 de Fevereiro de 2009, 01:35
Estás certo, TigPT. Quanto ao atrito, também concordo. Já se viu que o bichinho até anda, mas um alpinista com botas específicas sobe melhor uma montanha do que com sapatos de gala ;). Boa sorte com o projecto, little resources. Lanço-te o desafio de, quando te sentires suficientemente à vontade com código e com o micro-controlador em si, tirares os fios ao bicharoco.
Título: Re:fiz um walker com Arduino e preciso de ajuda a programar =/
Enviado por: ricardo-reis em 22 de Fevereiro de 2009, 03:05
é tão estranho k tenhas feito isso com arduino.. desculpa tar a dizer isto, mas é muito mais frequente vê-los feitos sem microcontroladores.. só e apenas com electronica..

acredito que o já dito pelo tig e pelo amg esteja correcto, mas posso tentar fazer aqui uns desenhos e aplicar umas (poucas) noções de física pra ver se existirá alguma forma melhor de pôr esse tubo com pernas (engraçado) a dar curvas com maior eficiencia.. pra já, põe-lhe uns sapatinhos de borracha.. (tou a pensar na parte de trás das típicas canetas da bic (aqueles bocados de plástico k têm a cor da tinta) com uns daqueles batentes de silicone pequenos..
Título: Re:fiz um walker com Arduino e preciso de ajuda a programar =/
Enviado por: amando96 em 22 de Fevereiro de 2009, 12:42
Estás certo, TigPT. Quanto ao atrito, também concordo. Já se viu que o bichinho até anda, mas um alpinista com botas específicas sobe melhor uma montanha do que com sapatos de gala ;). Boa sorte com o projecto, little resources. Lanço-te o desafio de, quando te sentires suficientemente à vontade com código e com o micro-controlador em si, tirares os fios ao bicharoco.

foi a ''meta'' desta manhã e já está :)
achoq ue derrapa pk... tem elasticos enrolados no arame das pernas lol e tá com um pouco de pó que faz escorregar... talvez precise de elasticos novos xD
Título: Re:fiz um walker com Arduino e preciso de ajuda a programar =/
Enviado por: amando96 em 22 de Fevereiro de 2009, 12:45
é tão estranho k tenhas feito isso com arduino.. desculpa tar a dizer isto, mas é muito mais frequente vê-los feitos sem microcontroladores.. só e apenas com electronica..

acredito que o já dito pelo tig e pelo amg esteja correcto, mas posso tentar fazer aqui uns desenhos e aplicar umas (poucas) noções de física pra ver se existirá alguma forma melhor de pôr esse tubo com pernas (engraçado) a dar curvas com maior eficiencia.. pra já, põe-lhe uns sapatinhos de borracha.. (tou a pensar na parte de trás das típicas canetas da bic (aqueles bocados de plástico k têm a cor da tinta) com uns daqueles batentes de silicone pequenos..

isto é só o básico, fiz com arduino para poder adicionar sensores e seguir luz e tal... mas antes disso preciso de ter os movimentos básicos(virar direita, vira esquerda, frente, trás, e algumas velocidades diferentes...

atrás tenho elásticos... mas qualquer borracha fica com pó agrrado e isso faz escorregar( ele teve na prateleira umas semanas, e depois chegou o arduino :)
Título: Re:fiz um walker com Arduino e preciso de ajuda a programar =/
Enviado por: guibot em 22 de Fevereiro de 2009, 12:50
se usares fita termoretráctil nas patas ele é capaz de aderir melhor ao chão.

em relação ao código se experimentares por delay entre os movimentos de cada servo e experimentares diferentes valores no delay talvez consigas que ele mude de direcção, é ir experimentando.

boa sorte com o bichano  :)
Título: Re:fiz um walker com Arduino e preciso de ajuda a programar =/
Enviado por: amando96 em 22 de Fevereiro de 2009, 12:59
se usares fita termoretráctil nas patas ele é capaz de aderir melhor ao chão.

em relação ao código se experimentares por delay entre os movimentos de cada servo e experimentares diferentes valores no delay talvez consigas que ele mude de direcção, é ir experimentando.

boa sorte com o bichano  :)

o que é fita termotáctil? é que o meu username diz tudo... xD
Título: Re:fiz um walker com Arduino e preciso de ajuda a programar =/
Enviado por: guibot em 22 de Fevereiro de 2009, 13:04
é o que se usa em vez de fita isolante para isolar soldaduras nos cabos, são pequenos tubos de borracha que quando aquecidos com um isqueiro contraiem..  espero ter sido esclarecedor    :D
Título: Re:fiz um walker com Arduino e preciso de ajuda a programar =/
Enviado por: amando96 em 22 de Fevereiro de 2009, 13:09
é o que se usa em vez de fita isolante para isolar soldaduras nos cabos, são pequenos tubos de borracha que quando aquecidos com um isqueiro contraiem..  espero ter sido esclarecedor    :D

háa acho que tou a ver o que é... sim mt esclarecedor  :P
Título: Re:fiz um walker com Arduino e preciso de ajuda a programar =/
Enviado por: amando96 em 25 de Fevereiro de 2009, 23:00
bem já tenho o dobro do que quero!

com este código:
#include <Servo.h>
Servo frontservo,backservo;
char forward[] = {60,100,100,100,100,60,60,60};
char backward[] = {60,60,60,100,100,100,100,60};
void setup()
{
frontservo.attach(9);
backservo.attach(10);
}
void loop()
{
for(int n=0;n<4;n++)
{
frontservo.write(forward[(2*n)+1]);
backservo.write(backward[2*n]);
delay(200);
}
}

ele faz isto:
http://www.youtube.com/watch?v=LQIoCuiLucQ



Qual parâmetro tenho de modificar para ele fazer isto?

http://www.youtube.com/watch?v=QYVVVBOrNlY

reparem na orientção dos servos!

ao fazer este movimento repetidamente, ele vai virar com alguma precisão.
Título: Re:fiz um walker com Arduino e preciso de ajuda a programar =/
Enviado por: guibot em 25 de Fevereiro de 2009, 23:28
porque estás a usar arrays?

eu faria isto para o 1º video:

frontservo.write(60);
backservo.write(160);
delay(1000);
frontservo.write(90);
backservo.write(90);
delay(1000);
frontservo.write(160);
backservo.write(60);
delay(1000);
frontservo.write(90);
backservo.write(90);

e para o 2º:
frontservo.write(60);
backservo.write(160);
delay(1000);
frontservo.write(90);
backservo.write(90);
delay(1000);
frontservo.write(60);
backservo.write(160);
delay(1000);
frontservo.write(90);
backservo.write(90);

agora só precisas de encapsular estas sequências de movimentos em rotinas  :)
Título: Re:fiz um walker com Arduino e preciso de ajuda a programar =/
Enviado por: amando96 em 25 de Fevereiro de 2009, 23:33
porque estás a usar arrays?

eu faria isto para o 1º video:

frontservo.write(60);
backservo.write(160);
delay(1000);
frontservo.write(90);
backservo.write(90);
delay(1000);
frontservo.write(160);
backservo.write(60);
delay(1000);
frontservo.write(90);
backservo.write(90);

e para o 2º:
frontservo.write(60);
backservo.write(160);
delay(1000);
frontservo.write(90);
backservo.write(90);
delay(1000);
frontservo.write(60);
backservo.write(160);
delay(1000);
frontservo.write(90);
backservo.write(90);

agora só precisas de encapsular estas sequências de movimentos em rotinas  :)

eu não percebonada disto xD mas já tinha mexido em tudo, só faltava mudar o (60,60,100,100,100,100,60,60,60) mas agora acho que tou a ver ;D obrigadíssimo
Título: Re:fiz um walker com Arduino e preciso de ajuda a programar =/
Enviado por: amando96 em 26 de Fevereiro de 2009, 11:39
Ui... pretendes que ele vire, para isso precisas antes de mais de menos derrape... vi que ele escorrega um bocado, pensa em melhorar o atrito para teres os movimentos mais controlados ;)

Quanto ao movimento.. não sei bem como o consegues só com 2 servos como tens, mas possivelmente terás que fazer com que ele rode em vez de entre o ângulo 90-x e 90+x que é o que estás a fazer para andar em frente, que ele passe a andar entre o ângulo 90-x+y e 90 +x+y, ao adicionares este valor y, estás a fazer com que as pernas permaneçam sempre ligeiramente viradas para o lado que pretendes, e assim ele rode nesse sentido... para rodar no outro sentido é só meter -y em ambos os pontos de rotação.

Estarei certo? é só uma teoria mas que os meus conhecimentos de física subscrevem!

Parabéns pela ideia, boa sorte com o teu robot ;)
por acaso, alguma derrapagem, quando está v irar está do lado bom, pk um lado agarra, enquanto o outro derrapa, é assim que vira :)