Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Panel Movil Luminoso De Leds
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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:


Link


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

https://www.youtube.com/watch?v=-B6hQdiPCaM



Y el enlace donde esta el programa es en :

https://misterelectronico.wordpress...minoso-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.
https://misterelectronico.wordpress...os-con-arduino/
 



 
última edición por jguardon el Domingo, 24 Enero 2016, 18:24; editado 3 veces 
Editado por jguardon, Domingo, 24 Enero 2016, 18:24: Corrección de inserción vídeo Youtube
Mr_Electronico - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Panel Movil Luminoso De Leds 
 
Mr_Electronico escribió: [Ver mensaje]
El problema es que no veo la opcion de que que se puedan cargar imagenes svg en el formulario de Gambas3 .


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

Exemplum:
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



...pero, es posible tambien utilizar la manera clasica para cargar y mostrar imagenes: con la Clase Image y el objeto PictureBox.
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

 



 
última edición por vuott el Domingo, 24 Enero 2016, 17:53; editado 2 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
https://misterelectronico.wordpress...os-con-arduino/
 



 
última edición por Mr_Electronico el Lunes, 25 Enero 2016, 18:45; editado 2 veces 
Mr_Electronico - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Panel Movil Luminoso De Leds 
 
Mr_Electronico escribió: [Ver mensaje]
La idea es cargar la imagen y refrescarla cada determinado tiempo ...


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



 
última edición por vuott el Domingo, 24 Enero 2016, 20:04; editado 2 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.

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:

 fecha

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

Este pequeño proyecto en Gambas3 el codigo es :

http://www.mediafire.com/download/f...ha-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
https://misterelectronico.wordpress...os-con-arduino/
 



 
última edición por Mr_Electronico el Lunes, 25 Enero 2016, 18:46; editado 2 veces 
Mr_Electronico - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Panel Movil Luminoso De Leds 
 
Mr_Electronico escribió: [Ver mensaje]
no consigo poner el Refresh correctamente en el timer.

Yo digo algo parecido a este ejemplo:
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




Mr_Electronico escribió: [Ver mensaje]
Pero de momento me da errores y no lo he conseguido...

Que errores te da ?
 



 
última edición por vuott el Lunes, 25 Enero 2016, 16:19; editado 5 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.

 hora

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:

http://www.mediafire.com/download/2...ra-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
https://misterelectronico.wordpress...os-con-arduino/
 



 
última edición por Mr_Electronico el Lunes, 25 Enero 2016, 18:47; editado 2 veces 
Mr_Electronico - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Panel Movil Luminoso De Leds 
 
¡Hola

@mister_electronico ¿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 ...

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

' gambas class file
Public $Pathdef As String = User.Home & "/" & Application.Title & "/tmp/panel"
Public $bEq As Boolean


$ 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 ).

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

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

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


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

Buen día.
 



 
didier18 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Panel Movil Luminoso De Leds 
 
didier18 escribió: [Ver mensaje]
¿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 ...

Óptima y interesante sugerencia, didier18 !

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

Gracias.

Saludos.
 



 
última edición por vuott el Martes, 26 Enero 2016, 17:47; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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  
Por eso he dicho que sólo era una propuesta que todos juntos en un solo programa ...

Buen día.
 



 
didier18 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Programa Para Conectarse A Internet Vía ... kauna Aplicaciones/Fragmentos de Código 6 Viernes, 08 Octobre 2010, 00:46 Ver último mensaje
jsbsan
No hay nuevos mensajes Creando Rutas Desde Un Movil Con Gps Para ... jsbsan Aplicaciones/Fragmentos de Código 1 Domingo, 22 Julio 2012, 19:00 Ver último mensaje
misael
No hay nuevos mensajes Aplicaciones En El Panel Shell Mundo Linux 1 Lunes, 30 Enero 2017, 11:20 Ver último mensaje
Shell
No hay nuevos mensajes Generando Realidad Virtual Con Gambas3 Y P... tercoIDE Javascript 19 Miercoles, 22 Abril 2020, 17:44 Ver último mensaje
tercoIDE
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron