Autor Tema: Hardware y sofware de un joystick  (Leído 8222 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado japifer_22

  • PIC18
  • ****
  • Mensajes: 405
Re: Hardware y sofware de un joystick
« Respuesta #15 en: 12 de Marzo de 2010, 19:57:09 »
hola menta, bueno con respecto al cambio esta bien solo que lo estava haciendo con la mano que no domino bien :shock:, solo eso, con respecto a que tenga un punto muerto cuando este enganchado el cambio todavia no lo ago. solo ahora me esta dando dolor de caveza el programa en la parte de detectar en que cambio esta y si es de decremento o aumento para pasarla a los reles correspondiente de aumento de marcha o viceverza.
una ayudita no m viene nada de mal por si les tinca ^^  :oops:. explico mejor mi problema.
quiero hacer que:

como bien e estado mencionando mi pic tiene 2 reles, uno de aumento de marcha y el otro de decrementode marcha, ahora bien para poder activar alguno de los 2 reles tengo que saver en que posicion esta el cambio. pero en este punto tengo que ver si estoy incrementando la marcha o la estoy bajando para asi poder hacer las sumas y restas correspondiente para que el rele asignado en ese instante se active tantas veces como resultado aya quedado. doy un ejemplo para expresarm mejor:

supon que estoy en neutro, ahora bien al pasar a primera se activa el rele de incrementar marcha 1 vez y si paso a segunda tambien se activa el rele de subir marcha 1 vez ya que como estaba en primera le falta 1 para la segunda. ahora bien si paso de primera a tercera el rele se presiona 2 veces, y asi susesivamente, pero si yo paso de tercera a primera el programa tiene que presionar el rele de decremento y no de incremento 2 veces para llegar a la primera y asi con todo los cambios. bueno espero algun ayudita.
saludos!

Desconectado Menta

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 607
Re: Hardware y sofware de un joystick
« Respuesta #16 en: 12 de Marzo de 2010, 20:34:04 »
En el video identificas bien la posición de la palanca... supongo que le asignas números del 1 al 5 a las marchas y 0 para el neutro... bueno yo haría un bucle donde consulto por la posición de la palanca en forma constante, es decir un polling creo....

Me parece que tu problema está en que el juego, está pensado para marchas secuenciales donde por ejemplo pasas de 3 a 4, mientras que en tu palanca pasas de 3 a 0 y de 0 a 4 ...
por lo que lo mejor sería que estando en 3 y pasas a 0 no hacer nada hasta que se pase a otro número de marcha... el temá es que de esa manera no podrás poner nunca en neutro...  :(

Puede ser que el juego arranca en neutro y de ahí en más siempre tengas una marcha puesta a no ser que dejes en neutro unos 2 o 3 segundos que si estás haciendo un cambio es tiempo de sobra para terminarlo, mientras que si dejas en neutro todo ese tiempo se pone en neutro definitivamente...

Define primero esta cuestión y según esto vemos como hacemos el código...
     

Desconectado japifer_22

  • PIC18
  • ****
  • Mensajes: 405
Re: Hardware y sofware de un joystick
« Respuesta #17 en: 12 de Marzo de 2010, 20:46:41 »
hola bueno eso que mencionas ya lo avia pensado y decidi lo siquiente: como todo juego de pc empieza en primera (creo) yo pongo en primera la la palanca antes que se tenga el control de los cambios en el juego, pero como bien dices tu ahy momentos que para pasar de 1 a 3 tengo que pasar por neutro este neutro no lo tomo en cuenta ya que pretendo que solo se active el neutro si solo a pasado mas de 1.5 a 2 segundos, ya que si estoy jugando y quiero pasar cambio yo creo que no me dmorare mas de ese tiempo en pasar el cambio y para poner neutro solo tengo que esperar en neutro 1.5 a 2 seg para que se active.
saludos!

Desconectado japifer_22

  • PIC18
  • ****
  • Mensajes: 405
Re: Hardware y sofware de un joystick
« Respuesta #18 en: 12 de Marzo de 2010, 23:29:26 »
hola otra vez, bueno traigo buenas nuevas logre hacer lo que decia de poder pasar las marchas y que esta me entrege los pulsos que correspondan a cada boton de subir o bajar marcha les dejo un video para que lo vean ademas le dejo el codigo, tambien tiene la particularidad que el neutro se activa dejando la palanca en neutro por mas de 1.5 seg como bien dije en almun momento anterior.
bueno les comento en detalle lo que hace la palanca de cambio:
el manubrio que tengo tiene varios botones y yo le asigne 2 de ellos para subir y bajar cambios, ahora bien mi programa que tengo en el pic lo que hace es tomar los cambios de mi palanca de cambio y asignarlos a los 2 botones ya mensionados, chequeando que se a subido o bajado la marcha, esto lo señala mediante un par de rele que van a los botones del manubrio, asi pudiendo subir o bajar la marcha segun se decee, ademas para poder estar en neutro se tiene que dejar en esa posicion y se activa al traspasar 1.5seg, esto es devido por que la palanca al pasar por ejemplo de segunda a tercera va a pasar por el neutro y nosotros no queremos que se active.
bueno espero que les aya gustado mi solucion para dotar de una palanca de cambio un manubrio cualquiera. bueno ahora me queda hacer la parte del embrague................
saludos!
a! y vean el video asi queda masclaro creo yo.

http://www.megaupload.com/?d=5CX5WWP6

hi el codigo para esto es este:
Código: [Seleccionar]
float const resolucion= 5.0/1024.0;      // Conversión con 10 bits 
float rango1, rango2;
int16 V1,V2;//variables para las señales analogas
int cambios=0,estado=0,contador;

void main()
{
  lcd_init();         //inicializa, o activa lcd
  setup_port_A( ALL_ANALOG );
  setup_adc( ADC_CLOCK_INTERNAL );
 
while(TRUE){
//avilita la entrada analoga N0
   set_adc_channel( 0 );//numero del puerto analogo N0
   delay_us(20);
   V1 = read_adc();//guarda el dato optenido de la entrada analoga
//avilita la entrada analoga N1
   set_adc_channel( 1 );//numero del puerto analogo N1
   delay_us(20);
   V2 = read_adc();//guarda el dato optenido de la entrada analoga
   
   
rango1=V1 * resolucion;
rango2=V2 * resolucion;

// lcd_gotoxy( 1, 2);
// printf(lcd_putc,"R2 %1.2f R1 %1.2f", rango2, rango1 );

if((rango1>=2.50 && rango1<=2.96) && (rango2>=2.50 && rango2<=2.96)){
delay_ms(800);
contador++;
}else{
contador=0;
}

if(contador==3){
  cambios=0;
  lcd_gotoxy( 1, 1);
  printf(lcd_putc,"Neutro");
}
else if((rango1>=3.90 && rango1<=3.96) && (rango2>=4.60 && rango2<=4.70)){
  cambios=1;
  lcd_gotoxy( 1, 1);
  printf(lcd_putc,"Primera");
}
else if((rango1>=1.10 && rango1<=1.13) && (rango2>=1.10 && rango2<=1.13)){
  cambios=2;
  lcd_gotoxy( 1, 1);
  printf(lcd_putc,"Segunda");
}
else if((rango1>=4.68 && rango1<=4.72) && (rango2>=2.78 && rango2<=2.82)){
  cambios=3;
  lcd_gotoxy( 1, 1);
  printf(lcd_putc,"Tercera");
}
else if((rango1>=0.20 && rango1<=0.30) && (rango2>=2.78 && rango2<=2.82)){
  cambios=4;
  lcd_gotoxy( 1, 1);
  printf(lcd_putc,"Cuarta");
}
else if((rango1>=4.18 && rango1<=4.23) && (rango2>=0.87 && rango2<=0.92)){
  cambios=5;
  lcd_gotoxy( 1, 1);
  printf(lcd_putc,"Quinta");
}
else if((rango1>=0.80 && rango1<=0.90) && (rango2>=0.80 && rango2<=0.90)){
  cambios=6;
  lcd_gotoxy( 1, 1);
  printf(lcd_putc,"Secta");
}
if(estado<cambios){
estado++;
output_high(PIN_C0);
delay_ms(250);
output_low(PIN_C0);
delay_ms(250);
}
else if(cambios<estado){
estado--;
output_high(PIN_C1);
delay_ms(250);
output_low(PIN_C1);
delay_ms(250);
}
lcd_gotoxy( 1, 2);
printf(lcd_putc," %i",estado);
}}

Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re: Hardware y sofware de un joystick
« Respuesta #19 en: 13 de Marzo de 2010, 17:44:34 »
quizas no sea el lugar para estas cuestiones, pero seria importante que vieras que juego es el que quieres usar, mas alla de que todos simulan similares.Luego ves como se comporta con lo que quieres hacer.
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.

Desconectado Menta

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 607
Re: Hardware y sofware de un joystick
« Respuesta #20 en: 13 de Marzo de 2010, 19:26:29 »
que bien... veo muy bien el programa... me parece que lo has resuelto bien en forma simple y precisa y así si bajas 2 cambios te hace la secuencia en dos pasadas consecutivas, muy bien...
veo que tenés sexta (secta  :D) y no tenés reversa... cuando chocás y tenés que salir pa' atrá ???
     

Desconectado japifer_22

  • PIC18
  • ****
  • Mensajes: 405
Re: Hardware y sofware de un joystick
« Respuesta #21 en: 14 de Marzo de 2010, 16:05:09 »
hola menta, gracias por lo del progama, y bueno la reversa la ago con el pedal de freno ya cuando el auto esta con una velocidad 0 al apretar el freno se activa como reversa de manera automatica. ahora estoy con el PCB, y la otra semana empieZo con la contruccion de la pedalera, ya que devido al terremoto en mi país no se encuentra casi nada avierto, con respecto a las tiendas y demaces.(lamentable por toda la gente que esta sufriendo en estos momentos por consecuencia del terremoto.........ARRIBA CHILE QUE CON UN POCO DE SUDOR Y SACRIFICIO SE PUEDE SALIR A DELANTE........ TE QUIERO CHILE)
saludos!

Desconectado japifer_22

  • PIC18
  • ****
  • Mensajes: 405
Re: Hardware y sofware de un joystick
« Respuesta #22 en: 18 de Marzo de 2010, 16:03:29 »
hola otra vez, bueno tengo una duda y no quiero abrir otro hilo asi que la ago aca por que de = forma tiene relacion con este proyecto. bueno quiero saver como funcionan los drive con los juegos, osea como es la interaccion entre ellos si los drive son de un joystick por ejemplo. como el juego le hace relacion a cada tecla y a esta le asigna una funcion especifica en el juego, sinedo que el boton es del joystick y no del teclado ?????????????????????????????

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Hardware y sofware de un joystick
« Respuesta #23 en: 18 de Marzo de 2010, 17:53:17 »
hola otra vez, bueno tengo una duda y no quiero abrir otro hilo asi que la ago aca por que de = forma tiene relacion con este proyecto. bueno quiero saver como funcionan los drive con los juegos, osea como es la interaccion entre ellos si los drive son de un joystick por ejemplo. como el juego le hace relacion a cada tecla y a esta le asigna una funcion especifica en el juego, sinedo que el boton es del joystick y no del teclado ?????????????????????????????

Hay muchos juegos que tienen la opción de configurar los mandos, ya sea con el teclado o con joystick.
El Colin McRae te permitía configurar que botón asignabas a cada mando y también te permitía asignar de distintas manera los controles analógicos.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas


 

anything