Tema: Te enseño: Como Fabricar tus propios Guantes Hápticos Rovian@s. (Legna)

Página 2 de 3

Mensajes

  • Legna

    20 Nov 2013 01:44

    Mensajes: 798

    Legna » 10 JUN 2020  9:40
    lammoncranstonHola otra vez, pero despues de hechas se pueden utilizar con Oculus Quest y se pudiera? con que software podemos utilizarlas? gracias.

     

    Hola lammoncranston,

     

    Este proyecto es para enseñar como fabricar unos Guantes Hápticos desde 0..., incluyendo algunos lenguajes de programación como he citado en anteriores posts.

     

    Entre estos lenguajes no figura Android, si deseas hacer cosas para Android deberás de realizar tus propios códigos.

     

    Yo he incluido Unity3D por que es de obligación para que las personas realicen sus propios proyectos…, desde juegos a aplicaciones u otros.

     

    Para poder usar los guantes, los desarrolladores de juegos deberían de usar las funciones que yo declare en los códigos con algún SDK..., por lo que no es posible usar los guantes dentro de ningún juego.

     

    Este proyecto es para tu realizar los tuyos…., gracias a que vas a disponer de un monto de información para llegar a buen puerto.

     

    A tu pregunta…, ¿Puedes usar los guantes en un Oculus Quest?..., la respuesta corta es “SI”.

     

    Puedes realizar tus proyectos en Unity3D y portarlos para ser usados en Android..., pero debes de saber programar en Android y Java.

     

    Un saludo.

    HMD VR-TEK WVR3 1440X1440*2 - Visita y Obtén mi Configuración para tu Visor VR en el Foro==> Steam - VR ................................................................................... Soluciones para el Wrappers VorpX y otros Hack Imprescindibles Rovianos en este Hilo ==> Wrappers VorpX ...................................................................................... Rovian@s os explico, como fábricar tus Guantes Hápticos con un Arduino® ABX00030 Nano 33 BLE desde este Hilo ==> Fábrica tus Guantes Hápticos

    2
  • Legna

    20 Nov 2013 01:44

    Mensajes: 798

    Legna » 10 JUN 2020  14:08

    Hola a tod@s,

     

    MI ARDUINO ESTA AVERIADO

     

    He enviado un correo a la tienda donde lo he adquirido:

     

    Hola buenas tardes,
    Os he comprado un Arduino Nano 33 BTL el 05/06/2020 Pedido: xxxx, y este parece averiado.

     

    Cuando intento de escribir el código en el…, se queda un led naranja parpadeando y nunca termina el programa Arduino IDE de escribir en el.

     

    El arduino, parpadea 3 veces y a la cuarta vez, parpadea más rápido unas 4,5 veces y vuelve el ciclo…, el terminal monitor siempre está en blanco.

     

    Díganme que procedimiento debo de seguir para la devolución de mi compra.

     

    Igualmente, me gustaría saber si el importe de la compra de este Arduino, lo puedo usar para comprar otras cosas u otro arduino distinto de vuestra tienda.

     

    Muchas gracias por la atención.

     

    Aqui disponeis de un video.
    Video de la Averia:

     

    ¿Es mala suerte o es que son malos?..., me queda la duda, quizás si puedo, lo cambio por otro tipo de Arduino.

     

    En fin…, empezamos bien. rolleyes

     

    Saludos y pido disculpas.

    HMD VR-TEK WVR3 1440X1440*2 - Visita y Obtén mi Configuración para tu Visor VR en el Foro==> Steam - VR ................................................................................... Soluciones para el Wrappers VorpX y otros Hack Imprescindibles Rovianos en este Hilo ==> Wrappers VorpX ...................................................................................... Rovian@s os explico, como fábricar tus Guantes Hápticos con un Arduino® ABX00030 Nano 33 BLE desde este Hilo ==> Fábrica tus Guantes Hápticos

    2
  • Clint E

    16 May 2018 00:29

    Mensajes: 129

    Visores

    Oculus Rift Development Kit 2
    Lenovo Explorer
    Deepoon E2
    Clint E » 10 JUN 2020  16:45
    LegnaHola a tod@s,

    MI ARDUINO ESTA AVERIADO

    He enviado un correo a la tienda donde lo he adquirido:

    Hola buenas tardes,
    Os he comprado un Arduino Nano 33 BTL el 05/06/2020 Pedido: xxxx, y este parece averiado.

    Cuando intento de escribir el código en el…, se queda un led naranja parpadeando y nunca termina el programa Arduino IDE de escribir en el.

    El arduino, parpadea 3 veces y a la cuarta vez, parpadea más rápido unas 4,5 veces y vuelve el ciclo…, el terminal monitor siempre está en blanco.

    Díganme que procedimiento debo de seguir para la devolución de mi compra.

    Igualmente, me gustaría saber si el importe de la compra de este Arduino, lo puedo usar para comprar otras cosas u otro arduino distinto de vuestra tienda.

    Muchas gracias por la atención.

    Aqui disponeis de un video.
    Video de la Averia:

    ¿Es mala suerte o es que son malos?..., me queda la duda, quizás si puedo, lo cambio por otro tipo de Arduino.

    En fin…, empezamos bien. rolleyes

    Saludos y pido disculpas.

     

    Genial, Legna, no todo es un camino de rosas. Está bien que muestres hasta los fallos, puesto que es fácil que a otros les pase lo mismo y no sepan qué diantres les pasa.

     

    Una sugerencia, si me la aceptas. Podrías hacer un video desde 0, sobre como los haces. La verdad es que me habia animado a hacerme unos guantes tambien pero me frena el no tener ni p.. idea de programación en arduino. Sería genial hacer un video desde 0, para que gente con nulos conocimiento pudiera hacerse unos guantes. En mi caso solamente controlo un poquite de soldadura. Pero por imitación si los pasos fueran cristalinos y explicados para "monguers" (como yo), no dudaría en ponerme "manos" a la obra. Creo que sería todo un reto didáctico. ¿Recogerías el guante?

     

    Un saludo y gracias de todas forma por tu labor!!

    1
  • TrollCruise

    28 May 2015 16:09

    Mensajes: 951

    Visores

    Cardboard
    Pimax 8K X
    Samsung Odyssey
    HP Reverb G2
    Oculus Quest 2
    Meta Quest 3
    TrollCruise » 10 JUN 2020  18:10

    Yo ya me he hecho con el Arduino (ABX00034), pero aun no tengo el resto de componentes (Los envios de Aliexpress hoy en dia tardan media vida). Aunque se algo de programación, nunca he programado Arduinos. A ver si soy capaz de buscar info para hacer un test rapido y ver si funciona (no vaya a ser que el mio tb este defctuoso).

    0
  • Legna

    20 Nov 2013 01:44

    Mensajes: 798

    Legna » 10 JUN 2020  21:20

    Hola Clint E & TrollCruise,

     

    Clint E, va haber mucha información sobre cómo realizarlos y construirlos, con fotos y explicaciones no te preocupes…, la verdad, que fabricarlos es la parte fácil, lo difícil es el Software.

     

    TrollCruise, mi Arduino Nano 33 ¡¡¡ IS ALIVE…, YA ESTA NUEVAMENTE VIVO ¡¡¡ y además os traigo más avances e información.

     

    El Arduino se comportaba de forma correcta hasta que intentabas programarle algo en el…, como he explicado, no finalizaba esta programación.

     

    El Arduino dispone de un modo de “programación por fuerza bruta - bootloader”, que el servicio técnico me ha proporcionado.

     

    En Arduino IDE, se dispone de esta función, pero a mí no me funcionaba.

    Procedimiento explicado por el Servicio Técnico:

     

    • Conecta la placa por USB, asegúrate de tener correctamente seleccionado el puerto COM en el IDE
    • Abre el ejemplo Blink y envíalo a la placa
    • Justo después de compilar y antes de que comience la carga, pulsa dos veces rápido el pulsador de reset (menos de 1 segundo en total)

     

    Esto hará que la placa entre en modo bootloader y pueda cargar el programa, puede que tengas que probar varias veces hasta conseguirlo.

     

    Y ya está…, CONTINUAMOS CON EL PROYECTO.

     

    Yo tambien estoy esperando componentes de china..., pero vamos, que hay cosas por hacer, no hay problemas.

     

    Saludos. :D

    HMD VR-TEK WVR3 1440X1440*2 - Visita y Obtén mi Configuración para tu Visor VR en el Foro==> Steam - VR ................................................................................... Soluciones para el Wrappers VorpX y otros Hack Imprescindibles Rovianos en este Hilo ==> Wrappers VorpX ...................................................................................... Rovian@s os explico, como fábricar tus Guantes Hápticos con un Arduino® ABX00030 Nano 33 BLE desde este Hilo ==> Fábrica tus Guantes Hápticos

    2
  • Legna

    20 Nov 2013 01:44

    Mensajes: 798

    Legna » 10 JUN 2020  21:27

    Hola a tod@s Rov´s,

     

    (Paso. 2): Realización de las utilidades Hola Mundo y Bienvenida, en Arduino IDE, Visual Basic 6.0 VB6 y Unity3D.

     

    En el mundo de la programación, cuando un programador realiza su primer código o se inicia en este mundo…, se hace uso del llamado código del Hola Mundo.

     

    El Hola Mundo, no es más que una pequeña aplicación para mostrar o comprobar algo…, este algo puede ser muy variado, pero sea lo que sea…, es para y únicamente comprobar que lo que estas programando simplemente funciona.

     

    En este proyecto no puede faltarnos tal detalle…, por ello, voy a realizar 3 Hola Mundos, los cuales son para comprobar que nuestro Arduino se conecta bien con nuestros Softwares o comprobar nuestros desarrollos.

     

    Hasta ahora, solo hemos realizado un Parpadeo para ver si tenemos conexión para poder programas el Arduino, pero el arduino no se comunica con nosotros por medio de ningún puerto de comunicación como por USB.

     

    Como he citado, voy a realizar 3 Hola Mundos…, los cuales son para comprobar que existe comunicación serial mediante puerto USB desde Arduino IDE, Visual Basic 6.0 y Unity3D.

     

    Para ello, he realizado este nuevo código que será parpadeado a nuestro Arduino Nano BLE.

     

    2.0º Hola Mundo…, Arduino IDE.

     

    //Proyecto Guantes Háptico by Legna 2020 - Para la Comunidad de <a href="https://www.realovirtual.com/" target="_blank" rel="nofollow">www.realovirtual.com/</a>
    // Código 2. Parpadeo del Hola Mundo para comprobar la correcta conexión por USB.

     

    void setup() {
    Serial.begin(9600); // Iniciamos el puerto de comunicación serial y le configuramos su velocidad.
    while (!Serial); // While es un bucle, el código no pasará al loop, hasta que confirme la conexión serial.
    }

     

    void loop() {
    Serial.println("Hola Mundo , Saludos Rovian@s..."); // Envía por el puerto de comunicación, el texto.
    delay(500); // Esperamos 500 milisegundos para repetir el ciclo loop.
    }

     

     

    Como podéis comprobar, el arduino realiza correctamente su función y está enviando el mensaje "Hola Mundo , Saludos Rovian@s..." por el puerto de comunicación USB.

     

    Este código, se estará ejecutando dentro del Arduino eternamente y lo podemos usar para realizar nuestras primeras pruebas de conexión tanto en Visual Basic 6.0 VB6 como en el motor gráfico Unity3D.

     

    ¿Estas preparado Rovian@?.., pues bien, presta atención.

     

    2.1º Hola Mundo…, Visual Basic 6.0.

     

    'Proyecto Guantes Háptico by Legna 2020 - Para la Comunidad de www.realovirtual.com/
    'Código 2.1.Hola Mundo en Visual Basic 6.0 para comprobar la correcta conexión por USB.

     

    Private Sub BotonConectar_Click() 'Al pulsar el botón de conectar...
    serial.CommPort = COM.Text 'El puerto de configuración por serial, es el escrito en COM.
    serial.PortOpen = True 'Iniciamos el puerto de comunicación serial.
    Timer.Interval = 100 'Ajustamos la velocidad de refresco del terminal mediante un reloj de tiempo.
    Timer.Enabled = True 'Iniciamos el reloj de tiempo.
    End Sub 'Fin de instrucciones del botón conectar.

     

    Private Sub Timer_Timer() 'Función del Reloj…
    Terminal.Text = Terminal.Text & serial.Input 'Decimos que se añadan los datos del serial al terminal.
    End Sub 'Fin de la instrucción del reloj.

     

     

    La función del reloj en Visual Basic 6.0, es para crear bucles que se repitan con un tiempo determinado, en este caso es cada 100 milisegundos.

     

    A esta aplicación, le he añadido la opción de poner manualmente el puerto de comunicación que se desea usar.

     

    Esta aplicación, hace uso de 1 reloj, 1 Módulo de Control COM que es el típico MSComm y 2 TextBox…., además he añadido un botón para poner todo en funcionamiento y ejecución.

     

    Puedes ingresar el puerto de comunicación que necesitas usar con tu Arduino, he copilado y creardo su ejecutable .EXE

     

    2.2º Hola Mundo…, Unity3D.

     

    El Unity3D suele dar problemas de comunicación con dispositivos, a diferencia que el Arduino IDE y Visual Basic 6.0…, unity haciendo uso de los I.O entradas y salidas del sistema, tiene problemas de optimizaciones.

     

    Suele haber problemas de sincronización y perdidas de datos porque no dispone de configuraciones básicas de estabilidad y conexiones.., no existe un módulo de control a priori, y es algo que hay que tener muy en cuenta.

     

    Estos errores traen muchos quebraderos de cabeza…, el más extendido pudiera ser el “The operation has timed-out”.

     

    //Proyecto Guantes Háptico by Legna 2020 - Para la Comunidad de <a href="https://www.realovirtual.com/" target="_blank" rel="nofollow">www.realovirtual.com/</a>
    //Código 2.2.Hola Mundo en Uniity3D para comprobar la correcta conexión por USB.

     

    using UnityEngine; //Usamos las funciones de Unity3D.
    using System.IO.Ports; //Usamos las funciones de los puertos I.O del Sistema.

     

    public class Hola_Mundo_Unity3D : MonoBehaviour //Es un identificador que usa Unity3d de tu Proyecto.
    {
    public SerialPort serial = new SerialPort("COM3"); //Creamos un puerto serial y usamos COM3.

     

    void Start()
    {
    serial.Open(); //Abrimos el puerto de comunicación.
    serial.DtrEnable = true; //Configuramos control de datos por DTR.
    serial.ReadTimeout = 500; //Configuramos velocidad de refresco.
    }
    void Update()
    {
    print(serial.ReadLine()); //Escribimos en consola “bucle” lo que leernos por serial
    }
    }

     

     

     

    Con estos códigos, comprobamos que disponemos verdaderamente de conexión mediante el USB, haciéndonos uso del Procesador ARM Cortex nRF52840 de nuestro Arduino Nano 33 BTL.

     

    Códigos Disponibles en el Repositorio: Código 2. Hola Mundo para comprobar la correcta conexión

     

    Salu2, geek CONTINUARÁ
    Por tus Donaciones…, Muchas Gracias

    HMD VR-TEK WVR3 1440X1440*2 - Visita y Obtén mi Configuración para tu Visor VR en el Foro==> Steam - VR ................................................................................... Soluciones para el Wrappers VorpX y otros Hack Imprescindibles Rovianos en este Hilo ==> Wrappers VorpX ...................................................................................... Rovian@s os explico, como fábricar tus Guantes Hápticos con un Arduino® ABX00030 Nano 33 BLE desde este Hilo ==> Fábrica tus Guantes Hápticos

    2
  • Legna

    20 Nov 2013 01:44

    Mensajes: 798

    Legna » 12 JUN 2020  0:07

    Hola a tod@s,

     

    Hoy os traído la estructura de conexión de comunicación, que voy a usar en este Proyecto de Guantes Hápticos.

     

    Como ya sabéis, he optado por usar el lenguaje de programación en Visual Basic 6.0 para crear las utilidades, módulos y/o funciones, de los Guantes Hápticos.

     

    Como he explicado, el motivo de usar este lenguaje, es por estar muy extendido, además es bastante más fácil de aprender y de usar por todos y para todos…., igualmente, hay bastante documentación y códigos para implementarlos en tus propios proyectos.

     

    El Software del Laboratorio Háptico, estará desarrollado en Visual Basic 6.0…, el software o utilidades creadas, realizarán la acomodación y conversión de los datos, así como la transferencia de ellos a los Guantes Hápticos u otros.

     

    He decidido de aportar al proyecto, una nueva característica…, la Multi-Conexión a plataformas de desarrollos mediante la creación de Puertos de Comunicación Virtuales.

     

    Multi Conexión por Puertos de Comunicación Virtuales

     

     

    Esta característica, permite a otras aplicaciones acceder a las funciones de los guantes y a su programación de forma totalmente independiente e individualmente.

     

    Con esto se consigue, que las aplicaciones externas que se conecten al Software de los Guantes Hápticos, puedan enviar sus instrucciones para que el Software Háptico, reproduzca las funciones pre programadas.

     

    Un ejemplo es, imaginad que desde unity3D creáis una antorcha de fuego, y vais y tocáis el fuego de esta antorcha…, unity3D enviará por el Puerto Virtual un dato que significa “la mano derecha esta en contacto con fuego”…, el software realizado en Visual Basic 6.0 VB6, recoge estos datos desde el Puerto Virtual y ejecuta la función que habéis programado para que se reproduzca ese efecto de fuego en vuestros guantes…, o bien un dedo en concreto o lo que quieras programar.

     

    Esto es para que le des riendas a tu imaginación y puedas programar y usar tus Guantes Hápticos donde y como quieras…., ya sea, Unity3D, Unreal Engine, Visual Studio y cualquier lenguaje de programación sin limitaciones.

     

    ¿No esta mal verdad Rovian@s? Si os gusta ===========> DALE AL ME GUSTA

     

    Un saludo y como ya sabéis, CONTINUARÁ geek
    Por tus Donaciones…, Muchas Gracias

    HMD VR-TEK WVR3 1440X1440*2 - Visita y Obtén mi Configuración para tu Visor VR en el Foro==> Steam - VR ................................................................................... Soluciones para el Wrappers VorpX y otros Hack Imprescindibles Rovianos en este Hilo ==> Wrappers VorpX ...................................................................................... Rovian@s os explico, como fábricar tus Guantes Hápticos con un Arduino® ABX00030 Nano 33 BLE desde este Hilo ==> Fábrica tus Guantes Hápticos

    6
  • Legna

    20 Nov 2013 01:44

    Mensajes: 798

    Legna » 14 JUN 2020  14:31

    PASO .3

     

    3º. Conexión con IMU 9 LSM9DS1 mediante su librería, para lecturas de datos del Giroscópio.

     

    Hola a tod@s,

     

    Hoy os voy a explicar y mostrar, como obtener datos del módulo IMU 9 LSM9DS1 de nuestro Arduino Nano 33 BTL.

     

    Los Arduinos de fábrica, por norma general nos llegan sin ninguna programación previa…, estos carecen de funciones algunas…, disponen de una ROM propia donde alojan Software del dispositivo “no accesible”.

     

    Para poder hacer uso de IMU 9 LSM9DS1, debemos de incluir dentro de nuestro código a parpadear, su librería correspondiente…, estas librerías por norma general las aportan oficialmente los fabricantes.

     

    Una librería no es más que otro código…, en este código figuran las funciones que acepta el modulo para poder interactuar con él, sin esta librería, no nos podríamos comunicar con el IMU, ya que desconoceríamos sus funciones y llamadas.

     

    Librería Arduino_LSM9DS1.h

     

    Siendo sinceros, el arduino no dispone de documentación ninguna ni nada de nada…, te llega a si, tal cual, y aunque hay una plataforma y portal y foros…, siempre mira antes dentro de sus librerías y te ahorraras muchos quebraderos de cabeza.

     

    Dentro de ellas, dispones de la información necesaria para hacer funcionar tu IMU en este caso.

     

    Hoy vamos a ver como incluir la librería al código y hacer funcionar el Giroscópio…, el IMU constará de 9 códigos en total…, cada EJE “Giroscopio, Acelerómetro y magnetómetro”, contaran con sus 3 códigos para hacerlos funcionar en Arduino IDE, Visual Basic 6.0 y Unity3D.

     

    Ya dispongo del código del Giroscópio en Visual Basic bastante avanzado y aunque solo es para demostración, debo de reconocer que ha dado algún que otro quebradero de cabeza…., pero claro, hay esta lo bueno de todo esto, si todo fuera fácil quizás no me llenaría el proyecto y la verdad que por 50€, me estoy entreteniendo y divirtiendo un monto, y suma y sigue.

     

    Os adjunto el código que hay que parpadear al Arduino para poder acceder a la lectura del Giroscópio.

     

    Código 3. Giroscópio IMU 9 LSM9DS1

     

    //Proyecto Guantes Háptico by Legna 2020 - Para la Comunidad de <a href="https://www.realovirtual.com/" target="_blank" rel="nofollow">www.realovirtual.com/</a>
    // Código 3. Conexión con IMU 9 LSM9DS1 mediante su librería, para las lecturas de los datos de todo sus 9 Ejes.
    // 3.0. Giroscópio.

     

    #include //Incluimos la librería del IMU 9 LSM9DS1 a nuestro código.

     

    void setup() {
    Serial.begin(9600); // Iniciamos el puerto de comunicación serial y le configuramos su velocidad.
    while (!Serial); // While es un bucle, el código no pasará al loop, hasta que confirme la conexión serial.

     

    IMU.begin(); // Iniciamos el IMU 9.
    IMU.setGyroODR(1); // Configuramos la frecuencia de muestreo @ 10 Hz del Giroscópio. (14,47HZ salen en mi Arduino).
    //Sample Rate Hz 0:off,1:10, 2:50, 3:119, 4:238, 5:476, 6:does not work 952Hz (estos datos están dentro de la librería)

     

    Serial.print("Frecuencia del Giroscópio = Hz "); // Pedimos que escriba por serial el texto.
    Serial.println(IMU.gyroscopeSampleRate()); // Pedimos que escriba por serial la frecuencia de muestreo del giroscopio.
    Serial.println("X\tY\tZ"); // Pedimos que escriba por serial el texto "X Y Z" con espacios entre ellos.
    }

     

    void loop() {

     

    float x, y, z; // Declaramos x, y, z, como variable de coma flotante. "es obligado por Arduino_LSM9DS1.h"
    IMU.readGyroscope(x, y, z); // leemos desde el giroscopio x, y, z. (Si no se declaran x, y, z,... no se pueden usar).

     

    Serial.print(x); // Pedimos que escriba y envié por serial el valor de x.
    Serial.print('\t'); // Pedimos que escriba por serial un espacio.
    Serial.print(y); // Pedimos que escriba y envié por serial el valor de y.
    Serial.print('\t'); // Pedimos que escriba por serial un espacio.
    Serial.println(z); // Pedimos que escriba y envié por serial el valor de z.
    }

     

    // "print" permite escribir en la misma linea y "println" escribe con salto de linea al finalizar.

     

    Código 3. Giroscópio IMU 9 LSM9DS1

     

    Como veis, la línea ” #include ” añade la librería al proyecto.

     

    Y hasta aqui el aporte de hoy Rovianos.

     

    3.0 Giroscópio IMU 9 LSM9DS1 Arduino IDE

     

    Salu2, geek CONTINUARÁ
    Por tus Donaciones…, Muchas Gracias

    HMD VR-TEK WVR3 1440X1440*2 - Visita y Obtén mi Configuración para tu Visor VR en el Foro==> Steam - VR ................................................................................... Soluciones para el Wrappers VorpX y otros Hack Imprescindibles Rovianos en este Hilo ==> Wrappers VorpX ...................................................................................... Rovian@s os explico, como fábricar tus Guantes Hápticos con un Arduino® ABX00030 Nano 33 BLE desde este Hilo ==> Fábrica tus Guantes Hápticos

    4
  • Legna

    20 Nov 2013 01:44

    Mensajes: 798

    Legna » 16 JUN 2020  0:11

    PRUEBAS DE VELOCIDAD DE COMUNICACIÓN MScommPort.

     

    Hola a tod@s,

     

    Hoy os quiero traer info sobre algunas pruebas de comunicación que he estado realizando con el Arduino Nano 33 BLE sobre Visual Basic 6.0 VB6.

     

    He realizado una pequeña aplicación para comprobar los paquetes de información que me llegan a mi equipo mediante los puertos de comunicación USB 2.0 y USB 3.0 en cuestión.

     

    Tenía dudas sobre las velocidades de trasferencia de datos que es capaz de soportar Visual Basic 6.0 mediante la comunicación COM y su modulo MScomm junto al Arduino.

     

    Como sabéis, estoy en plena faena con la aplicación y código del PASO 3. “3.1 Giroscópio para VB”…, en esta aplicación, ya empezamos el análisis de datos para su interpretación, y como primera utilidad debe de disponer de una base más que decente para la recepción y análisis de datos…, ya que la programación realizada respecto a lo que comunicación y análisis se refiere, este programa es y será, la base que voy a usar para todo el proyecto.

     

    Os adjunto las Pruebas Realizadas:

     

     

     

     

     

     

    Una aparente saturación de los puertos de comunicación es más que evidente en mis pruebas…, aunque en realidad, es saturación de Visual Basic 6.0, ya que no es capaz de soportar ciertas “funciones, ordenes u códigos” de lecturas o uso de datos.

     

    Cuando se realiza la prueba de 1ms que son 1000 paquetes en 1 segundo, la saturación es de más de 7 segundos.

     

    La mayoría de las veces, el puerto se queda colgado por que no es capaz de soportar tanta información o datos…, le estoy enviando una cadena de datos de 36 Bytes, que son 36.000 Bytes en 1 segundo.

     

    He realizado pruebas en las siguientes velocidades de comunicación, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200 bps…, y la saturación persiste en cada una de estas.

     

    Finalmente llego a la conclusión, que debo de usar una configuración de compromiso de no más de 10ms…, 100 Paquetes por Segundos usando el USB 3.0 que me está aportando entre 77 Paquetes por Segundos de Transferencias.

     

    Hasta aquí llega la info de hoy, he pensado que os podía ser curioso e útil saber de estas pruebas…, ya que determina cual puede llegar a ser los tiempos de respuestas de los Guantes Hápticos.

     

    Salu2, geek CONTINUARÁ
    Por tus Donaciones…, Muchas Gracias

    HMD VR-TEK WVR3 1440X1440*2 - Visita y Obtén mi Configuración para tu Visor VR en el Foro==> Steam - VR ................................................................................... Soluciones para el Wrappers VorpX y otros Hack Imprescindibles Rovianos en este Hilo ==> Wrappers VorpX ...................................................................................... Rovian@s os explico, como fábricar tus Guantes Hápticos con un Arduino® ABX00030 Nano 33 BLE desde este Hilo ==> Fábrica tus Guantes Hápticos

    3
  • Legna

    20 Nov 2013 01:44

    Mensajes: 798

    Legna » 16 JUN 2020  12:44

     

    PASO 3

     

    3.1 Giroscópio IMU 9 LSM9DS1 Visual Basic 6.0

     

    Hola a tod@s Rovian@s,

     

    Hoy os traigo , las publicaciones del Software y algunos códigos…., pero antes, déjame explicarte:

     

    Las transferencias de datos y comunicación entre Visual Basic y el Arduino, se debe de realizar siempre bajo un control muy exhaustivo, ya que los errores por culpa de desincronizaciones u otros, abundan a la hora de realizar cualquier código.

     

    Visual Basic es maestrillo de todo esto…, y aunque parezca fácil su utilización, mucho más fácil es que te suelte errores por doquier…., claro está, si no tienes cuidado y eres curioso con el proceso de tu código.

     

    Hacer un código más largo para una función específica pudiéndose realizar un código 3 veces más pequeño, no implica que el primer código más extenso sea mejor, tenedlo en cuenta.

     

    Cuando realizas una conexión vía Serial ComPort, los datos deben de llegar bajo un control…, estas simplemente pueden ser unos encabezados de inicio y de fin.

     

    El error más recurrente, es no realizar un control sobre los datos que se envían…, esto provoca muchos problemas, entre ellos la saturación innecesaria de las vías “puertos” de comunicación, al igual que las pérdidas de datos y los consumos excesivos, entre ellas las de baterías…., también hay que tener en cuenta, que dan problemas de sobrecalentamiento de sus componentes y de rendimientos de sus procesadores u otros.

     

    Desde Visual Basic, podemos preguntar al arduino que datos queremos y este nos lo enviará, esto permite que el puerto de comunicación no esté saturado con datos innecesarios que no vamos a usar.

     

    ¿Te imaginas mandar datos constantemente de todos los valores de los sensores?..., en este proyecto, vamos a disponer de 5 sensores rastreadores para los dedos, 9 Actuadores y el IMU de 9 ejes, que hacen un total de 23 puntos de datos y cada uno de ellos pueden estar trabajando a unas frecuencias diferentes y niveles de muestreo diferentes…., la cantidad de datos puede llegar a ser abrumadora.

     

    En este proyecto y como control de las transferencias de datos, se va hacer uso de un encabezado de inicio sin uno de Fin, que será enviado por el arduino cada vez que se le solicite datos, sea cual sea este dato…., aunque, igualmente es posible de realizar de forma automática.

     

    Un inicio de encabezado y fin, puede ser simplemente un conjunto de números, letras o ambas, que formarían nuestro “Paquete de Datos”…, un paquete de datos, puede estar compuesto por muchos paquetes de datos o uno solo, en este proyecto, solo hare uso de 1 paquete de datos de transferencia o solicitud de datos.

     

    Mi encabezado inicial será “G00H” por ser el proyecto Guantes Hápticos…., en mis pruebas he estado usando 8008.

     

    Al Arduino, hay que programarlo para que tenga ciertas funciones que me son necesaria para seguir con esta parte del PASO 3…, concretamente la del 3.1 Giroscópio IMU 9 LSM9DS1 Visual Basic 6.0.

     

    Se debe de programar unas funciones para que cuando se le solicite datos, el arduino responda enviando el paquete correspondiente…, esta función se realiza en 1ms milisegundos.

     

    También se han añadido algunas funciones para solicitarle que realice cambios de configuraciones sobre las velocidades de captura en Hz del sensor IMU del Giroscópio, que dispone de hasta 7 configuraciones.

     

    Os adjunto el código:

     

    3.1 Giroscópio IMU 9 LSM9DS1 Visual Basic 6.0 Arduino IDE.

     

    //Proyecto Guantes Háptico by Legna 2020 - Para la Comunidad de <a href="https://www.realovirtual.com/" target="_blank" rel="nofollow">www.realovirtual.com/</a>
    // Código 3. Conexión con IMU 9 LSM9DS1 mediante su librería, para las lecturas de los datos de todo sus 9 Ejes.
    // 3.1 Giroscópio IMU 9 LSM9DS1 Visual Basic 6.0 Arduino IDE.

     

    #include //Incluimos la librería del IMU 9 LSM9DS1 a nuestro código.
    String DatosEntrada;

     

    void setup() {
    Serial.begin(9600); // Iniciamos el puerto de comunicación serial y le configuramos su velocidad.
    Serial.setTimeout(1); // Velocidad de Respuesta de salida de datos.
    while (!Serial); // While es un bucle, el código no pasará al loop, hasta que confirme la conexión serial.
    IMU.begin(); // Iniciamos el IMU 9.
    IMU.setGyroODR(1); // Configuramos la frecuencia de muestreo @ 10 Hz del Giroscópio. (14,47HZ salen en mi Arduino).
    //Serial.print("Frecuencia del Giroscópio XYZ = Hz "); // Pedimos que escriba por serial el texto.
    //Serial.println(IMU.gyroscopeSampleRate()); // Pedimos que escriba por serial la frecuencia de muestreo del giroscopio.

     

    }

     

    void loop() {

     

    while (Serial.available() == 0);
    DatosEntrada = Serial.readStringUntil('\n');

     

    if (DatosEntrada == "HZG0"){IMU.setGyroODR(0);}
    if (DatosEntrada == "HZG1"){IMU.setGyroODR(1);}
    if (DatosEntrada == "HZG2"){IMU.setGyroODR(2);} //Sample Rate Hz 0:off,1:10, 2:50, 3:119, 4:238, 5:476, 6:does not work 952Hz (estos datos están dentro de la librería)
    if (DatosEntrada == "HZG3"){IMU.setGyroODR(3);}
    if (DatosEntrada == "HZG4"){IMU.setGyroODR(4);}
    if (DatosEntrada == "HZG5"){IMU.setGyroODR(5);}
    if (DatosEntrada == "HZG6"){IMU.setGyroODR(6);}

     

    if (DatosEntrada == "SD") // SD Solicita que envié Datos..., en este caso los del Giroscopio
    {
    float x, y, z; // Declaramos x, y, z, como variable de coma flotante. "es obligado por Arduino_LSM9DS1.h"
    IMU.readGyroscope(x, y, z); // leemos desde el giroscopio x, y, z. (Si no se declaran x, y, z,... no se pueden usar).

     

    Serial.print("G00H,"); // Inicio del Encabezado y Paquete de Datos.
    Serial.print("GX,");
    Serial.print(x); // Pedimos que escriba y envié por serial el valor de x.
    Serial.print(","); // Pedimos que escriba por serial un coma " , " entre espacio.

     

    Serial.print("GY,");
    Serial.print(y); // Pedimos que escriba y envié por serial el valor de y.
    Serial.print(","); // Pedimos que escriba por serial un coma " , "entre espacio.

     

    Serial.print("GZ,");
    Serial.print(z); // Pedimos que escriba y envié por serial el valor de z.
    Serial.println(","); // Pedimos que escriba por serial un coma " , "entre espacio.

     

    delay(10); // Configuramos la Frecuencia de datos en 10 milisegundos 100 Paquetes por segundos.
    }
    }

     

    // "print" permite escribir en la misma linea y "println" escribe con salto de linea al finalizar.

     

    3.1 Giroscópio IMU 9 LSM9DS1 Visual Basic 6.0 Arduino IDE.

     

     

    Tras esto y siguiendo con lo anunciado…, os traigo el programa realizado en VB6.0 para obtener datos del Giroscópio desde el IMU 9 LSM9DS1, en este programa estoy usando por primera vez la comunicación bilateral entre el PC y el Arduino.

     

    Esta comunicación se basa en Solicitudes de Datos al arduino para su posterior acomodación, análisis y ejecución de datos., esto significa, que realizo una solicitud y el Arduino me envía el Paquete de Datos…., una vez dispongo del paquete de datos, este es analizado, catalogado y ejecutado…, obteniendo hasta lo 15ms de respuestas, que son 64 paquetes por segundos analizados finalmente mediante el uso del USB 3.0.

     

    El programa cuenta con filtros y controles para mejorar dentro de mis posibilidades…, las transferencias de datos.

     

    La aplicación, dispone de recuento de paquetes perdidos de datos, 7 ajustes de los Hz de funcionamiento del Giroscopio, ajuste de frecuencia de actualización de datos de entre 1ms a 1.000ms, test de funcionamiento del giroscópio “3 ejes X, Y, Z” y otros datos como la captura del encabezado de paquetes y lecturas.

     

    El Paquete de dados como he citado consta de un encabezado “G00H”, tras él, he añadido un identificador para cada dato “X, Y, Z” que son “GX, GY, GZ”…, quedando constituido el paquete de la siguiente forma:

     

    G00H,GX,-356.78,GY,110.34,GZ,-331.15,

     

    Si no disponemos de un control sobre todo este proceso…, errores como este no te dejan de seguir con el código.

     

     

    Tras muchas pruebas, he conseguido de obtener un buen rendimiento sobre los 77 Paquetes iniciales que me aportaba el Arduino SIN ANALIZAR NI TRATAR, mediante el USB 3.0 y el módulo MSComm.

     

     

    Y como para muestras un botón..., he creado una cuenta de YouTube para ir subiendo videos si son necesarios e ir mostrando avances de Software u otros.

     

    PASO 3 (3.1 Giroscópio IMU 9 LSM9DS1 Visual Basic 6 0) By Legna 2020

     

     

    'Proyecto Guantes Háptico by Legna 2020 - Para la Comunidad de <a href="https://www.realovirtual.com/" target="_blank" rel="nofollow">www.realovirtual.com/</a>
    'Código 3. Conexión con IMU 9 LSM9DS1 mediante su librería, para las lecturas de los datos de todo sus 9 Ejes.
    'Paso 3 , (3.1. Giroscópio en VB 6.0).

     

    Private Sub BotonConectarArduino_Click() 'Al pulsar el botón de conectar...
    Serial.CommPort = COM 'El puerto de configuración por serial, es el seleccionado en COM.
    Serial.PortOpen = True 'Iniciamos el puerto de comunicación serial.
    Terminal.Text = "Conexión con Arduino Iniciada........... " 'Añadimos aviso de conexión con Arduino en el terminal.
    BotonDesconectarArduino.Enabled = True 'Dejamos de tener accesible el boton conectar.
    BotonIniciarIMU.Enabled = True 'Conectamos el boton conectar con IMU.
    BotonConectarArduino.Enabled = False 'Desconectamos el boton conectar con Arudino.
    End Sub 'Fin de instrucciones del botón conectar.

     

    Private Sub BotonDesconectarArduino_Click()
    Timer.Enabled = False 'Paramos el Timer y la función dentro del el.
    Serial.PortOpen = False 'Cerrar puerto de comunicación serial.
    Terminal.Text = Terminal.Text & "Conexión con Arduino Finalizada........ " 'Añadimos aviso de desconexión con Arduino en el terminal.
    BotonDesconectarArduino.Enabled = False 'Desconectamos el boton conectar con Arudino.
    BotonConectarArduino.Enabled = True 'Conectamos el boton conectar con Arudino.
    End Sub

     

    Private Sub BotonIniciarIMU_Click()
    Timer.Enabled = True 'Iniciamos el reloj de tiempo.
    Terminal.Text = "" 'Limpiamos el Terminal
    'TimerControl.Enabled = True 'Iniciamos el timer del Control.
    TimerControlPaquetes.Enabled = True 'Iniciamos el timer del Control de Paquetes.
    BotonIniciarIMU.Enabled = False 'Desconectamos el boton conectar con IMU.
    End Sub

     

    Private Sub HZG0_Click()
    Serial.Output = "HZG0" ' Enviamos Configuración 0 Hz OFF del Giroscópio al Arduino por puerto serial.
    End Sub
    Private Sub HZG1_Click()
    Serial.Output = "HZG1" ' Enviamos Configuración 1 Hz 10Hz del Giroscópio al Arduino por puerto serial.
    End Sub

     

    Private Sub HZG2_Click()
    Serial.Output = "HZG2" ' Enviamos Configuración 2 Hz 50 Hz del Giroscópio al Arduino por puerto serial.
    End Sub
    Private Sub HZG3_Click()
    Serial.Output = "HZG3" ' Enviamos Configuración 3 Hz 119Hz del Giroscópio al Arduino por puerto serial.
    End Sub
    Private Sub HZG4_Click()
    Serial.Output = "HZG4" ' Enviamos Configuración 4 Hz 238Hz del Giroscópio al Arduino por puerto serial.
    End Sub
    Private Sub HZG5_Click()
    Serial.Output = "HZG5" ' Enviamos Configuración 5 Hz 476Hz del Giroscópio al Arduino por puerto serial.
    End Sub
    Private Sub HZG6_Click()
    Serial.Output = "HZG6" ' Enviamos Configuración 6 Hz 953Hz del Giroscópio al Arduino por puerto serial.
    End Sub

     

    Private Sub SamplesVB6_Change() 'Al cambiar....
    Timer.Interval = SamplesVB6.Value 'Ajustamos la velocidad de refresco en milisegundos de los Samples en VB6.
    LabelSamplesVB6 = SamplesVB6.Value 'Muestra la velocidad de refresco en milisegundos seleccionada de VB6.
    End Sub

     

    Private Sub Timer1_Timer() 'Esta función de Timer, realiza el Reset de los contadores de Paquetes.
    ContadorTotal.Caption = Contador
    ContadorTotal1.Caption = Contador1
    Contador.Caption = "0"
    Contador1.Caption = "0"
    ListCabecera.Clear
    ListResultados.Clear
    End Sub

     

    Private Sub Timer_Timer() ' Función del Reloj…, actua como un bucle.

     

    Dim DatosRecibidos As String
    Dim Optimizador As String ' Variables definidas para obtener Datos como string
    Dim PedirDatos As String

     

    PedirDatos = "SD" ' Clave Disparo para la solicitud de Datos al Arduino.
    Serial.Output = PedirDatos ' Solicitamos los Datos al Arduino por puerto serial.

     

    DatosRecibidos = Serial.Input ' Cogemos los Datos del Serial en String, "las funciones con serial.imput es limitado"

     

    Terminal.Text = DatosRecibidos ' Añadimos los Datos al Terminal.

     

    '// ESTO ES EL OPTIMIZADOR.........................................................................................\\

     

    Optimizador = Mid(DatosRecibidos, 1, 4) ' Guardamos en la variable, los 5 primeros caracteres recibidos.
    ListCabecera.AddItem Optimizador ' Añadimos a la lista que encontramos.

     

    If Optimizador = "G00H" Then 'Si está la Cabecera "H00G", entonces....
    Contador.Caption = Contador.Caption + 1 'Iniciamos contador
    DatosRaw.Text = Mid(DatosRecibidos, 1, 100) 'Anadimos los datos en brutos al texto DatosRaw.
    ContadorCaracteres.Caption = Len(DatosRaw.Text) 'Realizo un calculo para el control de Longitud de los Paquetes

     

    Dim Counter As Long, R() As String, temp As String
    R = Split(DatosRaw, ",")
    For Counter = LBound(R) To (UBound(R))
    temp = R(UBound(R) - Counter) 'Esta función completa, es para crer la matrix de datos.
    R(UBound(R) - Counter) = R(Counter)
    R(Counter) = temp
    Next Counter

     

    If ContadorCaracteres.Caption >= ControlPaquetes Then 'Control de Paquetes y comienzo del analisis de datos.

     

    Dim GX, GY, GZ As String 'Defino variables para los identificadores del Giroscópio X,Y,Z.

     

    GX = R(1) 'Añadimos la Matrix a la variable GX.
    If GX = "GX" Then GiroX.Text = R(2) 'Si la matrix corresponde, añadimos el valor al Texto.
    BarraGiroX.Value = R(2)
    DatoGiroX.Caption = BarraGiroX.Value / 100

     

    GY = R(3) 'Añadimos la Matrix a la variable GY.
    If GY = "GY" Then GiroY.Text = R(4) 'Si la matrix corresponde, añadimos el valor al Texto.
    BarraGiroY.Value = -R(4)
    DatoGiroY.Caption = BarraGiroY.Value / 100

     

    GZ = R(5) 'Añadimos la Matrix a la variable GZ.
    If GZ = "GZ" Then GiroZ.Text = R(6) 'Si la matrix corresponde, añadimos el valor al Texto.
    BarraGiroZ.Value = -R(6)
    DatoGiroZ.Caption = BarraGiroZ.Value / 100

     

    ListResultados.AddItem R(0)
    ListResultados.AddItem R(1) 'Añadimos las Matrices a la lista.
    ListResultados.AddItem R(3)
    ListResultados.AddItem R(5)

     

    Else
    End If ' fin control paquetes 'Fin de analisis de Paquetes.

     

    End If 'Fin del control de Paquetes.
    Contador1.Caption = Contador1.Caption + 1 'Contador de paquetes desde el puerto serial.

     

    '// HASTA AQUI EL OPTIMIZADOR.........................................................................................\\
    End Sub 'Fin de la instrucción del reloj.

     

    Private Sub TimerControlPaquetes_Timer()

     

    ControlPaquetes.Caption = ContadorCaracteres.Caption ' Control de Longitud de los Paquetes

     

    TimerControlPaquetes.Enabled = False
    End Sub

     

    Private Sub Form_Unload(Cancel As Integer) 'Función de cerra formulario.
    If Serial.PortOpen = False Then
    Else
    Serial.PortOpen = False 'Cerrar puerto de comunicación serial al cerrar el formulario
    End If
    End Sub

     

    '// FIN DEL CÓDIGO 3.1 Giroscópio en VB 6.0 //

     

     

    Espero que disfrutéis de toda esta información..., y os sea de utilidad para realizar este u otros de vuestros proyectos.

     

    ¿Rovian@s..., estas sumergido en la fabricación de tus Guantes Hápticos?..., déjame tus comentarios.

     

    Si te gusta este contenido….., DALE AL ME GUSTA

     

    3.1 Giroscópio IMU 9 LSM9DS1 Visual Basic 6.0

     

    Próximo Paso: (3.2 Giroscópio IMU 9 LSM9DS1 en Unity3D…, mediante VB6 con VirtualPort al Unity3D)

     

    Salu2, geek CONTINUARÁ
    Por tus Donaciones…, Muchas Gracias

    HMD VR-TEK WVR3 1440X1440*2 - Visita y Obtén mi Configuración para tu Visor VR en el Foro==> Steam - VR ................................................................................... Soluciones para el Wrappers VorpX y otros Hack Imprescindibles Rovianos en este Hilo ==> Wrappers VorpX ...................................................................................... Rovian@s os explico, como fábricar tus Guantes Hápticos con un Arduino® ABX00030 Nano 33 BLE desde este Hilo ==> Fábrica tus Guantes Hápticos

    6
  • Legna

    20 Nov 2013 01:44

    Mensajes: 798

    Legna » 18 JUN 2020  18:06

     

    PASO 3

     

    3.2 Giroscópio IMU 9 LSM9DS1 en Unity3D…, mediante VB6 con VirtualPort

     

    Hola a tod@s,

     

    Hoy os traigo la continuación y fin del Paso 3 (Giroscópio IMU 9 LSM9DS1), que concluye con la creación de varios códigos y 1 software.

     

    En esta ocasión, el objetivo es crear un vinculo entre Arduino, Visual Basic 6.0 y Unity3D .

     

    Como ya expuse en anteriores Post, El arduino se conectará a nuestra aplicación realizada en VB6.0 y desde VB6 realizaremos una conexión paralela para enviar los datos al motor gráfico Unity3D.

     

    Para poder realizar una conexión virtual, hare uso de la aplicación Virtual Port 6.9 de la compañía Eltima

     

    Virtual Port de Eltima Software

     

    Con esta configuración, es posible enviar y recibir datos desde el motor gráfico Unity3D, mediante un Puerto de Comunicación Virtual, mis configuraciones son con los puertos de comunicación entre COM 10 y COM 15…, el puerto 10 lo usaré para enviar los datos desde Visual Basic 6.0 y desde el puerto 15 los recibirá Unity3D.

     

    La aplicación en VB6.0 a sufrido una modificación para este propósito, se le ha añadido un nuevo módulo de conexión MScomm y eliminados elementos que no son útiles para esta demostración.

     

     

    Código. 3.2. Giroscópio IMU 9 LSM9DS1 entre VB6.0 y Unity3D.

     

    'Proyecto Guantes Háptico by Legna 2020 - Para la Comunidad de <a href="https://www.realovirtual.com/" target="_blank" rel="nofollow">www.realovirtual.com/</a>
    'Código 3. Conexión con IMU 9 LSM9DS1 mediante su librería, para las lecturas de los datos de todo sus 9 Ejes.
    'Paso 3. (Código3.2. Giroscópio IMU 9 LSM9DS1 entre VB6.0 y Unity3D.)

     

    Private Sub BotonConectarArduino_Click() 'Al pulsar el botón de conectar...
    Serial.CommPort = COMArduino 'El puerto de configuración por serial, es el seleccionado en COMArduino.
    Serial.PortOpen = True 'Iniciamos el puerto de comunicación serial.
    DatosRaw.Text = "Conexión con Arduino Iniciada........... " 'Añadimos aviso de conexión con Arduino en ventana DatosRaw.Text.
    BotonDesconectarArduino.Enabled = True 'Dejamos de tener accesible el boton conectar.
    BotonIniciarIMU.Enabled = True 'Conectamos el boton conectar con IMU.
    BotonConectarArduino.Enabled = False 'Desconectamos el boton conectar con Arudino.
    End Sub 'Fin de instrucciones del botón conectar.

     

    Private Sub BotonConectarUnity3D_Click()
    BotonDesconectarUnity3D.Enabled = True 'Conectamos el boton desconectar de Unity3D.
    SerialUnity3D.CommPort = COMUnity3D 'El puerto de configuración por serial, es el seleccionado en COMUnity3D.

     

    SerialUnity3D.PortOpen = True 'Abrimos el puerto de comunicación con Unity3D.
    BotonConectarUnity3D.Enabled = False 'Desconectamos el boton desconectar de Unity3D.

     

    End Sub

     

    Private Sub BotonDesconectarArduino_Click()
    Timer.Enabled = False 'Paramos el Timer y la función dentro del el.
    Serial.PortOpen = False 'Cerrar puerto de comunicación serial.
    DatosRaw.Text = "Conexión con Arduino Finalizada........ " 'Añadimos aviso de desconexión con Arduino.
    BotonDesconectarArduino.Enabled = False 'Desconectamos el boton conectar con Arudino.
    BotonConectarArduino.Enabled = True 'Conectamos el boton conectar con Arudino.
    End Sub

     

    Private Sub BotonDesconectarUnity3D_Click()
    DatosRaw.Text = "Desconectado de Unity3D" 'Añadimos aviso de desconexión con Unity3D.
    SerialUnity3D.PortOpen = False 'Cerrar puerto de comunicación serial con Unity3D.
    BotonConectarUnity3D.Enabled = True 'conectamos el boton conectar de Unity3D.
    BotonDesconectarUnity3D.Enabled = False 'Desconectamos el boton Desconectar de Unity3D.
    End Sub

     

    Private Sub BotonIniciarIMU_Click()
    Timer.Enabled = True 'Iniciamos el reloj de tiempo.
    DatosRaw.Text = "" 'Limpiamos el Terminal
    'TimerControl.Enabled = True 'Iniciamos el timer del Control.
    TimerControlPaquetes.Enabled = True 'Iniciamos el timer del Control de Paquetes.
    BotonIniciarIMU.Enabled = False 'Desconectamos el boton conectar con IMU.
    BotonConectarUnity3D.Enabled = True 'Conectamos el boton conectar con Unity3D.
    End Sub

     

    Private Sub HZG0_Click()
    Serial.Output = "HZG0" ' Enviamos Configuración 0 Hz OFF del Giroscópio al Arduino por puerto serial.
    End Sub
    Private Sub HZG1_Click()
    Serial.Output = "HZG1" ' Enviamos Configuración 1 Hz 10Hz del Giroscópio al Arduino por puerto serial.
    End Sub

     

    Private Sub HZG2_Click()
    Serial.Output = "HZG2" ' Enviamos Configuración 2 Hz 50 Hz del Giroscópio al Arduino por puerto serial.
    End Sub
    Private Sub HZG3_Click()
    Serial.Output = "HZG3" ' Enviamos Configuración 3 Hz 119Hz del Giroscópio al Arduino por puerto serial.
    End Sub
    Private Sub HZG4_Click()
    Serial.Output = "HZG4" ' Enviamos Configuración 4 Hz 238Hz del Giroscópio al Arduino por puerto serial.
    End Sub
    Private Sub HZG5_Click()
    Serial.Output = "HZG5" ' Enviamos Configuración 5 Hz 476Hz del Giroscópio al Arduino por puerto serial.
    End Sub
    Private Sub HZG6_Click()
    Serial.Output = "HZG6" ' Enviamos Configuración 6 Hz 953Hz del Giroscópio al Arduino por puerto serial.
    End Sub

     

    Private Sub SamplesVB6_Change() 'Al cambiar....
    Timer.Interval = SamplesVB6.Value 'Ajustamos la velocidad de refresco en milisegundos de los Samples en VB6.
    LabelSamplesVB6 = SamplesVB6.Value 'Muestra la velocidad de refresco en milisegundos seleccionada de VB6.
    End Sub

     

    Private Sub Timer1_Timer() 'Esta función de Timer, realiza el Reset de los contadores de Paquetes.
    ContadorTotal.Caption = Contador
    ContadorTotal1.Caption = Contador1
    Contador.Caption = "0"
    Contador1.Caption = "0"
    End Sub

     

    Private Sub Timer_Timer() ' Función del Reloj…, actúa como un bucle.

     

    Dim DatosRecibidos As String
    Dim Optimizador As String ' Variables definidas para obtener Datos como string.
    Dim PedirDatos As String

     

    Dim EnviarDatosUnity3D As String ' Variable para almacenar los datos para enviar al Unity3D.

     

    PedirDatos = "SD" ' Clave Disparo para la solicitud de Datos al Arduino.
    Serial.Output = PedirDatos ' Solicitamos los Datos al Arduino por puerto serial.

     

    DatosRecibidos = Serial.Input ' Cogemos los Datos del Serial en String, "las funciones con serial.imput es limitado"

     

    '// ESTO ES EL OPTIMIZADOR.........................................................................................\\

     

    Optimizador = Mid(DatosRecibidos, 1, 4) ' Guardamos en la variable, los 5 primeros caracteres recibidos.

     

    If Optimizador = "G00H" Then 'Si está la Cabecera "H00G", entonces....
    Contador.Caption = Contador.Caption + 1 'Iniciamos contador
    DatosRaw.Text = Mid(DatosRecibidos, 1, 100) 'Añadimos los datos en brutos al texto DatosRaw.
    ContadorCaracteres.Caption = Len(DatosRaw.Text) 'Realizo un calculo para el control de Longitud de los Paquetes

     

    Dim Counter As Long, R() As String, temp As String
    R = Split(DatosRaw, ",")
    For Counter = LBound(R) To (UBound(R))
    temp = R(UBound(R) - Counter) 'Esta función completa, es para crer la matrix de datos.
    R(UBound(R) - Counter) = R(Counter)
    R(Counter) = temp
    Next Counter

     

    If ContadorCaracteres.Caption >= ControlPaquetes Then 'Control de Paquetes y comienzo del analisis de datos.

     

    Dim GX, GY, GZ As String 'Defino variables para los identificadores del Giroscópio X,Y,Z.

     

    GX = R(1) 'Añadimos la Matrix a la variable GX.
    If GX = "GX" Then GiroX.Text = R(2) 'Si la matrix corresponde, añadimos el valor al Texto.

     

    GY = R(3) 'Añadimos la Matrix a la variable GY.
    If GY = "GY" Then GiroY.Text = R(4) 'Si la matrix corresponde, añadimos el valor al Texto.

     

    GZ = R(5) 'Añadimos la Matrix a la variable GZ.
    If GZ = "GZ" Then GiroZ.Text = R(6) 'Si la matrix corresponde, añadimos el valor al Texto.

     

    Else
    End If ' fin control paquetes 'Fin de analisis de Paquetes.

     

    If SerialUnity3D.PortOpen = True Then
    SerialUnity3D.Output = DatosRecibidos ' Enviamos al Unity3D lo recibido desde el Arduino dentro de control de paqutes.
    Else
    End If

     

    End If 'Fin del control de Paquetes.
    Contador1.Caption = Contador1.Caption + 1 'Contador de paquetes desde el puerto serial.
    '// HASTA AQUI EL OPTIMIZADOR.........................................................................................\\

     

    End Sub 'Fin de la instrucción del reloj.

     

    Private Sub TimerControlPaquetes_Timer()

     

    ControlPaquetes.Caption = ContadorCaracteres.Caption ' Control de Longitud de los Paquetes

     

    TimerControlPaquetes.Enabled = False
    End Sub

     

    Private Sub Form_Unload(Cancel As Integer) 'Función de cerra formulario.
    If Serial.PortOpen = False Then
    Else
    Serial.PortOpen = False 'Cerrar puerto de comunicación serial al cerrar el formulario
    End If
    End Sub

     

    '// FIN Código. 3.2. Giroscópio IMU 9 LSM9DS1 entre VB6.0 y Unity3D. //

     

     

    El código Parpadeado en el Arduino Nano 33 BLE, es el mismo que el realizado en el Paso 3 (3.1 Giroscópio IMU 9 LSM9DS1 Visual Basic 6.0)

     

    El Script realizado para Unity3D, es el siguiente:
    //Proyecto Guantes Háptico by Legna 2020 - Para la Comunidad de <a href="https://www.realovirtual.com/" target="_blank" rel="nofollow">www.realovirtual.com/</a>
    //Código 3.2 IMU 9 LSM9DS1 Unity3D y VB6.0

     

    using UnityEngine; //Llamamos a las funciones de Unity3D.
    using System.IO.Ports; //Llamamos a las funciones de los puertos del Sistema.

     

    public class Guantes_Hápticos_By_Legna : MonoBehaviour{ //Es un identificador que usa Unity3d de tu Proyecto.

     

    public SerialPort PuertoComunicacion = new SerialPort("COM15"); //Creamos un puerto Serial y usamos COM3.

     

    void Start(){
    PuertoComunicacion.Open(); //Abrimos el puerto de comunicación.
    PuertoComunicacion.DtrEnable = true; //Configuramos control de datos por DTR.
    PuertoComunicacion.ReadTimeout = 500; //Configuramos velocidad de refresco.
    }
    void Update() {
    print(PuertoComunicacion.ReadLine()); //Escribimos en consola “bucle” lo que leernos por serial.

     

    string DatosSerial = PuertoComunicacion.ReadLine(); // Creamos una Variable String para guardar los datos desde el Puerto Serial.

     

    var Archivador = DatosSerial.Split(","[0]); // Realizamos un archivado del contenido de Datos desde serial mdiante un Split con variable var.

     

    float GX = float.Parse(Archivador[2]) / 10000f; // Asignamos los valores de cada dato a su correspondiente identificador.
    float GY = float.Parse(Archivador[4]) / 10000f;
    float GZ = float.Parse(Archivador[6]) / 10000f;

     

    transform.Rotate(GZ, GX, -GY); // Modificamos los ejes del objeto.
    }
    }

     

    3.2 Script Unity3D

     

    Y como para muestras un botón..., aqui disponeis del video donde podeis ver el funcionamiento del Giroscópio del IMU 9 LSM9DS1 en Unity3D.

     

    PASO 3 (3.2 Giroscópio IMU 9 LSM9DS1 Unity3D & VB6) By Legna 2020 para la Comunidad ROV

     

    Espero que disfrutéis de toda esta información..., y os sea de utilidad para realizar este u otros de vuestros proyectos Rovian@s.

     

    Si te gusta este contenido….., DALE AL ME GUSTA
    3.2 Giroscópio IMU 9 LSM9DS1 Unity3D & VB6.0

     

    Salu2, geek CONTINUARÁ
    Por tus Donaciones…, Muchas Gracias

    HMD VR-TEK WVR3 1440X1440*2 - Visita y Obtén mi Configuración para tu Visor VR en el Foro==> Steam - VR ................................................................................... Soluciones para el Wrappers VorpX y otros Hack Imprescindibles Rovianos en este Hilo ==> Wrappers VorpX ...................................................................................... Rovian@s os explico, como fábricar tus Guantes Hápticos con un Arduino® ABX00030 Nano 33 BLE desde este Hilo ==> Fábrica tus Guantes Hápticos

    4
  • Legna

    20 Nov 2013 01:44

    Mensajes: 798

    Legna » 24 JUN 2020  23:59

     

    PASO 4 ---- (EN PROCESOS 1 de 2 Rovian@s)

     

    Código 4. Bluetooth BLE-SPP ..., Conexión COM mediante la Api del Explorador Crome al PC.

     

    Hola a tod@s,

     

    Hoy os quiero hablar sobre el Bluetooth BLE o LE “Bluetooth Low Energy” que trae incorporado el Arduino Nano 33 BLE.

     

    El Bluetooth LE o BLE, está optimizado para un uso de baja potencia a bajas velocidades de datos “Paquetes de 20 bytes de datos”, y fue diseñado para operar a partir de simples baterías de celdas de monedas de litio.

     

    A diferencia del bluetooth estándar que básicamente está basada en una conexión serial asincrónica (SPP-UART), una radio Bluetooth LE actúa como un tablón de anuncios.

     

    Si su Bluetooth LE es un tablón de anuncios (llamado dispositivo periférico en el lenguaje Bluetooth LE) publica datos para que todos los dispositivos Bluetooth LE de la comunidad las puedan leer.

     

    Si su Bluetooth LE es un lector (llamado dispositivo central en términos Bluetooth LE) puede leer de cualquiera de los tablones de anuncios (dispositivos periféricos).

     

     

    Las principales diferencias entre LE y BR/EDR son los números de canal (40 en lugar de 79) y los tipos de conexiones de radio.

     

    Bluetooth LE permite ráfagas cortas de conexión de radio de largo alcance que prolongan la duración de la batería.

     

    Bluetooth clásico (o Bluetooth BR/EDR) establece una conexión inalámbrica continua de corto alcance.

     

    Cómo se logra la Baja Potencia?
    La forma más fácil de evitar el consumo de energía de batería es apagar la radio tan a menudo como sea posible y durante el mayor tiempo posible.

     

    El chip BLE está programado para una conexión rápida, es decir…, es capaz de enviar datos más rápidamente que el Bluetooth clásico, además, disponen de tiempos de espera bajos .

     

    Los dispositivos de tecnología de baja energía están optimizados para conexiones a dispositivos de escaneo…, estos dispositivos de escaneo, pueden conectarse, enviar y reconocer datos en 3 ms.

     

    En la tecnología Bluetooth clásica, una conexión de nivel de enlace puede tardar hasta 100 ms y una conexión L2CAP puede tardar mucho más.

     

    La tecnología Bluetooth de baja energía, utiliza solo 3 canales publicitarios, la tecnología Bluetooth clásica utiliza de 16 a 32 canales…, la radiofrecuencia (RF) está encendida para 1,2 ms en lugar de 22,5 ms.

     

    ¿Cómo se Encuentran los Dispositivos?
    Este proceso se denomina "Detección de dispositivos" y es responsabilidad de otra parte de la arquitectura Bluetooth LE llamada Perfil de acceso genérico (GAP).

     

    Hay dispositivos que pueden estar buscando o escaneando otros dispositivos, recibiendo y procesando paquetes publicitarios y filtrándolos.., el período de escaneo es sintonizable entre 2,5 ms y 10,24 s.

     

    Al mismo tiempo, otros dispositivos anuncian emitiendo pequeños paquetes de datos periódicamente.., estos paquetes, contienen información sobre el dispositivo de publicidad.

     

    Debe tenerse en cuenta que el consumo de energía en el modo de publicidad BLE es mayor que en el modo de conexión.

     

    Rendimiento de Datos BLE:
    El límite superior teórico es de 1 Mbps, en la práctica, un escenario típico supone 5-10 Kb por segundo, pero incluso transmitiendo a estas velocidades de datos relativamente modestas, 10 KB/s drenará rápidamente cualquier batería de celda de moneda pequeña.

     

    Esto significa que BLE no debe utilizarse para transferir datos multimedia, por ejemplo.

     

    Rango de Funcionamiento de BLE:
    Un rango de funcionamiento típico es de entre 2 y 5 metros, dando un esfuerzo consciente para reducir el alcance y ahorrar vida de la batería.

     

    La mejor manera de utilizar dispositivos BLE es enviar mensajes cortos

     

    Estructura de Comunicación BLE:
    GAP, es el acrónimo para el Generic Access Profile, y se encarga de controlar las conexiones y los anuncios en BLE.

     

    GAP es lo que permite que tu dispositivo sea público hacia el exterior y determina como dos dispositivos pueden (o no) interactuar entre ellos.

     

    El GAP define varios roles para los dispositivos, pero lo único que debemos tener claro es que vamos a tener dispositivos centrales y los periféricos.

     

    Los periféricos son dispositivos pequeños, de baja potencia, de bajos recursos, que pueden conectarse a dispositivos centrales mucho más potentes…, un ejemplo de periférico puede ser un glucómetro, un medidor de pulsaciones, un beacon, etc.

     

    Un dispositivo central se corresponde normalmente con un teléfono móvil o una Tablet que tienen una capacidad de proceso mucho mayor.

     

    Transmisión de Datos en GAP:
    Hay dos maneras de transmitir información a través de GAP: El Advertising Data payload y el Scan Response payload.

     

    Ambos payloads son idénticos y pueden contener hasta 31 bytes, pero solo el advertising data payload es obligatorio, ya que es el payload que se transmite continuamente desde el periférico, para permitir que los nodos y/o dispositivos centrales en su alcance sepan de su presencia.

     

    El scan response payload es opcional y puede ser pedido desde un dispositivo central, de este modo los periféricos pueden transmitir información extra como el nombre del dispositivo o alguna característica especial definida por el fabricante.

     

    Proceso de Advertising:
    Un periférico emite su Advertising Data payload a intervalos regulares configurables, cada vez que el intervalo pasa, el periférico emite su Advertising Data payload.

     

    Intervalos altos, permiten ahorrar batería, mientras que intervalos cortos, permiten ser más reactivos.

     

    Si un dispositivo central necesita más datos y el periférico lo permite, puede solicitar adicionalmente el scan response payload, y este contestara con la información adicional.

     

    El Modo Broadcast:
    Si bien la mayoría de los periféricos se anuncian para que se pueda establecer una conexión y se puedan utilizar los servicios y las características del GATT (lo que permite intercambiar mucha más información y en ambos sentidos), hay situaciones en las que sólo se desea anunciar datos (advertising).

     

    El principal caso de uso, es cuando se desea que un periférico transmita datos a más de un dispositivo a la vez.

     

    Esto sólo es posible utilizando el Advertising Data payload ya que los datos enviados y recibidos en modo conectado sólo pueden ser vistos por los dos dispositivos conectados.

     

    Incluyendo una pequeña cantidad de datos personalizados en los 31 bytes del advertising o scan payloads, podemos usar un periférico BLE para enviar datos unidireccionalmente a dispositivos centrales en el rango de alcance, esto es lo que se conoce como Broadcasting in BLE.

     

    Servicios y Características:
    Las transacciones GATT en BLE se basan en denominados Perfiles, Servicios y Características.

     

     

    Los Perfiles:
    Un perfil es una colección predefinida de servicios que ha sido especificada por el Bluetooth SIG o por el fabricante del periférico.

     

    Los Servicios:
    Los servicios se utilizan para dividir datos en entidades lógicas y contienen trozos específicos de datos llamados características.

     

    Un servicio puede tener una o más características y cada servicio se distingue de otros servicios por medio de un ID numérico único denominado UUID, que puede ser de 16 bits (para servicios BLE adoptados oficialmente) o de 128 bits (para servicios personalizados ).

     

    Se puede encontrar una lista completa de los servicios BLE adoptados oficialmente en la página del portal de desarrolladores de Bluetooth.

     

    Como ejemplo, si observamos el Servicio de Frecuencia Cardíaca, podemos ver que este servicio oficialmente adoptado tiene un UUID de 16 bits de 0x180D, y contiene hasta 3 características, aunque sólo es obligatorio la primera.., “Medición de la frecuencia cardíaca”.., luego la ubicación del Sensor corporal y finalmente el punto de control de la frecuencia cardíaca.

     

    Las Características:
    El concepto de nivel más bajo en las transacciones GATT son las características, que encapsulan un único tipo de dato, aunque puede contener una matriz de datos relacionados, como valores X / Y / Z de un acelerómetro de 3 ejes, etc.

     

    De forma similar a los Servicios, cada Característica se distingue a través de un UUID predefinido de 16 o 128 bits, y somos libres de usar las características estándar definidas por el Bluetooth SIG o definir sus propias características personalizadas que sólo su periférico y aplicaciones entienden.

     

    Como ejemplo, la característica de medición de la frecuencia cardíaca es obligatoria para el servicio de frecuencia cardiaca y usa un UUID de 0x2A37.

     

    Comienza con un único valor de 8 bits que describe el formato de si los datos son UINT8, UINT16, etc.

     

    Las características son el elemento principal que vamos a usar para interaccionar con nuestro periférico BLE, por lo que es importante entender el concepto.

     

    Pueden ser de solo lectura o de escritura.., de esta manera se pueden usar para realizar comunicaciones bidireccionales de una manera muy sencilla.

     

    Rovian@s, llegados a este punto os tengo que dar no muy buenas noticias sobre la utilización del Bluetooth BLE en este proyecto de Guantes Hápticos.

     

    Debido al sistema de comunicación que usa el Bluetooth BLE, no existe medios de comunicación para emparejar y/o conectar estos dispositivos al PC y usarlos como un Bluetooth estándar de otros Arduinos.

     

    Hasta la fecha, se podía usar el Bluetooth de los arduinos para realizar una conexión Serial COM y leer los datos desde el puerto COM de comunicación…, pero con el Bluetooth BLE no es posible, a no ser que…

     

    Como exclusiva os informo que estoy trabajando en un JavaScript haciendo uso de las API del Explorador Crome para crear el primer método de conexión entre el PC y puertos de comunicación COM.

     

    Me preguntaba ¿Cómo es posible que no se pueda emparejar y/o conectar un Bluetooth BLE al PC y solo exista utilidades para Móviles y Tablet?.

     

    Debido a las características del Bluetooth BLE este no funciona como un Bluetooth normal, además ni tan siquiera se programa y usa de una forma normal, todo son complicaciones y no hay una forma “fácil de realizar funciones” con este Bluetooth BLE.

     

    Pero.., como os estoy citado y como exclusiva y parte de este proyecto y promesas…, voy a realizar una utilidad mediante la API del Explorador Crome en lenguaje de JavaScript, que permitirá la conexión de dispositivos Bluetooth LE al PC y enviar sus datos al Puerto de comunicación serial COM de Windows, para que aquellas utilidades o programas que estéis creando os funciones mediante conexión Bluetooth LE.

     

    Actualmente, ya dispongo de la conexión estable al PC y captura de datos a un formulario de pruebas…, ahora debo de enviar los datos al puerto serial COM.

     

    Os dejo un video del avance.

     

    Bluetooth BLE SPP Windows en Progreso

     

    Tras esto, os quiero informar que estaré unos días sin aportar más avances debido a que estaré algo ocupado y además de vacaciones…, aun no me llegaron los sensores y actuadores, por lo que tampoco puedo seguir avanzando como me gustaría el proyecto.

     

    Hasta la fecha ya sabemos cómo conectar el arduino, parpadear en el códigos y llevar los datos del giroscópio a Visual Basic 6.0 y hacer funcionar la muñeca de nuestra mano 3D dentro del Unity3D mediante conexión entre VB6.0 y Unity3D. ¿No está mal NO?

     

    Ahora quiero poner mi atención en realizar el código para hacer funcionar el Bluetooth BLE del Arduino Nano 33 en el PC y llevar los datos al Unity3D para hacer funcionar la mano 3D con los datos.

     

    Un saludo a tod@s, geek CONTINUARÁ
    Por tus Donaciones…, Muchas Gracias
    Código 4. Bluetooth BLE-SPP

    HMD VR-TEK WVR3 1440X1440*2 - Visita y Obtén mi Configuración para tu Visor VR en el Foro==> Steam - VR ................................................................................... Soluciones para el Wrappers VorpX y otros Hack Imprescindibles Rovianos en este Hilo ==> Wrappers VorpX ...................................................................................... Rovian@s os explico, como fábricar tus Guantes Hápticos con un Arduino® ABX00030 Nano 33 BLE desde este Hilo ==> Fábrica tus Guantes Hápticos

    4
  • Legna

    20 Nov 2013 01:44

    Mensajes: 798

    Legna » 29 JUN 2020  21:46

    Hola a todos Rovian@s,

     

    Simplemente informaros que ya dispongo de mis actuadores y sensores de presión.

     

    Actuadores y Sensores para el proyecto de Guantes Hápticos.

     

    Como podéis apreciar, los sensores de presión son bastantes pequeños…, los actuadores disponen de 10mm de diámetro.

     

    Si tienes preguntas o dudas sobre este proyecto.., no dudes en preguntar Rovian@.

     

    Salu2, geek CONTINUARÁ
    Por tus Donaciones…, Muchas Gracias

    HMD VR-TEK WVR3 1440X1440*2 - Visita y Obtén mi Configuración para tu Visor VR en el Foro==> Steam - VR ................................................................................... Soluciones para el Wrappers VorpX y otros Hack Imprescindibles Rovianos en este Hilo ==> Wrappers VorpX ...................................................................................... Rovian@s os explico, como fábricar tus Guantes Hápticos con un Arduino® ABX00030 Nano 33 BLE desde este Hilo ==> Fábrica tus Guantes Hápticos

    4
  • Legna

    20 Nov 2013 01:44

    Mensajes: 798

    Legna » 24 OCT 2020  7:30

    Hola a todos los de la comunidad de Realovirtual, soy la compañera de Legna, os quiero informar que el pasado mes de Septiembre, Ángel, conocido por ustedes como Legna, a fallecido por Covid19.

     

    Os quiero informar de ello, por que supongo que muchos de ustedes no conocíais verdaderamente como era él y de su interés por aportar sus conocimientos, ayudas o ideas.

     

    Lamentablemente, este pequeño proyectó no podrá ser finalizado.

     

    Quiero agradecer a las pocas personas que lo hicieron, el apoyo a su proyecto.

     

    Muchas Gracias.

    HMD VR-TEK WVR3 1440X1440*2 - Visita y Obtén mi Configuración para tu Visor VR en el Foro==> Steam - VR ................................................................................... Soluciones para el Wrappers VorpX y otros Hack Imprescindibles Rovianos en este Hilo ==> Wrappers VorpX ...................................................................................... Rovian@s os explico, como fábricar tus Guantes Hápticos con un Arduino® ABX00030 Nano 33 BLE desde este Hilo ==> Fábrica tus Guantes Hápticos

    4
  • albertopina1

    17 Nov 2013 19:40

    Mensajes: 4914

    Visores

    Meta Quest 3
    albertopina1 » 24 OCT 2020  8:30

    Joder, vaya palo!

     

    Lo siento mucho, era un gran pilar de esta comunidad, siempre contribuyó con valiosos aportes, le echaremos de menos, que gran perdida.

     

    Descanse en paz.

    Su pérgola en Murcia y Alicante al mejor precio en www.pergomur.com

    2
  • Rioga

    7 Oct 2016 09:27

    Mensajes: 857

    Ubicación: Barcelona

    Visores

    Oculus Quest
    HP Reverb G2
    Rioga » 24 OCT 2020  11:23

    Mis condolencias, descanse en paz...

    2
  • Harold

    Moderador

    10 May 2013 23:05

    Mensajes: 5086

    Visores

    Oculus Rift S
    Oculus Quest 2
    Harold » 24 OCT 2020  12:03

    Lo siento mucho. Llevaba con nosotros desde los inicios y siempre aportando, como este último caso del guante :( Una gran pena. Mis condolencias. Que descanse en paz.

    VR is here!

    2
  • altair28

    Colaborador

    18 Ago 2013 16:58

    Mensajes: 8753

    Ubicación: En mi mundo virtual

    Visores

    Oculus Quest
    Oculus Quest 2
    Air Link
    Meta Quest 3
    altair28 » 24 OCT 2020  12:14

    Joder, me he quedado eek Lo siento muchísimo, se le echará mucho de menos por aquí. cry

    Mi PC: AMD Ryzen 7 7700x, Nvidia RTX 4070 Ti, 32 Gb RAM DDR5 6000Mhz

    1
  • sellocpr

    Colaborador

    2 Nov 2017 10:24

    Mensajes: 1150

    Ubicación: Madrid

    Visores

    Gear VR
    PlayStation VR
    Daydream
    Oculus Go
    Lenovo Mirage Solo
    Oculus Quest
    PlayStation VR2
    sellocpr » 24 OCT 2020  12:23

    Vaya palazo, lo siento mucho mucho, mis condolencias a amigos y familiares, ojalá y estas noticias no se tengan que llegar a dar nunca. Descansa en paz Legna

    1
  • Davilonmogollon

    18 Ene 2014 05:27

    Mensajes: 829

    Ubicación: Cádiz

    Visores

    Pico Neo 3 Pro & Neo 3 Pro Eye
    Meta Quest 3
    Davilonmogollon » 24 OCT 2020  14:54

    Una verdadera pena. Lo siento muchísimo. Un fuerte abrazo y mucho ánimo. D.E.P.

    - Caja/Torre Nox Hummer Nova Cristal Templado - 2x- Disco Duro Kioxia EXCERIA G2 1TB Gen3 PCIe x4 NVMe M.2 SSD - 1x- Procesador Intel Core i7-13700K 5.4GHz Socket 1700 Boxed -1x- Fuente/PSU Cooler Master MWE 80 Plus Gold 1050W Modular -1x- Placa Base Asus TUF Gaming B760-PLUS WIFI Socket 1700 -1x- Tarjeta Gráfica MSI GeForce RTX 4070 VENTUS 2X OC 12GB GDDR6X DLSS3 -1x- Memoria DDR5 Corsair Vengeance 32GB 2x16GB 6000MHz CL36 *Portátil gaming - ASUS ROG Zephyrus G15 GA502IV-HN020, 15.6",AMD® Ryzen™7 4800HS,16GB,512GB, RTX™ 2060

    0
Página 2 de 3

Usuarios navegando por este foro:

1 Anónimo