elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ayuda con arduino robot de sumos URGE por favor
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con arduino robot de sumos URGE por favor  (Leído 5,061 veces)
UsamaEK

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Ayuda con arduino robot de sumos URGE por favor
« en: 3 Octubre 2014, 16:38 pm »

Hola, querria saber si alguien podria hacer un codigo con el lenguaje que usa arduino (derivacion de c++)para hacer un robot de sumo es para el colegio y urge un poco.
Lo que tiene que hacer el robot es lo siguiente que hace este video: https://www.youtube.com/watch?v=zW4fSSlaZ-8
que por los sensores detecte la linea blanca para que no se salga y que si ve un objetivo lo empuje hasta sacarlo del 'ring' sin que salga el. Ya se que la la mayoria del foro que saben programacion son hackers y que les gusta ayudar dando pistas para que los nobatos como yo aprendamos y la verdad lo agradezco mucho por que he aprendido muchas cosas en este foro pero es que esto es para el colegio y no tengo ni idea de arduino  si el lenguaje de arduiono no deberia estar en este subforo avisadme y gracias


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con arduino robot de sumos URGE por favor
« Respuesta #1 en: 3 Octubre 2014, 17:28 pm »

prohibido solicitar códigos hechos

si tienes una duda especifica sobre un tema puntual, eres libre de publicarla y dar más detalle... no se cuales son los robot sumos URGE, pero si das detalle se te puede ayudar


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
UsamaEK

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Ayuda con arduino robot de sumos URGE por favor
« Respuesta #2 en: 3 Octubre 2014, 18:55 pm »

Los robot de sumo son unos robot que funcionan con una placa de arduino. Tan solo tiene dos funciones:
1.- Detectar el color blanco para no tocarlo
2.- Empujar todo objeto que se encuentre dentro del radio de los sensores.
Eso es lo que debe hacer el codigo pero he buscado en el foro y no hay temas sobre el lenguaje de arduino se que es un derivado de lenguaje c++.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con arduino robot de sumos URGE por favor
« Respuesta #3 en: 3 Octubre 2014, 19:04 pm »

no has conseguido nada específicamente sobre el robot, sus sensores y como usarlos? sabes algo de C para poder programar?
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
UsamaEK

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Ayuda con arduino robot de sumos URGE por favor
« Respuesta #4 en: 3 Octubre 2014, 19:36 pm »

Sobre los sensores los tengo y se montarlos ya que sobre el tema del hardware  no tengo problemas el problema es que necesito saber el como hacer el codigo. Se algo de lenguaje C pero no mucho estoy apenas comenzando con el code blocs.He sacado algunos  codigos y los que he visto que parecen estar bien los he moificado  donde creia un fallo el codigo que he usado es este:

void setup() {
 
void setup() {
 
{
pinMode (motorR1, OUTPUT);
pinMode (motorR2, OUTPUT);
pinMode (motorL1, OUTPUT);
pinMode (motorL2, OUTPUT);
pinMode (sensFder, INPUT);
pinMode (sensFizq, INPUT);
pinMode (sensTder, INPUT);
pinMode (sensTizq, INPUT);
}


}

void loop() {
 {
float buf1, buf2, valord, valort;
valord=analogRead(sensDel);
valort=analogRead(sensTras);
buf1=valord*500/1024;
buf2=valort*500/1024;

if(buf1 >= 480)
{
atras();
izquierda();
delay(400);
atras();
}


if(buf2 >= 480)
{
adelante();
izquierda();
delay(400);
adelante();
}

if(digitalRead (sensFder)==HIGH )
{
golpeFder();
}

if(digitalRead (sensFizq)==HIGH)
{
golpeFizq();
}

if(digitalRead (sensTder)==HIGH)
{
golpeTder();
}

if(digitalRead (sensTizq)==HIGH)
{
golpeTizq();
}

}

int adelante()
{
digitalWrite (motorR1, LOW);
digitalWrite (motorR2, HIGH);
digitalWrite (motorL1, HIGH);
digitalWrite (motorL2, LOW);
}

int atras()
{
digitalWrite (motorR1, HIGH);
digitalWrite (motorR2, LOW);
digitalWrite (motorL1, LOW);
digitalWrite (motorL2, HIGH);
}

int izquierda()
{
digitalWrite (motorR1, LOW);
digitalWrite (motorR2, HIGH);
digitalWrite (motorL1, LOW);
digitalWrite (motorL2, HIGH);
delay(100);
}

int derecha()
{
digitalWrite (motorR1, HIGH); //L
digitalWrite (motorR2, LOW);
digitalWrite (motorL1, HIGH);
digitalWrite (motorL2, LOW);//L
delay(100);
}

int golpeFder()
{
atras();
delay(1000);
derecha();
delay(300);
adelante();
}

int golpeFizq()
{
atras();
delay(1000) ;
izquierda();
delay(300);
adelante();
}

int golpeTder()
{
adelante();
delay(1000);
izquierda();
delay(300);
atras();
}

int golpeTizq()
{
adelante();
delay(1000);
derecha();
delay(300);
atras();
}

Y el erro que me da es este:
Arduino: 1.5.8 (Windows 7), Placa:"Arduino Uno"

sketch_oct03b.ino: In function 'void setup()':
sketch_oct03b.ino:4:10: error: 'motorR1' was not declared in this scope
sketch_oct03b.ino:5:10: error: 'motorR2' was not declared in this scope
sketch_oct03b.ino:6:10: error: 'motorL1' was not declared in this scope
sketch_oct03b.ino:7:10: error: 'motorL2' was not declared in this scope
sketch_oct03b.ino:8:10: error: 'sensFder' was not declared in this scope
sketch_oct03b.ino:9:10: error: 'sensFizq' was not declared in this scope
sketch_oct03b.ino:10:10: error: 'sensTder' was not declared in this scope
sketch_oct03b.ino:11:10: error: 'sensTizq' was not declared in this scope
sketch_oct03b.ino: In function 'void loop()':
sketch_oct03b.ino:20:19: error: 'sensDel' was not declared in this scope
sketch_oct03b.ino:21:19: error: 'sensTras' was not declared in this scope
sketch_oct03b.ino:42:17: error: 'sensFder' was not declared in this scope
sketch_oct03b.ino:47:17: error: 'sensFizq' was not declared in this scope
sketch_oct03b.ino:52:17: error: 'sensTder' was not declared in this scope
sketch_oct03b.ino:57:17: error: 'sensTizq' was not declared in this scope
sketch_oct03b.ino:65:1: error: a function-definition is not allowed here before '{' token
sketch_oct03b.ino:73:1: error: a function-definition is not allowed here before '{' token
sketch_oct03b.ino:81:1: error: a function-definition is not allowed here before '{' token
sketch_oct03b.ino:90:1: error: a function-definition is not allowed here before '{' token
sketch_oct03b.ino:99:1: error: a function-definition is not allowed here before '{' token
sketch_oct03b.ino:108:1: error: a function-definition is not allowed here before '{' token
sketch_oct03b.ino:117:1: error: a function-definition is not allowed here before '{' token
sketch_oct03b.ino:126:1: error: a function-definition is not allowed here before '{' token
sketch_oct03b.ino:132:1: error: expected '}' at end of input
Error de compilación

  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con arduino robot de sumos URGE por favor
« Respuesta #5 en: 3 Octubre 2014, 19:46 pm »

usa las etiquetas GeSHi cuando publiques codigo (usa lenguaje C)


el error que te da eso bien te lo dice :P

primero

Código:
sketch_oct03b.ino:4:10: error: 'motorR1' was not declared in this scope
sketch_oct03b.ino:5:10: error: 'motorR2' was not declared in this scope
sketch_oct03b.ino:6:10: error: 'motorL1' was not declared in this scope
sketch_oct03b.ino:7:10: error: 'motorL2' was not declared in this scope
sketch_oct03b.ino:8:10: error: 'sensFder' was not declared in this scope
sketch_oct03b.ino:9:10: error: 'sensFizq' was not declared in this scope
sketch_oct03b.ino:10:10: error: 'sensTder' was not declared in this scope
sketch_oct03b.ino:11:10: error: 'sensTizq' was not declared in this scope

es decir en la linea 5 usas
Código
  1. pinMode (motorR1, OUTPUT);

pero, en que pin está motorR1, es decir, no le estás dando un numero que lo guíe, primero debes definir todas esas variables con numero reales, ej si motorR1 es pin 1

Código
  1. int motorR1 = 1;

el segundo error (que hace que se lancen los otros es
Código
  1. void loop() {
  2. {

esa segunda llave abierta "{" genera los conflictos

y tambien la doble declaracion de setup corrige eso e intenta nuevamente
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
UsamaEK

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Ayuda con arduino robot de sumos URGE por favor
« Respuesta #6 en: 3 Octubre 2014, 20:29 pm »

Engel lex gracias a tus consejos ya he sacado un codigo que esta verificado y compilado ahora tan solo lo debere usar en la placa este lunes y disfrutar, ya que teoricamente funciona. Lo paso por si a alguien quiere darme otra idea, ya funciona pero el ser humano busca la perfeccion inexistente.
Código:

int motorR1 = 3;
int motorR2 = 4;
int motorL1 = 5;
int motorL2 = 6;
int sensFder = 7;
int sensFizq = 8;
int sensTder = 9;
int sensTizq = 10;
int sensDel = 0;
int sensTras = 1;



void setup() {

pinMode (motorR1, OUTPUT);
pinMode (motorR2, OUTPUT);
pinMode (motorL1, OUTPUT);
pinMode (motorL1, OUTPUT);
pinMode (sensFder, INPUT);
pinMode (sensFizq, INPUT);
pinMode (sensTder, INPUT);
pinMode (sensTizq, INPUT);
}
 

void loop() {


  float buf1, buf2, valord, valort;
  valord = analogRead(sensDel);
  valort = analogRead(sensTras);
  buf1 = valord * 500 / 1024;
  buf2 = valort * 500 / 1024;

  if (buf1 >= 480)
  {
    atras();
    izquierda();
    delay(400);
    atras();
  }


  if (buf2 >= 480)
  {
    adelante();
    izquierda();
    delay(400);
    adelante();
  }

  if (digitalRead (sensFder) == HIGH )
  {
    golpeFder();
  }

  if (digitalRead (sensFizq) == HIGH)
  {
    golpeFizq();
  }

  if (digitalRead (sensTder) == HIGH)
  {
    golpeTder();
  }

  if (digitalRead (sensTizq) == HIGH)
  {
    golpeTizq();
  }

}

int adelante()
{
  digitalWrite (motorR1, LOW);
  digitalWrite (motorR2, HIGH);
  digitalWrite (motorL1, HIGH);
  digitalWrite (motorL2, LOW);
}

int atras()
{
  digitalWrite (motorR1, HIGH);
  digitalWrite (motorR2, LOW);
  digitalWrite (motorL1, LOW);
  digitalWrite (motorL2, HIGH);
}

int izquierda()
{
  digitalWrite (motorR1, LOW);
  digitalWrite (motorR2, HIGH);
  digitalWrite (motorL1, LOW);
  digitalWrite (motorL2, HIGH);
  delay(100);
}

int derecha()
{
  digitalWrite (motorR1, HIGH); //L
  digitalWrite (motorR2, LOW);
  digitalWrite (motorL1, HIGH);
  digitalWrite (motorL2, LOW);//L
  delay(100);
}

int golpeFder()
{
  atras();
  delay(1000);
  derecha();
  delay(300);
  adelante();
}

int golpeFizq()
{
  atras();
  delay(1000) ;
  izquierda();
  delay(300);
  adelante();
}

int golpeTder()
{
  adelante();
  delay(1000);
  izquierda();
  delay(300);
  atras();
}

int golpeTizq()
{
  adelante();
  delay(1000);
  derecha();
  delay(300);
  atras();
}

PD: Te vuelvo a dar las gracias.
En línea

Minusfour_cierralo_o_baneamefull


Desconectado Desconectado

Mensajes: 571


Ver Perfil
Re: Ayuda con arduino robot de sumos URGE por favor
« Respuesta #7 en: 18 Octubre 2014, 04:43 am »

Si quieres pulir un poco mas, la función delay intenta evitarla, la razón es que paraliza todo el programa y podrías ejecutar otras cosas y ser mas veloz.

Para sustituirlo bastaría con esto:

Código
  1. long interval = 500; //aqui pones los milisegundos
  2.  
  3. void loop(){
  4.  
  5. if(currentMillis - previousMillis > interval) {
  6.           previousMillis = currentMillis;  
  7.           accion>>>poner acciones
  8.    }
  9. }
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda: Arduino + java
Electrónica
carepapa 1 4,977 Último mensaje 29 Noviembre 2011, 03:59 am
por carepapa
Necessito ayuda con Arduino
Electrónica
eda6 2 4,143 Último mensaje 28 Enero 2013, 07:08 am
por Falso Positivo
Duda con Arduino. Urgente por favor.
Dudas Generales
SARGE553413 2 1,883 Último mensaje 9 Julio 2013, 04:57 am
por engel lex
me urge por favor
Programación C/C++
cridve 1 1,725 Último mensaje 15 Febrero 2019, 12:39 pm
por EdePC
me urge por favor
Programación C/C++
cridve 1 1,987 Último mensaje 29 Marzo 2019, 09:02 am
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines