Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - XNavarro

Páginas: [1]
1
Eventos IDAC / 2018 IDAC CHAMPIONSHIP - Normas y Calendario
« en: Febrero 13, 2018, 11:31:11 am »

Os presentamos la tercera edición del campeonato interno del Club IDAC  (primera edición aquí, segunda edición aquí). Este año hemos realizado algunos cambios en base a vuestras opiniones y además hemos decidido seguir el calendario de la LNE de 3a división para que las carreras del campeonato interno sirvan como entreno para ella.

A diferencia de las anteriores ediciones, este año no todo es contenido base. Hemos añadido algunos circuitos y coches de pago.

No se requiere inscripción al campeonato y la única condición para entrar a las carreras es ser miembro del Club IDAC. Si aun no lo eres puedes inscribirte en este hilo.

Los pilotos que podáis, grabad las carreras y subidlas a youtube. Actualizaremos el hilo con los vídeos para que podamos ver la carrera desde diferentes puntos de vista.

Normas generales:
  • Antes de nada léete el sporting code.
  • No se revisarán las carreras para sancionar. Estamos aquí para aprender y disfrutar
  • Es obligatorio el Fair-Play. Si cometes un fallo de pilotaje y echas a otro piloto de pista al adelantarlo, espérale y cede tu posición.
  • Entrenad las carreras. Disfrutareis mucho más si rodáis seguros por pista.


Puntuación:
En cada carrera, puntuarán* los primeros 20 pilotos de esta forma:

1. 35 puntos      11. 10 puntos
2. 30 puntos      12. 9 puntos
3. 25 puntos      13. 8 puntos
4. 20 puntos      14. 7 puntos
5. 18 puntos      15. 6 puntos
6. 16 puntos      16. 5 puntos
7. 14 puntos      17. 4 puntos
8. 13 puntos      18. 3 puntos
9. 12 puntos      19. 2 puntos
10. 11 puntos    20. 1 punto

Para puntuar será necesario completar el 80% de las vueltas del líder.

Además de los puntos por posición, se otorgarán puntos adicionales por:
  • Vuelta rápida absoluta en carrera: 2 puntos.
  • Pole: 2 puntos.
También se otorgarán 25 puntos adicionales al final del campeonato al piloto con menos incidentes y que haya completado como mínimo 5 de las 7 carreras.


Premios:
Próximamente


Calendario:
El campeonato empieza el 15 de Marzo y termina el 7 de Junio aproximadamente. El contenido o fecha de alguna carrera puede cambiar si la organización lo estima oportuno.

Configuración general:
  • Límite de incidentes: 15
  • Fast Repair: 1














Clasificación general:

2
Eventos IDAC / #SVSC3 - Solteros contra Casados: La venganza
« en: Diciembre 19, 2017, 04:26:07 pm »


Bienvenidos a la #SVSC3!!

Una vez mas se llevará a cabo el mayor enfrentamiento automovilístico visto nunca. La lucha de Titanes. Jamás ha existido nada parecido... y esta vez en Laguna Seca con el VW Beetle GRC!!


David Álvarez se ha currado estas geniales skins para la ocasión. Gracias!


La carrera se celebrará el viernes 29/12/2017 a las 21:30

Fecha definitiva: viernes 29/12/2017 a las 21:30
Temperatura: morning 26°
Carrera: P80-Q10-R30
Incidentes: Ilimitados
Fast-repairs: Ilimitados

Setup para el Beetle: https://mega.nz/#!6MYjSSqL!jrvA5PViGOS5_wH23UzvHrWvVcXZWzgvbREB-IMbF_Q

Como siempre, os pedimos que confirmeis vuestra asistencia indicando nombre y equipo, respondiendo a este mismo hilo. El único requisito es ser miembro de IDAC. Hoy mismo publicaremos el setup aquí mismo... Estad atentos!

#TEAMCASADOS
Xavi Navarro
Juan Ginés
Jose Carlos Garcia
JuanRa Cercós
Alejandro Trenor
Andrea Berti
Sergio Duran
Juanjo Casado

#TEAMSOLTEROS
Adrián Antón
Nicolás Montes
Beñat Taberna
Victor Ramirez
Adrian del Poyo
Juan Francisco Magdalena

Suerte a todos los participantes!

3
Eventos IDAC / 2017 IDAC Championship - Confirmación asistencia CARRERA 6
« en: Septiembre 27, 2017, 12:05:12 pm »
Buenos días,

Para la carrera 6, del dia 03/10/2017, necesitamos que confirmeis vuestra asistencia respondiendo a este mensaje con vuestro nombre en iracing.
Podeis hacerlo hasta el lunes 02/10/2017 a las 22:00.

Gracias a todos

4
General IDAC / I Gran Premio para Parejas
« en: Julio 28, 2017, 08:41:18 am »
EVENTO CANCELADO
Lamentablemente, habrá que cancelar el evento por falta de asistencia. La próxima será... Saludos.


En IDAC nos gusta pasar tiempo con nuestros juguetes, pero también con nuestras medias naranjas. Así que se nos ha ocurrido organizar esta carrera para que, en lugar de correr nosotros, corran ell@s!

Se trata de ayudarles a entrenar un poco y que puedan competir con nuestra ayuda. Quien sabe... Igual descubrimos algún talento!

Tenéis toda la información en la imagen. Los que quieran participar o tengan preguntas id dejando mensaje en este hilo. El evento está abierto a todo el mundo, sea miembro de IDAC o no.

Participantes:
  • Medio Limón de Xavi Navarro
  • Chorba de Alexander Céspedes
  • Churri de Adrian del Poyo
  • Querida de Jordi Rosell
  • Chati de Miguel Garcia

A correr!!

5
Eventos IDAC / 2017 IDAC Championship - Vídeos e imágenes
« en: Junio 09, 2017, 09:28:43 am »
Abrimos este hilo para que podáis dejar  enlaces a vídeos o imágenes de las carreras del campeonato. Id respondiendo y ya iremos actualizando este mensaje a modo de índice.

Un saludo y suerte en el campeonato!

Carrera 1 (Legend Ford - Lime Rock Park)
Carrera desde el Cockpit de Ángel Nuño: https://www.youtube.com/watch?v=84IfSejMfiM
Carrera desde el Cockpit de Alberto Ruiz: https://www.youtube.com/watch?v=XgL129fHprI&t
Carrera desde el Cockpit de Juan Francisco: https://www.youtube.com/watch?v=-BC8q8e_jeg
Imágenes de Alejandro:



Carrera 2 (Indycar - okayama)
Carrera desde el cockpit de Alberto:https://www.youtube.com/watch?v=rAYecRpBThA
Carrera desde el Cockpit de Angel: https://www.youtube.com/watch?v=95rwZl6HMN0


Carrera 3 (Spec Racer - Phoenix)
Carrera desde el Cockpit de Angel: https://www.youtube.com/watch?v=-QhDDyxnn8s
Carrera desde el Cockpit de Xavi: https://www.youtube.com/watch?v=rTPy8t-TQ6U

Carrera 4 (Nascar Truck - Charlotte)
Carrera desde el Cockpit de Oscar: https://www.youtube.com/watch?v=uAFubWNwSZk
Carrera desde el cockpit de Alberto: https://www.youtube.com/watch?v=bFPQsfjI3vA
Carrera desde el cockpit de Angel: https://www.youtube.com/watch?v=MJlrazAZ-b8

6
Eventos IDAC / 2017 IDAC Championship - Dudas y preguntas
« en: Mayo 23, 2017, 11:03:53 am »
Hola a todos,

Cualquier duda, pregunta, sugerencia sobre el campeonato dejadla en este hilo. El otro lo dejaremos para publicar resultados o cambios que puedan producirse.

Los que tengáis posibilidad de grabar las carreras y subirlas a youtube dejad enlace al vídeo en este hilo.

Gracias y suerte en el campeonato!

7
Eventos IDAC / 2017 IDAC Championship - Normas y Calendario
« en: Mayo 23, 2017, 11:01:48 am »

Empieza la segunda edición del campeonat IDAC  (primera edición aquí) con un formato renovado y que promete diversión y emoción para todos los pilotos independientemente de su nivel.

Todas las carreras del campeonato están configuradas con contenido base de iRacing.

No se requiere inscripción al campeonato y la única condición para entrar a las carreras es ser miembro del Club IDAC. Si aun no lo eres puedes inscribirte en este hilo.

Los pilotos que podáis, grabad las carreras y subidlas a youtube. Actualizaremos el hilo con los vídeos para que podamos ver la carrera desde diferentes puntos de vista.

Normas generales:
  • Antes de nada léete el sporting code.
  • No se revisarán las carreras para sancionar. Estamos aquí para aprender y disfrutar
  • Es obligatorio el Fair-Play. Si cometes un fallo de pilotaje y echas a otro piloto de pista al adelantarlo, espérale y cede tu posición.
  • Entrenad las carreras. Disfrutareis mucho más si rodáis seguros por pista.


Puntuación:
En cada carrera, puntuarán* los primeros 20 pilotos de esta forma:

1. 35 puntos      11. 10 puntos
2. 30 puntos      12. 9 puntos
3. 25 puntos      13. 8 puntos
4. 20 puntos      14. 7 puntos
5. 18 puntos      15. 6 puntos
6. 16 puntos      16. 5 puntos
7. 14 puntos      17. 4 puntos
8. 13 puntos      18. 3 puntos
9. 12 puntos      19. 2 puntos
10. 11 puntos    20. 1 punto

Para puntuar será necesario completar el 80% de las vueltas del líder.

Además de los puntos por posición, se otorgarán puntos adicionales por:
  • Vuelta rápida absoluta en carrera: 2 puntos.
  • Pole: 2 puntos.
También se otorgarán 25 puntos adicionales al final del campeonato al piloto con menos incidentes y que haya completado como mínimo 7 de las 9 carreras.


Premios:
Esta edición tenemos premio para el ganador del campeonato gracias a nuestro patrocinador Thrustmaster:

Además se sorteará una Gift card de 35$ para iRacing, gentileza de Ángel Felipe Nuño, agente exclusivo de Generali Seguros (número C007274718005K, podéis contactar con él en angelfelipe.ngarcia@generalimediadores.es), entre todos los participantes que hayan corrido 6 o más carreras.

También se hará entrega de una Gift card de 15$, cortesía de Alejandro Jiménez al piloto más limpio del campeonato (sin tener en cuenta la última carrera)!

Y para terminar, Raúl Mada ha ofrecido 4 chapas metálicas (diseño a elegir por el ganador) para sortear entre los participantes de 2 carreras aleatorias. Se entregarán 2 chapas a cada uno de los ganadores.


Calendario:
El campeonato empieza el 6 de Junio y termina el 14 de noviembre aproximadamente. El contenido o fecha de alguna carrera puede cambiar si la organización lo estima oportuno.

Configuración general:
  • Límite de incidentes: 15
  • Fast Repair: 2



Y como final... Dirt loco! Esta carrera no puntuará para el campeonato



Clasificación general:

Enhorabuena Adrián por la merecida victoria!!!




Suerte a todos!

8
Brico / Volante F1 impreso en 3D para bases Thrustmaster
« en: Mayo 18, 2017, 01:34:32 pm »
Buenas a todos,

Vuelvo con un nuevo volante para bases Thrustmaster (el anterior podeis verlo aquí: http://iracing.es/forums/brico/mi-volante-custom-para-bases-thrustmaster/ ). Esta vez totalmente hecho con la impresora 3D.

Antes que nada aclarar que el diseño original no es mio y lo podeis encontrar en thingiverse: http://www.thingiverse.com/thing:1513508

Sobre ese diseño decidí hacerle algunas modificaciones. Algunas profundas como añarlie la pantalla y los leds para las RPM y otras mas triviales, como hacerle refuerzon en el interior, cambiar algunos botones de ubicación... Además le añadí levas magnéticas para las marchas ya que las que venian en el diseño original no me convencieron.

Las características que quería para el volante eran:
  • Botones. Muchos botones
  • Display con marcha, combustible, vueltas restantes, etc...
  • Leds para las rpm
  • 1 Rotary switch para cambiar el modo de la blackbox

Para la electrónica opté por un Teensy 3.5 por varias razones: tiene muchos inputs, tiene mas potencia que un arduino micro y se puede usar como joystick directamente, lo cual facilita mucho la interfaz con el PC.

No hice demasiadas fotos del proceso de construcción en si, pero aquí van las que tengo.

Estas son todas las piezas que se imprimieron (para algunas de ellas se necesitaron varias copias):


Impresión de la primera pieza:


Empieza a tomar forma:


El display encaja bien:


Chapa y pintura!


Cableando y probando la electrónica (GO IDAC!):


Terminado a falta del alcántara:


Colocado en el cockpit de madera... ;) Primera prueba, un fracaso... pero ser arregló al día siguiente :)


Forrando con goma eva para hacerlo un poco mas blando:


Terminado 100% El forrado con alcántara se lo hizo mi mujer que es una crack con la aguja y el hilo (gracias cariño! ;))



La información de los leds y la pantalla los mando a través del Dash que hice (http://iracing.es/forums/brico/un-dashboard-sencillo/) con una velocidad de refresco de 30Hz, suficiente para que se vea todo fluido. Aun tengo alguna que otra cosa por pulir en el protocolo de comunicación, pero es funcional. Aquí podeis ver un video del volante en funcionamiento con el FR2.0:

Y esto es todo mas o menos. Si os queréis hacer uno o tenéis curiosidad preguntadme lo que haga falta. No tengo problema en compartir los diseños modificados, el código fuente o lo que haga falta.

Aquí tenéis el BOM (precios aproximados):

Plástico1 20,00 €
Botones14 7,00 €
Rotary switch1 7,00 €
Rotary encoders4 4,00 €
Cable USB espiral1 3,90 €
Conector USB1 4,84 €
LCD Nextion1 23,58 €
Teensy 3.51 30,00 €
Conectores dupont1 5,00 €
Resistencias 10K11 0,40 €
Cables1 3,00 €
Tornillos1 4,00 €
Goma eva1 1,00 €
Imitación alcántara1 15,00 €
Imanes Neodimio4 1,60 €
Vinilo fibra carbono1 3,00 €
Pintura1 9,00 €
Papel pegatina1 4,50 €

No ha salido súper barato, pero teniendo en cuenta que lleva la pantalla... no está nada mal!
No he contado las horas que hay ahí, pero muchas. Sobretodo modificando los modelos 3D y programando el teensy, que he ido aprendiendo sobre la marcha.
Saludos a todos!

Xavi.

9
General IDAC / Pachanga Solteros Vs. Casados RELOADED
« en: Mayo 12, 2017, 05:37:10 pm »

Chicos... Ya está aquí! Nunca segundas partes fueron tan buenas! Esta vez en Lime Rock Park chicane con el Dallara.

La primera edición la ganó el Team Solteros, pero los casados vienen con mas pañales que nunca preparados a vencer a las hordas de condones.




Tenéis disponibles estas increíbles skins creadas por Joaquin (https://twitter.com/JoCoRo34) en el drive del club.

Id respondiendo a este hilo con vuestro nombre y equipo para ver cuantos somos y, si hace falta, equilibrar un poco los bandos. Indicad además que combinación queréis para la tercera edición y así se podrá ir preparando.

Para la carrera será el coche y circuito ya mencionados y yo propongo el setup fixed High Downforce, para minimizar las muertes durante el evento. Vamos hablando sobre ello y cambiamos lo que haga falta. Para la fecha propongo que sea un viernes o sábado de 21:30 a 23:30. 70 min. práctica, 10 qualy y 40 carrera.

Fecha definitiva: viernes 02/06/2017 a las 21:30
Temperatura: morning 26°
Carrera: P70-Q20-R30
Incidentes: Ilimitados
Fast-repairs: Ilimitados

Team Casados
- Xavi Navarro
- Jose carlos garcia
- Roger Clotet
- Juan Ramon Cercós
- Joaquin Corredor
- Alejandro Trenor
- Sergio Duran
- Juanjo Casado
- Felipe Nuño
- Alex Zuloaga
- Carlos Tamayo
- Nacho
- Jorge de Celis

Team Solteros
- Nicolás Montes
- Sito Sanchez
- Àlex Mas
- Adrian Anton
- Alejandro Jimenez
- Diego Diaz
- Juan Francisco
- Edgardo Rejas
- Raul Mada
- Ismael Hernandez
- Beñat Taberna (el soltero de oro)
- Ezequiel Rodriguez
- Alexander Cespedes
- Jonatan San Emetrio

Nos vemos en pista!


RESULTADOS

10
General IDAC / Pachanga Solteros Vs. Casados
« en: Febrero 21, 2017, 03:18:30 pm »
Después de lo hablado por whatsapp, abrimos hilo para irnos apuntando.
Que cada uno ponga su nombre, equipo (soltero o casado) y combinación para la carrera. En principio se ha dicho sólo contenido base.

Para decidir el equipo ganador se ha propuesto hacerlo por la media de tiempos de los miembros del equipo y sumando 1 décima de penalización a ese tiempo por cada incidente. Pendiente el tema de puntuación, aunque tampoco es que sea demasiado importante. Vamos a pasarlo bien!

Enlace para votar fecha: http://doodle.com/poll/89p7sh3a6e2gt3yk#table

Circuito y coche:
Cadillac CTS-V en Okayama

Fecha y Hora:
Lunes 27/02 de 21:30 a 23:20.
70 minutos práctica, 20 de qualy y 30 de carrera.

Los trajes:



SOLTEROS:
Alejandro Jiménez - Cadillac - Lime Rock
Alex Mas - Cadillac - Okayama
Adrián Antón - Cadillac - Okayama
Beñat Taberna - legend ford - charlotte Infield Road Course
Alejandro Menendez - V8 - Limerock
Raul Mada - Cady - Okayama
Víctor Manuel Blázquez - Dallara - Okayama
Juan Francisco Magdalena Alemán - dallara -Okayama
Sito Sánchez - Cadillac - Lime Rock
Juan Ramon
David Alvarez

CASADOS:
Xavi Navarro - Dallara - Lime Rock
Joaquin Corredor - Cadillac - Okayama
Alberto Ruiz Rodriguez - Dallara - Okayama
Carlos Tamayo - Dallara - Okayama
Alejandro Trénor - Cadillac - Okayama
Jose Marco - Cady - Okayama
Roger Clotet - Cadillac - Okayama
Miguel Ruiz Navarro - cady - okayama
Juan Ramón Cercós - Cady - Lime Rock
Jose Carlos Garcia - Cadillac - Okayama
Nacho Casas - Dallara - Okayama
Juanjo Casado - Dallara - Okayama
Pablo Castañeda - Dallara - Okayama


Resultados:

11
Brico / Un Dashboard sencillo
« en: Febrero 15, 2017, 08:56:50 am »
Hola gente!

Algunos ya habéis visto en lo que ando liado estos últimos días. Se trata de un dashboard sencillo para pantallas de 5 o 7 pulgadas colocada detrás del volante.
Se que existen productos muy buenos y muy profesionales (Z1 o JRT) pero para mi son, por un lado, demasiado completos (no entiendo la mitad de las cosas que enseña) y por otro, requieren un pequeño desembolso para funciones básicas como el cálculo de combustible.

Así que he decidido ponerme manos a la obra y hacer algo fácil, bonito (creo) y gratuito. Tiene sólo funciones muy básicas pero que son suficientes para los que, como yo, nos tomamos esto como una diversión sin aspiraciones a nada serio.

Funciones que tiene ahora:
- Display RPM
- Leds RPM con parpadeo
- Velocidad
- Tiempo última vuelta/mejor vuelta
- Delta con mejor vuelta (tiene algún fallo de momento)
- Vuelta actual/Vueltas totales
- Tiempo carrera restante
- Gasolina restante
- Vueltas aproximadas con el fuel restante
- Temperatura aceite y agua
- Listado de las últimas 7 vueltas con su tiempo y consumo
- Bandera actual (si hay mas de una activa sólo se muestra una, estoy en ello)

Os pongo unas capturas para que veáis como va (perdón por la calidad):

Por hacer:
- Configuración para seleccionar modo web/embebido Se inicia la pantalla de configuración y a partir de ahí se arranca uno u otro modo.
- Configuración botón para cambiar a vista vueltas Hecho
- En versión web, botón para poner a pantalla completa Al pulsar en cualquier parte de la página lo pasa a pantalla completa.
- Cálculo de vueltas /combustible en línea, sin esperar a terminar la vuelta
- Mostrar varias banderas simultaneas (p.ej. azul y reparaciones)
- Mostrar pantalla de espera cuando se está en el simulador, pero no en el coche.
- Configuración para seleccionar tema clar o oscuro Hecho
- Configuración para seleccionar la gama de color (verde o azul)
- Implementar vista de vueltas (últimas 7) en la interfaz web Hecho
- Opciones para seleccionar el puerto y tasa de refresco del servidor web. Hecho en la ventana inicial.
- Añadir automáticamente excepción al Firewall de windows Hecho
- En la interfaz web, si pierde la conexión, reconectar automáticamente Hecho
- Mostrar Id de sesión, sub sesión y SoF de la sala Hecho
- Modo Widgets Permite crear widgets en lugar de una pantalla completa. de momento sólo Combustible y RPM.
- Y las ideas que me vayan viniendo....

Descarga:
https://mega.nz/#!KV4UmDYS!_e1A6ydkBURWVURCJ_1lkiTJ19eBM2NxEJw5Yb2gEyA

Cambios 17/02/2017
Se ha implementado la interfaz por web. En próximas versiones se podrá seleccionar si se quiere la interfaz web o la embebida. A diferencia de la interfaz embebida, que actualiza a 60hz, la versión web no he conseguido nada mejor que 20hz (que ya es bastante), a partir de ahí pierde la conexión y deja de actualizar. Sigo en pruebas con ello.
Para la interfaz web hay que ejecutar la aplicación como administrador para que funcione correctamente.









Y esto es mas o menos todo. Si a alguien le hace gracia probarlo que lo diga y le paso el enlace de descarga.
Os recuerdo que está en desarrollo, así que no está libre de errores. Los que lo quieran probar tenedlo en cuenta, no lo uséis  en carreras serias!!

Un saludo!

P.D. Agradecimientos a Raul Hevas (creador de SODE Fuel Calculator) por su ayuda con algunos cálculos, a HansoloJoe por sus consejos en el diseño y al resto de miembros de IDAC que se han ofrecido a hacer de betatesters. Sois Grandes!  ;)

12
Brico / Mi volante custom para bases Thrustmaster
« en: Diciembre 18, 2016, 01:15:28 pm »
Muy buenas a todos,

Vengo a mostrar lo que llevo haciendo los últimos 2 meses. Es un volante para bases Thrustmaster (TX, T300, T500 y supongo que TS-PC) sin cables.






Tiene 10 botones (8+Levas) que van conectados a la base y la barra de leds para las RPM y el display para la marcha engranada que van conectados por bluetooth al PC (de momento sólo compatible con iRacing).
Toda la estructura está impresa en 3D con PLA con un alto infill. Esto le da buena rigidez aunque pesa algo mas que si estuviera hecho con placas de fibra carbono, pero como vereis he intentado que el BOM sea lo mas económico posible.

Os dejo algunas fotos mas y luego pasamos a cosas más "técnicas".
















Como veis, el interior es un poco caótico. Al haber puesto 2 arduino, la cantidad de cables se dispara. Bonito no es, pero funciona.

En cuanto a la estructura, como he comentado está impresa en PLA, con un infill del 100% en la cara frontal y trasera para darle más rigidez. El resto de piezas, como las levas o los soportes, están impresos con un infill del 40% para reducir el peso y mantener rigidez. En total, sin contar con las pruebas y piezas que he tenido que repetir, la impresión se habrá llevado entre 15 y 20 horas.

Los diseños de las piezas son míos basándome en otras existentes. En concreto estas:
Estructura: https://www.thingiverse.com/thing:1678086
Adaptador QR: https://www.thingiverse.com/thing:976223

las levas son magnéticas, con un microinterruptor de palanca larga y 2 imanes de neodimio de 5x8. Se pueden ajustar en distanca y también en recorrido. La verdad es que el tacto parece muy bueno.

En cuanto a la electrónica decir que no he inventado nada. la conexión del arduino a la base la saqué de un blog.
hay un arduino que se hace de interface entre los botones y la base (es una simple conexión serie) y el otro se encarga de recibir los datos por el módulo BT y mostrar los datos por el display y los leds. Realmente no es nada complicado.

Conexión de base a arduino: http://rr-m.org/blog/arduino-nano-controlled-buttons-for-thrustmaster-wheelbases-part-3/
Sketch de control de leds y display:
Código: [Seleccionar]
#include <Adafruit_NeoPixel.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <SoftwareSerial.h>

#define OLED_RESET 4
#define PIN            6
#define NUMPIXELS      16
#define BLINKSPD       100

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
Adafruit_SSD1306 display(OLED_RESET);
SoftwareSerial BT1(10,11); // RX, TX


long emillis =0;
int blink_color=pixels.Color(0,0,0);
uint32_t color_green=pixels.Color(0,10,0);
uint32_t color_orange=pixels.Color(10,5,0);
uint32_t color_red=pixels.Color(10,0,0);
uint32_t color_blue=pixels.Color(0,0,30);

long await=0;

uint32_t colors[] ={
    color_green,
    color_green,
    color_green,
    color_green,
    color_green,
    color_green,
    color_green,
    color_green,
    color_orange,
    color_orange,
    color_orange,
    color_orange,
    color_red,
    color_red,
    color_red,
    color_blue
  };

int currentPosition=0;
int isBlinking=0;

void setup() {
  pixels.begin();
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
 
  BT1.begin(9600);

  drawGear("X");   
  knightRider(3, 32, 4, pixels.Color(20,2,0)); // Cycles, Speed, Width, RGB Color (original orange-red)
  clearStrip();
  drawGear("");
}

void loop() {

  while (BT1.available()>0) {
    int v =BT1.read();

    if (v<=15) {
      currentPosition = v;
      drawRPM();
    } else if (v<=17) {
      isBlinking=v-16;
      drawBlink();
    } else if (v<=29) {
        switch (v) {
          case 18:
            drawGear("R");
            break;
          case 19:
            drawGear("N");
            break;
          default:
            drawGear(String(v-19));
        }
    }
    await=millis();
  }

  if (millis()-await>5000) {
    drawGear("");
    clearStrip();
    await=millis();
  }
}

void drawRPM() {
  for(int i=0;i<currentPosition;i++){
    pixels.setPixelColor(i, colors[i]);
  }
  for(int i=currentPosition;i<NUMPIXELS-1;i++){
    pixels.setPixelColor(i, pixels.Color(0,0,0));
  } 
  pixels.show(); // This sends the updated pixel color to the hardware.

}

void drawBlink() {
  if (isBlinking>0) {
    if (millis()-emillis>=BLINKSPD){
      if (blink_color==pixels.Color(0,0,0)) {
        blink_color=colors[NUMPIXELS-1];
      } else {
        blink_color=pixels.Color(0,0,0);
      }
      emillis=millis();     
    }
  } else {
    blink_color=pixels.Color(0,0,0);
  }
  pixels.setPixelColor(NUMPIXELS-1, blink_color); 
  pixels.show();

}

void drawGear (String g) {
  display.clearDisplay();

  if (isBlinking>0) {
    if (millis()-emillis>=BLINKSPD){
      if (blink_color==pixels.Color(0,0,0)) {
        display.invertDisplay(true);
      } else {
        display.invertDisplay(false);
      }   
    }
  } else {
    display.invertDisplay(false);
  }
 
  display.setTextSize(9);
  display.setTextColor(WHITE);
  display.setCursor(43,0);
  display.println(g);
  display.display();
}

void knightRider(uint16_t cycles, uint16_t speed, uint8_t width, uint32_t color) {
  uint32_t old_val[NUMPIXELS];
  for(int i = 0; i < cycles; i++){
    for (int count = 1; count<NUMPIXELS; count++) {
      pixels.setPixelColor(count, color);
      old_val[count] = color;
      for(int x = count; x>0; x--) {
        old_val[x-1] = dimColor(old_val[x-1], width);
        pixels.setPixelColor(x-1, old_val[x-1]);
      }
      pixels.show();
      delay(speed);
    }
    for (int count = NUMPIXELS-1; count>=0; count--) {
      pixels.setPixelColor(count, color);
      old_val[count] = color;
      for(int x = count; x<=NUMPIXELS ;x++) {
        old_val[x-1] = dimColor(old_val[x-1], width);
        pixels.setPixelColor(x+1, old_val[x+1]);
      }
      pixels.show();
      delay(speed);
    }
  }
}

void clearStrip() {
  isBlinking=0;
  for( int i = 0; i<NUMPIXELS; i++){
    pixels.setPixelColor(i, 0x000000);
  }
  pixels.show();
}

uint32_t dimColor(uint32_t color, uint8_t width) {
   return (((color&0xFF0000)/width)&0xFF0000) + (((color&0x00FF00)/width)&0x00FF00) + (((color&0x0000FF)/width)&0x0000FF);
}

uint32_t colorWheel(byte WheelPos) {
  byte state = WheelPos / 21;
  switch(state) {
    case 0: return pixels.Color(255, 0, 255 - ((((WheelPos % 21) + 1) * 6) + 127)); break;
    case 1: return pixels.Color(255, ((WheelPos % 21) + 1) * 6, 0); break;
    case 2: return pixels.Color(255, (((WheelPos % 21) + 1) * 6) + 127, 0); break;
    case 3: return pixels.Color(255 - (((WheelPos % 21) + 1) * 6), 255, 0); break;
    case 4: return pixels.Color(255 - (((WheelPos % 21) + 1) * 6) + 127, 255, 0); break;
    case 5: return pixels.Color(0, 255, ((WheelPos % 21) + 1) * 6); break;
    case 6: return pixels.Color(0, 255, (((WheelPos % 21) + 1) * 6) + 127); break;
    case 7: return pixels.Color(0, 255 - (((WheelPos % 21) + 1) * 6), 255); break;
    case 8: return pixels.Color(0, 255 - ((((WheelPos % 21) + 1) * 6) + 127), 255); break;
    case 9: return pixels.Color(((WheelPos % 21) + 1) * 6, 0, 255); break;
    case 10: return pixels.Color((((WheelPos % 21) + 1) * 6) + 127, 0, 255); break;
    case 11: return pixels.Color(255, 0, 255 - (((WheelPos % 21) + 1) * 6)); break;
    default: return pixels.Color(0, 0, 0); break;
  }
}

El código podría ser mucho mas pequeño, pero le he puesto una pequeña animación al arrancar para darle un toque de gracia.

La aplicación que envía los datos por BT desde el PC la he hecho con VB.NET y el port a c# del SDK de iRacing (iRSDKSharp), tampoco tiene mucho secreto. os copio aquí la parte importante:

Código: [Seleccionar]
    Imports iRSDKSharp

    Private Sub ProcessData()
        Dim Gear As Integer
        Dim Rpm, RpmP As Double
        Dim LedCount As Byte = 0

        Integer.TryParse(_Sdk.GetData("Gear"), Gear)

        Rpm = _Sdk.GetData("RPM")

        Counter += 1
        If Counter = 100 Then
            If Rpm = 0 Then
                Restart()
                Exit Sub
            End If
            Counter = 0
        End If

        If _SessionInfo <> _Sdk.GetSessionInfo Then
            _SessionInfo = _Sdk.GetSessionInfo()
            _MaxRpm = Double.Parse(YamlParser.Parse(_SessionInfo, "DriverInfo:DriverCarSLShiftRPM:"), NumberStyles.Any, CultureInfo.InvariantCulture)
        End If


        RpmP = Rpm * 100.0 / _MaxRpm

        Select Case RpmP
            Case Is > 99
                LedCount = 15
            Case Is > 97.6
                LedCount = 14
            Case Is > 96.0
                LedCount = 13
            Case Is > 94
                LedCount = 12
            Case Is > 91.6
                LedCount = 11
            Case Is > 87.5
                LedCount = 10
            Case Is > 82.5
                LedCount = 9
            Case Is > 76.6
                LedCount = 8
            Case Is > 70
                LedCount = 7
            Case Is > 62.5
                LedCount = 6
            Case Is > 54.1
                LedCount = 5
            Case Is > 45
                LedCount = 4
            Case Is > 35
                LedCount = 3
            Case Is > 24.1
                LedCount = 2
            Case Is > 12.5
                LedCount = 1
            Case Else
                LedCount = 0
        End Select

        SerialSend(LedCount, Gear)


    End Sub

    Private Sub SerialSend(LedCount As Integer, Gear As Integer)
        Dim data(2) As Byte
        data(0) = LedCount
        Data(1) = 16 + IIf(LedCount = 15, 1, 0)
        Data(2) = Gear + 19
        _Serial.Write(data, 0, 3)
    End Sub

Y poco más. Si alguno os quereis hacer uno igual o parecido preguntad y intentaré resolver vustras dudas. Soys libres de usar el código, la idea o los diseños 3d para lo que queráis aunque si lo haceis os agradeceré que me mencioneis ;)


Agradecimientos a:
Taras, por hacer el sketch y esquema de cableado para conectar el arduino a la base Thrustmaster.
Juha Koljonen, por el diseño de la estructura y levas para impresión en 3D.
Michael Bramkamp, por el diseño del adaptador del QR para la base.
A toda la comunidad arduino, por publicar todos esos ejemplos de código para que los demás podamos aprender.
A la comunidad de Spainlabs y a Ghosthawk, por ayudarme a poner en marcha mi impresora 3D.


BOM:
2 x Arduino Nano 6.75€
1 x Módulo BT HC-06 3.95€
1 x Display Oled 0.96" 6.89€
2 x Barra leds WS2812B RGB 9.98€
10 x Pulsadores 6.78€
5 x microswitch KW10 LR 2.02€
1 x Conector Mini din 6p M 1.70€
10 x Tuercas aluminio M3 6.10€
20 x Arandela cónica aluminio M3 7.03€
4 x Iman neodimio 5x8 1.70€
6 x Tornillo Din 7991 M3x30 1€
1 x pintura spray negro mate 8€

TOTAL: 61.9€ (aproximadamente)

Faltaría sumar el precio del aro y el plástico, pero no tengo claro que cantidad he usado realmente en la versión final.
No he sumado cables y alguna tontería más que ya tenía por casa.
Decir que todo lo he comprado por ebay y simpre que he podido a vendedores españoles. Si se compra en aliexpress a china es mucho mas barato.

Bueno, creo que es mas o menos todo. Si quereis preguntar os responderé con mucho gusto.

Un saludo y felices fiestas!

Xavi.

13
Sala de Presentaciones / Hola!
« en: Octubre 18, 2016, 05:42:28 pm »
Muy buenas!

Me llamo Xavi y hace 1 mes que empecé en esto. De momento estoy en D, pero sigo corriendo en la mazda hasta que compre algún coche y circuitos.

un saludo a todos!

Páginas: [1]