Mostrando entradas con la etiqueta gambas. Mostrar todas las entradas
Mostrando entradas con la etiqueta gambas. Mostrar todas las entradas

martes, 4 de agosto de 2026

Creador de siluetas Gambas con IA

 

Creador de siluetas
Gambas (Visual Basic Linux)


El otro día necesite tener un mapa de España con valores vectorizados, pero no lo encontraba.
Cuando se tiene una necesidad de algo y no existe, se empieza a pensar y eso es bueno.
Después de alguna experiencia con la IA de Google, decidí utilizarla para crear un pequeño programa en Gambas para generar coordenadas de un mapa.
Al utilizar la IA  para crear el programa, se reduce considerablemente el tiempo de programación.
Le dices que te cree un programa gambas que tenga un menú que tu desees, unos componentes  como Botones, Áreas gráficas, ListBox, etc... ,  y genera todos los procedimientos. También le puedes pedir que en la área gráfica muestre una imagen al iniciar el programa, y todo te lo hace ella automáticamente.
Al ser Gambas un programa bastante parecido a Visual Basic, intenta algunas veces de utilizar sentencias de VB.
Este es el momento que el programador con ciertos conocimientos de Gambas empieza a rectificar bastantes errores que la IA introduce. Por lo cual debe haber siempre un programador detrás.



El programa funciona de la siguiente forma:
-Cargar un mapa con una resolución de 800x600
-Si ha cargado algún datos de coordenadas, las borras con ClearList.
-Con el botón izquierdo vas marcando el perfil del dibujo, al principio dará error de que necesita 2 puntos para dibujar una recta. Después de 2 punto veremos como dibuja la línea.
-Si el perfil de líneas es discontinuo, como saltar a unas islas, deberemos marcar el primer punto pulsando el botón derecho del ratón.
-Cuando se ha terminado , se guardan los datos de coordenadas.

Los datos guardados se pueden utilizar luego en cualquier programa.
El programa es simple, pero funciona.

VIDEO


PROGRAMA


Un saludo
SETA43


Programando Gambas (Visual Basic Linux) con IA (inteligencia artificial)

 

Programando Gambas (Visual Basic Linux)
con
IA (inteligencia artificial)


El otro día me atreví a crear programas gambas con la IA.
Estuve probando la IA de Gogle, Microsoft, DeepSeek, y CHATGPT.
La mayor frustración fue que después de 3 horas corrigiendo a las IAs, al día siguiente no sabía nada de lo que le había enseñado.
Todas funcionan de la misma manera, olvidan todo lo enseñado en la siguiente sesión. Debes hacer un resumen de lo enseñado ese día para luego recordárselo al día siguiente.

Al final me quede con la de Google, por diferentes motivos, en algún caso como ChatGPT te limitaba el tiempo por sesión, la DeepSeek me hacía procedimientos en el programa que yo no había pedido. Que cada uno pruebe.

Hice dos pruebas: uno que pintaba formas geométricas, y otro era una libreta de direcciones sencilla.
Por si queréis probarlo os doy los pasos:

Indicar la sintaxis que tuve que guardar el día anterior:
Aquí tiene el resumen de las precisiones y correcciones de sintaxis que ha señalado durante la sesión:

  Uso directo de Draw.Begin en el control:
  Corrección: En lugar de dibujar sobre un objeto Picture en memoria (como yo había sugerido), indicó que se debe iniciar y finalizar el dibujo directamente sobre el control DrawingArea:

  code Gambas

  Draw.Begin(DrawingArea1)
  '...
  Draw.End()

Sintaxis exacta para definir el color (Color.RGB):

  Corrección: Precisó que para asignar el color de forma estricta en Gambas se debe utilizar la llamada a la clase Color:

  code Gambas

Draw.Foreground = Color.RGB(r, g, b)

Ahora le pido que haga el programa:

Petición Inicial: Crear un programa con un área de dibujo (DrawingArea) y un menú desplegable con las opciones: Líneas, Círculos, Rectángulos, Elipses, Borrar y Salir.

  Restricción de Interfaz (Sin atajos): Especificaste que no querías "adelantos de teclado" (eliminar el uso del símbolo & que genera subrayados automáticos).

  Corrección y Ajuste de Separadores: Precisaste la sintaxis exacta del menú separador (Text = "-") y, acto seguido, solicitaste eliminar por completo los separadores para dejar un menú continuo.

  Multiplicación de Elementos: Pediste modificar el programa para que, en lugar de una sola figura, se dibujaran exactamente 10 líneas, 10 círculos, 10 rectángulos y 10 elipses.

  Componente Aleatorio: Solicitaste que esas 10 figuras tuvieran dimensiones aleatorias cada vez que se seleccionaran.

  Variedad Cromática: Añadiste el requisito de que cada una de las 10 figuras tuviera un color diferente.

  Relleno Sólido: Como toque final para este programa, pediste que las figuras geométricas cerradas estuvieran completamente rellenas.





El segundo programa es una libreta de direcciones sencilla.
Continuando con la sesión , con la sintaxis de tu sesión.

  Petición Inicial: Diseñar un programa nuevo que funcionara como una agenda o libreta de direcciones simple (campos para Nombre, Teléfono, Email, botones de control y una lista visual).

  Persistencia de Datos: Pediste añadir un menú para Guardar y Leer los contactos en el disco duro para no perderlos al cerrar la aplicación.

  Ampliación y Motor de Búsqueda: Solicitaste añadir las opciones de Acerca y Salir al menú, además de la funcionalidad clave de poder buscar un nombre (que terminamos implementando como un filtro inteligente en tiempo real).





Conclusión:
La IA es una herramienta muy útil, no es la panacea para programar, pero te ahorra mucho tiempo.
Debes tener en cuenta  que tienes que tener conocimientos en el lenguaje de programación, la IA se equivoca bastante, pero aprende rápido.
No olvides que todas las cosas que le enseñas las olvida de una sesión a otra, debes guardar el resumen de lo que has hecho, y al día siguiente cargarla al inicio de sesión.
Aconsejo que lo probéis  es de lo mas curioso, y seguro que lo emplearéis en vuestros programas.


Un saludo
SETA43


viernes, 31 de enero de 2025

GAMBAS Generador de bases de datos SQLite. Creador de programa en Gambas para su manipulación.

  Página principal

GAMBAS
Generador de bases de datos SQLite
Creador de programa en Gambas para su manipulación

 Quería crear una base de datos en Gambas, y me di cuenta que era algo tedioso crear el archivo SQLite, para mas tarde crear el programa para manejar la base de datos.
Se me vino la idea de crear un programa generador de una base de datos y a la vez el programa gráfico en gambas para interactuar con la base de datos.
Me puse manos a la obra y cree el programa.
Arrancado el programa tiene este interface gráfico.

Aquí damos nombre a la base de datos, también a la tabla ( en este caso solo va existir una).
Damos nombre a cada campo,  junto con el tipo de dato y el tamaño.
Solo generará en la base de datos el campo que tenga un tipo definido.

 

Se utiliza una especie de plantillas generales para el interface gráfico, y otra para el programa, junto con varios archivos para la configuración del programa.


Estos son los ficheros generados junto con la base de datos.
Automáticamente se crean 10 registros a modo de ejemplo.

Si cargamos el programa en gambas y lo ejecutamos veremos el interface gráfico para manejar los registros.
Aunque se crea todo el interface gráfico con todos los campos, solo se visualizará los que existan.


Podemos cambiar la posición de los elementos del interface gráfico a nuestro gusto.
Si creamos un ejecutable, no hace falta que abramos gambas.

Es un programa simple que genera bases de datos fáciles de manejar.
Como podéis ver, no genera informes, básico para cualquier base de datos, pero no era el objetivo de este programa.
Para el que quiera generar informes puede ver como lo hago en  LIBROS .
A nivel de programación las plantillas no son eficientes, no superarían un simple examen, por ejemplo:

  • En la visualización y edición , aún sabiendo que no existen otros campos, sigue ejecutando código inútil. Esto es fácil solucionarlo con un simple goto o Else, lo he dejado a propósito.
  • Los campos que no existen sigue estando en código fuente.
  • A nivel de interface gráfica, los campos están representados todos, pero se hacen invisibles los que no se utilizan.
A pesar de todo lo anterior merece la pena.
Ahora puedo generar bases de datos en un par de minutos, simple y sencillo.
Espero hacer unas versiones bastante mejores en todos los sentidos.


PROGRAMA

VIDEO


Saludos.
Juan Galaz



Bibliografía:

Gambas -Base de datos de libros con SQLite. LIBROS
Pequeño programa hecho en gambas y SQLite para manejar una biblioteca de películas. gam1
wxwidgets- Base de datos de libros-SQLite-Lector codigo de barras-MX009-2MA7C. wxlibrosS
Base de datos autores - SQLite y wxwidgets -Linux y windows. wxLibros
Lenguaje C - Base de datos autores - Compilar SQLite bajo windows. DBAUTORW
Lenguaje C - Base de datos autores - SQLite. DBAUTOR
Gambas -Base de datos de libros con SQLite. LIBROS


lunes, 4 de julio de 2022

El Tiempo - Forecast - Gambas

  Página principal

El Tiempo - Forecast
Gambas

Con el lenguaje Gambas hacer programas es fácil, y como muestra es este.
Son dos programas:
-El uno toma la IP y localiza el lugar de donde se pide la información del tiempo.
-El segundo programa nos pide el lugar de donde queremos que muestre el tiempo atmosférico
Los datos se toman de la página:
        http://wttr.in/?lang=es
Es una página que muestra la información en modo texto.
Para extraer los datos que usará nuestro programa hacemos uso del comando curl , este programa normalmente se encuentra de serie instalado en Linux




He añadido también los programas compilados en Debian9 32Bits, que funcionan bien en Debian11 64Bits.
En versiones antiguas de gambas, no funcionaba bien las transparencias ni las fuentes en modo gráfico.
Los datos que proporciona wttr.in proceden de diferentes sitios, por lo que deberemos seleccionar el mejor vd que se adapte a nuestra zona.
Otra posibilidad es de colocar los códigos de los aeropuertos, en : http://www.airportsinspain.net/list-of-all-airports-in-spain se pueden encontrar.
Como ejemplo:  Barajas Airport ->MAD,  Barcelona->  BCN

VIDEO

PROGRAMAS

Saludos.
Juan Galaz




miércoles, 26 de enero de 2022

Voltímetro analógico en Gambas (VB Linux) y con Arduino

  Página principal

Voltímetro analógico en Gambas (VB Linux)
Arduino

Este es un montaje rápido a nivel de circuito, simplemente lee el pin A0 del arduino para luego mandar la lectura a través del puerto serie.
En la parte del programa del arduino, espera la llegada de la orden "DATA" desde el puerto serie, para luego mandar la lectura analógica del A0 al puerto serie.
En la parte del ordenador, el programa está hecho en Gambas (VB Linux)
El programa lee el puerto serie, y cuando llega la cadena con la forma "A0 645" interpreta la lectura como el valor analógico del pin A0.
La representación se hace de forma digital y analógico.
Como la alimentación del arduino nano puede variar dependiendo si se conecta al USB o una fuente real de 5V, he colocado un ajuste fino del voltaje de referencia.


Programa en Gambas.



Para el ajuste perfecto de medida, se coloca el pin A0 a 3V3 y se ajusta el Voltaje de referencia para que mida 3300 mV.



PROGRAMAS Gambas y Arduino

Saludos.
Juan Galaz



Bibliografía:


martes, 11 de enero de 2022

Arduino - Joystick - Interface Gambas y Visual Basic 6

  Página principal

Arduino
Joystick
Interface Gambas y Visual Basic 6 

Aprovechando que tenía piezas de un Joystick, he utilizado los dos mandos y un arduino para leer la posición de las resistencias de los mandos.
El programa de arduino lee los 4 potenciómetros y los dos pulsadores de cada joystick.
Se conecta a los pins A0 al A5,  que se leen cada vez que el arduino lee del puerto serie la cadena "DATA".
Luego los datos leídos se mandan a través del puerto serie.

El formato de los datos es el siguiente:
    A0 434
    A1 513
    A2 526
    A3 510
    A4 1
    A5 1

Para la representación de los datos se han realizado dos programas, uno en linux con Gambas, y otro en Windows con VB6.

Interface con Gambas (VB Linux)



Interface con VB6

El programa está realizado en Visual Basic 6 , por lo cual tiene una serie de problemas.
En Windows XP funciona perfectamente sin hacer ningún tipo de acción.
Tanto en Windows 7 como Windows 10 debemos de realizar unos pasos previos.

En windows 32 bit copiar los dos archivos en system32 y luego registrarlos como administrador con la orden
regsvr32 c:\windows\System32\MSCOMM32.OCX
regsvr32 c:\windows\System32\COMDLG32.OCX

En windows 64 bit copiar los dos archivos en c:\windows\syswow64 y luego registrarlos como administrador con la orden
regsvr32 c:\windows\syswow64\MSCOMM32.OCX
regsvr32 c:\windows\syswow64\COMDLG32.OCX

Para hacer todo esto debemos abrir la consola en modo administrador.
Además de esto, si no reconoce el circuito a la primera, debemos deshabilitar los demás puertos COM.

VIDEO DEMOSTRATIVO

PROGRAMAS Gambas y VB6

Saludos.
Juan Galaz



Bibliografía:


sábado, 11 de diciembre de 2021

Transistor Tester para Arduino Nano. Representación en PC con Gambas (VB linux)

  Página principal



Transistor Tester para Arduino Nano
Representación en PC con Gambas (VB linux)
 
En un montaje anterior había realizado un analizador de componentes llamado  TransistorTester, cuyo autor era  Karl-Heinz Kübbeler .
Según la configuración del programa se podía utilizar diferentes tipos de visualizadores, en mi caso había utilizado un OLED.
Para los que deseen utilizar un PC a modo de presentación de resultados del téster, he programado una aplicación Gambas para representar los resultados.
Lo único que he hecho en el programa de arduino es modificar algunas líneas de código  que mandan algunas instrucciones por el puerto serie.
Para que no se bloqueara el I2C si no colocaba el OLED, he configurado el programa para que utilice el LCD1602.
También he añadido la línea Serial.println("END"); al final de cada detección de componente.



PROGRAMA


VIDEO DEMOSTRATIVO

Saludos.
Juan Galaz



Bibliografía:

https://github.com/kr4fty/Ardutester
https://www.sysadminsdecuba.com/2020/08/ardutester-tester-de-componentes-con-arduino/
https://create.arduino.cc/projecthub/mircemk/diy-super-simple-electronic-component-tester-234752
https://create.arduino.cc/projecthub/plouc68000/ardutester-v1-13-the-arduino-uno-transistor-tester-dbafb4

lunes, 29 de noviembre de 2021

Conversor de formatos de vídeo Gambas (VB-linux) FFMPEG

  Página principal


Conversor de formatos de vídeo
Gambas (VB-linux)
FFMPEG


Este programa es solo una interface del programa ffmpeg .
Sirve para convertir formatos de vídeo.
No se pretende mucho, pero funciona bastante bien.

 

PROGRAMA

Saludos.
Juan Galaz



Calculadora con Gambas (VB-linux) CASIO A1

  Página principal


Calculadora
con
Gambas (VB-linux)
CASIO A1


Continuo con la serie de calculadoras realizadas en GAMBAS (VB-Linux).
Como yo hago colección de calculadoras he comprado la calculadora CASIO A1.
Es tan sencilla que no pude evitar la tentación de programarla.
Fue bastante fácil y se realizo en poco tiempo, este es el resultado.


PROGRAMA

Saludos.
Juan Galaz



lunes, 22 de febrero de 2021

Catálogo de medios con Gambas (VB-linux)


Catálogo de medios
con
Gambas (VB-linux)


Cuando se tienen muchos discos es  un problema encontrar algo.
Yo utilizo Gwhere que es un buen programa que te ayuda a encontrar ficheros.
Hace tiempo que en las distribuciones ya no lo incluyen y tienes que utilizar compilaciones binarias de hace 10 años.
En un intento de hacer algo parecido en linux me he puesto manos a la obra para hacerlo en Gambas.
Para hacer un escaneo de un directorio o medio he utilizado la orden  de linux  du -a -b  .
Este comando genera un listado de todos los directorios y ficheros de forma recursiva.

Versión 3.


Versión 2.

El máximo de medios es de 100, y el máximo de líneas en el listado es de 1000.
Lo bueno de este sistema que en menos de 2 segundos encuentras ficheros o directorios que de otra forma sería difícil encontrar.
Espero que os guste.

PROGRAMA

VIDEO

Saludos.
Juan Galaz

Bibliografía:
https://cursogambas.blogspot.com/2014/04/hacer-front-end-comandos-de-gnulinux.html
http://gambaswiki.org/wiki/doc/shellexec

sábado, 6 de febrero de 2021

Radios en internet - Gambas


Radios en internet
Gambas


Hacía algún tiempo que no programaba en basic para Linux, y que mejor que hacerlo en Gambas (VB para Linux)
En este caso he realizado un pequeño programa para escuchar radios en internet.
Seguro que existen muchos programas, pero este lo he realizado en Gambas.



Realmente este programa es un interface gráfico de otros programas como: ffplay, mpg123, mplayer, nvlc, vlc...
Debéis saber que programa tenemos instalado, seguro que alguno de los de la selección tenéis.
Cada uno tiene sus pros y contras, en algún caso (los de consola), debéis activar la opción de xterm para tener más información.
Solo tiene 30 memorias, y para poder editarlas debemos activar la opción Edit, cuando damos el botón EXIT o desactivamos Edit , guarda la memorias. Si queréis mas memorias, es muy fácil, pero lo dejo para vosotros. ;)
El control del volumen utiliza el programa amixer, lo normal es que lo tengas por defecto instalado.
Las memorias de las emisoras se almacenan en el fichero User.Home & "/.config/gambas3/" & Application.Name & ".conf"  , si no lo encuentra por que es la primera vez que se ejecuta el programa, lo copia desde default.rad
Programado en Debian 10 64bits.
Espero que os guste.

PROGRAMA

Saludos.
Juan Galaz

Bibliografía:
https://cursogambas.blogspot.com/2013/07/trabajar-con-configuraciones-gbsettings.html



domingo, 10 de mayo de 2020

GAMBAS (VB Linux) PUZZLE


GAMBAS
(VB Linux)

PUZZLE

Un puzzle parecido había realizado hace años para XWIN , también lo había portado a SDL , en está ocasión lo realizo en Gambas.
Este puzzle tiene 3 niveles dependiendo del tamaño de la cuadrícula.
Nivel 1. - 4x4
Nivel 2. - 6x6
Nivel 3. -10x10
Cada nivel tiene su propia tabla de puntos.
Empiezas con 1500 segundos que se irán disminuyendo según pasa el tiempo.
Con el botón izquierdo del ratón se mueven las piezas.


Juego funcionando.

El juego es simple, pero maneja muchas rutinas para aprender a programar.
Carga imágenes jpg, trocea imágenes, utiliza TIMER, carga sonidos, lee y escribe ficheros.
Es un programa para aprender a programar Gambas


PUZZLE Source             

Saludos.
Juan Galaz


Bibliografía.

PUZZLE SDL

sábado, 15 de febrero de 2020

ARDUINO-MAX30105-Opciones en tiempo real


ARDUINO

MAX30105

Opciones en tiempo real

Gambas(VB-Linux) - Visual Basic 6 - wxwidgets


Después de realizar el montaje con el  módulo MAX30105, utilicé Gambas (VB para Linux).
Al tener que hacer pruebas y pruebas, decidí crear otro programa que me permitiera cambiar muchas de las configuraciones del MAX30105 en tiempo real.
También este programa está realizado en Gambas -  Linux bajo la distribución Debian 9. Como he dicho en muchas ocasiones el que quiera lo puede traspasar a Visual Basic con poco trabajo.

Programa con muchas de las opciones de la librería SparkFun_MAX3010x.



VIDEO

PROGRAMA




Un amigo me dijo que estaba bien hacer el programa en Gambas, pero también me dijo que la mayoría tiene Windows, y era una pena no hacerlo para Windows.
Como yo soy muy bien mandado, me puse manos a la obra, y me lo programé para Windows con Visual Basic 6, es lo que tengo a mano.
Lo que si he notado es que se programa mucho mejor en Gambas que en VB6, autocompletado, busca automática de variables, etc... Me imagino que en versiones posteriores lo hayan mejorado.


Programa en Visual Basic.

PROGRAMA_VB6

  







Programa en Linux y Windows, ¿alguien distingue cual es cual?

Una vez puesto a programar, como todos los años, creo un programa multiplataforma (Linux y Windows).
Que mejor que realizar el  visualizador  de pulso con la librería wxwidgets.
Está programado utilizando la versión 3 de la librería
wxwidgets.
Primero se programa en Linux sobre Debian 9 , y luego se traslada a Windows.
Para que se compile en una plataforma u otra solo debemos modificar el archivo define.h  y  poner:
    #define YesWindows 0
o
    #define YesWindows 1
El que quiera ver mas programas realizados con esta librería que visite mi página wxseta.html.
En el fichero comprimido se incorporan la librerías *.dll necesarias para las versiones compiladas en dinámico.
La versiones compiladas en estático programa311s.exe no necesitan ninguna dll , pero su tamaño es mayor.
En Linux se necesitan librerías wx, las necesarias son:
    libwxbase3
    libwxgtk-webview3
    libwxgtk3
Estas librerías suelen estar instaladas, pero si no es así se instalan desde los repositorios.

PROGRAMA WX


Saludos.
Juan Galaz

Bibliografía:
https://github.com/sparkfun/SparkFun_MAX3010x_Sensor_Library
https://desensores.com/sensores-arduino/tipos-de-sensores-arduino/sensor-de-frecuencia-cardiaca-max30102-para-arduino/
https://create.arduino.cc/projecthub/SurtrTech/measure-heart-rate-and-spo2-with-max30102-c2b4d8?ref=tag&ref_id=health&offset=2
https://polaridad.es/max30100-sensor-latido-corazon-oximetro-pulso-i2c-wearable-salud/

martes, 4 de febrero de 2020

ARDUINO-GAMBAS-Detector de pulso sanguíneo


ARDUINO

GAMBAS

Detector de pulso sanguíneo.


Intentado realizar un interface  para mi anterior proyecto de medidor de pulso, se me ocurrió utilizar GAMBAS (Visual Basic para Linux).



PROGRAMA

VIDEO










Saludos.
Juan Galaz


jueves, 29 de agosto de 2019

Portables Gambas

Portables Gambas

El ecosistema Linux es un tanto caótico, existen cientos de distribuciones, cada distribución varias versiones (Debian 7, Debian 8...etc), y para colmo tenemos versiones de 32 o 64 bits.
Si uno quiere crear un programa que funcione en varias distribuciones, deberá compilar este programa para las distintas distribuciones, esto puede ser un tanto laborioso y complicado.
Para salvar este problema podemos hacer uso de las aplicaciones portables, que en teoría funcionarán en todas las distribuciones.

En este artículo explico como crear aplicaciones portables de programas realizados con Gambas.
Debemos entender que Gambas ha crecido bastante, la amplitud de librerías usadas es grande, y con cada nueva versión se aumenta. Explico esto para entender el motivo de por qué utilizo una versión de Gambas que se encuentra en Debian 7.  El mismo programa Clock que viene como ejemplo en Gambas, al transformarlo a portable en Debian 9 nos ocupa 50 Megas, si lo creamos utilizando Debian 7 nos ocupa 25 Megas , la mitad.
En teoría, después de creado, se puede ejecutar en distintas distribuciones, e incluso  en 64 bits sin retocar nada.
Para terminar utilizo makeself, crea un ejecutable compacto. Se auto descomprime en el directorio tmp y se ejecuta. Este último paso no es obligatorio, pero queda muy presentable.

Como ejemplo voy ha utilizar el programa Clock que viene como ejemplo en Gambas de Debian 7.
El entorno de ejecución de Debian 7 se realiza sobre una máquina virtual con VirtualBox.

Una vez cargado y ver que funciona bien, creamos el fichero ejecutable llamado Clock.gambas.
Para comprender el entorno, he creado un usuario llamado portable, y dentro de este usuario el directorio bin, es donde guardo el ejecutable  Clock.gambas.

cde
El verdadero protagonista de este artículo es  cde_2011-08-15_32bit ,
    http://www.pgbovine.net/cde.html
este pequeño programa de 900 Kbytes crea directorio donde recrea todo el entorno de librerías y demás programas que utiliza el programa que queremos que sea portable.
Colocamos el programa  cde_2011-08-15_32bit en el directorio /home/portable/bin  junto con  Clock.gambas.
Entramos en una consola y tecleamos:
cd /home/portable/bin
./cde_2011-08-15_32bit gbr3 Clock.gambas


Después  de ejecutar el programa y cerrarlo, veremos que nos ha creado un directorio llamado cde-package , lo cambiamos de nombre con la orden:  mv cde-package  clock

En el directorio clock creamos un fichero llamado programa con lo siguiente:

#!/bin/sh
cd cde-root/home/portable/bin
./gbr3.cde  Clock.gambas


Damos permiso de ejecución con chmod ugo+x  programa
Ahora podemos probar el programa ejecutando el fichero programa.

En alguna ocasiones gambas busca iconos y directorios en el sistema , no hacen falta, por lo que conviene mirar el directorio que genera cde, para eliminar algún que otro archivo que no hace falta y tienen un gran tamaño. Para este caso no ha hecho falta, pero para otro que hice BarCode, eliminé 25 Megas.

Para trasladarlo a otro ordenador lo comprimimos con la orden:  tar -czvf  clock.tar.gz  clock
En otro ordenador lo descomprimimos con:    tar -xzvf clock.tar.gz
Y lo podemos ejecutar con el ejecutable programa.

Entorno 32 bits

Entorno 64 bits

makeself
Esta opción de tener el ejecutable portable en un directorio esta bien, pero algunos pensarán que se vería mejor si fuese un solo fichero que se ejecutara directamente.
Para esta opción tenemos el programa makeself , está en la mayoría de las distribuciones, y sirve para hacer un fichero ejecutable auto extraíble .
Con la orden:

makeself clock  clock.run "Clock" ./programa

creamos un fichero comprimido ejecutable con en nombre clock.run.
El único inconveniente es que crea un terminal junto con el programa.
También he visto que si se intenta ejecutar el programa en un entorno de 64 bits, debes hacerlo desde consola, no he querido averiguar el motivo.


Como podéis ver, puede resultar un poco laborioso al principio, pero al ver funcionar el programa en diferentes distribuciones sin problemas de librerías, nos da muchas alegrías.
También he realizado otros dos programas portables. Uno es de Gambas, BarCode, y el otro xcalc, un clásico del entorno Xwindows.

PROGRAMAS


Espero que les haya gustado el artículo.

Saludos.
Juan Galaz









jueves, 25 de julio de 2019

LCD - DSP840 - GAMBAS

Página principal

LCD  DSP840
GAMBAS

Como saben que yo reciclo casi todo, me dieron un Display de una caja registradora.
Lo conecté y encendió bien, proporcionando los datos de una configuración serie 9600,8,1.
Con esta información, me puse  hacer un programa en Gambas para programar el display.
Como he realizado muchos montaje con gambas que utilizan el puerto serie, me puse a programar una aplicación que probase el DSP840.

El DSP840 tiene una alimentación de 12V, y un conector RS232 para programar el display.
En mi equipo dispongo de un conector RS232, pero la mayoría de los ordenadores actuales no lo trae.
Me imagino que ya exista el modelo DSP840 con USB.
El que no disponga de conector RS232, puede utilizar un adaptador de RS232->USB, funciona perfectamente y son baratos.

Adaptador RS232->USB.

Conexión de la base del DSP840.

Mirando el tutorial que existe sobre DSP840, podemos encontrar la forma de programar el display.
Lo cierto que he intentado probar diferentes comandos de control para el DSP840, pero solo me han funcionado unos pocos, debe ser que existen diferentes versiones para este display, y en este caso solo funcionan pocos de los que vienen en el manual.
Pero solo utilizando un comando de control, borrado de display, podemos representar texto en el display.
El display del DSP840 dispone de 2 lineas de 20 caracteres.
El programa en Gambas solo hace que borrar los 40 caracteres, para luego mandarle los 40 caracteres nuevos con el texto.
Solo tenemos que seleccionar el puerto serie donde se conecta del DSP840, normalmente es el /dev/ttyS0 si se conecta al conector RS232, o al /dev/ttyUSB0 si se conecta mediante el adaptado RS232->USB.


Programa en Gambas (VB para Linux)


DSP840 funcionando con el programa.


PROGRAMA

Este artículo se ha realizado en un par de horas, es simple y sencillo, no pretendo mucho mas.


Saludos.
Juan Galaz

viernes, 19 de julio de 2019

Arduino - Gambas - Control entradas salidas - Navegador.

Página principal

Arduino
Gambas
Control entradas salidas.
Control mediante navegador.


En el anterior montaje solo se podía ver los estados de pin a través del navegador.
Ahora ya se puede cambiar los estados desde el navegador del PC o Móvil.

Circuito montado.


Programa gambas. 5 entradas analógicas, 12 salidas digitales.


Versión con textos. Arsetav3.


Versión con botones. Arsetav3b.

El mayor problema de controlar mediante navegador, es que en algún caso se ven diminutos los botones.
Que cada uno elija la versión que le resulte mas útil a su proyecto.

Como podéis observar en el montaje he utilizado un arduino nano, y para la representación el arduino uno.
Las pruebas las he realizado en las dos placa de arduino, funcionando perfectamente en ambas.
Aunque el arduino nano tiene A6 y A7 no las he empleado por compatibilidad con el arduino uno

La actualización de los datos desde que se cambia un valor hasta que se ve reflejado es de 1 segundo.
Se puede mejorar aumentando la velocidad en Baudios y el tiempo de retardo, para este montaje no hace falta mucha velocidad, por lo que lo he dejado así.
En el navegador web si queremos ver los datos actualizados, debemos actualizar la página web, aunque se actualiza automáticamente cada 120 segundos.


PROGRAMA

Saludos.
Juan Galaz



Bibliografía:

Arduino_Uno 1.0.1  programado por Rolfdahl-skogstade

miércoles, 17 de julio de 2019

Arduino - Gambas - Control entradas salidas

Página principal

Arduino
Gambas
Control entradas salidas


 Hace unos 5 años había realizado una serie de montajes donde controlaba una placa de arduino mediante un programa ejecutado en un PC o RaspberryPi.
Lo había realizado en C y con la librería SDL, funcionaba tanto en Linux como en Windows.
    25/06/2012 - ARDUINO - Control de 12 salidas y 6 entradas analógicas mediante rs232-Librería SDL. aseriea
    19/06/2012 -
ARDUINO - Control de entradas mediante rs232 - Librería SDL. aseriee
    10/06/2012 - ARDUINO - Control de salidas mediante rs232 -Librería SDL. aserie

El otro día probando el nuevo Debian 10, se me ocurrió instalar gambas y probar un programa que se encontraba en la granja de programas.
Era Arduino_Uno 1.0.1  programado por Rolfdahl-skogstade, además de controlar el arduino a través del PC, tenía la posibilidad de ver el estado de las entradas o salidas en un navegador web. Nunca se me ocurrió el hacer un servidor web con Gambas.
También se posibilitaba el poder cambiar las salidas a través de un navegador, desde el PC o teléfono.

En este montaje realizo algo parecido, pero en 3 montajes diferentes.
-17 salidas.
-17 entradas.
-12 salidas y 5 entradas analógicas.


También se puede visualizar en un navegador el estado de los pins del arduino, o los valores de la señales analógicas.
Para otro proyecto se podrá cambiar el estado de los pins a través del navegador.

En el programa realizado en gambas, he utilizado partes de código realizado por Rolfdahl-skogstade , sobre todo en la parte del servidor web, he interface gráfico. En cuanto al resto del código se ha rehecho totalmente, los cambios en la comunicación con el arduino son completamente nuevos, basados en mis viejos montajes.

En cuanto al programa realizado para el arduino, los códigos se basan en anteriores montajes míos, son del tipo: petición de dato a través del interface serie, y respuesta por parte del arduino a través del mismo interface serie.
Por ejemplo:
     SET 8,0          Apagar pin 8
   

    SET 8,1          Encender pin 8

    ANA 0            Se solicita el valor de pin ANALOG 0
    El arduino devolverá el valor de ANAGOL-A0:     VAL 0,350


Desde cualquier terminal serie, cutecom, o del propio terminal de arduino se pueden ejecutar las ordenes.
Podemos entender que el programa en gambas hace el control mucho mas fácil, a través de su interface gráfica.
Además busca automáticamente el puerto donde está conectado el arduino.

Circuito montado. Modelo 17 salidas.
Para no tener que colocar una resistencia para cada LED, simplifico el montaje colocando una resistencia común a GND para todos los LEDS. Esto implica que dependiendo de los LEDS que estén encendidos, lucirán mas o menos.

Programa gambas. 17 salidas.


Programa gambas. 17 entradas.


Programa gambas. 5 entradas analógicas, 12 salidas digitales.

Visualización en navegador. 5 entradas analógicas, 12 salidas digitales.

Como podéis observar en el montaje he utilizado un arduino nano, y para la representación el arduino uno.
Las pruebas las he realizado en las dos placa de arduino, funcionando perfectamente en ambas.
Aunque el arduino nano tiene A6 y A7 no las he empleado por compatibilidad con el arduino uno

La actualización de los datos desde que se cambia un valor hasta que se ve reflejado es de 1 segundo.
Se puede mejorar aumentando la velocidad en Baudios y el tiempo de retardo, para este montaje no hace falta mucha velocidad, por lo que lo he dejado así.
En el navegador web si queremos ver los datos actualizados, debemos actualizar la página web, aunque se actualiza automáticamente cada 120 segundos.


PROGRAMA

Saludos.
Juan Galaz



Bibliografía:

Arduino_Uno 1.0.1  programado por Rolfdahl-skogstade

lunes, 29 de abril de 2019

Sensores 18B20 LDR BMP180 DHT22, Arduino - Gambas - Python

Página principal


Sensores

18B20 LDR BMP180 DHT22

Arduino - Gambas - Python


Debía realizar un circuito electrónico para añadir a una página web donde indicara la temperatura ambiente.
La idea era solo colocar un sensor de temperatura 18B20, pero se me ocurrió añadir mas sensores.
En este circuito coloco varios sensores:
-18B20 sensor de temperatura.
-LDR sensor de luz.
-BMP180 sensor de presión y temperatura.
-DHT220 sensor de temperatura y humedad. (he utilizado el equivalente AM2302)


Todos los datos de estos sensores se transmiten al PC mediante el terminal serie.

Circuito montado.


Circuito.

Para la representación de los datos he utilizado dos programas.
El primero está realizado en Gambas (VB para linux).
El segundo realizado en Python.
En ambos programas busca la placa de sensores dentro de todos los posibles puertos serie.
Si encuentra el módulo de sensores los representa en pantalla.
Toda la programación se ha realizado en el entorno Linux con la distribución Debian 9.
La información de sensores se manda cada 5 segundos.
Su transformación para que funcionase en Windows en el caso de Phyton es fácil, solo cambiar la lista de dispositivos serie.

Programa Gambas (VB para linux).


Programa Phyton.

El montaje es perfecto para probar sensores.
Si no tenéis alguno de los sensores, deberéis anular el código correspondiente al sensor en el programa del arduino.

PROGRAMAS

VIDEO





Saludos.
Juan Galaz


Bibliografía:
predi.html
raspb.html
arterec.html
tm16tem.html




martes, 13 de noviembre de 2018

Arduino CNC con piezas de DVD recicladas. Interface realizada con Gambas. Parte 2

Página principal


Arduino
CNC con piezas de DVD recicladas
Interface realizada con Gambas
Parte 2


En la primera parte de este montaje había realizado un CNC con un lenguaje propio. PARTE1
En esta segunda parte de montaje, realizo una sencilla interface gráfica con Gambas (Visual Basic para linux).
El tener que introducir todas las líneas una por una de forma manual , puede resultar agotador.
Con este programa se simplifica la realización de texto y líneas.
El programa  es sencillo, solo dispone de 4 líneas de palabras y 3 rectángulos para imprimir.
Se puede cambiar las coordenadas y su tamaño.
Las letras solo tienen una resolución 5*8  en forma de línea, no es mucho pero para este CNC sirve.
Como ejemplo la letra N tiene la siguiente descripción:
78, 0, 0, 0, 0, 0, 0, 7, 0, 7, 4, 0, 4, 0, 4, 7
78- Código Ascii de N
0,0,0 reservados
línea de 0, 0 al 0, 7
línea de 0, 7 al 4, 0
línea de 4, 0 al 4, 7

Como no quería complicarme mucho, solo he realizado las letras en mayúsculas.


Interface gráfico.

Recomiendo no ajustar mucho los elementos a los márgenes, puede no pintar bien los extremos debido a un ajuste preciso del CNC.

Para una tercera parte mostraré como utilizar el CNC con programa comercial bastante mas potente.



VIDEO DE FUNCIONAMIENTO

PROGRAMA GAMBAS



Saludos.
Juan Galaz


Bibliografía:
PARTE1
https://www.doovi.com/video/how-to-make-homework-writing-machine-at-home/sUdAwUOaPX0
https://www.luisllamas.es/motores-paso-paso-arduino-driver-a4988-drv8825/
https://es.aliexpress.com/item/3DV4-CNC-Shield-V4-engraving-machine-Nano-3-0-with-USB-A4988-Reprap-Stepper-Drivers-for/32809568484.html
http://wiki.keyestudio.com/index.php/Ks0096_keyestudio_CNC_Kit_/_CNC_Shield_V4.0_%2B_Nano_3.0%2B3pcs_a4988_Driver_/_GRBL_Compatible
http://osoyoo.com/2017/04/07/arduino-nano-cnc-shield-v4-0a4988/