collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 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: Ajuda primeiro robo  (Lida 5572 vezes)

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

Offline ruicosta93

  • Mini Robot
  • *
  • Mensagens: 254
Ajuda primeiro robo
« em: 24 de Março de 2011, 20:32 »
Chegou hoje os servos para o meu primeiro robo.

Quando vou a testa-los com aquele codigo do smalluino de testar os servos eles fazem barulho como se tivessem a tentar puxar mas não mexem.

Alguem me sabe dizer qual é o problema.

Os servos são da modelcraft aqueles que o njay vende.
Rui Costa

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Ajuda primeiro robo
« Responder #1 em: 24 de Março de 2011, 20:42 »
Talvez falta de corrente, estás a alimentar por USB?
Tenta uma fonte externa e só um servo de cada vez.
Avr fanboy

Offline ruicosta93

  • Mini Robot
  • *
  • Mensagens: 254
Re: Ajuda primeiro robo
« Responder #2 em: 24 de Março de 2011, 21:06 »
Ja tentei com a minha fonte de alimentação.

Dei-lhe com 5.74 v. ligei positivo ao vermelho do servo gnd ao preto e cor de laranja do servo ao pino 9 e fiz o uploud deste codigo.

int motorEsq = 9;

void setup(){ 
Serial.begin(9600);}

void loop(){ 
for (int i=0;i<=255; i++){   
analogWrite(motorEsq, i);       
Serial.print("A testar valor: ");
Serial.println(i);   
delay(500);   } }



Ele faz o mesmo barulho de á bocado mas agora vibra mais mas nõa gira. parece que tá a roer qualquer coisa.

Para este codigo os servos tem de estar modificados.? e que eu ainda não modifiquei. queria testar primeiro para pooder trocsr se houver algum problema.
Rui Costa

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Ajuda primeiro robo
« Responder #3 em: 24 de Março de 2011, 21:12 »
Tinhas a massa da fonte ligada á massa do Arduino?
Se não estava ligada liga as duas e volta a tentar.
Avr fanboy

Offline XicoMBD

  • Mini Robot
  • *
  • Mensagens: 571
    • FranciscoDias.net
Re: Ajuda primeiro robo
« Responder #4 em: 24 de Março de 2011, 21:35 »
Experimenta este:
Código: [Seleccione]
// Sweep
// by BARRAGAN <http://barraganstudio.com>
// This example code is in the public domain.




#include <Servo.h>
 
Servo myservo;  // create servo object to control a servo
                // a maximum of eight servo objects can be created
 
int pos = 0;    // variable to store the servo position
 
void setup()
{
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}
 
 
void loop()
{
  for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees
  {                                  // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 180; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees
  {                               
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
}

Offline ruicosta93

  • Mini Robot
  • *
  • Mensagens: 254
Re: Ajuda primeiro robo
« Responder #5 em: 24 de Março de 2011, 21:42 »
Eu continuo a alimentar o arduino por usb.-

Depois tenho a fonte a alimentar o servo. e tenho o de sinal do servo no pino nove.

Além disto ainda tenho de ligar o gnd da fonter ao gnd do arduino?
Rui Costa

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Ajuda primeiro robo
« Responder #6 em: 24 de Março de 2011, 21:59 »
Sim, que é para estar tudo ao mesmo potencial, se as massas não forem comuns o sinal do Arduino pode estar dezenas ou centenas de volts acima ou abaixo da voltagem do servo, porque as fontes são isoladas.
Avr fanboy

Offline ruicosta93

  • Mini Robot
  • *
  • Mensagens: 254
Re: Ajuda primeiro robo
« Responder #7 em: 24 de Março de 2011, 22:08 »
tambeém já fiz isso e nada. mexe pouco. parece que tá preso.

será que tenho de o alterar primeiro.?
Rui Costa

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Ajuda primeiro robo
« Responder #8 em: 24 de Março de 2011, 22:23 »
Não, porque um servo tem de mexer, a alteração é só para ele rodar continuamente e não só os 180 graus mais ou menos tipicos de um servo.
Já tentas-te rodar o braço á mão, pode custar um pouco, mas deve mexer bem assim que começar a andar.
Avr fanboy

Offline ruicosta93

  • Mini Robot
  • *
  • Mensagens: 254
Re: Ajuda primeiro robo
« Responder #9 em: 24 de Março de 2011, 22:28 »
Já rodei o braço á mão. é preciso aplicar um pouco de força mas roda bem. Faz um barulho mas acho que é o barulho caracteristico das engrenagens.
Rui Costa

Offline ruicosta93

  • Mini Robot
  • *
  • Mensagens: 254
Re: Ajuda primeiro robo
« Responder #10 em: 25 de Março de 2011, 21:22 »
Já o consegui a meter a mexer , mas só utilizando a biblioteca servo doi arduino.

Mas eu pensava que os servos fossem mais rapidos. Mas pronto.~

Alguem me sabe dizer porque que não consigo com o analogwrite mexer o servo.?

é porque para programar o robo é mais facil com o analogWrite.
Rui Costa

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Ajuda primeiro robo
« Responder #11 em: 26 de Março de 2011, 03:34 »
Nem reparei que estavas a usar o analogWrite :facepalm:

O analogWrite nao funciona porque é a frequencia errada, podes alterar os timers para funcionar, mas usar a biblioteca servo é tal e qual usar o analogWrite..
Avr fanboy

Offline ruicosta93

  • Mini Robot
  • *
  • Mensagens: 254
Re: Ajuda primeiro robo
« Responder #12 em: 26 de Março de 2011, 22:52 »
Boas. Eu fiz a alteração dos servos para continua.

Meto agoira este codigo :
int motorEsq = 9;  // atenção ao valor dos pinos queestão a
int motorDrt = 10; // usar, se não for este, modifiquem no código!
void setup(){  Serial.begin(9600);}
void loop(){  for (int i=0;i<=255; i++){   
analogWrite(motorEsq, i);       
analogWrite(motorDrt, i);       
Serial.print("A testar valor: ");   
Serial.println(i);   
delay(500);        } }


E o resultado é o seguinte. ele testa os servos até ao 68.

Depois começa a parar. tento fazer outra vez o uploud do codigo diz que a com3 está ocupada.

Alguem me pode ajudar. Porquê só testa até ao 68.?
Rui Costa

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Ajuda primeiro robo
« Responder #13 em: 27 de Março de 2011, 23:50 »
Os motores começam a puxar corrente e o atmega faz reset..
E já devias saber que directamente não podes usar o analogWrite, não sei o que acontece mas até podes estar a meter os servos em carga por estarem a receber comandos mas não andarem por não serem os comandos certos, usa a biblioteca servo.
Avr fanboy

Offline ruicosta93

  • Mini Robot
  • *
  • Mensagens: 254
Re: Ajuda primeiro robo
« Responder #14 em: 30 de Março de 2011, 23:52 »
Boas já consigo meter os servos a mexer com a biblioteca servo.

Fiz as alterações para continua. o problema e que meto o potenciometro a 90 graus dou umas voltas com ele e rapidamente muda de posição.

o POTENCIOMETRO sem lhe tocar já muda de posição. é um potenciometro muito façil de rodar. Já tentei meter um bocado de cola mas não fica grande coisa além que a roda dentada não fica no sitio.

O que tava a pensar era medir a resistência quando ele tá a 90 graus(parado) pelo que medi é 1.70k. agora arranjar uma resistencia de 1.70k e colocar de uma ponta ao centro e arranjar outra de 2.67 (valor total do potenciometro e meter de uma ponta a outra ponta. que me dizem?

Será que isto vai correr bem ou vai dar asneira.?
Rui Costa