PDA

Ver la versión completa : Tutorial: construye tu display barato con Arduino + TM1638



PSArias
09/05/2014, 11:57
Para quitar un poco de trabajo al Staff, y viendo que alguno de vosotros lo estaba pidiendo, he recuperado el tutorial para poder construir el Display. Sin más que añadir, aquí os lo dejo ;)

Bueno compañeros, he decidido abrir un nuevo hilo para que no se creen confusiones y para poder aclarar ciertos puntos que a mi en su día se me complicaron un poco.
La idea es que cualquiera pueda seguir este "tutorial" y al final consiga su display en funcionamiento.
El comportamiento esperado es este:

bZv7D-0KFSg

En el vídeo, lo estoy utilizando en Race07, pero funciona en casi todos los juegos de carreras (iba a poner simuladores, pero no todos lo son)
Aunque no se ven reflejadas en el vídeo, tendremos distintas funcionalidades:

Botón 1: Muestra la marcha actual y la velocidad con los leds iluminando de izquierda a derecha.
Botón 2: Lo mismo que el 1, pero cambia la forma de iluminación de los leds hacia el centro.
Botón 3: Para setear las RPM máximas. (Con los botones 6 y 7 se disminuye y aumenta la cantidad respectivamente)
Botón 4: Temperatura de agua y aceite.
Botón 5: Gasolina restante.
Botón 6: Capacidad máxima del tanque de gasolina. (Con los botones 6 y 7 se disminuye y aumenta la cantidad respectivamente)
Botón 7: Cambiar la intensidad de iluminación del display en general. (Con los botones 6 y 7 se disminuye y aumenta la intensidad respectivamente)
Botón 8: Sale de cualquiera de las opciones anteriores.

Muy bien, pero... ¿Qué necesitamos?

La placa Display: http://dx.com/p/8x-digital-tube-8x-k...d-module-81873 (http://dx.com/p/8x-digital-tube-8x-key-8x-double-color-led-module-81873)

Si tienes un programador de micros o una placa Arduino y quieres hacer todo en el mínimo espacio posible, una opción es comprar esta Nano compatible con Arduino: http://dx.com/p/arduino-nano-v3-0-81877

Si no tienes ninguna de las dos cosas que he mencionado NO la compres, ya que no trae el bootloader cargado y no te dejará cargar ningún programa en ella si no le cargas el bootloader necesario, estarás tirando el dinero.
En dicho caso, lo mejor es conseguir una placa Arduino UNO que suele ser de las más baratas y con la que también he probado y funciona a la perfección. Se pueden conseguir baratas si buscan por eBay.

Y por último necesitaremos cables jumper. Se puede aprovechar el pedido a DX y pedirlos.

En caso de la Arduino Nano: http://dx.com/p/single-port-female-t...m-length-55454 (http://dx.com/p/single-port-female-to-female-jumper-wire-set-50-pack-20cm-length-55454)
En caso de la Arduino Uno: http://dx.com/es/p/breadboard-jumper...ble-pack-80208 (http://dx.com/es/p/breadboard-jumper-wires-for-electronic-diy-70-cable-pack-80208)

Bueno, ya me ha llegado todo lo que me has hecho comprar... ¿Y ahora qué?

Pues ahora lo que debemos hacer primero que nada, es descargar el IDE de Arduino, que nos permitirá cargar programas a la placa.
Lo podemos descargar de aquí: http://arduino.googlecode.com/files/....5-windows.exe (http://arduino.googlecode.com/files/arduino-1.0.5-windows.exe)

Una vez descargado, os recomiendo leer el siguiente enlace para tener unas nociones básicas del IDE, aunque es muy fácil pero ahí está mejor explicado de lo que lo haría yo: http://arduino.cc/es/Guide/Windows

Ahora que os habéis leído el enlace y ya sabéis cargar código al Arduino, es hora de cargar el código que he programado para que todo esto funcione. Primero que nada, hay que descargar la librería de la TM1638, la encontramos aquí: http://code.google.com/p/tm1638-library/
Una vez descargada, copiaremos la carpeta TM1638 a la carpeta libraries donde se ha instalado Arduino, por ejemplo: C:\Archivos de programa\Arduino\libraries.
Luego crear un proyecto nuevo y pegar el siguiente código, después cargarlo al Arduino:

Código:


/*
Programmed by PSArias
Thanks to tronicgr for the base code
http://x-sim.de
*/
#include <TM1638.h> //can be downloaded from http://code.google.com/p/tm1638-library/
#define RPMMAX 9500;
#define MAXFUEL 60;
// define a module on data pin 5, clock pin 4 and strobe pin 3
TM1638 module(5, 4, 3);

void setup() {
//Create Serial Object
Serial.begin(115200);
// initialize the screen:
module.clearDisplay();
byte values[]={0,0,0,0,0,0,0,0};
byte value = 32;
for(int i=0; i<10; i++){
if(i<2) {
values[0]=value;
value/=2;
}
else if(i-2>0){
values[i-2]=value;
values[i-3]=0;
}
else
values[i-2]=value;
module.setDisplay(values);
delay(50);
}
value=4;
for(int i=9; i>=0; i--){
if(i>7) {
values[7]=value;
value/=2;
}
else if(i<7){
values[i]=value;
values[i+1]=0;
}
else
values[i]=value;
module.setDisplay(values);
delay(50);
}
value=32;
for(int i=0;i<2;i++){
values[0]=value;
value/=2;
module.setDisplay(values);
delay(50);
}
for(int i=128;i>=1;i/=2){
module.setDisplayToString(" ",i);
delay(50);
}
for(int i=0; i<3; i++){
module.setDisplayToString(" ",255);
module.setLEDs(0b11111111 | 0b111111111<< 8 );
delay(250);
module.setDisplayToString(" ",0);
module.setLEDs(0b00000000 | 0b00000000<< 8 );
delay(250);
}
module.setDisplayToString(" rEAdy ");
module.setLEDs(0b11111111 | 0b00000000<< 8 );
delay(1500);
module.clearDisplay();
}

byte option, button;
int i;
char bufferArray[20]; // holds all serial data into a array
unsigned int rpm; //holds the rpm data (0-65535 size)
unsigned int rpmleds; //holds the 8 leds values
unsigned int rpmmax = RPMMAX; //retrieves from x-sim USO this value as parameter divided by 100
byte maxfuel = MAXFUEL;
unsigned int carspeed; //holds the speed data (0-65535 size)
byte gear; // holds gear value data
byte oilTemp;
byte waterTemp;
byte fuel;
byte intensity=7;
byte d1; // high byte temp variable
byte d2; // low byte temp variable
byte rpmdata = 0; // marker that new data are available
byte speeddata = 0; // marker that new data are available
byte geardata = 0; // marker that new data are available
byte oilTempData = 0;
byte waterTempData = 0;
byte fuelData = 0;

void getData(){
if (Serial.available() >= 9) { //if 6 bytes available in the Serial buffer...
for (i=0; i<17; i++) { // for each byte
bufferArray[i] = Serial.read(); // put into array
}
}

if (bufferArray[0] == 'R' ){ // if new bytes have been recieved

d1 = bufferArray[1]; // store high byte of rpm
d2 = bufferArray[2]; // store low byte of rpm
rpm = ((d1<<8) + d2); // concatonate bytes (shift 8 bits)
rpmdata=1; // we got new data!
}
if (bufferArray[4] == 'S' ){
d1 = bufferArray[5]; // store high byte of speed
d2 = bufferArray[6]; // store low byte of speed
carspeed = ((d1<<8) + d2); // concatonate bytes (shift 8 bits)
speeddata=1; // we got new data!
}
if (bufferArray[7] == 'G' ){
gear = bufferArray[8]; // retrieves the single byte of gear (0-255 value)
geardata=1; // we got new data!
}
if (bufferArray[9] == 'O' ){
d1 = bufferArray[10];
d2 = bufferArray[11];
oilTemp = ((d1<<8) + d2);
oilTempData = 1;
}
if (bufferArray[12] == 'W' ){
d1 = bufferArray[13];
d2 = bufferArray[14];
waterTemp = ((d1<<8) + d2);
waterTempData = 1;
}
if (bufferArray[15] == 'F' ){
fuel = bufferArray[16];
fuelData = 1;
}

}

void option1(byte rpmMode){
getData();
//Speed Data---------------------------------------------
if (speeddata == 1) {
for(int i=7; i>=5; i--){
if(carspeed!=0){
module.setDisplayDigit(carspeed%10, i, false);
carspeed/=10;
}
else
module.clearDisplayDigit(i, false);
}
//module.setDisplayToDecNumber(carspeed, 0, false); //displays numerical the speed
speeddata=0;
}

//Gear Data ----------------------------------------------
if (geardata == 1) {
gear = gear - 127; // offset the 0 value in 8-bit
if (gear >= 1 and gear <10 ){
module.setDisplayDigit(gear, 1, false); // displays numerical value of the current gear
}
if (gear == 0){
module.setDisplayToString("n", 0, 1); // displays the character for neutral
}
if (gear == 255){ // -1 that reprecents reverse rollover to 255 so...
module.setDisplayToString("r", 0, 1); // displays the character for reverse
}
geardata=0;
}

//RPM Data------------------------------------------------------
if (rpmdata == 1) {
rpmleds = map(rpm,0,rpmmax,0,9); // distributes the rpm level to the 8 leds + 1 for shift change
if(rpmMode==1) {
if (rpmleds==0){
module.setLEDs(0b00000000 | 0b00000000<< 8);
}
if (rpmleds==1){
module.setLEDs(0b00000001 | 0b00000000<< 8 );
}
if (rpmleds==2){
module.setLEDs(0b00000011 | 0b00000000<< 8 );
}
if (rpmleds==3){
module.setLEDs(0b00000111 | 0b00000000<< 8 );
}
if (rpmleds==4){
module.setLEDs(0b00001111 | 0b00000000<< 8);
}
if (rpmleds==5){
module.setLEDs(0b00011111 | 0b00000000<< 8);
}
if (rpmleds==6){
module.setLEDs(0b00011111 | 0b00100000<< 8 );
}
if (rpmleds==7){
module.setLEDs(0b00011111 | 0b01100000<< 8 );
}
if (rpmleds==8){
module.setLEDs(0b11111111 | 0b111111111<< 8 );
}
}
else if(rpmMode==2) {
if (rpmleds==0){
module.setLEDs(0b00000000 | 0b00000000<< 8);
}
if (rpmleds==1){
module.setLEDs(0b00000000 | 0b00000000<< 8 );
}
if (rpmleds==2){
module.setLEDs(0b10000001 | 0b00000000<< 8 );
}
if (rpmleds==3){
module.setLEDs(0b10000001 | 0b00000000<< 8 );
}
if (rpmleds==4){
module.setLEDs(0b11000011 | 0b00000000<< 8 );
}
if (rpmleds==5){
module.setLEDs(0b11000011 | 0b00000000<< 8 );
}
if (rpmleds==6){
module.setLEDs(0b11100111 | 0b00000000<< 8 );
}
if (rpmleds==7){
module.setLEDs(0b11100111 | 0b00011000<< 8 );
}
if (rpmleds==8){
module.setLEDs(0b11111111 | 0b111111111<< 8 );
}
}
rpmdata=0;
}
}

void option3(){ //Set RPM Max. vlaue
byte buttonPressed;
do {
module.setDisplayToDecNumber(rpmmax,0,false);
buttonPressed = module.getButtons();
if(buttonPressed==32)
rpmmax-=500;
else if(buttonPressed==64)
rpmmax+=500;
delay(100);
}while(buttonPressed!=128);
}

void option4(){
getData();
module.setDisplayToString("l",0,4);
if(oilTempData==1 && oilTemp<255 && oilTemp>0){
for(int i=7; i>=5; i--){
if(oilTemp!=0){
module.setDisplayDigit(oilTemp%10, i, false);
oilTemp/=10;
}
else
module.clearDisplayDigit(i, false);
}
oilTempData=0;
}
if(waterTempData==1 && waterTemp<255 && waterTemp>0){
for(int i=2; i>=0; i--){
if(waterTemp!=0){
module.setDisplayDigit(waterTemp%10, i, false);
waterTemp/=10;
}
else
module.clearDisplayDigit(i, false);
}
waterTempData=0;
}

}

void option5(){ //Set Fuel Max. vlaue
byte buttonPressed;
do {
fuel = maxfuel;
for(int i=3; i>=1; i--){
if(fuel!=0){
module.setDisplayDigit(fuel%10, i, false);
fuel/=10;
}
else if(i==3) //There is 0Lts, no fuel!
module.setDisplayDigit(0,i,false);
else //clean left zeros
module.clearDisplayDigit(i, false);
}
module.setDisplayToString("LtS",0,5);
buttonPressed = module.getButtons();
if(buttonPressed==32)
maxfuel-=1;
else if(buttonPressed==64)
maxfuel+=1;
delay(100);
}while(buttonPressed!=128);
clean();
}

void option6(){
getData();
if(fuelData==1 && fuel<228 && fuel>=127){
fuel-=127;
int maxLed = fuel*8/maxfuel;
for(int i=0; i<8; i++){
if(i>=maxLed){
if(maxLed==0 && fuel >= 0)
module.setLED(2,0);
else
module.setLED(0, i);
}
else
module.setLED(1, i);
}
for(int i=3; i>=1; i--){
if(fuel!=0){
module.setDisplayDigit(fuel%10, i, false);
fuel/=10;
}
else if(i==3) //There is 0Lts, no fuel!
module.setDisplayDigit(0,i,false);
else //clean left zeros
module.clearDisplayDigit(i, false);
}
module.setDisplayToString("LtS",0,5);
fuelData = 0;
}
}

void option7(){
byte buttonPressed;
do {
module.setupDisplay(1,intensity);
module.setDisplayToString("--tESt--",0);
buttonPressed = module.getButtons();
if(buttonPressed==32 && intensity>0)
intensity--;
else if(buttonPressed==64 && intensity<7)
intensity++;
delay(80);
}while(buttonPressed!=128);
}

void clean(){
module.clearDisplay();
module.setLEDs(0b00000000 | 0b00000000<< 8);
}

void loop() {

button=module.getButtons();
if(button!=0){
switch(button){
case 1:
clean();
module.setDisplayToString("GEAr SPd",0);
delay(1000);
module.clearDisplay();
module.setDisplayToString("LEdS 1",0,1);
delay(1000);
clean();
break;
case 2:
clean();
module.setDisplayToString("GEAr SPd",0);
delay(1000);
module.clearDisplay();
module.setDisplayToString("LEdS 2",0,1);
delay(1000);
clean();
break;
case 4:
clean();
break;
case 8:
clean();
module.setDisplayToString("tAG l AC",0b10000000);
delay(1000);
clean();
break;
case 16:
clean();
module.setDisplayToString("FUEL",0,2);
delay(1000);
clean();
break;
case 32:
clean();
module.setDisplayToString("SEt FUEL",0);
delay(1000);
clean();
break;
case 64:
clean();
module.setDisplayToString("briGht",0,1);
delay(1000);
clean();
break;
}
option = button;
}

switch(option){
case 1:
option1(1);
break;
case 2:
option1(2);
break;
case 4:
option3();
break;
case 8:
option4();
break;
case 16:
option6();
break;
case 32:
option5();
break;
case 64:
option7();
break;
case 128:
clean();
break;
default:
clean();
break;
}
}

Muy bien! Ya tenéis un gran paso hecho! Sigamos...

Ahora hay que cablear el circuito, no os asustéis que es una tonteria, además una imágen dice más que mil palabras:

http://imageshack.us/a/img29/8203/2w7k.png

Es muy importante que lo hagáis exactamente igual, ya que puede dañarse la placa o en el mejor de los casos no funcionar.
Una vez tengamos el circuito cableado, necesitamos los datos para mostrar en el display. Pues eso, gracias a X-Sim es bastante fácil, y aún les resultará más fácil porque ya les daré el profile creado y todo solo tenéis que abrirlo y ya lo tendréis configurado.

Primero que nada debemos ir a la página de x-sim y registrarnos: http://www.x-sim.de/forum//ucp.php?mode=register
Es obligado ya que para descargar y utilizar el programa es necesario loguearse.
Una vez registrados, descargamos el software: http://www.x-sim.de/forum//dm_eds/showcat.php?id=2

Lo instalamos siguiendo las instrucciones.
Una vez instalado, podemos descargar el profile que he creado para el display: https://mega.co.nz/#!cNtHkDSL!HSFJiX...2NOQ6tMRlTvJ8E (https://mega.co.nz/#%21cNtHkDSL%21HSFJiXIbZt1bf54OHHMIpxk3EtNkm2NOQ6t MRlTvJ8E)

Como se puede ver, hay dos programas, el Extractor y el Converter, siempre deben ser ejecutados en modo Administrador. Una vez descargado el profile, lo abrimos, nos abrirá el Converter con la configuración realizada, no toquéis nada.
Tendréis que ejecutar el Extractor y debajo a la izquierda en el programa, hay un botón que dice "Add your games/Wizard", nos abrirá una ventana donde tendremos que pulsar el botón "Press here to search for all known games on your local harddisk", buscará automáticamente todos los juegos soportados, hay que tener un poco de paciencia porque puede tardar unos minutos.
Cuando nos diga que hay un profile del juego que ya existe y si lo queremos utilizar, le diremos que SI. Entonces sólo nos quedará por poner Play Game en el Extractor y a funcionar!

En caso de que no comience a funcionar la placa, habrá que darle al Start en el Converter y ya lo tendremos!

Bueno compañeros y con eso creo que ya hemos llegado al final, si habéis hecho todo bien, debería funcionar como en el vídeo.

Espero que les haya servido de ayuda este "tutorial". Animaros! Yo estaré por aquí por si surge algún improvisto.

Saludos!

PSArias
09/05/2014, 11:58
ACTUALIZACIÓN 1:

He visto que varios tenéis el problema del puerto COM cambiado, la verdad es que cuando escribí el tuto en su día, no me di cuenta de que lógicamente el número de puerto COM varía. Así que aquí os dejo la solución para los que tenéis ese problema.

Primero que nada, aseguraros de tener conectada la placa Arduino antes de abrir el profile del Converter que os he dejado para la TM1638. Una vez abierto el Converter, pinchamos en Output Setup.

http://imageshack.us/a/img513/2390/yn5y.jpg

Ahora pinchamos en Universal Serial Output...

http://imageshack.us/a/img843/197/yqz9.jpg

Una vez dentro, veremos varias cosas. Aseguraros de que está seleccionado el comport como marca en la imágen el número 1. Lo que está marcado como número 2, es el número de COM que tenéis vosotros, y consecuentemente, el que debemos poner para que funcione. Para ésto, primero que nada debéis copiar lo que está marcado como 3 en la imágen y recordar el número marcado como 4, que en este caso es 10ms (la tasa de refresco del display). Entonces, pinchamos en Remove Entry (marcado como 5 en la imágen).

http://imageshack.us/a/img23/3703/utgy.jpg

Una vez hecho lo anterior, se verá como en la siguiente imágen, donde deberéis pinchar en el botón Add entry to list, pegar donde está marcado en la imágen como 1 lo que habíais copiado en el paso anterior, y escribir el 10 donde está marcado como 2.

http://imageshack.com/a/img707/364/63eo.jpg

Entonces, una vez hecho ésto, ya no debería haber ningún problema :D

PSArias
09/05/2014, 11:59
ACTUALIZACIÓN 2:


De momento no he podido recuperarla, pero en todo caso, en esa parte se explicaba como hacer funcionar el x-sim con Assetto Corsa y GSC Extreme.

A ver si pronto se puede recuperar...

EDITO: Aquí os dejo como hacer funcionar el Assetto Corsa, en un post que hice hace un tiempo en el foro de x-sim

http://www.x-sim.de/forum/viewtopic.php?f=67&t=1379

Saludos!

Guti
10/05/2014, 08:45
Gracias, PSArias, te quiero.... dicho desde el cariño...hombre, si no desde dónde se va a decir.
Lo que pasa es que mis chinitos todavía están terminando de soldar los componentes.... iba en serio lo de las tres semanas de DXextreme.
En cualquier caso, gracias de nuevo.

xarpax
15/05/2014, 11:28
Gracias, por fin me ha llegado todo, más de un mes lo de dxextreme. Pero no sé que me pasa que no funciona. Cuando lo conecto, parpadean los leds del display, luego aparece la palabra ready pero no me funciona en ninguno de los tres juegos, ni en f12012, ni f12011, ni assetto corsa. A ver si alguien me puede ayudar.Gracias.

jdracing
15/05/2014, 11:49
Gracias psarias por volver a poner el tutorial, he formateado y tengo que ponerme al lio de nuevo, así que tendré que empezar de cero, a ver si podemos recuperar la parte para configurar en AC y GSC que a mi me funcionó de lujo y son con los que lo utilizo ;)

PSArias
15/05/2014, 12:45
Gracias, por fin me ha llegado todo, más de un mes lo de dxextreme. Pero no sé que me pasa que no funciona. Cuando lo conecto, parpadean los leds del display, luego aparece la palabra ready pero no me funciona en ninguno de los tres juegos, ni en f12012, ni f12011, ni assetto corsa. A ver si alguien me puede ayudar.Gracias.

Buenas xarpax, supongo que has hecho todo tal cual en el tutorial, que has escaneado los juegos, le has dado al Start, etc...
Como sabrás el display está programado para varias funciones, por defecto no hay activada ninguna, por lo que el display no te mostrará nada hasta que no pulses un botón. Cuando estés en el juego, pulsa el primer botón, a ver si asi te funciona...

Saludos!

xarpax
15/05/2014, 23:03
Si le doy al boton start me dice algo así como que hay un error de comunicación, que compruebe si el extractor está funcionando y que le de al play game. En el display puedo configurar las revoluciones, pero en el juego no marca nada. A ver si alguien tiene una pista de lo que puede ser.

ayois_bandit
16/05/2014, 11:19
Genial tutorial!! Yo hace tiempo hice mis pinitos con arduino y siempre me ha encantado, pero no al nivel del creador del tutorial. :)

Tu que eres un maestro... seria muy complejo hacerlo con algo.como esto? . Para meter mas datos en un solo Hud.

http://tronixstuff.com/2013/04/26/tutorial-arduino-and-ili9325-colour-tft-lcd-modules/

Enviado desde mi MB525 usando Tapatalk 2

PSArias
16/05/2014, 14:03
Si le doy al boton start me dice algo así como que hay un error de comunicación, que compruebe si el extractor está funcionando y que le de al play game. En el display puedo configurar las revoluciones, pero en el juego no marca nada. A ver si alguien tiene una pista de lo que puede ser.

xarpax, descríbeme por favor los pasos que sigues para poder encontrar cual es el problema, estás arrancando el juego desde el extractor dándole al Play Game?

ayois, pues claro que se puede hombre! :54:
No tengo ninguno de esos en casa, pero siempre he querido probar con alguno. A ver si veo alguno baratillo y me pongo a hacer pruebas!

Saludos!

xarpax
16/05/2014, 14:34
A ver, yo ahora abro el converter, después abro el extractor. En el extractor, escojo el assetto entre los juegos que me encontró, le doy a play game y me abre correctamente el juego y puedo jugar. Todo ello con el display conectado al arduino y éste enchufado con el usb al pc. El display no me muestra nada, si toco los botones del display cambia de un modo a otro pero solo me marca en uno de los modos un 1, que no sé si será la vuelta, puedo configurar el tanque de combustible y las revoluciones máximas. En el router acabo de abrir el puerto 11, pero la cosa sigue igual. Lo mismo me pasa con f120011, tampoco va. Por si es el arduino he pillado otro que me llega para la semana que viene...
Gracias por ayudar.

ayois_bandit
16/05/2014, 14:53
Pues habra que cnseguir una tft de.esas, ademas son touchscreen o eso o programar un plugin para una que acabo de encontrar... "goverlay lcdsysinfo"

:eek:

Enviado desde mi MB525 usando Tapatalk 2

ayois_bandit
19/05/2014, 14:20
He pillado una tft en dx.com, cuando llegue y la pruebe os.cuento :)

En dx.com es el articulo 223437 , encaja directo en el uno :)

Enviado desde mi MB525 usando Tapatalk 2

xarpax
19/05/2014, 23:31
A ver, yo ahora abro el converter, después abro el extractor. En el extractor, escojo el assetto entre los juegos que me encontró, le doy a play game y me abre correctamente el juego y puedo jugar. Todo ello con el display conectado al arduino y éste enchufado con el usb al pc. El display no me muestra nada, si toco los botones del display cambia de un modo a otro pero solo me marca en uno de los modos un 1, que no sé si será la vuelta, puedo configurar el tanque de combustible y las revoluciones máximas. En el router acabo de abrir el puerto 11, pero la cosa sigue igual. Lo mismo me pasa con f120011, tampoco va. Por si es el arduino he pillado otro que me llega para la semana que viene...
Gracias por ayudar.

Pues no sé qué hago mal, me han dejado otro arduino y cables distintos para descartar y la cosa sigue igual...
Edito: Hoy Martes 20 lo he hecho funcionar en el f12011 y en el 2012, ya sólo me queda un paso para que funcione en el assetto corsa, que es al que estoy jugando ahora. Creo que lo solucioné abriendo los puertos en el firewall de windows.
Lo de Assetto corsa no lo entiendo porque desde el extractor puedo jugar, pero el display no va.

PSArias
21/05/2014, 11:12
Me alegro xarpax que hayas podido hacerlo funcionar :27:

Con respecto a lo de Assetto Corsa, has visto el link que he dejado en la Actualización 2?

Saludos!

xarpax
21/05/2014, 11:51
Gracias, sí que lo he visto, incluso lo leí en inglés e intenté las dos opciones que ponen pero no consigo que funcione el display. Sí logro arrancar el asseto corsa desde la aplicación del x-sim pero el display no va. En los F1 sí me funciona el display de arduino. También probé a instalar el fanaleds pero en el display de arduino la cosa sigue igual, bueno no miento, en el lugar del segundo algoritmo me aparece una n minúscula...

Tomy
21/05/2014, 13:40
Oiga usted señor Arias, ¿y esta firmita guapa?. :50:

http://www.900grados.es/foro/image.php?u=113&type=sigpic&dateline=1400240739

PSArias
21/05/2014, 16:40
Hoy que tengo tiempo, lo probaré en el AC y te comento algo xarpax, porque puede ser que los datos los hayan cambiado de ejes.

Jajajaja Tomy, te gusta la firma? Es que con el nuevo nombre del foro me ha salido la creatividad :27:

Saludos!

PSArias
21/05/2014, 21:51
Bueno xarpax, tal y como te había dicho, lo he probado en Assetto y al parecer todo funciona correctamente, no entiendo que es lo que te puede estar sucediendo, pero si puedes, borra el Assetto de la lista de juegos y vuelve a añadirlo como lo explico en el link. Te digo eso porque realmente no se me ocurre otra cosa...

Saludos y ya me cuentas!

xarpax
22/05/2014, 21:09
Bueno xarpax, tal y como te había dicho, lo he probado en Assetto y al parecer todo funciona correctamente, no entiendo que es lo que te puede estar sucediendo, pero si puedes, borra el Assetto de la lista de juegos y vuelve a añadirlo como lo explico en el link. Te digo eso porque realmente no se me ocurre otra cosa...

Saludos y ya me cuentas!

Nada, la cosa sigue igual. ¿puede ser que alguna aplicación que instalé en el assetto esté interfiriendo? Es que no me lo explico. Igual lo desinstalo el assetto y lo vuelvo a instalar, pero ya para la semana que viene...

Rooney
30/06/2014, 14:41
En rF2 funciona correctamente? Ya lo tengo y lo he conseguido en rF1 y en AC pero en rF2 no lo consigo

Rooney
02/07/2014, 20:58
Funcionando en rF2 tambien, muchas gracias por el tuto PSArias!

Rooney
03/07/2014, 19:51
http://img.tapatalk.com/d/14/07/04/bebese9u.jpg
Prototipo de la caja que le he construido, esta en cartón pero la haré en PVC

Rooney
06/07/2014, 18:57
Disparo una preguntilla acerca de la programación del software a ver si sería posible lo siguiente.
Para rFactor 2 han sacado un plugin que te muestra la diferencia con tu vuelta en cada momento, como en iRacing, este plugin se llama Delta Time o algo así, y me gustaría saber si se podría poner como una funcion del TM1638 en uno de los 4 displays LED de 7 segmentos, sustituyéndolo por la marcha en la que estás por ejemplo. Ya que la marcha en la que estoy la pretendo añadir en un único display de 7 segmentos un pelín más grande.

carloscasas
07/07/2014, 09:49
Aquí tienes info

http://batrako.blogspot.com.es/

Rooney
07/07/2014, 10:06
Aquí tienes info

http://batrako.blogspot.com.es/

Ya lo conocía, pero gracias de todas formas. Realmente eso solo es para iRacing, pero de rF2 aún no he encontrado nada.

Tony Vargas
07/07/2014, 10:41
No tiene mucho que ver pero por no abrir otro hilo, tengo un navegador medion muerto de risa, habría alguna manera de utilizarlo para que me indique en que marcha voy?

JaviK
16/11/2014, 14:34
Nueva placa Teensy 3.1 ultra pequeña para sustituir el Arduino.

Ahora si que me montare una caja con carton pluma y vinilo de carbono para pegarlo en el T500RS.

Teensy 3.1 PVP 18 Euros
Display TM1638 7 Euros
Cable USB 2 Euros

El software en la web de siempre, dos clicks y a rular.


https://www.youtube.com/watch?v=aPtZKQwsHIM

bolori
19/05/2015, 15:05
Buenas, me he decidido a comprar los materiales para fabricarlo, he visto que en otro foro que el usuario PSArias, ha mejorado el código usado, añadiendo nuevas funciones como:


- Posibilidad de reconocer automáticamente las RPM de cada coche simplemente acelerando a fondo.
- Muestra el tiempo por vuelta y el GAP, indicando con el color de los leds si se ha mejorado el tiempo o no.
- Añadida la opción Settings, donde se puede cambiar la intensidad del display (ya estaba antes) y se puede elegir activar o desactivar el tiempo por vuelta.




Aquí se puede ver una muestra de las nuevas funciones.


https://www.youtube.com/watch?v=C5slijDCRuU


El problema es que todavía no esta puesto el código, y hace ya 7 meses.

Nikel
09/11/2015, 19:59
Reactivo este Tema, para ver si hay algun tutorial que tengais en la manga para configurar el Arduino Uno + Tm1638, actualizado, he estado mirando este y faltan enlaces de descarga, que no se si seran necesario, pregunto por si acaso :5:.

Nikel
11/11/2015, 01:37
Con una foto de como estan conectados los conectores del adruino uno al tm 1638, creo que me valdria:38:

antmerino
11/11/2015, 01:40
Nike , hablamos, yo tengo uno montado. Dime que te falta
tengo el software, y las conexiones, te lo puedo explicar todo.

Nikel
11/11/2015, 09:42
:29:Gracias!!!:38:, Tengo el programa de Arduino, me faltaria el codigo que se mete, si esque el de este tema no funciona.

Tengo tambien X-Sim funcionando correctamente, me faltaria el perfil para meter ahi, y por ultimo ver como conectarlo, porque yo he probado esta conexion y no hace nada







http://s16.postimg.org/g1zzqbrhh/descarga.jpg (http://postimage.org/)

antmerino
11/11/2015, 10:28
Para mi lo mejor es el soft de batrako

http://batrako.blogspot.com.es/

No esta actualizado pero sigue funcionando como una bala en rfactor rfactor2 y en GSC
Yo probe en su dia con x-sim he incluso programe uno para que x-sim hiciese varias cosas, pero x.-sim es un soft demasiado arcaico y no va bien del todo en win8 y supongo que en win10 irá peor.

Los dos post principales de x-sim

http://www.x-sim.de/forum/viewtopic.php?f=40&t=1083&start=120

http://www.x-sim.de/forum/viewtopic.php?f=67&t=1215&start=50

Lo mejor es utilizar las llamadas OBD2 de esa forma no necesita el extractor y aumentas la velocidad de consulta, es decir no tienes que estar cada ms mirando si hay cambios en el estado, simplemente le preguntas, cual es la velocidad actual? cuales son las rpm actuales? cuantos litros tengo?
Es el mismo protocolo que se utiliza en la realidad en los coches.

El problema es el put. .. X-sim que es mas malo que una escopeta de feria.

Por lo tanto para no complicarte lo mejor es usar el soft de Batrako y su configuración, yo hice una serie de cambios en el programa para el arduino pero, algo sencillo.
Pruebalo, y sigue su config y esquema y veras que sencillo.

Luego (esta semana no, que ando muy liado) la que viene mejor, paso por tu tienda y recojo el pomo y te doy un regalito que tengo para tu display :51:

Si tienes alguna duda, me la preguntas. Si puedo te pongo alguna foto.

Nikel
11/11/2015, 10:56
Para mi lo mejor es el soft de batrako

http://batrako.blogspot.com.es/

Esto es lo que necesitaba saber, uno que funciona, y asi ya le doy yo la vueltas que necesite.


Luego (esta semana no, que ando muy liado) la que viene mejor, paso por tu tienda y recojo el pomo y te doy un regalito que tengo para tu display :51:
.

:5:ooooooooo no se si me podre aguantar :29:

PD: Coñoooooooooooooo que firma mas guapa tengooooooo!!!!! :40:

Nikel
11/11/2015, 14:39
Después de mil pruebas creo que no paso de lo mas sencillo:

Entro en el programa de arruinó, conecto adruino uno con su cable, abro el librari con el ejemplo de Tm1638 y lo cargo o subo a adruino, este se encienden unas luces y entiendo que esta cargado, pero en el Display no pasa nada de nada, doy a resto y nada, toco los botones y nada.

Pregunto eso es normal? O es que necesito abrir el juego para empezar a ver algo.

antmerino
11/11/2015, 15:04
claro claro.
Luego copias el archivo del plugin dentro de plugin del GSC
y despues ejecutas el extractor, es decir el .exe
en el seleccionas el puerto en el que se comunica (com3) y marcas la casilla enviar datos noseque
Ahora ejecuta el juego y empieza a correr.
Ya veras que funciona

Nikel
14/11/2015, 00:56
Por fiiiiiiiiiiiin SOLUCIONADO :40:

Gracias por todo.:6:

Tako16v
24/01/2016, 22:11
He conseguido cargar el profile y ya no me saleel error de "axis" pero sigue sin funcionar el display dentro del juego.No se si sera algo del puerto com. Si alguien me puede ayudar....


Gracias

bubu_54
07/05/2016, 12:29
Buenas, refloto esto porque igual me meto al barro.

Dos apuntes, he leído lo del arduino nano y que se necesita una placa Arduino previamente para cargar el software, es cierto eso?No veo que digan nada en estos tutoriales:

http://www.xsimulator.net/community/threads/another-simple-arduino-dashboard-with-tm1638.7387/
http://www.x-sim.de/forum/viewtopic.php?f=40&t=155&p=895

Que es eso del Teensy, es compatible con el software de batrako?

Cual es la web de siempre a la que hace referencia JaviK?

Gracias.

--Edito--

Juego al Rfactor2

posei
07/05/2016, 14:26
+1 esto para iracing funciona?

Enviado desde mi LG-D855 mediante Tapatalk

carloscasas
07/05/2016, 14:32
Con la teensy se puede hacer, es compatible con los sketch de arduino.

bubu_54
07/05/2016, 19:58
Con la teensy se puede hacer, es compatible con los sketch de arduino.

Guay la verdad es que queda muy limpio si solo se tratase de un copy/paste del código no hay que soldar demasiado:

https://plus.google.com/photos/+Yipzone/albums/5975643487361879281

Y eso del nano y el bootloader? El teensy es bastante mas caro que un arduino, y ya puestos a ir al low cost...

abablat
19/05/2016, 15:50
Buenas gente, quiero lanzarme a la piscina y pillar un display para el addon F1 de Thrustmaster.

La verdad que he estado leyendo y me asaltan algunas dudas, haber si podéis aclarármelas para terminar de decidirme. Aclarar que sería únicamente para Iracing bajo windows 10.

En cuanto al hardware, lo tengo bastante claro:

1. Placa clon Arduino UNO: http://www.dx.com/es/p/improved-version-uno-r3-atmega328p-board-compatible-with-arduino-blue-426435#.Vz2l1vmLTIU

2. Caja: http://www.dx.com/es/p/acrylic-case-for-arduino-uno-r3-transparent-370708#.Vz25CvmLTIV

3. Display: http://www.dx.com/p/8x-digital-tube-8x-key-8x-double-color-led-module-81873#.Vz25KvmLTIV

4. Cableado: http://www.dx.com/es/p/breadboard-jumper-wires-for-electronic-diy-70-cable-pack-80208#.Vz2o2PmLTIV

Esto está bastante claro.

He estado leyendo el blog de Batrako y he visto el siguiente cableado:

http://4.bp.blogspot.com/-KKGQAce1KWM/USykYmzXQxI/AAAAAAAAA9o/x9lz2MUskio/s1600/arduino_tm1386_wiring.png

Las dudas me surgen en cuanto al software ya que de programación no tengo ni idea, por lo que sería coger el software de batrako:
http://batrako.blogspot.com.es/2013/06/new-version-of-tm1638-hud-released.html

En este punto, cuáles son los pasos exactos a seguir?

- Bajarse los drivers y verificar el puerto
- Descargar e instalar el IDE de Arduino
- Cargar el código, para lo cual me descargo el New Version of TM1638 HUD Released de Batrako. Se descarga el código en un archivo *.ino y en el zip viene una carpeta de iracing con una serie de exes y +.dll

http://i68.tinypic.com/2ylsl6u.jpg

¿Qué hay que hacer exactamente con esos archivos y exes?

Muchas gracias por adelantado.

bubu_54
20/05/2016, 08:55
Eso parece .NET, no?

El código Fuente es C#?

Nikel
20/05/2016, 09:37
El cableado de esa foto esta mal, aqui intente yo hacer un tutorial, echale un vistazo a ver si funciona, a mi me funciona con RFACTOR1 GSC Y AUTOMOBILISTA, con los otros no lo he probado, suerte.

http://900grados.es/foro/showthread.php?1682-Instalacion-ARDUINO-con-TM1638-SENCILLO

bubu_54
08/08/2016, 22:06
Por mas vueltas que le doy no responde de ninguna forma, he probado con el software de x-sim y la placa reacciona a la primera (en el juego es otra cosa) Pero el soft de batrako no tengo bemoles a hacerlo funcionar, he probado tal cual me lo bajo y nada, no hay manera y he revisado las conexiones mil veces.

Pregunta, se puede cambiar los pines? Es decir, en lugar de 7,8 y9 usar yo que se, el 1, 2 y 3

Fox85
09/08/2016, 20:55
Por mas vueltas que le doy no responde de ninguna forma, he probado con el software de x-sim y la placa reacciona a la primera (en el juego es otra cosa) Pero el soft de batrako no tengo bemoles a hacerlo funcionar, he probado tal cual me lo bajo y nada, no hay manera y he revisado las conexiones mil veces.

Pregunta, se puede cambiar los pines? Es decir, en lugar de 7,8 y9 usar yo que se, el 1, 2 y 3

con software de batrako prueba primero a inicia el juego , minimizas y inicias el soft de batrako en su puerto correspondiente

bubu_54
10/08/2016, 13:57
Al final era configuración, ya tira gracias!

Pregunta, como demonios se configura el x-sim?

bubu_54
12/08/2016, 14:54
Bueno, yo sigo en mis trece, soy incapaz de hacer rular el x-sim, sin embargo el soft de batrako va a la primera, se me está ocurriendo que quizás se pueda mejorar un poco, había pensado en una update que cada vez que pasaras por un sector de la pista cambiar el display al delta time y algún indicador que diga si has mejorado tiempo o no, y al terminar la vuelta poner el tiempo.

Se que no es facil, pero tengo conocimientos de programación en c# y de Arduino hay mil tutoriales, por lo que solo hace falta tiempo y un punto de partida.

Sabéis si batrako está contactable o algo? Supongo que necesitaría los fuentes tanto del extractor como de la dll y no se si son públicos.

antmerino
12/08/2016, 16:30
Le pregunté a el por el código fuente Y me dijo que no lo tenía , que se lo paso al Carlos Casas hace unos años. La verdad que estaría muy bien, de la parte de programación en Windows estoy pegado,pero de arduino soy una máquina .

bubu_54
12/08/2016, 17:58
Ah, pues voy a ver si hablo con Carlos Casas a ver si se puede hacer algo.

Bueno, parece que @carloscasas tiene los mp desactivados, a ver si se pasa por aquí...

manc0ntr0
25/01/2017, 16:31
Buenas gente,

Lo primero, siento el reflote.

Estoy haciendo el display y probando vuestro código y el de batrako. El de batrako no se que le pasa que no va, sin embargo el vuestro de momento enciende leds y display en el test previo.
Queria bajar el profile que colgó en su día el forero pero no existe. Como de x-sim no tengo ni idea, antes quería ver como se ha de configurar ya que quiero ir agregando juegos como el Richard Burns Rally.

Si alguien lo tiene o me sabe indicar como conseguir algun profile para ir aprendiendo, se lo agradecería un montón.

Saludos.

manc0ntr0
26/01/2017, 14:00
Buenas de nuevo,

He estado rabilando y aprendiendo varias cosillas.
El proyecto original en el que se basó PSArias sí que me funciona al tener el perfil en el extractor acorde al código, pero tiene cosas que no van bien, como la velocidad -que creo que sale en millas- o los led -que creo que es porque fija las rpm máximas y algunos coches no llegan así que no se encienden todos.
Veo que el soft de PSArias coge el parámetro rpm máximas del converter pero no veo en el programa cómo enviarlo a la Arduino en vez del 95 que le envía para las 9500 rpm.

Igual que antes, cualquier ayuda será bienvenida.

Airgamboy
03/02/2017, 11:40
Buenos dias y una petición, ¿alguien me puede pasar el perfil del extractor del primer post? Es que el enlace de mega no se encuentra disponible.

Gracias de antemano.

PSArias
03/02/2017, 23:04
Muy buenas a todos!

Sigo vivo... Jajajajaja y veo que esto también sigue. Estoy con el trabajo que no me deja mucho tiempo para cacharrear, pero prometo que en cuanto pueda lo retomaré y lo volveremos a reflotar, que por lo que he leído hay bastantes problemas.

Por cierto, en el hilo de x-sim hay mucho explicado: http://www.x-sim.de/forum/viewtopic.php?f=67&t=1215. Y ahi tienes el profile Airgamboy.

Un saludo a todos!

Airgamboy
03/02/2017, 23:45
Gracias !!!


Muy buenas a todos!

Sigo vivo... Jajajajaja y veo que esto también sigue. Estoy con el trabajo que no me deja mucho tiempo para cacharrear, pero prometo que en cuanto pueda lo retomaré y lo volveremos a reflotar, que por lo que he leído hay bastantes problemas.

Por cierto, en el hilo de x-sim hay mucho explicado: http://www.x-sim.de/forum/viewtopic.php?f=67&t=1215. Y ahi tienes el profile Airgamboy.

Un saludo a todos!

manc0ntr0
04/02/2017, 00:18
A mi tu perfil de Converter no me funciona. En cuanto le digo que envíe cualquier cosa a Arduino da error en el puerto COM. Lo he bajado de tu hilo en el foro de x-sim. Sin embargo el de tronicgr me funciona bien pero tiene el handicap de las rpm que para mi es la chicha del display.

He visto otros hilos donde utilizan el OBD2 y la verdad que funciona mejor, no me ha dado errores. Lo único que al ser diferente la forma de programarlo, no lo tengo claro del todo todavía y los LED a veces hacen cosas raras.

Airgamboy
09/04/2017, 21:33
Buenas.

No consigo hacer que me funcionen el Converter y el Extractor. ¿Alguien puede ayudarme?

Gracias de antemano.