• Welcome to LusoRobótica - Robótica em Português.
 

PAP - SONDA MOVEL - explorUino [CONCLUÍDO]

Started by _ze_pedro_, 10 de November de 2009, 19:44

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

guibot

iap é assim mesmo, cuidado que os chip da xbee é muito sensível, mais voltagem do que 3.3v ou amperagem a mais e diz-lhe adeus...    se puderes e se tiveres € usa um adaptador para xbee, facilita imenso a sua utilização

_ze_pedro_

hum ok ok

no arduino onde diz power 3.3v o xbee pode ser alimentado ai?

a escola é que vai investir mas nao me posso esticar e o adaptador nao dever assim tao barato nao é?

TigPT

Sim, pode ser alimentado por ai.

Mas se os pinos deste não forem 5V compatíveis, terás que utilizar divisores de tensão com resistencias ou logic level converters.

_ze_pedro_

ok ok ;)

eu vou ver isso bem qualquer duvida ponho aqui ;)

vou postar tambem umas fotos do que ja tenho feito

_ze_pedro_

#34
BOAS

alguem aqui me pode tirar uma duvida?

eu tenho um programa feito em python e no pc que o fiz funciona agora no pc para onde o passei nao funciona mas os programas sao da memso versao è tudo igual
a unica diferença é que no outro tinha o vista e neste tinha o xp

sera que isso tem alguma influencia??

da.me este erro

Traceback (most recent call last):
  File "C:\Documents and Settings\Pedro\Ambiente de trabalho\pap.py", line 44, in <module>
    screen = pygame.display.set_mode(size, pygame.FULLSCREEN)
error: No available video device

nao consigo perceber porque num pc funciona no outro nao

cump.

_ze_pedro_

#35
BOAS TENHO UMA DUVIDA

eu estou a fazer ums testes

gostava de saber pqq me da um erro no programa no arduino



alguem me pode ajudar?

int pwn_esq = (5);
int pwn_dir = (6);



void setup()
{
 
  Serial.begin(9600);
  pinMode (3, OUTPUT);
  pinMode (4, OUTPUT);
  pinMode (7, OUTPUT);
  pinMode (8, OUTPUT);
  pinMode (pwn_esq, OUTPUT);
  pinMode (pwn_dir, OUTPUT);
 
}

void loop()

{
  if ( Serial.available() > 0)
    {
    char inByte = Serial.read();
    delay(10);
    if (inByte == '*')
      {
      int len = 5;
      char inString[len];
      for (int i = 0; i <= len; i++)
        {
        inString[i] = Serial.read();
        }
     
   
      // Motores / Direcção
      if ((inString[0] == 0 + 0x30) && (inString[1] == 0 + 0x30))
        {
        // Mortor esquerda parado 
        digitalWrite(3, LOW);
        digitalWrite(4, LOW);
             
        // Motor direita parado
        digitalWrite(7, LOW);
        digitalWrite(8, LOW);
        }
     
      else
        if ((inString[0] == 1 + 0x30) && (inString[1] == 0 + 0x30))
          {
           // Mortor esquerda frente 
          digitalWrite(3, LOW);
          digitalWrite(4, HIGH);
          analogWrite (pwn_esq, 255);
             
          // Motor direita frente
          digitalWrite(7, LOW);
          digitalWrite(8, HIGH);
          analogWrite (pwn_dir, 255);
          }     
       
        else
          if ((inString[0] == 2 + 0x30) && (inString[1] == 0 + 0x30))
            {
            // Mortor esquerda tras 
            digitalWrite(3, HIGH);
            digitalWrite(4, LOW);
            analogWrite (pwn_esq, 255);
             
            // Motor direita tras
            digitalWrite(7, HIGH);
            digitalWrite(8, LOW);
            analogWrite (pwn_dir, 255);
            }
               
          else
            if ((inString[0] == 0 + 0x30) && (inString[1] == 1 + 0x30))
              {
              // Mortor esquerda tras 
              digitalWrite(3, HIGH);
              digitalWrite(4, LOW);
              analogWrite (pwn_esq, 255);
             
              // Motor direita frente
              digitalWrite(7, LOW);
              digitalWrite(8, HIGH);
              analogWrite (pwn_dir, 255);
              }
           
            else
              if ((inString[0] == 1 + 0x30) && (inString[1] == 1 + 0x30))
                {
                // Mortor esquerda parado 
                digitalWrite(3, LOW);
                digitalWrite(4, LOW);
                             
                // Motor direita frente
                digitalWrite(7, LOW);
                digitalWrite(8, HIGH);
                analogWrite (pwn_dir, 255);
                }
             
              else
                if ((inString[0] == 2 + 0x30) && (inString[1] == 1 + 0x30))
                  {
                  // Mortor esquerda parado 
                  digitalWrite(3, LOW);
                  digitalWrite(4, LOW);
                               
                  // Motor direita tras
                  digitalWrite(7, HIGH);
                  digitalWrite(8, LOW);
                  analogWrite (pwn_dir, 255);
                  }
               
                else
                  if ((inString[0] == 0 + 0x30) && (inString[1] == 2 + 0x30))
                    {
                    // Mortor esquerda frente 
                    digitalWrite(3, LOW);
                    digitalWrite(4, HIGH);
                    analogWrite (pwn_dir, 255)
                               
                    // Motor direita tras
                    digitalWrite (7, HIGH); // -----> O ERRO É A PARTIR DAQUI <-----
                    digitalWrite(8, LOW);
                    analogWrite (pwn_dir, 255);
                    }
                 
                  else
                    if ((inString[0] == 1 + 0x30) && (inString[1] == 2 + 0x30))
                      {
                      // Mortor esquerda frente 
                      digitalWrite(3,LOW);
                      digitalWrite(4,HIGH);
                      analogWrite (pwn_dir, 255)
                               
                      // Motor direita parado
                      digitalWrite(7,LOW);
                      digitalWrite(8,LOW);
                      }
                   
                    else
                      if ((inString[0] == 2 + 0x30) && (inString[1] == 2 + 0x30))
                        {
                        // Mortor esquerda tras 
                        digitalWrite(3,HIGH);
                        digitalWrite(4,LOW);
                        analogWrite (pwn_dir, 255)
                               
                        // Motor direita parado
                        digitalWrite(7,LOW);
                        digitalWrite(8,LOW);
                        }
                     
                                   
       
     
      }
  }
}


cump.
ze pedro

RicardoSantos

Supostamente tens vários erros:

1º (neste tenho algumas duvidas mas acho que está correcto como tenho)

   
int inString[len];
      for (int i = 0; i <= len; i++)
        {
        inString[i] = Serial.read();
        }


2º faltam-te ; em todos os analogWrite a partir de aqui
                   
analogWrite (pwn_dir, 255);
                               
// Motor direita tras
digitalWrite (7, HIGH); // -----> O ERRO É A PARTIR DAQUI <-----


_ze_pedro_

Quote from: RicardoSantos on 26 de May de 2010, 11:57
Supostamente tens vários erros:

1º (neste tenho algumas duvidas mas acho que está correcto como tenho)

   
int inString[len];
      for (int i = 0; i <= len; i++)
        {
        inString[i] = Serial.read();
        }


2º faltam-te ; em todos os analogWrite a partir de aqui
                   
analogWrite (pwn_dir, 255);
                               
// Motor direita tras
digitalWrite (7, HIGH); // -----> O ERRO É A PARTIR DAQUI <-----


2º o motor ai vai estar parado por isso nao necessita de pwn para controlar a velocidade acho que nao è disso :)

cump.
ze pedro

_ze_pedro_

o erro que me da è este

Quoteerror: expected';' before 'digitalWrite'
in function 'void loop()':
error: expected ';' before 'digitalWrite'

amando96

Quote2º faltam-te ; em todos os analogWrite a partir de aqui

_ze_pedro_

ja experimentei e da.me o mesmo erro:S

amando96

int pwn_esq = (5);
int pwn_dir = (6);



void setup()
{
 
  Serial.begin(9600);
  pinMode (3, OUTPUT);
  pinMode (4, OUTPUT);
  pinMode (7, OUTPUT);
  pinMode (8, OUTPUT);
  pinMode (pwn_esq, OUTPUT);
  pinMode (pwn_dir, OUTPUT);
 
}

void loop()

{
  if ( Serial.available() > 0)
    {
    char inByte = Serial.read();
    delay(10);
    if (inByte == '*')
      {
      int len = 5;
      char inString[len];
      for (int i = 0; i <= len; i++)
        {
        inString[i] = Serial.read();
        }
     
   
      // Motores / Direcção
      if ((inString[0] == 0 + 0x30) && (inString[1] == 0 + 0x30))
        {
        // Mortor esquerda parado 
        digitalWrite(3, LOW);
        digitalWrite(4, LOW);
             
        // Motor direita parado
        digitalWrite(7, LOW);
        digitalWrite(8, LOW);
        }
     
      else
        if ((inString[0] == 1 + 0x30) && (inString[1] == 0 + 0x30))
          {
           // Mortor esquerda frente 
          digitalWrite(3, LOW);
          digitalWrite(4, HIGH);
          analogWrite (pwn_esq, 255);
             
          // Motor direita frente
          digitalWrite(7, LOW);
          digitalWrite(8, HIGH);
          analogWrite (pwn_dir, 255);
          }     
       
        else
          if ((inString[0] == 2 + 0x30) && (inString[1] == 0 + 0x30))
            {
            // Mortor esquerda tras 
            digitalWrite(3, HIGH);
            digitalWrite(4, LOW);
            analogWrite (pwn_esq, 255);
             
            // Motor direita tras
            digitalWrite(7, HIGH);
            digitalWrite(8, LOW);
            analogWrite (pwn_dir, 255);
            }
               
          else
            if ((inString[0] == 0 + 0x30) && (inString[1] == 1 + 0x30))
              {
              // Mortor esquerda tras 
              digitalWrite(3, HIGH);
              digitalWrite(4, LOW);
              analogWrite (pwn_esq, 255);
             
              // Motor direita frente
              digitalWrite(7, LOW);
              digitalWrite(8, HIGH);
              analogWrite (pwn_dir, 255);
              }
           
            else
              if ((inString[0] == 1 + 0x30) && (inString[1] == 1 + 0x30))
                {
                // Mortor esquerda parado 
                digitalWrite(3, LOW);
                digitalWrite(4, LOW);
                             
                // Motor direita frente
                digitalWrite(7, LOW);
                digitalWrite(8, HIGH);
                analogWrite (pwn_dir, 255);
                }
             
              else
                if ((inString[0] == 2 + 0x30) && (inString[1] == 1 + 0x30))
                  {
                  // Mortor esquerda parado 
                  digitalWrite(3, LOW);
                  digitalWrite(4, LOW);
                               
                  // Motor direita tras
                  digitalWrite(7, HIGH);
                  digitalWrite(8, LOW);
                  analogWrite (pwn_dir, 255);
                  }
               
                else
                  if ((inString[0] == 0 + 0x30) && (inString[1] == 2 + 0x30))
                    {
                    // Mortor esquerda frente 
                    digitalWrite(3, LOW);
                    digitalWrite(4, HIGH);
                    analogWrite (pwn_dir, 255);
                               
                    // Motor direita tras
                    digitalWrite (7, HIGH); // -----> O ERRO É A PARTIR DAQUI <-----
                    digitalWrite(8, LOW);
                    analogWrite (pwn_dir, 255);
                    }
                 
                  else
                    if ((inString[0] == 1 + 0x30) && (inString[1] == 2 + 0x30))
                      {
                      // Mortor esquerda frente 
                      digitalWrite(3,LOW);
                      digitalWrite(4,HIGH);
                      analogWrite (pwn_dir, 255);
                               
                      // Motor direita parado
                      digitalWrite(7,LOW);
                      digitalWrite(8,LOW);
                      }
                   
                    else
                      if ((inString[0] == 2 + 0x30) && (inString[1] == 2 + 0x30))
                        {
                        // Mortor esquerda tras 
                        digitalWrite(3,HIGH);
                        digitalWrite(4,LOW);
                        analogWrite (pwn_dir, 255);
                               
                        // Motor direita parado
                        digitalWrite(7,LOW);
                        digitalWrite(8,LOW);
                        }
                     
                                   
       
     
      }
  }
}


Foi só por ";" no fim dos analogWrite, aqui compila...

_ze_pedro_

pura falta de atençao  ;D

obrigado ;);)

RicardoSantos

O que importa é que agora funciona ;)

Cumps

_ze_pedro_

agora a ver se faz o que quero

daqui a bocado quando ja estiver em casa ja vou ver :D depois ja digo aqui se funcionou

cumps