DisplayXR - Desarrollo

Toda la información relacionada con el DisplayXR.

Moderador: XRStaff

Avatar de Usuario
Gaboni
Aprendiendo a embragar manual
Aprendiendo a embragar manual
Mensajes: 329
Registrado: 15 Ago 2006 00:00
Ubicación: Madrid

Mensaje por Gaboni » 29 Ene 2009 01:29

Se me cae la baba con ese software... cojonudo tío!
Avatar de Usuario
crobol
Maestro al volante
Maestro al volante
Donante
Donante
Licencia B
Licencia B
Mensajes: 13867
Registrado: 28 Abr 2007 00:00
Volante: DFP
Ubicación: BCN
Contactar:

Mensaje por crobol » 29 Ene 2009 01:41

No os preocupéis si no entendéis nada de la tabla de Nye. Yo hablo catalán y tampoco he entendido nada 8O , je je.

Mas madera !! que dirían los Hnos. Marx
Avatar de Usuario
calvorota
Calentando neumaticos
Calentando neumaticos
Licencia B
Licencia B
Mensajes: 161
Registrado: 29 Ene 2009 01:00
Volante: Mod G-25 + volante XR F1
Ubicación: Sevilla
Contactar:

Mensaje por calvorota » 29 Ene 2009 12:17

Hola.
Primero quiero presentarme, pues aunque he seguido con atención este hilo no me he decidido a postear hasta ahora. Mi nick en el mundillo de la simulación es "Calvorota", y llevo en esto desde hace ya mucho tiempo (aunque hasta hace un año o así me dedicaba exclusivamente a los simuladores de vuelo).
El caso es que me estaba haciendo el display V1 con unos compañeros e incluso creo que alguien ha hecho referencia a mi cuando decía que alguien se había mandado fabricar las PCBs en China.
Manejo el Eagle con soltura y como ha indicado pflanzgarten el tamaño del display V2 excede por un pelo del ancho máximo que la versión Freeware permite.
Mi intención es ayudar y para ello puedo ponerme a diseñar PCBs con el Eagle o cualquier cosa similar. Os pongo como ejemplo las imágenes de la placa diseñada para nuestra versión V1 del display.
http://www.simulacion.es/calvorota/F1Wheel/PCB_Aux8.jpg
http://www.simulacion.es/calvorota/F1Wheel/PCB_Aux9.jpg

Las placas las he fabricado a doble cara en China, enviando los ficheros Gerber (un tipo de salida que generan los programas de diseño de circuitos impresos), por lo que se puede usar la versión "oscura" del Eagle para generar el diseño.

La empresa de prototipado que he usado es razonablemente económica, teniendo en cuenta que es una tirada de 3 placas a doble cara con máscara de soldadura y rotulación (unos 90$ en total por las 3 placas incluyendo el envío). Eso quiere decir que por poco más de 23€ hemos tenido las PCBs. Este número se reduce sensiblemente cuando se piden cantidades mayores; por poner un ejemplo, si nos hubiésemos reunido 10 para fabricar habría salido todo por 10€ cada circuito impreso puesto en casa.

Bueno... tras este rollo os recuerdo que estoy a vuestra disposición para ayudar en lo que sea. Pero os recuerdo que antes de diseñar la PCB hay que concretar los componentes, pues no todos los displays de 7 segmentos tienen las mismas dimensiones o patillaje. Para el display de las fotos de arriba he empleado los dígitos pequeños Kingbright SC39-11EWA (0.39" de altura) y para el grande el Kingbright SC56-11EWA (0.56" de altura).

También puedo buscar componentes porque estoy acostumbrado a hacerlo (fabricarse en casa la cabina de un F-16 te enseña a encontrar componentes electrónicos y electromecánicos por todo el mundo).

P.D: La mayor parte de la placa grande (la de control) está dedicada a las entradas digitales (botones) porque el display V1 no las tenía. El display V2 tendrá un tamaño mucho más reducido y será más fácil de integrar en los volantes, al sólo necesitar el paso de 4 hilos por el eje del mismo (USB).
Última edición por calvorota el 29 Ene 2009 12:23, editado 1 vez en total.
Avatar de Usuario
pflanzgarten
Recien salido a pista
Recien salido a pista
Mensajes: 97
Registrado: 12 Ene 2009 01:00
Volante: Logitech Formula Force GP
Ubicación: Madrid
Contactar:

Mensaje por pflanzgarten » 29 Ene 2009 12:21

Joan, eres la pera limonera tío... GRACIAS!!!

Bueno, yo sigo empeñado en mi versión con Displays LCD.

[img]http://img297.imageshack.us/img297/7049 ... sh4.th.jpg[/img][img]http://img231.imageshack.us/img231/7834 ... mb9.th.png[/img]

Video Youtube
http://www.youtube.com/watch?v=S4HvalsijB8

Al final, va a haber que añadir a todos los foros de simuladores un apartado más que se llame HARD-MODs.

Cuando esté "cocretado" el protocolo/interfaz, me pondré con mis pantallitas en lugar de con los Displays de 7 segmentos. 8O ODIO LOS DISPLAYS DE 7 SEGMENTOS :D.

Os confesaré que en el video que he puesto arriba, mientras conducía para grabar la vuelta, en ningún momento he mirado al Display más allá de la marcha, y es que el Epsilon Euskadi es tan "jodidamente" dificil que salvo en las cuatro zonas "fáciles" del circuito, no se puede despegar la vista de la pantalla. Mi siguiente reto es hacer una versión que vaya más cerca del muñeco (aka piloto), o sea, en el volante. He pensado algo así como un display 7 segmentos para la marcha, una Pantalla OLED para sacar mensajes, y algunos LEDs para indicar cosillas varias. Creedme, cuando los chinos dicen "Fantastic" se quedan cortos. Creo que con una de 16x2 y la posibilidad de seleccionar los datos que saca es suficiente, pero bueno, probaremos a ver si la de 20x2 cabe el volante.

hasta luego
Avatar de Usuario
Nye
Primera conducción sin ayudas
Primera conducción sin ayudas
Mensajes: 398
Registrado: 16 Dic 2008 01:00
Volante: G25
Ubicación: Sabadell
Contactar:

Mensaje por Nye » 29 Ene 2009 13:33

Hola Calvorota :)
Como ya te comenté en una ocasion anterior cuando hiciste el diseño de la V1. es increible la calidad de esas placas por el precio 'casi irrisorio' teniendo en cuenta que incluye los portes desde China.
Desde luego seria cojonudo ver un diseño tuyo sobre el nuevo hardware. Esta claro que cuantas mas opciones haya a la hora de crearse el 'trasto' mucho mejor. Luego cada cual decidirá cual mas le conviene :).

Stud & Calvo Racing? XXD



Mario, esa version con LCD seguro que es del agrado de mas de uno. Hay algo que no se pueda hacer? :oks:
Avatar de Usuario
comodin2002
Piloto Histórico
Piloto Histórico
Donante
Donante
Licencia A
Licencia A
Mensajes: 1095
Registrado: 01 Oct 2007 00:00
Volante: G25
Ubicación: Puerto Real (Cái weno)
Contactar:

Mensaje por comodin2002 » 29 Ene 2009 13:50

Muy buenas ...

Me imagino que soy uno de muchos que 'lee este hilo en silencio' ... weno po .. OLE TRONCOS .. BRAVO. Estais demostrando mucho, y no solo que sabeis de displays ...

Mucho ANIMOTES :oks:
Avatar de Usuario
larahusky
Poleman
Poleman
Donante
Donante
Licencia B
Licencia B
Mensajes: 1905
Registrado: 01 May 2008 00:00
Volante: Logitech G25
Ubicación: Valencia
Contactar:

Mensaje por larahusky » 29 Ene 2009 14:16

comodin2002 escribió:Muy buenas ...

Me imagino que soy uno de muchos que 'lee este hilo en silencio' ... weno po .. OLE TRONCOS .. BRAVO. Estais demostrando mucho, y no solo que sabeis de displays ...

Mucho ANIMOTES :oks:
:meapunto:
#33 / United Racers Team / GRC season7 / Div2 / 2009
Imagen
Avatar de Usuario
crobol
Maestro al volante
Maestro al volante
Donante
Donante
Licencia B
Licencia B
Mensajes: 13867
Registrado: 28 Abr 2007 00:00
Volante: DFP
Ubicación: BCN
Contactar:

Mensaje por crobol » 29 Ene 2009 14:50

Bienvenido Calvorota.

Un placer tenerte entre nosotros y se agradece mucho tu ayuda y que compartas tus conocimientos.
Avatar de Usuario
Gaboni
Aprendiendo a embragar manual
Aprendiendo a embragar manual
Mensajes: 329
Registrado: 15 Ago 2006 00:00
Ubicación: Madrid

Mensaje por Gaboni » 29 Ene 2009 18:36

Hola Calvorota, me alegro mucho de que te unas al foro, seguro que tus aportaciones van a ser muy buenas para todos.

pflanzgarten, a mí me pasa al revés que a tí, no me van mucho los LCD, jejeje...

Bueno, creo que ya está listo el circuito definitivo de la placa de control, así que paso a comentaros como va. Añado también el otro post que puse, para que quede aquí todo completo.

Placa Displays:

Materiales:
- Placa de prototipo
- Display 7 segmentos catodo comun
- Display 7 segmentos pequeño catodo comun x 8
- Led alta intensidad Rojo x 7
- Led alta intensidad Verde x 7
- Led alta intensidad Azul x 7
- Led alta intensidad Amarillo x 2
- Cable fino

Teneis que pensar que ambas placas deben ir unidas por 22 cables. Vosotros veréis cómo queréis interconectarla, pero lo ideal es que sea fácil de quitar y poner. Estos 22 cables que llegan a la placa del display se dividen en dos grupos:

- Grupo de datos, a los que llamaremos D0, D1, D2... D14 y D15. Son 16 hilos en total.
- Grupo de comunes, a los que llamaremos C0, C1, C2, C3, C4 y C5. Son 6 hilos en total.

Todos los displays son de cátodo común, y los LEDs sueltos también van unidos por el cátodo.
Los displays los numeraremos del 1 al 9, siendo su orden de izquierda a derecha 1234 9 5678. En los displays diferenciaremos los segmentos de la siguiente manera:
Imagen

Vamos a unir los cátodos en 6 grupos diferentes, que van conectados cada uno a un grupo de comunes:

- Cátodos de displays 1 y 2 van unidos a C0.
- Cátodos de displays 3 y 4 van unidos a C1.
- Cátodos de displays 5 y 6 van unidos a C2.
- Cátodos de displays 7 y 8 van unidos a C3.
- Cátodos del display 9 y de los 8 LEDs laterales van a C4.
- Cátodos de la tira superior de 15 LEDs van a C5.

Eso, en cuanto a lo que son los cátodos y los comunes.
En cuanto a los ánodos de los LEDs, van conectados a los cables D0..D15, de la siguiente manera:

PARA LOS GRUPOS C0, C1, C2 y C3

D0 - display impar (1,3,5,7), segmento A
D1 - display impar (1,3,5,7), segmento B
D2 - display impar (1,3,5,7), segmento C
D3 - display impar (1,3,5,7), segmento D
D4 - display impar (1,3,5,7), segmento E
D5 - display impar (1,3,5,7), segmento F
D6 - display impar (1,3,5,7), segmento G
D7 - display impar (1,3,5,7), punto
D8 - display par (2,4,6,8), segmento A
D9 - display par (2,4,6,8), segmento B
D10 - display par (2,4,6,8), segmento C
D11 - display par (2,4,6,8), segmento D
D12 - display par (2,4,6,8), segmento E
D13 - display par (2,4,6,8), segmento F
D14 - display par (2,4,6,8), segmento G
D15 - display par (2,4,6,8), punto

PARA EL GRUPO C4

D0 - display 9, segmento A
D1 - display 9, segmento B
D2 - display 9, segmento C
D3 - display 9, segmento D
D4 - display 9, segmento E
D5 - display 9, segmento F
D6 - display 9, segmento G
D7 - display 9, punto
D8 - leds izquierda 1 (verde)
D9 - leds izquierda 2 (azul)
D10 - leds izquierda 3 (rojo)
D11 - leds izquierda 4 (amarillo)
D12 - leds derecha 1 (verde)
D13 - leds derecha 2 (azul)
D14 - leds derecha 3 (rojo)
D15 - leds derecha 4 (amarillo)

PARA EL GRUPO C5
D0 - LED 1 (el de la izquierda del todo)
D1 - LED 2
D2 - LED 3
D3 - LED 4
D4 - LED 5
D5 - LED 6
D6 - LED 7
D7 - LED 8
D8 - LED 9
D9 - LED 10
D10 - LED 11
D11 - LED 12
D12 - LED 13
D13 - LED 14
D14 - LED 15 (El de la derecha del todo)
D15 -

Placa Control:

Materiales necesarios:
  • Placa de prototipo
  • PIC 18F4550
  • 74595 x 2
  • Cristal cuarzo 20 MHz
  • Transistor BC547 x 6
  • Resistencia 10K x 19
  • Resistencia 100 x 16
  • Condensador 470 nF
  • Condensador 100 nF
  • Condensador 22 pF x 2
  • Cable USB
  • Conectores para cables externos (tira de pines, molex, etc..)
Como ya comenté cuando expliqué cómo iba la placa de los displays, es necesario comunicar ambas placas mediante 22 hilos, que pueden ser tiras de pines, cables o lo que sea. Habíamos diferenciado esos cables en dos grupos, 16 del bus de datos (D0,D1,D2,D3,D2,D4,D5,D6,D7,D8,D9,D10,D11), y 6 para los comunes (C0,C1,C2,C3,C4,C5).

Para que os hagáis una idea de cuantos conectores tenéis que dejar previstos en la placa de control, tendríamos:

- 16 de datos que van al display.
- 6 de comunes que van al display.
- 4 que van al cable USB (+VCC,D-,D+,GND).
- 12 "columnas" de la matriz de botones.
- 6 "filas" de la matriz de botones.
- 5 pines sueltos que quedan del PIC para otros usos (entrada analógica, salida PWM, etc..)

Bueno, en primer lugar hay que hacer el circuito mínimo necesario para que el PIC funcione:

Imagen

A partir de ahí, vamos añadiendo todo el hardware complementario del PIC. Comencemos con los dos integrados 74595, que sirven para proporcionar el bus de datos de 16 hilos que va hasta el display. DISP_D0..DISP_D15 son los cables D0..D15 que tienen que llegar hasta la placa del display.

Imagen

Por otro lado, este es el circuito de los 6 comunes. DISP_C0..DISP_C6 son los cables C0..C6 que llegan hasta el display.

Imagen

Eso es en lo que respecta a las salidas hacia la placa del display. Pasemos a las entradas, que como ya he comentado, constan de una matriz de 6 filas y 12 columnas. Esta es el circuito que queda dentro de la placa de control:

Imagen

INPUT_FILA_X e INPUT_COLUMNA_X son los conectores donde conectaremos los cables que llegan de las entradas.

Ésta es la distribuición que tienen las 6 filas:

INPUT_FILA_0: Conmutador rotativo 12 posiciones para seleccionar parámetro a modificar (1-12).
INPUT_FILA_1: Conmutador rotativo 12 posiciones para cambiar el valor del parámetro seleccionado (1-12).
INPUT_FILA_2: Conexión de los botones 1-12 del gamepad.
INPUT_FILA_3: CONFIGURABLE
INPUT_FILA_4: CONFIGURABLE
INPUT_FILA_5: CONFIGURABLE

Los conmutadores 0 y 1 se usarán para cambiar parámetros del visualizador, como pueden ser:
  • Cambio del preset de visualizacion.
  • Cambio dato visualizado en display L.
  • Cambio dato visualizado en display R.
  • Intensidad de displays.
  • Intensidad de LEDs.
  • Configurar el uso de la fila 3, 4 y 5.
Como veis, el uso que le demos a lo que haya conectado en las filas 3, 4 y 5 se puede configurar usado los conmutadores 0 y 1. Entre los usos a los que podemos asociar estos tres conmutadores configurables, se encuentran:

- Botones 13-24 del gamepad (ojo, sólo se puede poner este valor en uno de los 3 a la vez).
- Encoder tipo +/- (para cambiar el reparto de frenada, el boost del motor, etc..)

Además, también podrá asignarse a estos conmutadores acceso directo a algunos de los parámetros que se cambian con los conmutadores 0 y 1, por ejemplo para cambiar directamente el preset de visualizacion o el contraste sin necesidad de tocar el 0 y el 1.

El esquema de conexión de las filas 0 y 1 (y las 3,4 y 5 en caso de configurarlas como encoders) es el siguiente:

Imagen


El esquema de conexión de las fila 2 (y la 3,4 o 5 en caso de configurarla para botones) es el siguiente:

Imagen

Por último, los 5 pines libres que quedan del PIC se usarán para tener 2 entradas analógicas (ejes X e Y del gamepad), y dos salidas PWM para controlar algún servo y poder hacer un indicador "de aguja". Dejaremos la última salida reservada para algún posible uso futuro:

Imagen

Pues creo que con esto ya está todo lo necesario para poder construir el visualizador, al menos la parte hardware. Si hay algún error, o algo no ha quedado claro, decídmelo y lo cambio.

Saludos!
Avatar de Usuario
calvorota
Calentando neumaticos
Calentando neumaticos
Licencia B
Licencia B
Mensajes: 161
Registrado: 29 Ene 2009 01:00
Volante: Mod G-25 + volante XR F1
Ubicación: Sevilla
Contactar:

Mensaje por calvorota » 29 Ene 2009 19:46

A ver... lo tengo claro, sin errores aparte del obvio (INPUT_COLUMNA_6 no está y por eso llegas hasta el 12). Sólo no me ha quedado claro lo del uso de encoders +/-, ya que pones un esquema de conexión como el de los interruptores rotativos mientras que los encoders (los típicos con salida en código gray) tienen 3 patillas y tendrían una conexión diferente:
- patilla central al INPUT_FILA.
- patillas de los extremos al INPUT_COLUMNA con un diodo intercalado con el cátodo hacia el input.


Voy a hacer una prueba con el Eagle a ver qué os parece. Se me ocurren dos posibilidades:
1.- Placa de control pequeña con un par de hileras de pines/conectores para los INPUT (filas y columnas)
2.- Placa de control con los conectores ya listos para pinchar directamente los pulsadores predefinidos (los diodos soldados para las entradas de las filas 0 al 2), además de los conectores de fila/columna para las entradas "configurables para cada usuario" de las filas 3 a la 5. Esta solución es similar a la que nos hicimos para mi display V1.

Generalmente me gusta emplear conectores compactos para estas aplicaciones que están justas de espacio (paso 2mm o incluso los ultra-compactos de 1,5mm en lugar de los estándar de 2.54mm). Son los conectores blancos que se ven en las imágenes de mi placa V1 (tienen la ventaja de coincidir con los que hay dentro de los G-25).

¿Os gustaría más la placa de control ya con los diodos listos? ¿Mejor una placa de control mínima?
Avatar de Usuario
Gaboni
Aprendiendo a embragar manual
Aprendiendo a embragar manual
Mensajes: 329
Registrado: 15 Ago 2006 00:00
Ubicación: Madrid

Mensaje por Gaboni » 29 Ene 2009 20:12

Calvorota escribió:A ver... lo tengo claro, sin errores aparte del obvio (INPUT_COLUMNA_6 no está y por eso llegas hasta el 12)
Gracias, ya está corregido :wink:
Calvorota escribió:. Sólo no me ha quedado claro lo del uso de encoders +/-, ya que pones un esquema de conexión como el de los interruptores rotativos mientras que los encoders (los típicos con salida en código gray) tienen 3 patillas y tendrían una conexión diferente:
- patilla central al INPUT_FILA.
- patillas de los extremos al INPUT_COLUMNA con un diodo intercalado con el cátodo hacia el input.
Cuando digo encoders, me refiero a hacer fucionar el conmutador en modo valor+ / valor- en vez de seleccionar un valor literal entre 1 y 12.

Por ejemplo: si configuras la fila 4 para ajustar la intensidad de los LEDs, al accionar el conmutador ajustarás ese parámetro en un valor de entre 1 y 12.

Si configuras el conmutador para emular un encoder, entonces, cada posición que muevas hacia la derecha, el gamepad da un pulso en el botón 27, y cada vez que lo muevas hacia la izquierda, el gamepad da un pulso en el botón 28 (que luego asignarás a boost+ y boost-, por ejemplo).

Esto no lo había comentado. Al conectar el visualizador, windows te detecta un gamepad de 32 botones, de los cuales:

Botones 1-12: Botones fijos.
Botones 13-24: Si configuras alguna fila como botones, esa fila son los botones 13-24.
Botones 25-30: Se usan cuando los conmutadores simulan un encoder, según la siguiente tabla:

- Boton 25: Encoder fila 3, valor +.
- Boton 26: Encoder fila 3, valor -.
- Boton 27: Encoder fila 4, valor +.
- Boton 28: Encoder fila 4, valor -.
- Boton 29: Encoder fila 5, valor +.
- Boton 30: Encoder fila 5, valor -.

Saludos!

PD: Para que el conmutador de 12 posiciones pueda ser utilizado como si fuese un encoder, sería necesario eliminar el tope entre las posiciones 12 y 1, para que pueda girar libremente.
Avatar de Usuario
cangrejo_29
Piloto de Prototipos
Piloto de Prototipos
Licencia B
Licencia B
Mensajes: 768
Registrado: 25 May 2007 00:00
Volante: Thrustmaster T500RS
Ubicación: Bilbao

Mensaje por cangrejo_29 » 29 Ene 2009 20:19

larahusky escribió:
comodin2002 escribió:Muy buenas ...

Me imagino que soy uno de muchos que 'lee este hilo en silencio' ... weno po .. OLE TRONCOS .. BRAVO. Estais demostrando mucho, y no solo que sabeis de displays ...

Mucho ANIMOTES :oks:
:meapunto:
Otro que lo sigue pero que no entiende ni papa. Si a la junta de la trócola le añades el fuselaje invertido como consecuencia los ánodos se dispersan junto con los cátodos, pero si lo añades en línea entablan una conversación amistosa :? :wink: . Son los primeros síntomas de la impotencia de no entender nada
Avatar de Usuario
calvorota
Calentando neumaticos
Calentando neumaticos
Licencia B
Licencia B
Mensajes: 161
Registrado: 29 Ene 2009 01:00
Volante: Mod G-25 + volante XR F1
Ubicación: Sevilla
Contactar:

Mensaje por calvorota » 29 Ene 2009 20:33

Entendido. Simple y mejor porque se piden varios interruptores do 12 posiciones en lugar de tener que pedir encoders e interruptores rotativos: más cantidad = menor precio.

Voy e empezar por la placa de los dígitos que es más simple (las dimensiones ya están prefijadas por el documento del McLaren PCU-6C) y luego me meto con la de control, intentando reducirla al máximo aunque siempre usando componente "through-hole" (entiendo que no vamos a meternos en SMD a menos que sea estrictamente necesario).

Emplearé 4 dígitos de 10mm para las lecturas izq. y derecha, y un dígito de 14mm para el indicador de marcha.
Avatar de Usuario
Nye
Primera conducción sin ayudas
Primera conducción sin ayudas
Mensajes: 398
Registrado: 16 Dic 2008 01:00
Volante: G25
Ubicación: Sabadell
Contactar:

Mensaje por Nye » 29 Ene 2009 20:45

Hasta yo me estoy quedando fuera de juego con tanta fila y columna :D

Cuando esté menos espeso ya intentaré descifrar el jeroglifico :P
ernespeed
Piloto de Pruebas
Piloto de Pruebas
Licencia C
Licencia C
Mensajes: 547
Registrado: 16 Ene 2007 01:00
Volante: Ferrari F1 '09, GP2 2011
Ubicación: Valencia

Mensaje por ernespeed » 29 Ene 2009 22:14

Bienvenido al barco Calvorota.

Yo creo que lo he pillado todo menos lo de las filas y las columnas, que me salen que si hay que poner 6 filas y 12 columnas = 6x12 = ¿72 pines?. 8O 8O 8O 8O 8O 8O 8O 8O Me parece raro, jejeje.
Que rabia que me da cuando alguien habla de algo que me interesa y me doy cuenta de que no tengo ni idea de lo que me quiere explicar. ¿Por que no hice FP?!!!!!!

Un saludo y a la espera me teneis con el soldador ya "enchufao".
Avatar de Usuario
Gaboni
Aprendiendo a embragar manual
Aprendiendo a embragar manual
Mensajes: 329
Registrado: 15 Ago 2006 00:00
Ubicación: Madrid

Mensaje por Gaboni » 29 Ene 2009 23:23

ErnestoASV escribió:Yo creo que lo he pillado todo menos lo de las filas y las columnas, que me salen que si hay que poner 6 filas y 12 columnas = 6x12 = ¿72 pines?. 8O 8O 8O 8O 8O 8O 8O 8O Me parece raro, jejeje
Nooo a ver, si tienes 6 filas y 12 columnas, solo gastas 18 pines del PIC, pero puedes procesar hasta 72 entradas. Si a eso le sumas que las 6 filas de las entradas son los mismos pines que los 6 comunes de los displays, pues ahí tienes otro ahorro de pines del PIC.

La clave está en multiplexar todo. Esto funciona de la siguiente manera: Hay 6 filas y 12 columnas, con un pulsador (botón) en cada cruce, o sea, 72 botones.

El PIC primero pone tensión en la fila 1, y los botones de esa fila que estén apretados llevarán la tensión a su columna correspondiente. El PIC lee la tensión de las 12 columnas, y ya tiene el estado de los 12 primeros botones. Después de eso, quita tensión de la fila 1 y la pone en la 2, de forma que ahora sean los botones presionados de la fila 2 los que trasmiten la tensión a su columna correspondiente. El PIC lee que columnas tienen tensión, y obtiene los valores de los botones 13-24. Y así sucesivamente con el resto de las filas.

El firmware repite este proceso de forma consecutiva unas 160 veces por segundo, con lo que cualquier cambio es detectado casi instantaneamente.

Y con los displays, se hace exactamente igual. Los pines de los segmentos de los displays y los LEDs estan todos unidos en bus, pero los cátodos están separados, formando una tabla con filas y columnas también, pero en vez de con botones, con LEDs.

Lo que hace el PIC es poner en el bus de datos el dato a mostrar en el display 1, y activar el común de ese display para que se encienda. Un milisegundo después, desactiva ese común, pone en el bus de datos el dato a visualizar en el display 2, y activa el común del display 2, lo que hace que se apague el 1 y se encienda el 2. Luego el 3, luego el 4, y así consecutivamente. O sea, que nunca hay más de un display encendido a la vez, sino que se van turnando uno detrás de otro de forma consecutiva, luciendo 1 milisegundo cada uno. Esto crea una sensación visual de que todos los displays están encendidos a la vez.

Y bueno, esa es la teoría... otra cosa es que luego funcione :mrgreen:
ernespeed
Piloto de Pruebas
Piloto de Pruebas
Licencia C
Licencia C
Mensajes: 547
Registrado: 16 Ene 2007 01:00
Volante: Ferrari F1 '09, GP2 2011
Ubicación: Valencia

Mensaje por ernespeed » 29 Ene 2009 23:39

Ya lo he pillado Gaboni. Ya me parecia a mi que me sobraban pines, jajajajaja.
Avatar de Usuario
BEDI
Piloto Histórico
Piloto Histórico
Licencia B
Licencia B
Mensajes: 1468
Registrado: 16 Sep 2007 00:00

Mensaje por BEDI » 30 Ene 2009 00:46

Gaboni ya lo ha explicado, pero es lo misma técnica que se utiliza en la placa de LeoBodnar, las botoneras para RS-232, etc..
Avatar de Usuario
pololo40
Aprendiendo a cambiar manual
Aprendiendo a cambiar manual
Mensajes: 293
Registrado: 30 May 2007 00:00
Ubicación: Las Palmas de G.C.

Mensaje por pololo40 » 30 Ene 2009 01:42

Muy bueno gaboni, me encanta leer tus explicaciones

Saludos
Avatar de Usuario
calvorota
Calentando neumaticos
Calentando neumaticos
Licencia B
Licencia B
Mensajes: 161
Registrado: 29 Ene 2009 01:00
Volante: Mod G-25 + volante XR F1
Ubicación: Sevilla
Contactar:

Mensaje por calvorota » 30 Ene 2009 09:54

Bueno... este sería el esquema eléctrico de la parte de displays del proyecto.
Imagen
En el tema conectores he empleado 3 conectores compactos de paso 2mm (2 de 8 para D0-D15 y uno de 6 para C0-C5). Quizás sería mejor un IDC que permite luego el uso de cable plano con conectores de crimpar, super-fáciles de hacer y encontrar (sería una conexión como la de los discos duros IDE pero usando 26 hilos en lugar de 40). El problema es que de 20 contactos se pasa a 26 contactos y se desperdicia bastante espacio que no nos sobra(4 contactos de paso 0.1" = un área aprox de 5x5mm).
Si alguien conoce un conector modular, a ser posible con terminales crimpados, que tenga un modelo de 22 contactos que me diga nombre y referencia y le echaré un vistazo.

Ahora meteré la parte de control y luego pasaré todo ello al diseño del circuito impreso. A la hora de fabricar profesionalmente habría dos posibilidades (de momento hasta que no se hable de producción vamos a obviar el panelizado):
- Diseñar dos placas y encargarlas por separado
- Diseñar una placa con las dos PCBs, unidas pero con una "línea de corte". Así solo se encarga una placa y luego en casa con una sierra de marquetería se separan las dos placas de forma fácil.

En principio diseñaré dos placas "independientes" que luego se podrán encargar a fabricar de uno u otro modo (eso está por ver).
Avatar de Usuario
Gaboni
Aprendiendo a embragar manual
Aprendiendo a embragar manual
Mensajes: 329
Registrado: 15 Ago 2006 00:00
Ubicación: Madrid

Mensaje por Gaboni » 30 Ene 2009 11:38

Jo, Calvorota y Pololo, sois unos cracks...

Sólo un apunte de este último circuito: Los displays de 7 segmentos son de cátodo común, y los LEDs también, por lo que los comunes deben ir a el cátodo de los diodos, y los ánodos son los que van a D0..D15.

Por lo demás, creo que está todo bien. Pero mirad a ver, que creo que Pololo y tu estáis repitiendo los dos el mismo trabajo :mrgreen:.

Si eso, poneros de acuerdo, y que uno haga una versión de la placa para hacerla en plan industrial en china y tal (pistas finitas, doble cara, tamaño reducido, etc..); y que otro la haga para los que quieran hacerlo en casa con insoladora y ácido, ya que me imagino que no valdrá la misma placa...

Ernesto: si quieres, ve recopilando todo el material interesante del hilo, ya que dentro de un par de semanas buscar la información entre las páginas va a ser un suplicio. Puedes ir pegando los enlaces a los post en tu primer mensaje, por ejemplo.

Saludos!
Avatar de Usuario
calvorota
Calentando neumaticos
Calentando neumaticos
Licencia B
Licencia B
Mensajes: 161
Registrado: 29 Ene 2009 01:00
Volante: Mod G-25 + volante XR F1
Ubicación: Sevilla
Contactar:

Mensaje por calvorota » 30 Ene 2009 12:12

En cuanto a los displays de 7 segmentos y el cátodo/ánodo... la librería de Kingbright que tengo sólo tiene los de ánodo común, pero como el patillaje es idéntico y lo que cambia es que internamente los segmentos están conectados a la inversa he empleado los SA en lugar de los SC porque no afecta al diseño.

La placa de control quedaría así (esquema eléctrico):
Imagen

En cuanto a lo de ponernos de acuerdo, me parece bien que uno diseñe la placa para hacerla en plan casero y el otro se dedique a la versión "por encargo". De todos modos el esquema eléctrico es necesario como paso previo al diseño del PCB y para incluir las imágenes (se pueden obtener a mayor resolución y tamaño) en el manual.

Querría antes de seguir por si hay que hacer modificaciones que definamos las conexiones (y los conectores) entre ambas placas y desde estas placas a las entradas (interruptores rotativos, botones, etc). Hay demasiadas posibilidades en el mercado accesibles: tiras de pines, conectores molex de varios pasos (2.54, 2.00, etc...), conectores IDC, conectores FFC...

P.D: Ya he corregido lo de los diodos que había puesto del revés, gracias por el aviso.
Avatar de Usuario
Gaboni
Aprendiendo a embragar manual
Aprendiendo a embragar manual
Mensajes: 329
Registrado: 15 Ago 2006 00:00
Ubicación: Madrid

Mensaje por Gaboni » 30 Ene 2009 14:26

De conectores no te sabría decir... yo lo que he visto usar muchas veces son los típicos molex, lo que pasa es que mí por lo menos no me gustan mucho esos conectores, prefiero tira de pines normal.

Pero vamos, usando un paso de 2,54 mm vale para que cada uno luego suelde lo que quiera, no?

Para unir ambas placas sí que estaría bien usar cable plano, a lo mejor en vez de un solo conector con 22, usar dos de 12, uno a cada extremo de la placa..??

Pero no se, ahí es un mundo en el que yo ya me pierdo... :oops:

Saludos!
Avatar de Usuario
calvorota
Calentando neumaticos
Calentando neumaticos
Licencia B
Licencia B
Mensajes: 161
Registrado: 29 Ene 2009 01:00
Volante: Mod G-25 + volante XR F1
Ubicación: Sevilla
Contactar:

Mensaje por calvorota » 30 Ene 2009 15:23

Volviendo a la imagen de la version V1 que tenemos hecha...
Imagen

Fíjate que esta placa con los displays tiene las dimensiones de la PCU de McLaren (tomadas de las especificaciones del real). Verás que apenas caben los 4 dígitos a cada lado y eso que son de 10mm. Justo debajo de los dos grupos de dígitos laterales caben por los pelo los conectores de conexión de la placa con la de control. He usado los de 2mm de paso porque no me cabían los IDC.

Como bien dices se podría poner un conector a cada lado (incluso pueden ser tiras de pines de paso estándar 2,54mm), pero no uno completo central de 22 porque chocaría con el dígito central.

Los leds superiores son de 5mm u los laterales de 3mm. Para que en esta placa quepan los 15 leds arriba tendrán que ser de 3mm todos.

El tema "tamaño" me lleva a plantear la posibilidad de colocar unos dígitos aún más pequeños para los grupos laterales (de 7mm), más difíciles de localizar pero más fáciles de encajar. Los he usado con anterioridad en mi proyecto de cabina, en concreto para el panel de contramedidas del simulador (ver foto).
Imagen
Imagen

Incluso se podrían utilizar los Displays SIEMENS SLG2016 (son los que en realidad lleva el panel del avión en lugar de dígitos de 7 segmentos) de 4 caracteres. La ventaja de éstos es que, si alguien bichea el datasheet, seguro que se les puede meter la información mejor desde el pic.
Imagen
Pitillos

Mensaje por Pitillos » 30 Ene 2009 17:38

Hola buenas, soy nuevo en el foro, llevo leyendo este post como dos horas jeje, mas que nada decir que es un gran trabajo y ofrecerme en lo que pueda ayudarles, soy programador tanto de pic's en CCS como de Visual Basic 6 y de .NET.


En cuanto a los ultimos mensajes de calvorota, yo tengo la libreria para Proteus(que creo que es el que estas usando) con los displays de de 7 seg con DP de 9mm de catodo comun, hecha por mi, pero si kieres que te los haga de otra medida me das un toke y me pillo el datasheet y te lo hago.
Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados