https://foro.gambas-es.org/viewtopic.php?f=5&t=5113
-----------------------------------
Mr_Electronico
Domingo, 24 Enero 2016, 17:17

Panel Movil Luminoso De Leds
-----------------------------------
Hola buenas este es mi primer post en Gambas, y aunque esto es una consulta creo que pueda ser interesante, para la comunidad de Gambas por que lo que estoy intentando hacer es incrustar un panel luminoso movil de leds dentro del formulario de Gambas.

El problema es que no veo la opcion de que que se puedan cargar imagenes svg en el formulario de Gambas3 .

Yo vengo de una distribucion que es Puppy LInux y con un lenguaje de Programacion llamado Gtkdialog es posible.

Aqui dejo el enlace del video para que vean como funciona:

[youtube]-B6hQdiPCaM[/youtube]

[strike]No me deja cargar bien el enlace del video de Youtube asi que lo pongo como enlace:

[url=https://www.youtube.com/watch?v=-B6hQdiPCaM]https://www.youtube.com/watch?v=-B6hQdiPCaM[/strike]


Y el enlace donde esta el programa es en :

[url=https://misterelectronico.wordpress.com/2016/01/23/panel-luminoso-de-leds/]https://misterelectronico.wordpress.com/2016/01/23/panel-luminoso-de-leds/


Bueno el programa de instalacion esta en el paquete letrero_luminoso.pet que esta preparado para distribucion puppy, pero basicamente son 3 scripts que lo que hacen es generar la imagen SVG del panel que se refresca continuamente para hacer el efecto de ir corriendo el mensaje.

Estos 3 script hay que colocarlos dentro de   /usr/bin

Los voy a subir en el proximo post.

Lo que pasa es que los otros script como panel_corriendo  ,   hora_svg,   fecha_svg y horario_trenes  estan preparados para correrse  mediante Gtkdialog.

No obstante tengo la solucion que es convertir las imagenes de svg a png.

Pero me parece menos elegante.... Bueno un saludo y encantado de estar en este foro

Gracias a didier18 por mostrarmelo y crear el paquete de gambas3 para Puppy.

Saludos a todos.



____________________________________________________________________________________________________________

Mi Blog.
[url=https://misterelectronico.wordpress.com/2015/12/24/programas-creados-con-arduino/]https://misterelectronico.wordpress.com/2015/12/24/programas-creados-con-arduino/


-----------------------------------
vuott
Domingo, 24 Enero 2016, 17:44

Re: Panel Movil Luminoso De Leds
-----------------------------------
[quote user="Mr_Electronico" post="29855"]El problema es que no veo la opcion de que que se puedan cargar imagenes svg en el formulario de Gambas3 .[/quote]

La solución está en la Wiki oficial de Gambas: es decir utilizar un objeto [i]DrawingArea[/i] .

Exemplum:
[code linenumbers=false syntax=gambas]Private DrawingArea1 As DrawingArea
Private svg As SvgImage


Public Sub Form_Open()

  svg = SvgImage.Load("/ruta/del/archivo.svg")

  With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1"
    .X = 100
    .Y = 100
    .W = svg.W
    .H = svg.H
  End With

End

Public Sub DrawingArea1_Draw()
      
    svg.Paint

End[/code]


...pero, es posible tambien utilizar la manera clasica para cargar y mostrar imagenes: con la Clase [i]Image[/i] y el objeto [i]PictureBox[/i].
[code linenumbers=false syntax=gambas]Public Sub Form_Open()

  Dim pb As PictureBox
  Dim svg As Image
 
    svg = Image.Load("/ruta/del/archivo.svg")
    
    With pb = New PictureBox(Me)
      .X = 100
      .Y = 100
      .W = svg.W
      .H = svg.H
      .Picture = svg.Picture
    End With

End[/code]


-----------------------------------
Mr_Electronico
Domingo, 24 Enero 2016, 19:26

Re: Panel Movil Luminoso De Leds
-----------------------------------
Gracias vuott , la verdad es que soy muy nuevo en Gambas y me queda mucho por aprender.

La idea es cargar la imagen y refrescarla cada determinado tiempo para que se ve el efecto del panel.

Los script se encargaran del resto.

Si lo consigo en cuanto lo tenga lo pongo aqui.

Un saludo y gracias  por tu respuesta.




__________________________________________________________________________________________________________
Mi_Blog
[url=https://misterelectronico.wordpress.com/2015/12/24/programas-creados-con-arduino/]https://misterelectronico.wordpress.com/2015/12/24/programas-creados-con-arduino/


-----------------------------------
vuott
Domingo, 24 Enero 2016, 19:56

Re: Panel Movil Luminoso De Leds
-----------------------------------
[quote user="Mr_Electronico" post="29863"]La idea es cargar la imagen y refrescarla cada determinado tiempo ...[/quote]

Hace falta el objeto " [i]Timer[/i] ".
Además si tú usarás el objeto [i]DrawingArea[/i], podrás utilizar el metodo [i].Refresh()[/i] .
Con [i]PictureBox[/i] es suficiente que esté cargada de nuevo la nueva imagen svg.


-----------------------------------
Mr_Electronico
Lunes, 25 Enero 2016, 00:00

Re: Panel Movil Luminoso De Leds
-----------------------------------
Bueno vuott he conseguido lo primero que es poner la fecha  y la hora , pero no se me actualiza la hora por lo que tu dices , no consigo poner el Refresh correctamente en el timer.

Mira para que funcione este proyecto es necesario meter los script que voy a colocar dentro de /usr/bin

Estos script como decia hacen que se cree una imagen  svg en el directorio temporal creado para ello.

/tmp/pane/num.svg      

Esta imagen es la que se cargaria en el Drawing Area.

Bueno los script son estos.

[url=http://www.mediafire.com/download/e86a8e6wlvvx3gw/SCRIPTs.tar.gz]http://www.mediafire.com/download/e86a8e6wlvvx3gw/SCRIPTs.tar.gz


Y el primer proyecto que he echo que presenta la fecha y de momento no muy bien es:

 [img]http://foro.gambas-es.org/files/images/2860/fecha.jpg[/img] 

Bueno hasta aqui todo bien por que puedo presentar el panel luminoso en pantalla.

Este pequeño proyecto en Gambas3 el codigo es :

[url=http://www.mediafire.com/download/fu944b1084g82y4/fecha-0.0.1.tar.gz]http://www.mediafire.com/download/fu944b1084g82y4/fecha-0.0.1.tar.gz


Si se miran los script no tienen nada de complicado, pero si alguien quiere informacion sobre ellos, con mucho gusto aqui estoy para contestarsela.

Si en las lineas de codigo de Gambas

Public Sub inicia()

Shell ("fecha_svg") '

End

sustituimos    Shell("fecha_svg")   por  Shell("hora_svg")   lo que se nos presentara en pantalla sera la hora actual.


He empezado a hacer el proyecto como tu dices para que con un Timer me refresque este  Shell("hora_svg")

Por que cada vez que se le llama vuelve a crear de nuevo la imagen en 

/tmp/panel/num.svg     con la hora actual.

Pero de momento me da errores y no lo he conseguido...


Demasiadas emociones por hoy para mi .... quiza siga mañana...

Saludos y muchas gracias por todo... vuott






____________________________________________________________________________________________________
Mi_Blog
[url=https://misterelectronico.wordpress.com/2015/12/24/programas-creados-con-arduino/]https://misterelectronico.wordpress.com/2015/12/24/programas-creados-con-arduino/


-----------------------------------
vuott
Lunes, 25 Enero 2016, 00:26

Re: Panel Movil Luminoso De Leds
-----------------------------------
[quote user="Mr_Electronico" post="29868"]no consigo poner el Refresh correctamente en el timer.[/quote]
Yo digo algo parecido a este ejemplo:
[code linenumbers=false syntax=gambas]Private tempus As Timer
Private DrawingArea1 As DrawingArea
Private svg As SvgImage
Private i As Integer
Private Const ruta As String = "/usr/share/icons/hicolor/scalable/categories"


Public Sub Form_Open()

' Carga el primero archivo imagen svg contenido en la ruta elegida:
  svg = SvgImage.Load(ruta &/ Dir(ruta, Null, gb.File)[0])

' Crea la DrawingArea:
  With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1"
    .X = 100
    .Y = 100
    .W = svg.W
    .H = svg.H
  End With

' Crea el objeto Timer, ponendo tambien un delay de ms 300:
  With tempus = New Timer As "Tempus"
    .Delay = 300
    .Start()
  End With

End


Public Sub Tempus_Timer()   ' Cada ms 300 se levanta este evento

  Dim s As String

' Incrementa esta variable para identificar el siguiente archivo imagen .svg contenido en la ruta elegida: 
   Inc i

' Si el valor de la variable "i" es = a la cantidad -1 de los archivos imagen .svg contenidos en la nuestra ruta, para el Timer:
   If i = Dir(ruta, Null, gb.File).Max Then tempus.Stop
    
' Carga el nombre del archivo imagen sgv en la variable "s":
   s = Dir(ruta, Null, gb.File)[i]
    
' Carga el nuevo archivo imagen svg:
   svg = SvgImage.Load(ruta &/ s)
    
' Refresca la DrawingArea:
   DrawingArea1.Refresh()
  
End


Public Sub DrawingArea1_Draw()   ' Este evento se levanta tambien cada vez la DrawingArea se refresca

' Dibuja en la DrawingArea el nuevo archivo imagen svg cargado con el metodo "SvgImage.Load()":
   svg.Paint

End[/code]



[quote user="Mr_Electronico" post="29868"]Pero de momento me da errores y no lo he conseguido...[/quote]
Que errores te da ?


-----------------------------------
Mr_Electronico
Lunes, 25 Enero 2016, 18:38

Re: Panel Movil Luminoso De Leds
-----------------------------------
Bueno por fin lo conseguí, la verdad es que no pude contestar por que tengo la mala costumbre de tener que trabajar.

Bueno lo he hecho de la forma más sencilla.

 [img]http://foro.gambas-es.org/files/images/2860/hora.jpg[/img] 

Como en el ejercicio anterior es necesario que dentro de /usr/bin esten copiados los script

crea_puntos
crea_svg
hora_svg

Que puese en los post anteriores

El proyecto en gambas 3 es este:

[url=http://www.mediafire.com/download/2npci47qpqgc3ps/hora-0.0.2.tar.gz]http://www.mediafire.com/download/2npci47qpqgc3ps/hora-0.0.2.tar.gz


La hora se refresca y actualiza en el formulario cada 600 ms

Bueno lo siguiente es poner el letrero luminoso con las letras corriendo.

Gracias por todo vuott  y un saludo nuevamente.

_____________________________________________________________________
Mi_blog
[url=https://misterelectronico.wordpress.com/2015/12/24/programas-creados-con-arduino/]https://misterelectronico.wordpress.com/2015/12/24/programas-creados-con-arduino/


-----------------------------------
didier18
Martes, 26 Enero 2016, 17:20

Re: Panel Movil Luminoso De Leds
-----------------------------------
¡Hola

@mister_electronico ¿Tiene interés en transformar el procedimiento de la escritura? :roll: 
Esto mejorará el tiempo de procesamiento, economizar los procesos y ser más legible para todos los lectores ...

Por ejemplo aquí está lo que podía dar:

[code linenumbers=false syntax=gambas]' Gambas class file
Public $Pathdef As String = User.Home & "/" & Application.Title & "/tmp/panel"
Public $bEq As Boolean[/code]

$ Pathdef es una variable pública, será en cualquier lugar accesible en el código. Se establece la ruta del temporal en la user.home / el nombre de la aplicación / "/ tmp / panel de"

Puse el comentario (con mi mala traducción en el código :sad: ).

[code linenumbers=false syntax=gambas]Public Sub CreaPuntos()
Dim $char, $sL0, $sL1, $sL2$sL3$sL4$sL5 As String
  Select $char
    Case "A"
      $sL0 = "0111111"
      $sL1 = "1001000"
      $sL2 = "1001000"
      $sL3 = "1001000"
      $sL4 = "0111111"
      $sL5 = "0000000"
    Case "B"
      $sL0 = "1111111"
      $sL1 = "1001001"
      $sL2 = "1001001"
      $sL3 = "1001001"
      $sL4 = "0110110"
      $sL5 = "0000000"
    Case "C"
      'etc...
      
  End Select
 End[/code]
[code linenumbers=false syntax=gambas]Public Sub CreaSvg()
 Dim i, num As Integer
 If $Pathdef Not Exist($Pathdef) Then Mkdir $Pathdef 'Si la ruta no existe, se crea
    Select $bEq 'de acuerdo con el valor de $ BEQ (2 caso posible, es una variable booleana)
      Case True 'si $ EQB es cierto que llamamos Rotary procedimiento ()
        Rotar()
      Case False  'si es falsa $ EQB llamar al procedimiento Crea Puntos ()
        CreaPuntos()
    End Select
  i = 1
  num = 568
  'etc...
End[/code]
[code linenumbers=false syntax=gambas]Public Sub Rotar()
Dim cpt As Integer
  'TEMPDIR=/tmp/panel ($Pathdef ya definido)
  
  'let i=i+1 'será reemplazado por ...
  'también se puede decir
  Inc cpt
  'también se puede decir
  cpt += 1 'o cpt+=3 si el incremento es de 3
 'etc...
  
End[/code]

Esto no es una obligación, por supuesto, sólo una pista para mejorar ...

Buen día.


-----------------------------------
vuott
Martes, 26 Enero 2016, 17:46

Re: Panel Movil Luminoso De Leds
-----------------------------------
[quote user="didier18" post="29915"]¿Tiene interés en transformar el procedimiento de la escritura?
Esto mejorará el tiempo de procesamiento, economizar los procesos y ser más legible para todos los lectores ...[/quote]
Óptima y interesante sugerencia, didier18 !

Puedes tú desarrollar un po' más tu ejemplo? Un codigo breve, pero que funciones.

Gracias.

Saludos.


-----------------------------------
didier18
Miercoles, 27 Enero 2016, 00:24

Re: Panel Movil Luminoso De Leds
-----------------------------------
¡Hola

@Vuott ;-)

Gambas3 es un lenguaje interpretado.
El 'script' también es (de alguna manera) un lenguaje interpretado.

Propuse simplemente mister_electronico de 'portero' (no sé si el término está bien traducido) o transformar 'script' => procedimiento.
Por ejemplo :
if [ $variable -eq "1" ]; then rotar ; fi
no es tan remota que:
if $eq = 1 then Rotar()
incluso ahorra fi, que parece corresponder a EndIf porque si la condición es verdadera, se va directamente al procedimiento Rotar () haciendo tantos ciclo de reloj ganado (por supuesto estos son sólo unos pocos μsecondes y máquinas rápidas hoy ya no demasiado ...)
Por esta razón, le di los procedimientos de ejemplo. Ellos no son integrales y no sean un fiel reflejo de lo que el 'script'.
Y sobre todo mi conocimiento 'script' = 0 o cerca  :oops: 
Por eso he dicho que sólo era una propuesta que todos juntos en un solo programa ...

Buen día.


-----------------------------------
vuott
Miercoles, 27 Enero 2016, 02:02

Re: Panel Movil Luminoso De Leds
-----------------------------------
[quote user="didier18" post="29926"]Por eso he dicho que sólo era una propuesta que todos juntos en un solo programa ...[/quote]


Me interesó particularmente un eventual desarrollo del codigo relativo a las rutinas:    :roll: 
* [i]CreaPuntos()[/i]
* [i]CreaSvg()[/i]

Salut.


-----------------------------------
Mr_Electronico
Jueves, 28 Enero 2016, 13:55

Re: Panel Movil Luminoso De Leds
-----------------------------------
Gracias por la sugerencias didier18  perdona  que como dije todavia me queda mucho por aprender en Gambas, en este momento estoy estoy muy ocupado para transformar estos script que crean imagen SVG a Gambas, pero espero en un futuro hacerlo.

Tambien es que mi cabeza esta ocupada con muchos lenguajes de programacion en ete momento,  Gambas, Gtkdialog, lenguaje C ordenador, ensamblador microcontroladores, lenguaje C microcontroladores, scripts, etc...  tengo solo una neurona y la pobre ya no da para mas.... :roll: 

Tambien tengo el asunto pendiente contigo que espero acabarlo la semana que viene.

Perdon no haber leido este post antes pero es que no habia consultado el foro.


Un abrazo  .... nos vemos.


-----------------------------------
didier18
Jueves, 28 Enero 2016, 23:03

Re: Panel Movil Luminoso De Leds
-----------------------------------
Hola
El tiempo no es tan importante ... Este proyecto no debe ser tratado en caso de emergencia (que es un error). Un proyecto bien pensado es del 50%, el resto es de aplicación. Vuott interesados para estos procedimientos transformaciones, tal vez algunos lectores querrán unirse a nosotros o hacer que proponen ideas?
Buen día.


-----------------------------------
Mr_Electronico
Viernes, 29 Enero 2016, 01:04

Re: Panel Movil Luminoso De Leds
-----------------------------------
didier18 cuando me libre de todo lo que tengo me ire poniendo con ello.

Aqui dejo el ultimo panel  con los scripts, letrero luminoso corriendo.

 [img]http://foro.gambas-es.org/files/images/2860/panel_corrinedo.jpg[/img] 

El proyecto es:

[url=http://www.mediafire.com/download/n32x373tr3rbjj9/panel_running-0.0.2.tar.gz]http://www.mediafire.com/download/n32x373tr3rbjj9/panel_running-0.0.2.tar.gz

Saludos


-----------------------------------
jsbsan
Viernes, 29 Enero 2016, 12:09

Re: Panel Movil Luminoso De Leds
-----------------------------------
Mr_Electronico:

Como tu proyecto es pequeño, lo puedes subir directamente al foro usando la opción "Agregar un adjunto":

 [img]http://foro.gambas-es.org/files/images/6/agregar_un_adjunto.png[/img]

Asi siempre esta en el foro, y no dependemos de enlaces externos que se puedan borrar con el tiempo.


-----------------------------------
Mr_Electronico
Viernes, 29 Enero 2016, 18:19

Re: Panel Movil Luminoso De Leds
-----------------------------------
A gracias jsbsan no lo sabia.

Saludos.


-----------------------------------
didier18
Martes, 29 Marzo 2016, 16:50

Re: Panel Movil Luminoso De Leds
-----------------------------------
Hola

Aquí es una pieza de programa que debe interesar ...
Queda por completar el desplazamiento hacia la derecha y algunas gestiones ergonómicos, pero el resto es funcional ...
1) Descomprimir el archivo.
2) Copia el archivo 'matriceled.txt' en /root/.config/gambas3
3) Abrir el proyecto y haga clic en [F5].

Haga clic derecho en la frontera para abrir el PopMenu.
A continuación, seleccione el último elemento.

El archivo 'matriceled.txt' contiene todos los números y las letras para formar un mensaje ... Pero es fácil añadir otros personajes a través de la pestaña 1er.

Ir a la última pestaña y componer el mensaje haciendo clic en el mini-teclado.

A continuación, vaya a la mitad de la ficha para elegir el sentido de marcha y la velocidad.

Buen día.


