LusoRobótica - Robótica em Português

Software => Software e Programação => Tópico iniciado por: andnobre em 28 de Setembro de 2009, 19:21

Título: guerra na programacao
Enviado por: andnobre em 28 de Setembro de 2009, 19:21
ola a todos
bem estou aqui pk encontrei um programa feito de um robo que eu queria fazer desde o inicio mas nunca consegui devido a programcao.
Umas vezes  arranjo programas para servos calibrados( outra guerra antiga) mas nunca p motores dc.
bem por isso alguem consegue mexer no codigo ou diga como se faz~???
o programa que eu tenho aki e p servos de rotacao continua mas calibrados eu acho.
http://www.hobbymedia.it/15345/easy-arduino-robot-modellismo-e-robotica-amatoriale (http://www.hobbymedia.it/15345/easy-arduino-robot-modellismo-e-robotica-amatoriale)
abracos
Título: Re: guerra na programacao
Enviado por: fred gomes em 28 de Setembro de 2009, 20:11
isso é porgramação C certo?
http://www.lulu.com/items/volume_63/1108000/1108699/4/print/ARDUINO_NOTEBOOKv6.pdf
tens aqui um manual muito fixe para aprender a programar C

Ps: eu tamém ainda estou aprender, e achei isso na net ;)
Título: Re: guerra na programacao
Enviado por: Njay em 28 de Setembro de 2009, 20:49
(...) o programa que eu tenho aki e p servos de rotacao continua mas calibrados eu acho.
http://www.hobbymedia.it/15345/easy-arduino-robot-modellismo-e-robotica-amatoriale (http://www.hobbymedia.it/15345/easy-arduino-robot-modellismo-e-robotica-amatoriale)

Ahhhhh!!!.... Bolas, e eu a pensar que ia ser o 1º a aparecer com um robot em que o chassis é apenas uma breadboard :(....
Título: Re: guerra na programacao
Enviado por: Raul em 28 de Setembro de 2009, 21:49
O programa do arduino tem o help que abre uns links sobre o arduino e a sua programação.

Cumprimentos
Título: Re: guerra na programacao
Enviado por: Njay em 28 de Setembro de 2009, 21:54
Esse programa é para servos sim. Para motores DC é preciso primeiro saber que driver de potência tens (hardware), pois não dá para ligar um motor eléctrico directamente a um microcontrolador sem um driver.
Título: Re: guerra na programacao
Enviado por: andnobre em 29 de Setembro de 2009, 00:47
isso eu sei tenho um L293D mas o meu problema é so mesmo programacao
Título: Re: guerra na programacao
Enviado por: guibot em 29 de Setembro de 2009, 01:32
Citar
Ahhhhh!!!.... Bolas, e eu a pensar que ia ser o 1º a aparecer com um robot em que o chassis é apenas uma breadboard :(....

tens aqui outro  :)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fletsmakerobots.com%2Ffiles%2Fimagecache%2Frobot_fullpage_header%2Ffiles%2Ffield_primary_image%2FBot_08M_small.jpg&hash=a26024af5cc2e1f7ff685d85c0af9785)
http://letsmakerobots.com/node/4120 (http://letsmakerobots.com/node/4120)
Título: Re: guerra na programacao
Enviado por: TigPT em 29 de Setembro de 2009, 07:05
Para controlo de motores dc com l293 vais ter que parar o motor manualmente, depois inverter os pins sempre que quiseres mudar de direcção.

Já quando se refere a mudar velocidades é igual aos servos (alterar o valor do pwm), simplesmente o pwm vai sempre de 0 a 100% para cada um dos sentidos em vez de estar dividido de 0 a 50% para um lado e de 50 a 100% para o outro.

Tens aqui alguns links com código para l293d:
http://www.arduino.cc/playground/Main/DirectionalMotorControlWithAL293D
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1240090778

Se não te entenderes depois fala cmg que explico-te melhor.
Título: Re: guerra na programacao
Enviado por: Njay em 29 de Setembro de 2009, 08:36
Se bem me lembro aqui o nosso amigo guibot também tem um tutorial sobre arduino+L293D.

Esse não conta gui, tem uma base de plástico rente ao chão.
Título: Re: guerra na programacao
Enviado por: guibot em 29 de Setembro de 2009, 11:07
Citar
Se bem me lembro aqui o nosso amigo guibot também tem um tutorial sobre arduino+L293D.

tenho sim senhore, está aqui (http://lab.guilhermemartins.net/l293d-custom-motor-driver/)

Citar
Esse não conta gui, tem uma base de plástico rente ao chão.
lol, pois é, mas sempre pode servir de inspiração   :D
Título: Re: guerra na programacao
Enviado por: guibot em 29 de Setembro de 2009, 11:13
Citar
bem estou aqui pk encontrei um programa feito de um robo que eu queria fazer desde o inicio mas nunca consegui devido a programcao.
Umas vezes  arranjo programas para servos calibrados( outra guerra antiga) mas nunca p motores dc.
bem por isso alguem consegue mexer no codigo ou diga como se faz~???
o programa que eu tenho aki e p servos de rotacao continua mas calibrados eu acho.

Caro amigo andnobre, desta maneira estás a meio caminho de entrar em frustração pois pegas num pedaço de código com fé que ele faça mexer alguma coisa sem tentar perceber antes o básico.  Por "perceber o básico" quero com isto dizer, entender as ligações de hardware, e entender o que é que precisamos fazer a nível de software.

Porque não tentas ir por partes? 

primeiro: entender o funcionamento de um servo modificado, hardware e software
(usar apenas a porção de código necessário para trabalhar com um único servo)

segundo: entender o funcionamento de um motor dc, hardware e software
(usar apenas a porção de código necessário para trabalhar com um único motor dc)

Título: Re: guerra na programacao
Enviado por: TigPT em 29 de Setembro de 2009, 11:40
Concordo plenamente com o guibot, entendendo depois nunca mais tens dificuldades nesta matéria.
Título: Re: guerra na programacao
Enviado por: andnobre em 29 de Setembro de 2009, 13:27
pronto la vou eu entao seguir os vossos conselhos...
Título: Re: guerra na programacao
Enviado por: Pauleta em 29 de Setembro de 2009, 14:22
Viva André,

também concordo com o guibot, aliás, penso que o interessante num projecto é a fase em que temos de enfrentar os problemas e pensar em como os solucionar. Vais ver que, se perderes algum tempo com estes promenores, vais acabar por dominar a coisa e ganhar vontade de ir mais além.

Abraço,
Título: Re: guerra na programacao
Enviado por: guibot em 29 de Setembro de 2009, 14:27
Citar
pronto la vou eu entao seguir os vossos conselhos...

força com isso, podes user este post para ir expondo as tuas dúvidas  ;)
Título: Re: guerra na programacao
Enviado por: andnobre em 29 de Setembro de 2009, 14:38
ja agora ja ha um tutorial de motores  dc ?
Título: Re: guerra na programacao
Enviado por: guibot em 29 de Setembro de 2009, 15:26
sim há vários, um deles foi feito por mim e já foi mencionado neste post
Título: Re: guerra na programacao
Enviado por: andnobre em 29 de Setembro de 2009, 15:39
exacto esse mesmo que estou a ver....
Título: Re: guerra na programacao
Enviado por: andnobre em 02 de Outubro de 2009, 16:34
boas aqui deixo um problema em entender os pinos a ligar ao arduino.
int motor_left[] = {2, 3};
int motor_right[] = {7, 8};
afinal que pinos sao estes ?
 so mais uma coisa alguem sabe confirmar se o sensor infravermelho esta ligado a que pino? do micro...
obrigado
Esses pins estão ligados à entrada A e B de uma ponte H, 2 pins para cada motor.
Se trocares um com o outro o máximo que pode acontecer é rodar nos sentido contrário.

O sensor está ligado ao ADC 5

Citar
int vision = 5;
Título: Re: guerra na programacao
Enviado por: guibot em 02 de Outubro de 2009, 16:55
int motor_left[] = {2, 3};
int motor_right[] = {7, 8};

é o mesmo que ter :

int motor_left0 = 2;
int motor_left1 = 3;

int motor_right0 = 7;
int motor_right1 = 8;

(continuas a pegar num código imenso sem entender o que está lá escrito)
Título: Re: guerra na programacao
Enviado por: andnobre em 09 de Outubro de 2009, 17:48
bem isso eu sabia mas refiro ao pinos ligados ao micro da ponte p o micro.
Título: Re: guerra na programacao
Enviado por: guibot em 09 de Outubro de 2009, 18:18
int motor_left0 = 2;   // pin 2 no L293D
int motor_left1 = 3;   // pin 7 no L293D

int motor_right0 = 7;  // pin 9 no L293D
int motor_right1 = 8;  // pin 15 no L293D
Título: Re: guerra na programacao
Enviado por: andnobre em 09 de Outubro de 2009, 18:34
mesmo assim n funciona o robo.
o servo que liga ao pino 9 que por sua vez sera o servo que faz o movimento de 180º nao roda.
os servos das rodas nao andam sera que modifiquei mal o programa para motores dc?
mas o sensor iR esta ligado ao pin 5 correcto ...
Título: Re: guerra na programacao
Enviado por: guibot em 09 de Outubro de 2009, 19:00
Sugiro que esqueças o robot por uns momentos e que me respondas a esta questão:

Consegues fazer um servo girar?
Título: Re: guerra na programacao
Enviado por: andnobre em 09 de Outubro de 2009, 19:45
sim ja sei qual era o problema esqueci de chamar a funcao head.attach(9); dentro do setup... ops
bem este problema ja esta.
agora vou passar p os motores dc´s saber o motivo porque estas nao andam.
obrigado por tudo.

ps: se alguem poder ajudar é sempre bem vinda
Título: Re: guerra na programacao
Enviado por: andnobre em 21 de Outubro de 2009, 14:44
alguem tem ideias pk n funciona os motores dc´s.
falta alguma coisa na programacao?
Título: Re: guerra na programacao
Enviado por: TigPT em 21 de Outubro de 2009, 22:32
Já deste uma olhadela neste post?
http://lusorobotica.com/index.php/topic,1565.0.html (http://lusorobotica.com/index.php/topic,1565.0.html)
Título: Re: guerra na programacao
Enviado por: andnobre em 22 de Outubro de 2009, 19:59
sim ja ando a ver esse topico mas n sei o que se passa com a programacao ja que eu tenho a ponte h bem montada....
Título: Re: guerra na programacao
Enviado por: microbyte em 22 de Outubro de 2009, 21:51
Quando algo do género me acontece, costumo desmontar tudo e voltar a fazer tudo de novo.
Título: Re: guerra na programacao
Enviado por: andnobre em 28 de Outubro de 2009, 21:18
ja voltei a montar tudo mas ainda nada....
agora ando a mexer no codigo...
Título: Re: guerra na programacao
Enviado por: microbyte em 29 de Outubro de 2009, 18:55
Estive a olhar para o teu código e tens alguns problemas nos pins do Arduino que estás a usar.

Os pins do Arduino que usas com a ponte H, têm de permitir a saída em PWM (3, 5, 6, 9, 10 ou 11).

Depois, para fazeres outputs de valores entre 0-5v por PWM (que é o que fará alterar a velocidade), tens de usar a função analogWrite() (http://www.arduino.cc/en/Reference/AnalogWrite).

Outra coisa, não uses o pin 13 para nada senão ligar um LED, porque este pin tem uma resistência em série, o que limitará a saída. Dito de outra forma, quando fazes digitalWrite(13, HIGH), não vais ter 5v.
Título: Re: guerra na programacao
Enviado por: Njay em 29 de Outubro de 2009, 22:34
Acho que só a 1ª versão do arduino é que tinha a resistência em série no pino 13, as restantes não.
Título: Re: guerra na programacao
Enviado por: microbyte em 30 de Outubro de 2009, 00:35
ÃH?  ;D

Se assim fosse não teriam já alterado esta página?
http://www.arduino.cc/en/Tutorial/BlinkingLED (http://www.arduino.cc/en/Tutorial/BlinkingLED)

É que sempre ouvi dizer que este pin é usado para debug. Outputs, e nunca inputs. (eu sei que neste caso é output). Mas penso que a saída é limitada.
Título: Re: guerra na programacao
Enviado por: Njay em 30 de Outubro de 2009, 01:25
Sim, deviam ter alterado essa página mas não o fizeram. Podes ver em http://arduino.cc/en/Main/Hardware (http://arduino.cc/en/Main/Hardware) todas as versões de hardware, e vais ver que as últimas (duemilanove, dueciemila, mini, ...) não têm a resistência em série. O arduino serial é que tem.

Nas versões mais recentes, apesar de não ter o LED em série, tem lá agarrado uma resistência e um LED, o que pode realmente interferir com algumas utilizações. Em caso de dúvida, é de evitar.