Bass Shaker

Español

Re: Bass Shaker

Postby JBDLink » Fri 17. Jun 2016, 18:33

jordibcn wrote:Muchas gracias JBDLink, conseguí ayer por la noche que me funciona el ButtKicker por telemetria del X-sim, pero solo las RPM y el gear shake effect. Me gustaría que al pasar por los pianos vibrara... Tu lo has podido conseguir?

Y referente al sistema de viento, si me dices que deberia comprar y como hacerlo me lío a ello jeje

Que arduino compro? ( No estoy muy metido en este tema )
Después como se conecta el ventilador, quería poner solo 1 ventilador... será poco?
En teoría he visto que se conecta al puerto PWM, no? Pero ya puede el arduino suministrarle la corriente que necesita?
La Arduino tienes que alimentarla con 12V externos también no?

Muchas gracias ante todo!


Hola de nuevo!
Despues de añadir las rpm y el gear shake debes añadir el eje vertical de fuerzas g. Mirate este post donde comparten diferentes profiles. Prueba a copiar uno entero y luego tunearlo a tu gusto
viewtopic.php?f=30&t=67&start=10

Yo para el simulador de viento uso lo siguiente: 4 ventiladores de pc de 0.25A, un cargador de movil antiguo de 12v. a 1A, un arduino (cualquiera te sirve, yo tengo el arduino Uno y el Mega) una breadboard y cables para conectar y un transistor TIP120.
http://bildr.org/blog/wp-content/upload ... lenoid.png
El tip120 hace de puente entre los dos circuitos, el de 5v. (arduino por usb) y el de 12v. (ventiladores por el cargador de movil antiguo). El arduino manda la señal al tip120 en forma de PWM como bien tu dices.

Un solo ventilador será muy poco, yo con los 4 no estoy convencido, necesito más viento y no una pequeña brisa, pero estoy estudiando alternativas como ventiladores de coche de 12v. o incluso controlar algún ventilador de 220v y corriente alterna, pero eso son palabras mayores para mi!

Espero que te sirva la info!
Siempre es un placer compartir batallitas...

Saludos desde Mallorca!
JBDLink
 
Posts: 19
Joined: Wed 25. May 2016, 18:31
Has thanked: 0 time
Been thanked: 0 time

Re: Bass Shaker

Postby jordibcn » Tue 21. Jun 2016, 21:00

Buenas!

Me voy a dedicar al tema del ventilador ahora ya he dejado el tema del Buttkicker a mi gusto. He puesto tambien que salga la velocidad real en km/h en el volante Fanatec. Y que cuando aprete el freno al maximo vibre el volante como si fuera el ABS. Y he puesto solamente las RPM y el cambio de marcha en el tema del Buttkicker gamer 2. Las fuerzas verticales no le he encontrado el punto...

Pues en la imagen que me enviaste aparece una resistencia de 2.2k y luego en el ventilador un diodo en medio puede ser? Ese hay que ponerlo también?

Queria montarle esto:

http://es.aliexpress.com/store/product/ ... 4b43cfe900

Y una fuente de alimentacion de 24V 1A:

http://es.aliexpress.com/store/product/ ... e812e399e7

El Arduino:

http://es.aliexpress.com/store/product/ ... 6664aed65d

Breadboard:

http://es.aliexpress.com/store/product/ ... 8bbac22a36

Tip 120:

http://es.aliexpress.com/store/product/ ... 71d005ca18

Mas luego la resistencia de 2.2k

Necesitaría algo mas? Como lo ves? Yo creo que con esa " Turbina " de 24V y 0.6A tiene que tener suficiente fuerza como para moverme los pelos jeje
Attachments
jordibcn
 
Posts: 5
Joined: Fri 17. Jun 2016, 01:47
Has thanked: 0 time
Been thanked: 0 time

Re: Bass Shaker

Postby JBDLink » Wed 22. Jun 2016, 10:15

jordibcn wrote:Buenas!

Me voy a dedicar al tema del ventilador ahora ya he dejado el tema del Buttkicker a mi gusto. He puesto tambien que salga la velocidad real en km/h en el volante Fanatec. Y que cuando aprete el freno al maximo vibre el volante como si fuera el ABS. Y he puesto solamente las RPM y el cambio de marcha en el tema del Buttkicker gamer 2. Las fuerzas verticales no le he encontrado el punto...

Pues en la imagen que me enviaste aparece una resistencia de 2.2k y luego en el ventilador un diodo en medio puede ser? Ese hay que ponerlo también?

Queria montarle esto:

http://es.aliexpress.com/store/product/ ... 4b43cfe900

Y una fuente de alimentacion de 24V 1A:

http://es.aliexpress.com/store/product/ ... e812e399e7

El Arduino:

http://es.aliexpress.com/store/product/ ... 6664aed65d

Breadboard:

http://es.aliexpress.com/store/product/ ... 8bbac22a36

Tip 120:

http://es.aliexpress.com/store/product/ ... 71d005ca18

Mas luego la resistencia de 2.2k

Necesitaría algo mas? Como lo ves? Yo creo que con esa " Turbina " de 24V y 0.6A tiene que tener suficiente fuerza como para moverme los pelos jeje


Hola!

Me alegro que te animes a montar el simulador de viento! asi podemos compartir experiencias y mejorarlo entre todos.

En la imagen que te pasé, y es como lo tengo yo configurado, aparece una resistencia de 2.2k y un diodo, hay que añadirlo tal cual la foto sino tendrás problemas de interferencias, retornos y podrías quemar el arduino. Son piezas muy muy baratas pero esenciales.

Todas las piezas que has puesto parecen perfectas, y muy baratas! lo único que no veo en tu lista es el diodo.
Muy interesante la turbina de 24V. y 0.6A! ya me contarás que tal rinde y si despeina :D

Me ha gustado la idea de la vibración del volante imitando el ABS, lo probaré!

Y si, como bien tu dices, al eje vertical de fuerzas G tampoco le pillé el punto, y acabe pagando por el programa de la competencia, mucho mas configurable y sencillo. Mucho mejor resultado, pero de pago. Ahora tengo montados en el playseat 7 bass shakers, 2 en los pedales, 2 en el culo, y 3 en la espalda, configurado con 3 amplificadores y 2 tarjetas de sonido en modo quadrafonico. Son 3 zonas de vibracion configurables individualmente y en estereo. Es un terremoto! :lol:

Un saludo!
mantenme informado de tus progresos
JBDLink
 
Posts: 19
Joined: Wed 25. May 2016, 18:31
Has thanked: 0 time
Been thanked: 0 time

Re: Bass Shaker

Postby millahjovich » Tue 5. Jul 2016, 13:11

I have them placed with the X-sim, but neither have defined much. I have them in combination to a 2dof and I have not tested alone, I have always simultaneous movement and vibration. I put them to complement and feel the roar of the engine and stuff.
millahjovich
 
Posts: 5
Joined: Tue 5. Jul 2016, 11:39
Has thanked: 0 time
Been thanked: 0 time

Re: Bass Shaker

Postby jordibcn » Tue 19. Jul 2016, 10:40

Hola JBDLink,

Ya me ha llegado todo para empezar a meterme en el sistema de turbina por Arduino.

Tienes el código para el ODB2? Y me podrías indicar por encima los pasos que debería seguir?

Muchísimas gracias!
jordibcn
 
Posts: 5
Joined: Fri 17. Jun 2016, 01:47
Has thanked: 0 time
Been thanked: 0 time

Re: Bass Shaker

Postby JBDLink » Tue 19. Jul 2016, 11:13

jordibcn wrote:Hola JBDLink,

Ya me ha llegado todo para empezar a meterme en el sistema de turbina por Arduino.

Tienes el código para el ODB2? Y me podrías indicar por encima los pasos que debería seguir?

Muchísimas gracias!



Hola Jordi!

aqui tienes el código de arduino por OBD2

Code: Select all
//  X-Sim Sample code for receiving OBD2 values from the extractor without using the converter
//  OBD2 is industry standard, X-Sim will additionally expand the OBD2 PID with gear and other values
//
//  Usage:
//  Arduino has to be connected to a free USB port on the computer where the extractor is running
//  Open the extractor and open the settings menu, there you have to select the OBD2 menu
//  Add now your arduino comport to the OBD2 list.
//  After closing the dialog you will see the arduino LED will be enabled which represents receiving data.
//  After closing the extractor application the LED will switch off.
//  Use this code to insert your own display code at the fitting positions
//  Copyright 2013 Martin Wiedenbauer, X-Sim.de
//
//  References:
//  http://en.wikipedia.org/wiki/OBD-II_PIDs
//  http://elmelectronics.com/DSheets/ELM327DS.pdf
//  http://www.x-sim.de


bool extractordetected=false;   //Will get updated from last positive or negative receive
int receivebuffer[20]={0};      //Receive buffer


//JBD Leds
int TIP120pin = 11;   //pin FAN
int LEDon = 4;   //pin LED ON
int LED25 = 5;   //pin LED 25%
int LED50 = 6;   //pin LED 50%
int LED75 = 7;   //pin LED 75%
int LED100 = 8;   //pin LED 100%
//------------------------------


void setup()
{
   pinMode(13, OUTPUT); //Arduino UNO LED off
   digitalWrite(13, LOW);
   Serial.begin(9600);

   //Do here stuff to init display and zero to default

    //JBD Leds
    pinMode(TIP120pin, OUTPUT); // Set pin for output to control TIP120 Base pin
    pinMode(LEDon, OUTPUT);
    pinMode(LED25, OUTPUT);
    pinMode(LED50, OUTPUT);
    pinMode(LED75, OUTPUT);
    pinMode(LED100, OUTPUT);
    //----------------------

}

int HexToInt(int c)
{
   if (c >= '0' && c <= '9')
   {
      return c - '0';
   }
   else if (c >= 'a' && c <= 'f')
   {
      return c - 'a' + 10;
   }
   else if (c >= 'A' && c <= 'F')
   {
      return c - 'A' + 10;
   }
   else
   {
      return -1; // getting here is bad: it means the character was invalid
   }
}

int ParseReceiveBuffer(int commandhighbyte, int commandlowbyte, int receivelength)
{
   //First character is removed of the receivebuffer string and must not be verified again
   if( receivebuffer[0]=='1' && receivebuffer[2]==commandhighbyte && receivebuffer[3]==commandlowbyte )
   {
      //Parse 2 byte values on position 5 and 6 in the buffer string
      if(receivelength==7)
      {
         int highresult=HexToInt(receivebuffer[5]);
         int lowresult =HexToInt(receivebuffer[6]);
         if(highresult==-1 || lowresult==-1){return -1;}
         return ((16*highresult) + lowresult);
      }
      //Parse 4 byte values on position 5,6,8 and 9 in the buffer string
      if(receivelength==10)
      {
         int tophighresult=HexToInt(receivebuffer[5]);
         int toplowresult =HexToInt(receivebuffer[6]);
         int highresult=HexToInt(receivebuffer[8]);
         int lowresult =HexToInt(receivebuffer[9]);
         if(tophighresult==-1 || toplowresult==-1 || highresult==-1 || lowresult==-1){return -1;}
         return ((4096*tophighresult) + (256*toplowresult) + (16*highresult) + lowresult);
      }
   }
   return -1; //Something is wrong with the returned OBD2 echo command byte
}

//This function will wait for the first character in receivetrigger and will parse the result
int ReceiveValueWithTimeout(int receivetrigger, int commandhighbyte, int commandlowbyte, int receivelength)
{
   int arduinoserialbuffer=0;
   int buffercount=-1;
   for(int z=0; z < 1500; z++) //1500ms timeout should be enough
   {
      while(Serial.available())
      {
         if(buffercount==-1)
         {
            arduinoserialbuffer = Serial.read();
            if(arduinoserialbuffer != receivetrigger) //Wait until the trigger is reached, ignore echo, first character is not in the buffer
            {
               buffercount=-1;
            }
            else
            {
               buffercount=0;
            }
         }
         else
         {
            arduinoserialbuffer = Serial.read();
            receivebuffer[buffercount]=arduinoserialbuffer;
            buffercount++;
            if(buffercount > receivelength) //buffer has now waitlen character length
            {
               return ParseReceiveBuffer(commandhighbyte, commandlowbyte, receivelength);
               buffercount=-1;
            }
         }
      }
      delay(1);
   }
   return -1;
}

void ClearReceiveBuffer()
{
    while(Serial.available())
    {
        Serial.read();
    }
}

void SendEchoDisabled() //not used here and a part of the OBD2 ELM327 specifications, as INFO
{
   //ATE0 Echo disabled
   Serial.write('A');
   Serial.write('T');
   Serial.write('E');
   Serial.write('0');
   Serial.write('\r');
}

//010c Request RPM, remember:  OBD2 RPM is ((A*256)+B)/4
int GetOBD2RpmValue()
{
   //010c
        ClearReceiveBuffer();
   Serial.write('0');
   Serial.write('1');
   Serial.write('0');
   Serial.write('c');
   Serial.write('\r');
   return ReceiveValueWithTimeout('4','0','C',10);
}

//010d Request speed in kmh
int GetOBD2SpeedValue()
{
   //010d
   ClearReceiveBuffer();
   Serial.write('0');
   Serial.write('1');
   Serial.write('0');
   Serial.write('d');
   Serial.write('\r');
   return ReceiveValueWithTimeout('4','0','D',7);
}

//01e0 Request gear number
int GetOBD2GearValue()
{
   //01e0
   ClearReceiveBuffer();
   Serial.write('0');
   Serial.write('1');
   Serial.write('e');
   Serial.write('0');
   Serial.write('\r');
   return ReceiveValueWithTimeout('4','E','0',7);
}

void loop()
{
   int speed=0;
   int rpm=0;
   int gear=GetOBD2GearValue();
   while(gear >= 0)
   {
      if(extractordetected==false)
      {
         SendEchoDisabled();   //Will cause a OK\r as answer from the extractor, ignored in this code
         extractordetected=true;
      }
      //Read all values
      gear = GetOBD2GearValue(); //Notice: offset +1 because of reverse gear
      speed= GetOBD2SpeedValue();
      rpm  = GetOBD2RpmValue();
                rpm=rpm/4 ; //remember OBD2 RPM is ((A*256)+B)/4
      if(gear!=-1 && speed!=-1 && rpm!=-1)
      {
         digitalWrite(13, HIGH); //We have connection and all values are ok, turn on the LED
         
         
         //Do here your LCD or display stuff

              //JBD Leds
                digitalWrite(LEDon, HIGH); //We have connection and all values are ok, turn on the LED
               
                // 0% Fan speed
                if (speed < 75) { analogWrite(TIP120pin, 0);
                digitalWrite(LED25, LOW);
                digitalWrite(LED50, LOW);
                digitalWrite(LED75, LOW);
                digitalWrite(LED100, LOW);
                }               

                // 25% Fan speed
                if (speed > 75 && speed < 125) { analogWrite(TIP120pin, 16);
                digitalWrite(LED25, HIGH);
                digitalWrite(LED50, LOW);
                digitalWrite(LED75, LOW);
                digitalWrite(LED100, LOW);
                }
               
                // 50% Fan speed
                if (speed > 125 && speed < 175) { analogWrite(TIP120pin, 64);
                digitalWrite(LED25, HIGH);
                digitalWrite(LED50, HIGH);
                digitalWrite(LED75, LOW);
                digitalWrite(LED100, LOW);
                }

                // 75% Fan speed
                if (speed > 175 && speed < 200) { analogWrite(TIP120pin, 160);
                digitalWrite(LED25, HIGH);
                digitalWrite(LED50, HIGH);
                digitalWrite(LED75, HIGH);
                digitalWrite(LED100, LOW);
                }

                // 100% Fan speed
                if (speed > 200) { analogWrite(TIP120pin, 255);
                digitalWrite(LED25, HIGH);
                digitalWrite(LED50, HIGH);
                digitalWrite(LED75, HIGH);
                digitalWrite(LED100, HIGH);
                }
              //------------------------------------------------

      }
   }
   extractordetected=false;
   digitalWrite(13, LOW); //No connection, turn off the LED

   //Do here stuff to set display to zero or default
   
    //JBD Leds
    digitalWrite(LEDon, LOW); //No connection, turn off the LED
    //---------------------------------------------------------


   delay(2000); //No serial connection, poll serial port all two seconds + readtimeout until a running extractor is detected
}



Verás que en el código de arduino estan incluidos unos leds para indicarme la velocidad de los ventiladores, puedes ignorar esa parte de código si no enchufas los leds.

y aqui te mando un link para que veas como tienes que enchufarlo (sin LEDS de control de ventilador)
http://bildr.org/blog/wp-content/upload ... lenoid.png

Cualquier problema no dudes en preguntarme!

Saludos!!!
JBDLink
 
Posts: 19
Joined: Wed 25. May 2016, 18:31
Has thanked: 0 time
Been thanked: 0 time

Re: Bass Shaker

Postby jordibcn » Tue 2. Aug 2016, 17:01

Buenas JBDLink,

He probado la turbina de aire y funciona perfecta.

Pero no he conseguido que me funcione a través del OBD2 del Xtractor.

Podrías indicarme los pasos?

Ando perdido...

He conectado la turbina tal y como me indicaste aqui:

http://bildr.org/blog/wp-content/upload ... lenoid.png

A que pin debería conectar la turbina?

Aquí indica el 9 pero en el programa indica el 11...

Ya me dices,

Un saludo!
jordibcn
 
Posts: 5
Joined: Fri 17. Jun 2016, 01:47
Has thanked: 0 time
Been thanked: 0 time

Re: Bass Shaker

Postby Maida » Sat 10. Sep 2016, 19:13

Buenas a todos, haber si me podéis echar una mano, después del leer y leer no encuentro o no me entero de mucho pero bueno después de mucho pelear e conseguido hacerlo funcionar, el uso que le doy al xsim es para unos basshakers, después de descargar algún perfil al final e decidido empezar a crear uno desde 0, el problema que tengo es que creé 2 ejes, bs volumen y bs freq y empezé añadiendo el gear shak effect, lo del tema del % del volumen y de la frecuencia lo entiendo pero lo principal que quiero solucionar es que quería que los basshakers tuvieran el mismo efecto en 1° que en 6° marcha, es decir yo paso de punto muerto y lo noto muy poco independientemente de las rpm del motor y según voy subiendo la velocidad y las mar has cada vez se va notando más, quería hacerlo que lo hiciera en todas las marchas igual incluso un poco al revés, que se note más en 1° que en 6° marcha, no soy capaz, lo uso con assetto Corsa. Perdón por el tostón y gracias de antemano. Salu2
Maida
 
Posts: 2
Joined: Fri 9. Sep 2016, 11:26
Has thanked: 0 time
Been thanked: 0 time

Re: Bass Shaker

Postby Maida » Mon 12. Sep 2016, 20:28

Bueno ya voy entendiendo más cosas, el gear shak effect lo tenía sólo metido y al poner las rpm también a empezado a funcionar mejor, ahora hace el efecto bien, ahora voy a enredar con las fuerzas g.salu2
Maida
 
Posts: 2
Joined: Fri 9. Sep 2016, 11:26
Has thanked: 0 time
Been thanked: 0 time

Re: Bass Shaker

Postby dualin » Mon 26. Dec 2016, 21:29

@JBDLink @jordibcn Os he copiado un poco y he montado mi simulador de viento con dos turbinas parecidas a las de jordibcn, pero de 12V y 1,85A lo que dan 22W frente a los 14 de las turbinas que ha usado jordibcn y la verdad es que van bastante bien, a ver si las monto mañana en el cockpit y compruebo que tal, que yo uso Oculus y no se que tal se notara el aire. He modificado un poco el codigo para que tenga un escalón mas y ademas el mínimo sea mayor ya que mis turbinas con el primer escalón de pwm sonaban pero no se movían. En principio me gusta como soplan a las distintas velocidades, ya os contaré.

Saludos
Dualin
User avatar
dualin
 
Posts: 201
Images: 7
Joined: Tue 10. Jul 2012, 01:15
Has thanked: 1 time
Been thanked: 0 time

PreviousNext

Return to Spanish language

Who is online

Users browsing this forum: No registered users and 1 guest