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: Erro no upload  (Lida 6364 vezes)

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

Offline gvirus

  • Mini Robot
  • *
  • Mensagens: 36
Erro no upload
« em: 04 de Abril de 2012, 16:25 »
Boa tarde, estou a fazer um projeto e gostaria de saber que tipo de erro é este quando faço upload para o arduino: avrdude: stk500_getsync(): not in sync: resp=0x00

Obrigado

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.372
    • Tiago Rodrigues
Re: Erro no upload
« Responder #1 em: 04 de Abril de 2012, 16:28 »

Offline gvirus

  • Mini Robot
  • *
  • Mensagens: 36
Re: Erro no upload
« Responder #2 em: 04 de Abril de 2012, 17:51 »
O problema mantem-se!  :(

Offline gvirus

  • Mini Robot
  • *
  • Mensagens: 36
Re: Erro no upload
« Responder #3 em: 04 de Abril de 2012, 18:03 »
Posso mostrar lhe o meu projeto?

Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: Erro no upload
« Responder #4 em: 04 de Abril de 2012, 19:47 »
o problema não é do código, a porta que o arduino está ligada está errada, tens a board mal seleccionada ou drivers mal instaladas

Offline gvirus

  • Mini Robot
  • *
  • Mensagens: 36
Re: Erro no upload
« Responder #5 em: 04 de Abril de 2012, 19:56 »
Vou instalar novamente o arduino.

Obrigado

Offline gvirus

  • Mini Robot
  • *
  • Mensagens: 36
Re: Erro no upload
« Responder #6 em: 04 de Abril de 2012, 20:16 »
Já instalei as drivers já fui a tools -> board -> Arduino UNO e também já fui a tools -> Serial Port -> COM 1 e COM5 e o problema continua.

Offline gvirus

  • Mini Robot
  • *
  • Mensagens: 36
Re: Erro no upload
« Responder #7 em: 04 de Abril de 2012, 20:29 »
Já fui ao gestor de dispositivos e encontrei Aduino UNO R3 (COM5) mas o problema mantem se.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Erro no upload
« Responder #8 em: 04 de Abril de 2012, 22:11 »
Instalas-te o ficheiro .inf quando ligas o Arduino no pc e ele é reconhecido como um dispositivo USB?
É que o Uno não usa os drivers FTDI.
Avr fanboy

Offline gvirus

  • Mini Robot
  • *
  • Mensagens: 36
Re: Erro no upload
« Responder #9 em: 04 de Abril de 2012, 22:46 »
Irei consultar isso.

Offline gvirus

  • Mini Robot
  • *
  • Mensagens: 36
Re: Erro no upload
« Responder #10 em: 04 de Abril de 2012, 23:17 »
O arduino reconhece e o problema de carregamento continua

Offline Ricardo Pedroso

  • Mini Robot
  • *
  • Mensagens: 17
Re: Erro no upload
« Responder #11 em: 05 de Abril de 2012, 00:39 »
Experimente fazer uma coisa: clique no "up" quando aparecer a frase "Binary sketch size: ... bytes (of a ,.... byte maximum" imediatamente pressione (bem rápido)  o botão reset do arduino. Algumas versoes do Ard. Mini precisa disso por não ter reset automatico. pode ser que sua placa esteja com este defeito.

Offline gvirus

  • Mini Robot
  • *
  • Mensagens: 36
Re: Erro no upload
« Responder #12 em: 05 de Abril de 2012, 00:54 »
ok vou tentar, ja lhe digo algo

Offline gvirus

  • Mini Robot
  • *
  • Mensagens: 36
Re: Erro no upload
« Responder #13 em: 05 de Abril de 2012, 01:10 »
Ele agora deu para fazer o upload xD

Outra pergunta: No código, muda-se o primeiro parâmetro da função "register Function" para o ID atribuído ao sensor no Amarino, mas em existem várias linhas com "register Function" e o código foi enviado em txt.

Código: [Seleccione]
#include <MeetAndroid.h>

//Motor esquerdo
const int E_PWM = 6;
const int E_TRAS = 7;
const int E_FRENTE = 8;

//Motor direito
const int D_PWM = 3;
const int D_TRAS = 5;
const int D_FRENTE = 4;

const int PWM_MIN = 70;
const int PWM_MAX = 255;

//Amarino
MeetAndroid amarino;

const float MIN = 2;
const float MAX = 9;

const int X = 0;
const int Y = 1;
const int Z = 2;

long timestampUltimaLeitura;
float eixos[3];
//---

void setup() {
  //InicializaÁ„o do motor esquerdo
  pinMode(E_PWM, OUTPUT);
  pinMode(E_FRENTE, OUTPUT);
  pinMode(E_TRAS, OUTPUT);

  //InicializaÁ„o do motor direito
  pinMode(D_PWM, OUTPUT);
  pinMode(D_FRENTE, OUTPUT);
  pinMode(D_TRAS, OUTPUT);

  //InicializaÁ„o do Amarino
  Serial.begin(57600);
  amarino.registerFunction(acelerometro, 'A'); // a string
}

void loop() {
  amarino.receive(); // you need to keep this in your loop() to receive events
// distancia = readDistance();
  andar();
  delay(20);
}

void andar() {
  //Verifica se a ?ltima leitura foi h· mais de 2 segundos. Se sim, p·ra o carrinho.
  if(millis() - timestampUltimaLeitura > 2000) {
    parar();
  }
  //Se a leitura for recente, ent„o comanda o carrinho
  else {
    int intensidadeY = intensidade(Y);
    int intensidadeX = intensidade(X);
 
    //Est· indo pra frente?
    if(eixos[X] >= MIN) {
      //Est· indo para um dos lados tambÈm?
      if (eixos[Y] >= MIN) {
        amarino.send("frente-esquerda");
        frenteDireita(intensidadeX);
        frenteEsquerda(intensidadeXY());
      } else if(eixos[Y] < -MIN) {
        amarino.send("frente-direita");
        frenteDireita(intensidadeXY());
        frenteEsquerda(intensidadeX);
      } else {
        amarino.send("frente");
        frenteDireita(intensidadeX);
        frenteEsquerda(intensidadeX);
      }
    } else if(eixos[X] < -MIN) {
      amarino.send("tras");
      trasDireita(intensidadeX);
      trasEsquerda(intensidadeX);
    } else if (eixos[Y] < -MIN) {
      amarino.send("esquerda");
      frenteDireita(0);
      frenteEsquerda(intensidadeY);
    } else if(eixos[Y] >= MIN) {
      amarino.send("direita");
      frenteDireita(intensidadeY);
      frenteEsquerda(0);
    } else {
      parar();
    }
  }
}

int intensidade(int eixo) {
  int intensidade = map(abs(eixos[eixo]), MIN, MAX, PWM_MIN, PWM_MAX);
  if(intensidade > PWM_MAX) {
    intensidade = PWM_MAX;
  } else if(intensidade < PWM_MIN) {
    intensidade = 0;
  }
  return intensidade;
}

int intensidadeXY() {
  int intensidadeXY = intensidade(X) - intensidade(Y);
  if(intensidadeXY < 0) {
    intensidadeXY = 0;
  }
  return intensidadeXY;
}

void frenteEsquerda(int intensidade) {
  analogWrite(E_PWM, intensidade);
  digitalWrite(E_FRENTE, HIGH);
  digitalWrite(E_TRAS, LOW);
}

void frenteDireita(int intensidade) {
  analogWrite(D_PWM, intensidade);
  digitalWrite(D_FRENTE, HIGH);
  digitalWrite(D_TRAS, LOW);
}

void trasEsquerda(int intensidade) {
  analogWrite(E_PWM, intensidade);
  digitalWrite(E_FRENTE, LOW);
  digitalWrite(E_TRAS, HIGH);
}

void trasDireita(int intensidade) {
  analogWrite(D_PWM, intensidade);
  digitalWrite(D_FRENTE, LOW);
  digitalWrite(D_TRAS, HIGH);
}

void parar() {
  digitalWrite(E_PWM, LOW);
  digitalWrite(D_PWM, LOW);
}

/*
*/
void acelerometro(byte flag, byte numOfValues)
{
  timestampUltimaLeitura = millis();
 
  int length = amarino.stringLength();
  char data[length];
  amarino.getString(data);
  String leitura = data;

  //Separa a string recebida do Amarino em 3 strings
  //Ex: 1.42342;-3.43242;-1.34232
  int offset = 0;
  int count = 0;
  for(int i = 0; i < length; i++) {
    //Toda vez que encontrar um ';', le de 'offset' atÈ 'i'
    if(data[i] == ';') {
      eixos[count] = stringToFloat(leitura.substring(offset, i));
      offset = i + 1;
      count++;
     
      //Se o ?ltimo ';' na string tiver o mesmo Ìndice de 'i', ent„o pega
      //o restante da string no prÛximo elemento do array.
      if(leitura.lastIndexOf(';') == i) {
        eixos[count] = stringToFloat(leitura.substring(offset, length));
      }
    }
  }
 
// amarino.send("x");
// amarino.send(eixos[X]);
// amarino.send("y");
// amarino.send(eixos[Y]);
// amarino.send("z");
// amarino.send(eixos[Z]);
}

/**
* Converts a String to a float
*/
float stringToFloat(String str) {
  char arr[str.length()];
  str.toCharArray(arr, sizeof(arr));
  return atof(arr);
}
« Última modificação: 05 de Abril de 2012, 10:44 por TigPT »