LCD gráfico con un nokia 5125

Como ya algunos de los usuarios ya tienen su LCD funcionando, nos podemos compartir *.bmp's y scripts para poner nuestros LCD's a que nos muestre informacion completa y graficamente bonitos :) (Ya CygnusX me paso varios y estan muy bien hechos :eek:)

Que les parece la idea?
Pronto les coloco unos bmp's que hice y unos scripts sencillitos pero utiles :p

Saludos a todos!
 
excelente para los dos!!! CygnusX es un teso y don sebastian (|e-Killer|).... tengo por ahi un 5125 con tendencia a servirme para modear... jejeje... ojala pueda hacerle y entonces publicaré resultados.
 
)-JAMSBLAST-( dijo:
excelente para los dos!!! CygnusX es un teso y don sebastian (|e-Killer|).... tengo por ahi un 5125 con tendencia a servirme para modear... jejeje... ojala pueda hacerle y entonces publicaré resultados.

Muchas gracias:p, inmerecido, solo he compartido un poco de lo que he aprendido al moddear mi pc.

Espero que te unas al club y haber si uno de estos dias armamos un clan de nokia´s:p
 
)-JAMSBLAST-( dijo:
muchachos... sera que se puede con un 1100?

A ciencia cierta no podria afirmar que no se puede.

Me remito a mi pregunta: ¿funcionará un 3390b?, no habia visto este movil en el listado de los que sirven de hecho tampoco aparece en el listado de los que el propio controlador del LCDhype puede manejar.:(

Preo ya te digo, para salir de dudas hice el montaje y voalá!!!, consegui hacerlo funcionar:p

Si es posible trata de montarlo y dinos si es posible usarlo. De conseguirlo, estarías dejando las bases para que otros compañeros pudiesen usar el propio de este modelo.

Ya te sugiero mejor: haz las pruebas y dinos que obtuviste.:p
 
Bueno despues de pelearnos un rato con el Hardware del proyecto, vamos a dar una pequeño repaso al software:p

Nos quedamos en la parte de configuracion del LCDHype. Ahora veamos algunas de sus partes y programaremos algo sencillo para empezar a disfrutar:p

Lo primero: para poder visualizar temperaturas, RPM´s de ventiladores, Temperaturas de HDD, etc. Debemos tener instalado uno de estos programas: SpeedFan (SF) o Mother Board Monitor 5 (MBM5). Para el Speed Fan habrá que localizar el plugin respectivo e instalarlo en la carpeta de Plugins del LCDHype.

Aqui la zona de plugins de la página donde reside el programa LCDHYpe (hay mas plugins, pero no he podido hacerles funcionar :( , pero en eso estoy 8| )Plugins LCDHype

Por default la version 0.41 o la version 0.42 ya traen habilitado el plugin para el MBM5Dado que me he familiarizado con el MBM, con este porograma trabajaremos en lo sucesivo. (Después pruebo el SpeedFan para complementar mas el proyecto :D )

Lo primero que haremos será obtener un Script sencillo en el que mostraremos Temperatura del CPU, uso del CPU, , la fecha, y la hora pero en forma de texto.

Como primer paso crearemos un espacio de trabajo o Script. Como vemos en la captura siguiente primero creamos un nuevo espacio, enseguida seleccionamos guardar (guardar como...)


En este caso: lo he nombrado OCMEx :D Todavia falta un poco mas para empezar con el trabajo :p

Ahora agregamos el primer Script al archivo OCMex.sd. (Con este proceso no es necesario crear un archvo *.sd para cada pantalla, en este primer archivo general, podemos crear todos los scripts que deseemos :D). Para ello damos un click en el icono (+) ubicado en la zona de nombres de Scripts. AL hacerlo aparecerá el primer escript con tres campos de trabajo en la zona de código.

Ahora asignamos un nombre, en este caso Ejemplo1 y enter.
lcdhype28de.jpg


En automático el primer Script en el listado superior cambiará de 0 Sin nombre a 0 Ejemplo1. Ahora procedemos a guardar el script (esto hay que hacerlo de cuando en cuando pues para que no se nos pierda el trabajo :blink: )

Varios puntos resultan importantes para el trabajo con el LCDHype:

El icono de guardado se torna de color azul cuando hay algo por guardar y gris cuando no hay nada que almacenar.

Del lado derecho del listado de Scripts, aparece un listado de comandos. El área de código aparece con un listado de instrucciones al estilo Basic o Q-basic. LA diferencia es que las instrucciones se van llevando renglon por renglon y los números de linea no son de importancia, son solo un control visual.

Bueno este es un resumen de los iconos del Programa. Los descritos como ? no son de gran utilidad para la programación.

iconos9dk.jpg


Bueno habiendo dado un vistazo general ya estamos en posicion de seguir.

Ahora explicaré como cargar una instruccion al área de código.

Primero asignaremos la prioridad del Script. Este parámetro es conveniente ubicarlo en el enzabezado. Definirá el intervalo de tiempo de actualizacion del LCD.

Está medido en milisegundos, por lo que un valor de 500, 1000, 5000 son respectivamente: 0.5, 1 y 5 segundos.

Mientras mas pequeno sea este valor mas uso de recursos del CPU habrá. Cada quien debe seleccionar el que le permita trabajar cómodamente sin afectar juegos o carga de programas.

Personalmente uso valores de 4000 que me dan en promedio un uso de CPU de entre 0 y 15%, sin afectar desempeño de juegos.

Para cargarlo primero borramos el texto gris del encabezado
Código:
/insert header code here/

Este es un comentario, no se ejecuta y está entre dos barras diagonales con el formato: /comentario/

y el área de LCD de Texto que no nos sirve.

Código:
#TextMode
 /insert textmode script code here/
#EndTextMode

Posicionamos el cursor entre estas dos lineas que indican el área de ancabezado

Código:
#Header

#EndHeader

Ahora buscamos el grupo de comandos "Común" y desplegamos su contenido. Buscamos el comando: "Prioridad" y damos doble click con el boton izq del mouse.

Aparece este codigo en el encabezado:

Código:
#Header
%Common.SetPriority(1)
#EndHeader

Sustituimos 1 milisegundo por 2000 milisegundos (o 2 seg)

Ahora vamos a buscar las instrucciones que nos permitiran enviar la fecha y la hora al LCD.

Ahora nos pasamos al área de finida para el LCD Gráfico:
(y quitamos el comentario)

Posicionamos el cursor entre las dos lineas y buscamos el grupo de comandos Sistema/Común/Fecha y hora y damos doble click. Y obtenemos:

Código:
#GfxMode
%System.GetDateTime(hh:nn:ss-dd.mm.yyyy)
#EndGfxMode

Ahora si damos click en arrancar veremos un texto muy grande y solo indicando la hora, y el primer digito del día :blink:

Dos cosas vienen: imagen estática, tamaño de letra y fuente, ¿que hay con eso?.

Vamos por partes. La imágen estática. Para corregir esto, debemos hacer que en la pantalla se borre el texto anterior. Por lo que despues de prioridad debemos limpiar la pantalla.

Nos colocamos en la zona del encabezado al final del comando prioridad. Al dar enter al final de esta instruccion, insertamos una linea nueva. Posicionamos el cursor al principio de esta nueva linea del encabezado

Buscamos el grupo Graphic *New*/Área de Texto

Código:
#Header
%Common.SetPriority(2000)
%Graph.SetTextArea(0,0,50,50)
#EndHeader

La instruccion trabaja con posiciones a partir de la esquina superior izquierda del LCD, la cual tiene estos valores: X=0 (largo), Y=0 (alto).
El otro extremo para nuestro LCD será: X = 84, Y = 48.
Cada punto es un pixel del LCD. La instruccion por default indica que se refrescará un área de 50 x 50 pixeles a partir de la esquina superior izquierda.

Con esto podemos ver que se pueden refrescar los pixeles que deseemos. Asi la interpretacion de la instruccion es:

(Xinicial, Yinicial, Xfinal, Yfinal)

Por lo que en nuestro Script marcamos

Código:
#Header
%Common.SetPriority(2000)
%Graph.SetTextArea(0,0,84,48)
#EndHeader

Si ahora iniciamos el Script la hora se actualizará cada dos segundos.

Cyg: la hora y fecha siguen demasiado grande... :angry:

Bueno esto tiene una solucion. El formato de cada Script puede ser controlado como instruccion de encabezado o bien con instrucciones individuales para cada linea.

Formato de texto, tamaño de letra tipo de fuente

La instruccion que define el tamaño y tipo de una fuente se obtiene asi:
Graphic *NEW*/Propiedades de la fuente

Vamos a colocarla en el encabezado, abajo del refresco de texto

Código:
#Header
%Common.SetPriority(2000)
%Graph.SetTextArea(0,0,84,48)
%Graph.Font('FixedSys',9,1)
#EndHeader

Sus caracteristicas son ('fuente', tamaño, color del pixel)

El color del pixel es 1: encendido (color negro), y 0 apagado (pixel inactivo).

Los tipos de fuente se obtienen del icono de herramientas, ubicado arriba del área de grupos de comandos (es una llave inglesa :D )

Seleccionando la herramienta Listado de Fuentes
fuentes8mv.jpg


Como está en la captura, hay que seleccionar de la instruccion

Código:
%Graph.Font('FixedSys',9,1)

Lo que está entre tildes: FixedSys. En este caso hice el cambio a Arial, y cambié el tamaño de letra de 9 a 7.

Para ilustrar lo que vamos haciendo sin tener salida al LCD, podemos usar la vista previa. Podemos mover la ventana obtenida en la posicion que deseemos. Ademas podemos cambiar el color del fondo y de los pixeles.

El resultado del cambio en la fuente es este
fuente10ff.jpg


Hemos conseguido meter el texto dentro del LCD. (para regresar al listado de comandos, basta con seleccionar icono herramientas y buscar listado de funciones)

El menor tamaño para la mayoria de fuentes es de 7, valores menores no dan un texto coherente. A excepcion del tipo Terminal. Que acepta un valor mínimo de 5

Para que el siguiente comando se inserte debajo de la fecha, debemos usar otra instruccion.

Control de posicionamiento: nueva linea de texto, posicion vertical y posicion horizontal (hay mas de momento explicaré estos)

En lo sucesivo tomaré esta codificacion para indicar instruccion(ruta). (lo que esta al final del texto entre parentesis, indica la instruccion sobre la cual hay que hacer doble click para seleccioanrla)

Asi: nueva linea de texto (Común/Linea nueva)
posicion vertical (Formato/Alineamiento/Desplazamiento), en esta por defáult se obtiene la posicion Horizontal (X), basta con cambiar Horizontal por Vertical para obtener la opcion para Y.

Ahora nos posicionamos en la zona de Scripting para el LCD gráfico y creamos una nueva linea debajo de la instruccion de la fecha. Insertamos el comando para linea nueva.

Vamos a mostrar ahora en el LCD el Nombre del procesador, su velocidad y el OC que le hemos hecho.

Los datos de nombre de CPU y de MHz defáult son datos que podemos ingresar como texto. El valor de MHz actuales es un valor que debe obtenerse del MBM.

El texto se ingresa al LCD mediante comillas "texto". Todo lo que esté dentro de las comillas ingresará como texto.

El plugin para velocidad del CPU se obtiene de esta forma: (Plugins/Mainboard Monitor 5 Plugin Version 0.3/CPU MHz)

Por default se obtiene esta instrucción:

Código:
%UsePlugin('mbm\mbm.dll',mbmMhz1)

No mostrará nada al iniciar el Script. Para que sea mostrar el dato correcto, hay que modificar mbmMhz1 a mbmMHZ. Es un error no corregido del programa :blink:

El script y su vista previa quedan así:

mhz18fy.jpg


Insertamos una nueva linea de texto. Ahora vamos a mandar info del uso del CPU y de su temperatura actual. Ejemplifico el uso de las instrucciones de posicionamiento horizontal y vertical.

Finalmente el Script queda así:

script10vh.jpg


Varios puntos hay que destacar:

Cuando cargamos la instruccion para ver el suo del CPU por default obtenemos:

Código:
%UsePlugin('mbm\mbm.dll',mbmUsage1)

En si esta instruccion no sirve (otro error en el programa). Hay que sustituir mbmUsage1 por mbmUsageCPU1.

La instruccion de temperatura manda por default el valor mbmTemperature1, en el caso de mi sistema, cambié por el valor 2 para poder obtener el dato de temperatura del procesador. Dependiendo de la placa base estos valores pueden cambiar entre 1, 2 o 3. Segun la configuracion final del MBM.

Cada vez que se crea una nueva linea que indica una nueva salida al LCD, la posicion relativa de origen X, Y se mueve de 0, 0 a la posicion de la última linea de texto. X se mantiene en 0 pero la referencia de Y en la nueva linea se convierte en el nuevo Y =0.

Es por eso que apararece un valor negativo en la posicion vertical que posiciona la temperatura enfrente del texto "TCPU: ", ya que la nueva referencia para Y, está dada por la nueva linea de texto.

Al dar "Arrancar", vemos como cambian los valores mostrados en el LCD, segun el comportamiento del CPU. :D

ejemplo19mh.jpg


En la siguiente veremos: uso de barras para representar info cómo ver imagenes por el LCD. :D
 
gK-Optimus dijo:
Huy, veo todos esos proyectos de LCD y quedo impresionado :O Que buen trabajo muchachos :D

Hmm ahi rebuscando entre mis cosas encontré un par de telefonos viejitos y no recuerdo sus referencias para ver si me sirven para convertirlos :p

Tengo dos de estos pero color azul:
5110.jpg


Y uno muy parecido a este, pero no creo que la ref. que aparece en la imagen sea la referencia del que tengo.
3360.jpg


Me pueden recordar las referencias? creo que del primero si sirven los LCD's

Estan estos Dos Tutoriales:

- Conexión al PC de los LCDs Nokia 5110, 5120, 5125, 5130, 5160, 5175, 5185, 6110 y 6150. Autor: Cyg
- Conexión al PC de la Pantalla LCD Grafica Crystalfontz CFAG12864B-TMI-V por puerto Paralelo. Autor: k74

http://www.fullcustom.es/ele_esq_06.html
http://www.fullcustom.es/guia_elec_nokia.html
 
sOcIo dijo:
Estan estos Dos Tutoriales:

- Conexión al PC de los LCDs Nokia 5110, 5120, 5125, 5130, 5160, 5175, 5185, 6110 y 6150. Autor: Cyg
- Conexión al PC de la Pantalla LCD Grafica Crystalfontz CFAG12864B-TMI-V por puerto Paralelo. Autor: k74

http://www.fullcustom.es/ele_esq_06.html
http://www.fullcustom.es/guia_elec_nokia.html

Gracias por el aporte sOcIo.

No he ahondado mucho con los nokia tipo 1. Pero debo decir que este tipo de moviles tambien se puede conectar a la Pc con la interfase de este proyecto. De hecho si comparamos el circuito para 3310 y para 5170 (del autor Rifer)



Vemos que la unica diferencia entre ambos tipos de LCd, solo está en que el tipo 2 (5170) tienen un pin (OSC) conectado a V+. Si eliminamos esta conexion, obtenemos el diagrama para conectar el LCD tipo1:p.

Por lo que este proyecto posibilita conectar ambos tipos de LCD aprovechando la misma interfase que he planteado lineas atrás:p.

Las posibilidades son muchas:p, hasta se puede conectar al mismo tiempo el tipo 1 y el tipo 2 sin problemas para ambos, solo hay que seguir el circuito respectivo:cool:
 
Ahora iremos aumentanto el grado de dificultad. Aunque realmente es muy sencillo conseguirlo.

La instrucción para mostrar datos en forma de barra es esta:

Código:
#GfxMode
 %Format.Bar(Horizontal,100,5,0,20,10,1,1,1,1)
#EndGfxMode

Se obtiene de esta forma. (Les dejo de practica crear un segundo Script: Ejemplo2:barras

Formato/representacion/barra

La descripcion de cada parámetro es esta:

(Horizontal, largo total, ancho total,?, maximo valor de la variable a representar, valor actual de la variable, marco externo, marco interno, Posición X, Posicion Y)

(Vertical, ancho, altura total, ?, máximo valor de la variable, valor actual de la variable, marco externo, marco interno, Posicion X, Posicion Y)

Estas son las dos posibilidades que tenemos paramostrar una barra.

En el caso de la barra vertical, sus dimensiones toman como referencia la parte superior de la barra .

El marco externo y marco interno, toman el valor 1 para activarlos y 0 para desactivarlos.

Aun no sé para que sirve el parámetro ?

Bueno a la practica. Si queremos representar una variable como el uso del CPU, debemos considerar esto:

Sabemos que el uso del CPU tiene un valor máximo del 100%. El valor de la variable actual, lo podemos sustituir por este parámetro en la forma siguiente:

Código:
%Format.Bar(Vertical,5,30,0,100,%UsePlugin('mbm\mbm.dll',mbmUsageCPU1),1,1,25,10)

Sin embargo, aun la barra no muestra mas que valores altos del uso del CPU y no se actualiza :(

La solución a este detalle es esta:

Código:
#GfxMode
 %Graph.LoadBitmap('pic.bmp',0,0,0,0,84,48,0,NONE)
  %Format.Bar(Vertical,8,30,0,100,%UsePlugin('mbm\mbm.dll',mbmUsageCPU1),1,1,25,10)
#EndGfxMode

La barra ya se ha animado :p . La nueva instruccion idica que cada vez que se actualice lapantalla, se cargue el mapa de bits pic.bmp. Este mapa de bits no es mas que un archivo de 84 x 48 pixeles tipo monocromático.

Al hacer esto, refresca el LCD en su totalidad. El Script se ejecuta linea a linea en el orden que las hemos puesto, por lo que el efecto de animacion, solo se consigue cuando el bmp se carga al principio de la secuencia.

Si lo vemos detenidamente, el efecto de actualizacion o de prioridad (medido en milisegundos, ubicado en el encabezado), representa la velocidad de refresco del LCD, es por esta razon que podemos conseguir un efecto de animación, y no solo de una imagen estática.

Insisto, esta animación será muy alta si escogemos valores de refresco menores a un segundo, pero también se incrementará el uso de resursos del CPU.

Dos segundos son mas que suficientes para animar cada Script.

El mapa de bits se carga de esta forma: Graphic *NEW*/Cargar Bitmap y tiene estos parámetros

Código:
%Graph.LoadBitmap('pic.bmp',0,0,0,0,10,10,0,NONE)

('nombre del archivo.bmp', X origen en LCD, Y origen en LCD, X origen en el bitmap, Y origen en el bitmap, X final en el LCD, Y final en el LCD, inversion de pantalla, ?)

El valor inversion de pantalla: toma el valor 0 cuando se carga el dibujo en forma normal, el valor 1 indica invertir color.

Cabe aclarar que en el bitmap, debe estar ubicado en la carpeta de Scripts del LCDHype para que funcione, o en su defecto hay que colocar el path completo. Sugiero tener las imagenes junto con los Scripts para no tener problemas.

Código:
#Header
 %Common.SetPriority(2000)
 %Graph.Font('Terminal',5,1)
#EndHeader

#GfxMode
 %Graph.LoadBitmap('ocmex1.bmp',0,0,0,0,84,48,0,NONE)
 " "%System.GetDateTime(hh:nn:ss-dd.mm.yyyy)
 %Format.Bar(Vertical,7,20,0,100,%UsePlugin('mbm\mbm.dll',mbmUsageCPU1),1,1,1,7)
 %Format.Bar(Vertical,7,20,0,30,%UsePlugin('mbm\mbm.dll',mbmTemperature2),1,1,1,26)
 %Common.CreateNewLine()
 %Format.Offset(Horizontal,69)
 %Format.Offset(Vertical,14)
 %UsePlugin('mbm\mbm.dll',mbmUsageCPU1)
 %Common.CreateNewLine()
 %Format.Offset(Horizontal,69)
 %Format.Offset(Vertical,13)
 %UsePlugin('mbm\mbm.dll',mbmTemperature2)
  
#EndGfxMode

Este es el BMP (hay que editarlo y guardarlo como un mapa de bits monocromático en la carpeta de Scripts del LCDHype, ocmex.bmp, para que el Script funcione bien)

ocmex18nj.png


Este es un ejemplo de aplicacion de las barras y aqui una captura :D

Es muy sencillo, solo que se irá complicando conforme vayamos revisando nuevas instrucciones

barras10vb.jpg


Si no se desae mostrar mas que una imagen, hay que usar esta instruccion
Código:
%Graph.LoadBitmap('nombre.bmp',0,0,0,0,84,48,0,NONE)

Por ejemplo

imagen12ax.jpg


En la siguiente: grafica de comportamiento en funcion del tiempo (linea contínua o puntos) :\ , transicion de Scripts
 
Espero que no me vayan a censurar por extenderme demasiado con el mensaje:confused:, pero todavía hay mas cosas por explicar, ayer entré al post y vi 6586 hoy entro y veo mas de 7100:confused:, es para asustarse, o me explico muy bien, o no me entienden o de plano se ve muy complicado:confused: .

Espero que poco a poco, si me van siguiendo se vayan aclarando las dudas. Y lo mejor, se animen a elaborar su propio Script:p.

Hoy al experimentar con algunas instrucciones del siguiente paso, me he topado con la sorpresa, de que el programa tiene un "bug" bastante problemático y mejor lo aclaro de una vez

El LCDHype tiene la ventaja de la vista previa. Si no se ha montado el LCD y se desea ver como funcionaría, esta herramienta ayuda bastante.

Sin embargo tiene un pequeño problema (no me habia percatado hasta hoy:confused: )

Cuando se carga un Script y se usa la vista previa, esta no funciona por completo como el LCD:confused:.

La vista previa no se actualiza como el LCD. ALgunos datos no se actualizan en la vista previa y en el LCD si lo hacen:confused:


En este caso, la grafica en ambos se comporta igual, solo que los datos del % de uso del CPU y Temperatura del CPU no se actualizan en la vista previa mientras que en LCD si lo hacen=),

Feliz cuando has montado el LCD:p , pero malo }] cuando buscas comprobar si lo que .
el tal Cyg dice será cierto:confused:

Desafortunadamente es un error en el programa LCDHype y con el no puedo mas que invitarles a armar el LCD:p.

Como prometí hoy veremos como se construye una linea contínua. Para esto necesitamos usar variables. En una forma muy sencilla el LCDHype permite hacer uso de variables y funciones al estilo de un lenguaje de programación.

Primero debemos declarar la variable en la zona del encabezado. El camino es Definiciones/Variable *NEW* y obtenemos:

Código:
%DefVar(MyVariable,Local='MyValue')

Con estos parámetros: (nombre de la variable = valor inicial de la variable).

No es necesario usar el formato que indica valor entre tildes, la actual version 0.42 tiene esta modificación respecto a las anteriores

Para poder graficar una linea contínua, debemos tener un contador que nos permita incrementar una variable independiente (tiempo) y obtener una linea que mide el cambio de la variable dependiente (uso del CPU en el tiempo). Complejo de explicar fácil de hacer=).

Para ello debemos usar una variable que vaya almacenando el tiempo transcurrido y nos permita unir el último dato con el dato actual y de esta forma obtener una grafica contínua.

He definido esta variable:
Código:
 %DefVar(IncTsys=7)

El valor indica donde empezaremos a dibujar la linea desde el extremo izquierdo del LCD. Así la linea comenzará en el pixel 7 ( de izq. a derecha)

Hay un cambio en la carga del bitmap. Ahora será llamado una sola vez por lo que pasará al encabezado. Esto es porque para que la linea permanezca, el área donde se está dibujando no debe borrarse, pèro necesitamos mantener el fondo de trabajo.

¿pero y las barras Cyg?, al quitar el bitmap ya no se van a actualizar:confused:

La solucion: cargar un bitmap para las dos barras solamente y dejar lo demas sin actualizar, de esta forma se mantiene en pantalla la linea continua:p

Para incrementar la variable, necesitamos sumar a dicha variable el dato anterior. Introducimos una operación en el cuerpo del Script del LCD mediante esta secuencia:
Mathematical Functions *NEW*/Basic Arithmetics *NEW*/Suma y este es el resultado:

Código:
%Inc(1,1)

Que en cristiano significa:
Código:
(variable o valor inicial, incremeto)

Como necesitamos que cada vez que se actualice la pantalla, se muestre el dato actual, vemos que por cada 1 actualizacion, hay 1 dato (uso de CPU o de Temperatura o de RPms, etc), entonces necesitamos que cada vez que se actualice la pantalla la variable de tiempo se incremete en una unidad.

Esto nos lleva a otra instrucción, la que permite asignar a una variable un nuevo dato. La ruta es: Común/Asignar y el resultado es:
Código:
%Assign(VariableName,Value)
Parámetros: (Variable, nuevo valor)

Considerando los puntos anteriores, las nuevas instrucciones ubicadas al final del Script
Código:
%Assign(IncTsys,%Inc(%IncTsys(),1))

Como es muy básica la programación, el resultado de la suma no se actualiza en la variable sino que debemos reasignar este nuevo valor a la variable, es decir suma 1 a la variable y guarda el nuevo valor en la misma variable:confused:

Esto permite obtener la linea de tiempo:p.

Ahora debemos ligar este dato con la variable que queremos monitorear. Veamos el caso del uso del CPU.

La linea de tiempo del uso del CPU, tiene como mínimo 0% y un máximo de 100%. Ademas de que debe empezar a una cierta altura en el LCD. Esto se resuelve creando una nueva variable en el encabezado

Código:
%DefVar(base1=24)

El número 24 representa el valor del pixel Y a partir del cual empezará a dibujarse la linea y con el cual tenemos la base de referencia 0% para el uso del CPU.

Para ver la linea en acción, necesitamos dos instruciones mas:
Rutas: Graphic *NEW*/Pen Propiedades y Graphic *NEW*/Línea
Código:
%Graph.Pen(0,0,1)
%Graph.LineTo(0,0,1)
Parámetros: (X inicial, Y inicial, color del pixel) para Graph.Pen y (Xfinal, Yfinal, color del pixel) para Graph.LineTo.

Para enteder la gráfica tenemos estas coordenadas: (X=7, Y=uso inicial del CPU). En la siguente lectura, (X=8, Y = uso actual del CPU).

Para X ya hemos resuelto como se comporta, incrementa en uno su valor.
Ahora hay que asignar a la variable Y el valor que deseamos que represente. Como su linea base está en 24, este representa el valor 0% de uso del CPU. El máximo 100% quedaría a 100 pixeles arriba!!!. No necesariamente, ahora deberemos aplicar un factor de escala para meter los picos de 100% en el área que queremos usar del LCD.

Código:
%Assign(IncTsys,%Inc(%IncTsys(),1))
 %Graph.Pen(%IncTsys(),%base1(),1)
 %Assign(base1,%Dec(24,%Trunc(%Div(%UsePlugin('mbm\mbm.dll',mbmUsageCPU1),6.5))))
 %Graph.LineTo(%IncTsys(),%base1(),1)

Esta es mi propuesta de solución: el factor de escala que he usado para meter el valor dentro del área es 6.5. Aqui hay tres instrucciones mas:

Mathematical Functions *NEW*/Operaciones/Truncar
Código:
%Trunc(1.5)
(Variable o valor.valor decimal hasta el que hay que truncar). Cuando solo se pone la variable sin punto decimal ni valor enfrente, se trunca hasta el valor entero.
Mathematical Functions *NEW*/Basic Arithmetics *NEW*/División
Código:
%Div(6,2)
(variable o dividendo, divisor)
Mathematical Functions *NEW*/Basic Arithmetics *NEW*/Resta
Código:
%Dec(1,1)
(variable o valor, valor del decremento)

Bueno este es el código completo :p

Código:
#Header
 %DefVar(IncTsys=7)
 %DefVar(base1=24)
 %DefVar(base2=40)
 %Common.SetPriority(5000)
 %Graph.Font('Terminal',5,1)
 %Graph.LoadBitmap('OCMex1.bmp',0,0,0,0,84,48,0,NONE)
#EndHeader

#GfxMode
%Common.ChangeScreen(300000,43)
 " "%System.GetDateTime(hh:nn:ss-dd.mm.yyyy)
 %Graph.LoadBitmap('OCMex1.bmp',0,0,0,0,8,48,0,NONE)
 %Format.Bar(Vertical,7,20,0,100,%UsePlugin('mbm\mbm.dll',mbmUsageCPU1),1,1,1,7)
 %Format.Bar(Vertical,7,20,0,30,%UsePlugin('mbm\mbm.dll',mbmTemperature2),1,1,1,26)
 %Common.CreateNewLine()
 %Format.Offset(Horizontal,69)
 %Format.Offset(Vertical,14)
 %UsePlugin('mbm\mbm.dll',mbmUsageCPU1)
 %Common.CreateNewLine()
 %Format.Offset(Horizontal,69)
 %Format.Offset(Vertical,13)
 %UsePlugin('mbm\mbm.dll',mbmTemperature2)
 /Seccion para las graficas lineales/
 /linea de tiempo de uso del CPU/
 %Assign(IncTsys,%Inc(%IncTsys(),1))
 %Graph.Pen(%IncTsys(),%base1(),1)
 %Assign(base1,%Dec(24,%Trunc(%Div(%UsePlugin('mbm\mbm.dll',mbmUsageCPU1),6.5))))
 %Graph.LineTo(%IncTsys(),%base1(),1)
 /linea de tiempo de la temperatura del CPU/
 %Graph.Pen(%IncTsys(),%base2(),1)
 %Assign(base2,%Dec(55,%Trunc(%Div(%UsePlugin('mbm\mbm.dll',mbmTemperature2),1))))
 %Graph.LineTo(%IncTsys(),%base2(),1)
#EndGfxMode

Un par de capturas del Script en funcionamiento:p

La última está invertida, ya que en mi personal gusto, uso las pantallas al revés:p , me da que se ven mejor. El error está allí solo en la vista previa mas no en el LCD. He pasado el script a mi archivo general play.sd. Como es el Script 43 por eso la instruccion (%Common.ChangeScreen(300000,43) tiene este valor. Esta indica cada cantos milisegundos se actualizará la pantalla y a que pantalla saltará. En el caso de ustedes este valor en lugar de 43, será el número que tenga este script en su listado de scripts.

Bueno pues considero que ya han sido introducidos al diseño de Scripts. Cada quien puede ahora diseñar los propios. EL LCDHype no es complicado en si:p, no hay que memorizarse mas que la forma de mandar las instrucciones al Script, pero es menos tedioso que el LCDInfo y desde mi punto de vista con mucho mas potencial:p

A disfrutar:p
 
gracias tio cyg! ayer estuve montando el LCd en la tapita 5 1/4 con masilla y demas y los resultados me kedaron muy PRO's ahora seguire con las clases :D
 
  • Me gusta
Reacciones: 2 personas
bueno viejo cyg.. la cuestion es que como le inentaria hacer al montaje?
no me he fijado si el lcd del 1100 tiene o o 9 pines...eso tiene un estandar como para poder utilizarlo a la hora de mirar como hacer el cableado... o cambia por cada modelo?
 
)-JAMSBLAST-( dijo:
bueno viejo cyg.. la cuestion es que como le inentaria hacer al montaje?
no me he fijado si el lcd del 1100 tiene o o 9 pines...eso tiene un estandar como para poder utilizarlo a la hora de mirar como hacer el cableado... o cambia por cada modelo?

Desafortunadamente hay que desmontar el LCD:(. No hay forma de saberlo con solo mirar el exterior.

Otra posibilidad es buscar el LCD en el google, hay varios lugares en los que venden repuestos para móviles, quizas si indagas allí veas si hay parecido con tu movil.

El 3390b no aparece referido en la página del LCDHype ni en el ropio controlador:p, me di a la tarea de buscar primero en la red como era físicamente el LCd del 3310 y hubo muchas coincidencias, no supe si sirvió hasta que los desmonté y miré el número de pines: 8; lo demas ya fue soldar y probar.
 
bueno... pensandolo bien... voy a preguntar a mi señor padre a ver si me deja cojer el 5125 para hacerle a ese... es que me dio como cosas hacerle al 1100
 
)-JAMSBLAST-( dijo:
bueno... pensandolo bien... voy a preguntar a mi señor padre a ver si me deja cojer el 5125 para hacerle a ese... es que me dio como cosas hacerle al 1100
Ojalá y tengas suerte:p

Mi buen e-killer, ojalá y te sirva la clase, por lo menos para agrandar mas las dudas:p. Si hay dudas pues adelante haber si puedo responder:p

Saludos y sigo en espera de las fotos del proyecto=)
 
bueno gente.. tuve suerte.. mi papá me dijo que no.. pero mi hermano quien tenia arrumado un 5120 me dijo que lo cojiera e hiciera con el lo que quisiera.

Y entonces... ya veran!!! tender mi lcd grafico pronto!!.. pero primero.. a comprar vcard
 
)-JAMSBLAST-( dijo:
bueno gente.. tuve suerte.. mi papá me dijo que no.. pero mi hermano quien tenia arrumado un 5120 me dijo que lo cojiera e hiciera con el lo que quisiera.

Y entonces... ya veran!!! tender mi lcd grafico pronto!!.. pero primero.. a comprar vcard

Bueno pues un alumno más que se une a este proyecto:p. Solo calma y verás en pocas horas tu nuevo LCD:p
 

Los últimos mensajes

Los últimos temas