Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



viernes, 31 de mayo de 2013

Python: Ejemplo de guardar escribir texto en un archivo y leerlo.


Python: Ejemplo de guardar escribir texto en un archivo y  leerlo.

Este es un simple ejemplo de como escribir y leer un archivo de texto plano en Python, usando las funciones read() y write().

Ademas he añadido un pequeño código para tratar el error que se produce cuando no se encuentra el archivo, mostrando un comentario por pantalla del error producido.









martes, 14 de mayo de 2013

Truco: Añadir código fuente a tu blog o página web, paso a paso.


INSERTAR CÓDIGO FUENTE EN TUS PÁGINAS WEB O BLOGS


Muchas veces necesitamos insertar algún código fuente en nuestros post. La manera en que yo lo hago habitualmente, es copiar el código fuente a un procesador de texto (por ejemplo libreoffice), aplicarle algún complemento (por ejemplo cooder) que haga "colorear" la sintaxis,  y luego pegar el resultado  en la pagina web.


Bien, pues hay un "truco" más sencillo, y es usando http://pastebin.com/  que te proporciona una muy buena presentación y sin "jaleos" de formato de código de tu pagina web...

Os explico todo el proceso:

1) Tenéis que daros de alta  en  http://pastebin.com/  (es gratuito), podéis subir tantos códigos como queráis y en diversos lenguajes de programación...

2) Voy a crear un código para ello, pulsar el botón de "create new paste":

3) Entráis en el editor


Rellenáis vuestro código, eliges el lenguaje, tiempo de espiración, privado o público y nombre, y le dais al botón "Submit"

4) Pulsar en el botón "my pastebin" (1), y veréis el listado de códigos que tengáis  en nuestro caso, solo aparece "prueba".



5) Si pulsáis sobre "prueba" (2), os mostrará  la siguiente pantalla.


Si pulsáis sobre "Embed", obtendréis el código fuente necesario para insertar vuestro programa...




Ahora en vuestra página web pegais el código, aseguraos que teneis la opción de edición en html...
y obtendreis el siguiente resultado:


Con script:



Con iframe:



Saludos

domingo, 5 de mayo de 2013

Gambas y Arduino: Ejemplo 5 Medicion de distancia y decirla en voz alta

Gambas y Arduino
 Ejemplo 5
 Medir distancias y decirlas en voz alta





Os dejo aqui otro ejemplo de gambas y arduino, esta vez usando un sensor de distancias (el HC-SR04).
El programa de arduino, lee la distancia y la escribe en el puerto serial.
Lo que hago con gambas es leer la entrada del puerto serie y usar el comando espeak
para dictar la distancia.

Montaje:



Captura del programa funcionando:



Código para arduino:

int trigger=11; // Arduino pin tied to trigger pin on the ultrasonic sensor.
int echo= 12; // Arduino pin tied to echo pin on the ultrasonic sensor.
float distance;
int val;
float lim;

void setup() {
Serial.begin(9600); // Open serial monitor at 9600 baud to see ping results.
pinMode(trigger,OUTPUT);
pinMode(echo,INPUT);
}

void loop() {
digitalWrite(trigger,LOW);
delayMicroseconds(5);
digitalWrite(trigger,HIGH);
delayMicroseconds(10);
digitalWrite(trigger,LOW);
distance=pulseIn(echo,HIGH);
distance=distance*0.0001657;
// Serial.println("Distancia:");
Serial.println(distance);
delay(200);

}

El programa en gambas


' Gambas class file

Public valor As Integer
Public encendido As Boolean

Public Sub Form_Close()
If Sport.Status = Net.Active Then Close Sport
End

Public Sub Button1_Click()
If Sport.Status = Net.Active Then
Close Sport
Button1.Text = "Abrir"
Else
' Line parameters
Sport.PortName = TxtPort.Text
Sport.Speed = CmbSpeed.Text
Sport.Parity = CmbParity.Index
Sport.DataBits = CmbData.Text
Sport.StopBits = CmbStop.Text
' keep DTR on
Sport.FlowControl = ComboBox1.Index
Sport.Open()
TextArea1.Text = "Port Abierto : " & Sport.PortName & " Settings : " &
Sport.Speed & "," & Sport.Parity & "," & Sport.DataBits & "," &
Sport.StopBits & Chr(13) & Chr(10)
Button1.Text = "Cerrar"
End If
Catch
Message.Info("Error:" & Error.text)
End

Public Sub SPort_Read()
Dim valor As Integer
Dim cadenas As String[]
Dim cadena As String
Dim s As String
Read #Sport, s, Lof(Sport)
If s <> "" Then
cadenas = Split(s, "\n\r")
Print cadenas[cadenas.count - 1]
valor = cadenas.count - 1
While cadenas[valor] = ""
valor = valor - 1
Wend
cadena = "\"Distancia es " & cadenas[valor] & "\""
LabelDistancia.text = cadena
Exec ["espeak", "-v", "es", cadena]
Wait 3
Endif
End

Public Sub ComboBox1_Click()
Sport.FlowControl = ComboBox1.Index
End

Public Sub Form_Open()

Me.Caption = "Medidor de distancia por Arduino"
Me.center
cmbSpeed.Index = cmbSpeed.Find("9600")
ComboBox1.Index = 0
End

Enlace de descarga del código:

Nota:
fuentes:
http://zygzax.com/2012/09/14/medir-distancias-con-arduino-sensor-us-100-o-hc-sr04-p2/
http://fritzing.org/projects/hc-sr04-led-bar/

sábado, 4 de mayo de 2013

Arduino y Gambas: Ejemplo 4: Usando Pulsadores

Arduino y Gambas

Ejemplo 4

Usando Pulsadores





Aquí os dejo un ejemplo, que me ha pedido  Diego carpio
Se trata de usar dos pulsadores, conectados al arduino  y que con  gambas mostremos en el monitor del pc, cual de ellos se ha pulsado.


 
Circuito de los dos pulsadores:

En gambas creo un formulario con los combobox de las caracteristicas de la conexión serial (en principio hay que dejarlos igual como aparecen en la captura) y pongo dos ToggleButton   que van a cambiar de color según el pulsador de la protoboard de arduino que se pulse.
Aqui os  dejo una captura del programa en funcionamiento:


Como siempre son 2 programas, uno que debemos grabar en el arduino y otro el de gambas (realizado en la version de gambas3.4.1)



1º Para el arduino:

int dato1;
int dato2;
int inPin1=8;
int inPin2=9;
void setup()
{
// Inicializamos puerto serie a 9600 bps
Serial.begin(9600);
pinMode(inPin1,INPUT);
pinMode(inPin2,INPUT);
// Enviamos "Hello World" con salto de línea al final
Serial.println("Conectado con el Arduino. Hello world!");
//arduino manda esta cadena al PC
}
void loop()
{
dato1=digitalRead(inPin1); // lee datos del pin nº 8
dato2=digitalRead(inPin2); // lee datos del pin nº 9

if (dato1==1) {
Serial.println(1); // escribo en el puerto serie el numero 1
digitalWrite(13, 1); // enciendo el led del arduino
delay(450); //espero casi medio segundo
digitalWrite(13, 0);  //apago el led de arduino

}
if (dato2==1) {
Serial.println(2); // escribo en el puerto serie el numero 2
digitalWrite(13, 1);
delay(450);
digitalWrite(13, 0);
}
}

2º El programa de Gambas3:

' Gambas class file

Public valor As Integer
Public encendido As Boolean

Public Sub Form_Close()
If Sport.Status = Net.Active Then Close Sport
End

Public Sub Button1_Click()
If Sport.Status = Net.Active Then
Close Sport
Button1.Text = "Abrir"
Else
' Line parameters
Sport.PortName = TxtPort.Text
Sport.Speed = CmbSpeed.Text
Sport.Parity = CmbParity.Index
Sport.DataBits = CmbData.Text
Sport.StopBits = CmbStop.Text
' keep DTR on
Sport.FlowControl = ComboBox1.Index
Sport.Open()
TextArea1.Text = "Port Abierto : " & Sport.PortName & " Settings : " &
Sport.Speed & "," & Sport.Parity & "," & Sport.DataBits & "," &
Sport.StopBits & Chr(13) & Chr(10)
Button1.Text = "Cerrar"
End If
Catch
Message.Info("Error:" & Error.text)
End

Public Sub SPort_Read()
Dim s As String
Read #Sport, s, Lof(Sport)
TextArea1.Text = s 'TextArea1.Text & s
If IsNumber(s) Then valor = Val(s)
If valor = 1 Then
'recibo el numero 1, cambio de color el boton 
ToggleButton1.Background = Color.red
Wait 0.4
ToggleButton1.Background = Color.Gray
Endif
If valor = 2 Then
'recibo el numero 2, cambio de color el boton 
ToggleButton2.Background = Color.green
Wait 0.4
ToggleButton2.Background = Color.Gray
Endif
End

Public Sub ComboBox1_Click()
Sport.FlowControl = ComboBox1.Index
End

Public Sub Form_Open()
Me.center
cmbSpeed.Index = cmbSpeed.Find("9600")
ComboBox1.Index = 0
ToggleButton2.Background = Color.Gray
ToggleButton1.Background = Color.Gray
End


Os dejo aquí los enlaces de descarga de los programas....

Enlace de descarga del programa de arduino: enlace
Enlace de descarga del programa en gambas3.4: enlace

Para ver más ejemplos de pulsadores en Arduino: http://www.hispavila.com/3ds/atmega/pulsadores.html



Nota:



viernes, 3 de mayo de 2013

Escuchar un mp3 en gambas3

 

Escuchar un fichero .mp3 en gambas3



Pasos a seguir:

 1º Tenemos que añadir a nuestro proyecto  el  componente  "gb.sdl.sound"

Menu: Proyecto/Propiedades/Componentes y clickearlo

Añadiendo el componente gb.sdl.sound a nuestro proyecto
 Esto hace que  tengamos  varias clases con las que podemos reproducir sonidos (ver http://gambasdoc.org/help/comp/gb.sdl.sound )


2º La que vamos a usar , es la clase  Music (http://gambasdoc.org/help/comp/gb.sdl.sound/music)

 Esta clase tiene el método Load (que es la que se encarga de cargar el archivo .mp3 en la memoria), y Play (que empezará a reproducir el sonido).

Os dejo un ejemplo, donde se escuchará un archivo mp3 al pulsar un botón

Ejemplo:
Public sonido1 As Music

Public Sub Form_Open()
 
  Me.Center
 
End

Public Sub ToolButton1_Click()
 
  Music.load("/tmp/sonido1.mp3")
  Music.play
 
End


 Enlace de descarga: ejemplo completo