Mostrando entradas con la etiqueta VB. Mostrar todas las entradas
Mostrando entradas con la etiqueta VB. Mostrar todas las entradas

sábado, 28 de noviembre de 2009

Live for Speed -> VB .NET (o como leer info del juego)

Como parte de mi "proyecto" necesito leer información del Live for Speed, como puede ser: marcha actual, velocidad, rpm, etc.... todo esto para que se muestren los datos en una "pantalla" que irá con el volante.

Después de varios dias buscando información me he encontrado con un blog donde hace mención a como obtener dicha información:
El Blog de 16BITBoy
En este blog hay un link a LFS External el cual os llevará al foro oficial de Live for Speed donde encontraréis información.


Enviando datos a PPJoy...... Simulando un Joystick

Aquí os explicaré como enviar datos mediante VB .NET a un Joystick Virtual del PPJoy.

Primero debemos agregar  PPJoyWrapper.dll a nuestro proyecto y hacer referencia a ella.
Seguidamente tenemos que añadir la siguiente línea al principio de nuestro código:
                         
Imports PPJoy

Creamos una instancia al objeto PPJoy y definimos una variable para indicar el número del joystick virtual:

Dim joy_no As Integer = 1  ' Número del Joystick Virtual.

Dim joy As New PPJoy.VirtualJoystick(joy_no)

Para enviar datos analógicos (por ejemplo los ejes):

joy.SetAnalogDataSourceValue(x, valor)   donde x es el nº de entrada analógica y valor pues eso, el valor

y para enviar datos digitales (por ejemplo los botones):

joy.SetDigitalDataSourceState(x, estado)  donde x es el nº del botón y estado TRUE/FALSE (pulsado)

No olvidarse después de enviar los datos de "decírselo" al PPJoy:

joy.SendUpdates()


Con todo esto ya podemos enviar datos al joystick virtual . Existen muchos mas métodos que si os interesa dentro del PPJoyWrapper (del cual tenéis el enlace mas abajo) encontraréis una ayuda donde os los explican.


jueves, 26 de noviembre de 2009

Leyendo datos de Arduino por el puerto COM..... en VB .NET

Una vez realizada la parte de Arduino toca la parte de VB.

Para leer los datos del puerto COM primero crearemos una instancia System.IO.Ports.SerialPort y configuraremos con la velocidad y demás necesarios para leer los datos:

       Dim ComPort as New System.IO.Ports.SerialPort()
       ComPort.PortName = puerto COM de Arduino
       ComPort.BaudRate = 115200
       ComPort.DataBits = 8
       ComPort.Parity = IO.Ports.Parity.None
       ComPort.StopBits = IO.Ports.StopBits.One
       ComPort.DtrEnable = True


Después abriremos el puerto:

        ComPort.Open()


Y por último hacer referencia al evento de recibir datos y llamar a la función para tratar los datos leídos:

         AddHandler ComPort.DataReceived, AddressOf función.
       

         Private Sub función(ByVal sender As System.Object, ByVal e As  
          System.IO.Ports.SerialDataReceivedEventArgs)
                                            ......................
        End Sub


En esta función básicamente lo que hay que hacer es un Split(ComPort.ReadLine()).ElementAt(x) , para ir leyendo los datos de las posiciones (x) separadas por un espacio,  hasta el salto de línea que manda Arduino.
De esta manera iremos teniendo los diferentes valores enviados por Arduino como pueden ser valores análogicos de los ejes, botones, etc.
Lo siguiente: mandar estos valores al joystick virtual por medio del PPJoyWrapper y simular las acciones del joystick.