Pido colaboración en proyecto coche 4x4 con 4 motores

Buenas chicos!!

Me encanta la robótica, aunque no se nada :p, pero me apasiona mucho y he empezado un proyecto con Arduino que se llama "n2K".

En principio será un coche 4x4 con 4 motores que serán controlados por un mando de Ps2 mediante la librería PSX. Más adelante le iré incorporando todas las cosas que se me ocurran e ir modificándolo y perfeccionándolo.

Esto es lo que tengo hasta ahora.



Está basado en Arduino Duemilanove con Atmega328 (En posteriores modificaciones pondré el Mega :p ) Lleva 4 motores alimentados por una batería de 12v de 0.8Ah. Para el control de los motores he utilizado un Driver Para Motores Continua Doble Puente en H con L298 que a su vez alimenta el Arduino (5v).

Anteriormente estaba alimentado por 6 pilas AA pero apenas tenía fuerza. Ahora si que va rapidito :)

Ahora lo que necesito es ayuda para controlar los motores mediante un mando de la PS2 mediante la librería PSX de Arduino. He montado el adaptador Wireless del mando y ejecutando el ejemplo que aparece en la librería. Según he comprobado en Serial todo funciona correctamente exceptuando que cuando pulsas la X se marca dos veces y cuando pulsas el cuadrado solo funciona cuando levantas el botón no con la pulsación. Deciros que lo he montado sin resistencias.

He probado un código que he visto por internet pero me dice que no detecta el mando (Adjunto el código que he cogido de internet) También se puede controlar por bluetooth pero esa parte del código no lo necesito. Me he vuelto loco durante varios días pero por mi falta de conocimientos me han impedido avanzar nada, por eso estoy aquí para ver si vosotros me podéis echar una mano porque tengo muchas ganas de hacer funcionar esto y a partir de aquí (Lo más importante para mi ahora :p ) ya es ir avanzando poquito a poco.

Espero vuestra ayuda ansiosamente :p

Espero que os haya gustado, pero tened en cuanta, SOY NOVATO :LOL:



Saludos!!
 

Adjuntos

  • TanqueBT.ino.txt
    7.9 KB · Visitas: 8
Chicos!! Necesito ayuda!!

Después de varios días llego a mi desesperación por algo "simple" que ya está hecho.

He leído que hay que poner una resistencia de 10K entre VCC (5v) y DATA. La he puesto pero en el serial recibo este mensaje:

Controller refusing to enter Pressures mode, may not support it.
DualShock Controller Found

Esto me pasa con un mando NO de SONY. Si conecto el mando de SONY obtengo otro error:

No controller found, check wiring, see readme.txt to enable debug. visit www.billporter.info for troubleshooting tips
Unknown Controller type

La alimentación del receptor Wireless del mando Ps2 lo he alimentado a 3.3v desde el propio arduino.

Seguro que es fácil para vosotros, pero me estoy volviendo loco para que detecte el mando!

Espero vuestra ayuda.

Saludos!
 
Ya lo he solucionado. Gracias...

Tengo otro problema pero es de código. No consigo hacer funcionar los motores con el mando. Aquí esta el código. He modificado el código de masqfotos.blogspot.com.

Lo que quiero es mover los motores con los joystick analógicos.

Código:
#include <PS2X_lib.h>

PS2X ps2x;

int error = 0; 
byte type = 0;
byte vibrate = 0;

//Motor 1
int mo1=6;    //PWD //EB
int act11=7;  //I4
int act12=8;  //I3

//Motor 2
int mo2=5;   //PWM //EA
int act21=3;  //I1
int act22=4; //I2

int ve1=0;
int ve2=0;

int ve=80;

int re1=40;
int re2=40;

//Luces delanteras
int luz=9;
int contluz=0;

//Configuracion inicial
void setup(){
  Serial.begin(9600);
  
  //Inicializaciónn mando PS2
  error = ps2x.config_gamepad(13,11,10,12, true, true);   //GamePad(clock, command, attention, data, Pressures?, Rumble?)
  if(error == 0){
    Serial.println("Found Controller, configured successful.");
  }
  else if(error == 1)
    Serial.println("No controller found, check wiring.");
    else if(error == 2)
    Serial.println("Controller found but not accepting commands.");
    else if(error == 3)
    Serial.println("Controller refusing to enter Pressures mode, may not support it. ");   
    type = ps2x.readType(); 
    switch(type) {
      case 0:
    Serial.println("Unknown Controller type");
      break;
      case 1:
    Serial.println("DualShock Controller Found");
      break;
      case 2:
    Serial.println("GuitarHero Controller Found");
      break;
    }
}//Fin Configuración Inicial

//Programa principal
void loop(){ 
  ps2x.read_gamepad(); //read controller and set large motor to spin at 'vibrate' speed    
  if(error == 1) //Salta el bucle si no encuentra mando.
  return; 
  else{ //DualShock Controller    
       
  //Sistema de movimiento de orugas
  if(ps2x.Button(PSB_L2)){
      ve=ve-2;
      if(ve<80){
        ve=80;
      }
    }
    
   if(ps2x.Button(PSB_R2)){
     ve=ve+2;
     if(ve>254){
       ve=254;
     }
   }
    
  if(ps2x.Button(PSB_L1)){
    re1=80;
  }
  else{
    re1=0;
  }
  if(ps2x.Button(PSB_R1)){
    re2=80;
  }
  else{
    re2=0;
  }
  ve1=(ps2x.Analog(PSS_LY));
  ve2=(ps2x.Analog(PSS_RY));

  if (ve1<105){
    digitalWrite(act11, LOW);
    digitalWrite(act12, HIGH);
    analogWrite(mo1,ve-re1);
  }
  else if (ve1>149){
    digitalWrite(act11, HIGH);
    digitalWrite(act12, LOW);
    analogWrite(mo1,ve-re1);
  }
  else {
    digitalWrite(act11, LOW);
    digitalWrite(act12, LOW);
    analogWrite(mo1,0);
  }

  if (ve2<105){
    digitalWrite(act21, HIGH);
    digitalWrite(act22, LOW);
    analogWrite(mo2,ve-re2);
  }
  else if (ve2>149){
    digitalWrite(act21, LOW);
    digitalWrite(act22, HIGH);
    analogWrite(mo2,ve-re2);
  }
  else {
    digitalWrite(act21, LOW);
    digitalWrite(act22, LOW);
    analogWrite(mo2,0);
  }
  }//DualShock Controller 

  delay(25);
     
}//Fin del LOOP
 
Última edición por un moderador:
QUE tal el mio es un poco mas feo ,pero creo qUE buscamos lo mismo,a mi me fallan todas las libRerías qUE probe unas en compilacion y otras en funciones diferentes.A ti el dichoso PSX PSX; te compila????????

Pero yo lo-necesito con cable,pero tu lo haces como yo hasta ahora Analogico,lo que no encuEntro la forma de hacerlo digital.He probado todos los esquemas ,bueno un monton.


A ti al final con las resistencias pull up ya te va bien?
 
Última edición por un moderador:
Atrás
Arriba