GAMBAS Almenos es basic- Puerto Serie - PIC16F628A
Página 1 de 3. • Compartir •
Página 1 de 3. • 1, 2, 3 
GAMBAS Almenos es basic- Puerto Serie - PIC16F628A
Hola y saludos a todos los de la lista
, hace un tiempo que no entro al foro debido a causas del trabajo, pues bien tengo pensado hacer una pequeña interfaz serial utilizando el lenguaje GAMBAS para Linux, se me hizo bastante amigable y cuenta con el control para trabajar con el puerto serial. Lo que trataré de controlar será una tarjetita que tengo con un piC16F628A que mueve unos servos :p.
Espero que sea de agrado para la comunidad, e iré publicando mis avances.
Si desean mayor informacion sobre GAMBAS lo pueden encontrar http://gambas.sourceforge.net/en/main.html.
Espero que pueda contar con su ayuda y si puedo ofrecersela a alguien, con todo gusto lo haré
Espero que sea de agrado para la comunidad, e iré publicando mis avances.
Si desean mayor informacion sobre GAMBAS lo pueden encontrar http://gambas.sourceforge.net/en/main.html.
Espero que pueda contar con su ayuda y si puedo ofrecersela a alguien, con todo gusto lo haré
Última edición por maigke el Miér 8 Jul 2009 - 21:28, editado 1 vez

maigke- Participante Activo

- Cantidad de envíos: 46
Fecha de inscripción: 12/04/2009
Edad: 32
Localización: Mexico
Re: GAMBAS Almenos es basic- Puerto Serie - PIC16F628A
Algo así quería ver desde hace tiempo, Gambas me parece muy atractivo pero no he visto muchos proyectos (¿será que no he buscado?).
Ánimo con el proyecto, estaremos al pendiente de los avances
.
Ánimo con el proyecto, estaremos al pendiente de los avances
Re: GAMBAS Almenos es basic- Puerto Serie - PIC16F628A
Pues si que está interesante, nunca me había metido a probarlo a fondo, pero me ha picado la curiosidad y he echo algunas pruebillas y la verdad es que parece muy flexible y facil de manejar.
Y hay un par de cosa que me han gustado mucho: desde el mismo Gambas puedes crear el ejecutable y además puedes crear paquetes .deb para Ubuntu y también paquetes para otras distros.
Por lo que he leido el mismo proyecto te sirve para gtk, qt, y tanto para Gnome como Kde, etc.
A mí personalmente me interesa mucho el puerto serie, así que si encuentras información de como manejarlo y sobre todo ejemplos, pués se agradecería mucho que los postearas.
Saludos y suerte con el proyecto!
Y hay un par de cosa que me han gustado mucho: desde el mismo Gambas puedes crear el ejecutable y además puedes crear paquetes .deb para Ubuntu y también paquetes para otras distros.
Por lo que he leido el mismo proyecto te sirve para gtk, qt, y tanto para Gnome como Kde, etc.
A mí personalmente me interesa mucho el puerto serie, así que si encuentras información de como manejarlo y sobre todo ejemplos, pués se agradecería mucho que los postearas.
Saludos y suerte con el proyecto!

Pikitin- veterano

- Cantidad de envíos: 309
Fecha de inscripción: 26/11/2008
Re: GAMBAS Almenos es basic- Puerto Serie - PIC16F628A
Gambas2 ya trae el componente para manejar el puerto serie, además de traer un ejemplo, nunca lo he usado porque siempre uso el C++ y una librería que se llama lnxcomm (http://zsoluciones.com/datos/?page_id=11) para acceder al puerto serie.


tsk- Participante

- Cantidad de envíos: 11
Fecha de inscripción: 02/06/2009
Re: GAMBAS Almenos es basic- Puerto Serie - PIC16F628A
Así que si se animan a desarrollar en Gambas!, Este es el link de descarga de un libro de Gambas bajo licencia GPL y naturalmente en formato de OpenOffice
http://gambas.gnulinex.org/libro/
http://arukard.wordpress.com/2008/09/10/el-libro-de-gambas-en-pdf-34-mb-aprende-programacion-en-forma-visual-desde-linux/
Espero les sea útil, como a mi!!
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tsk, muchas gracias por la sugerencia de la biblioteca lnxcomm, esta muy interesante la opción que nos das, sin embargo, el desarrollo de momento lo realizaré con Gambas ya que me puedo generar de manera muy rápida una interfaz así como el control que deseo, posteriormente, tomeré en cuenta tu amable propuesta de desarrollo, y bueno a ver que tal me va con Glade + Anjuta, que es en lo que me he metido un poquillo
Bueno espero mañana mostrarles un pequeño avance, espero me de tiempo
hay un buen de chamba este dia.Gracias espero sugerencias!

maigke- Participante Activo

- Cantidad de envíos: 46
Fecha de inscripción: 12/04/2009
Edad: 32
Localización: Mexico
Re: GAMBAS Almenos es basic- Puerto Serie - PIC16F628A
Saludos a la lista, bueno, pues aqui un pequeño avance con esto de Gambas, tal vez comentarán que no tiene nada que ver con PIc's, y en eso tienen toda la razon, sin embargo quería hacer la prueba con un ejemplo de punto_net, y pues funcionó muy bien en GAMBAS, de esta forma quienes vengan del lado oscuro como un servidor, podrán ver que es sencillo migrar desde alla.
Ademas mi motivo es que pudieran probar el paquete debian que he armado con el IDE, para ver que tan distribuible es. Así de esta manera aseguraré, que el codigo fuente generado en gambas, para el control de la tarjeta de servos es funcional. sin embargo, iniciamos despacio, paso a paso.
Por cierto aunque el paquete es Debian, como verán en la imagen tengo ubuntu, y si se instala, en el menú aplicaciones, pero no en juegos, si no en otros, espero ver que si haya sido posible instalar el paquete, y ver los pantallazos de sus escritorios aqui.
Este es el paquete debian http://www.savefile.com/files/2146472
El kernel que tengo es:
2.6.28-11-generic
automake 1.10
autoconf 2.63
Esta es la interfaz

Este es el código fuente
Gracias por su amable atención
Ademas mi motivo es que pudieran probar el paquete debian que he armado con el IDE, para ver que tan distribuible es. Así de esta manera aseguraré, que el codigo fuente generado en gambas, para el control de la tarjeta de servos es funcional. sin embargo, iniciamos despacio, paso a paso.
Por cierto aunque el paquete es Debian, como verán en la imagen tengo ubuntu, y si se instala, en el menú aplicaciones, pero no en juegos, si no en otros, espero ver que si haya sido posible instalar el paquete, y ver los pantallazos de sus escritorios aqui.
Este es el paquete debian http://www.savefile.com/files/2146472
El kernel que tengo es:
2.6.28-11-generic
automake 1.10
autoconf 2.63
Esta es la interfaz

Este es el código fuente
- Código:
' Gambas class file
PUBLIC SUB _new()
END
PUBLIC SUB Form_Open()
PictureBox1.Visible = FALSE
RANDOMIZE
END
PUBLIC SUB Button1_Click()
PictureBox1.Visible = FALSE 'Oculta la imagen
Label1.Text = CStr(Int(Rnd() * 10)) 'Elige los numeros
Label2.Text = CStr(Int(Rnd() * 10))
Label3.Text = CStr(Int(Rnd() * 10))
'Si alguno de los anteriores es 7 entonces aparece la imagen y produce un sonido
IF (Label1.text = "7") OR (Label2.text = "7") OR (Label3.text = "7") THEN
PictureBox1.Visible = TRUE
ENDIF
END
PUBLIC SUB Button2_Click()
ME.Close
END
Última edición por maigke el Miér 8 Jul 2009 - 21:24, editado 1 vez

maigke- Participante Activo

- Cantidad de envíos: 46
Fecha de inscripción: 12/04/2009
Edad: 32
Localización: Mexico
Re: GAMBAS Almenos es basic- Puerto Serie - PIC16F628A
Bien esta vez se trata de como manejar controles slider + control spinbox haciendo que un background de un picturebox cambie de color, bien es cierto que tome como referencia el codigo fuente publicado en esta pagina, http://blog.ihtoa.org/2008/07/08/gambas-introduccion/ , a quien agradezco que haya colocado su codigo, sin el cual por el momento no me seria posible haber avanzado mas
bien AQUI coloco el paquete .deb
ahora AQUII coloco el codigo fuente -- Para que veas las propiedades aqui vienen

El codigo fuente esta aqui
- Código:
' Gambas class file
' Esta basado en un ejemplo que tome de la siguiente pagina web
' http://www.nabble.com/Saber-que-boton-del-spinbox-se-ha-pulsado-td21523755.html
' http://blog.ihtoa.org/2008/07/08/gambas-introduccion/
PRIVATE FUNCTION Cambia_color()
'Esta funcion será llamada cada vez que nuestro slider cambie
PictureBox1.BackColor = Color.RGB(sldRojo.Value, sldVerde.Value, sldAzul.Value) ' le pone color al backG
txtMiColor.Text = "#" & Format$(sldRojo.Value, "00") & Format$(sldVerde.Value, "00") & Format$(sldAzul.Value, "00")
' Al textbox le imprime el valor del color que esta tanto en el slide, como en el spinboX
END
PUBLIC SUB sldRojo_Change()
Cambia_color()
spinRojo.Value = sldRojo.Value 'Cuando cambiamos el valor de slide tambien se asigna al spinner
END
PUBLIC SUB sldVerde_Change()
Cambia_color()
spinVerde.Value = sldVerde.Value
END
PUBLIC SUB sldAzul_Change()
Cambia_color()
spinAzul.Value = sldAzul.Value
END
PUBLIC SUB spinRojo_Change()
sldRojo.Value = spinRojo.Value 'Cuando cambiamos el valor del spinner tambien se cambia el del slide
Cambia_color()
END
PUBLIC SUB spinVerde_Change()
sldVerde.value = spinVerde.Value
Cambia_color()
END
PUBLIC SUB spinAzul_Change()
sldAzul.Value = spinAzul.Value
Cambia_color()
END
La intencion de esto es que pueda controlar los servos, usando los slider, y viendo el resultado en los spinbox, pero si quiero un control mas preciso, puedo usar los spinbox!!!, como lo hago en el caso de estos colores, sin embargo, mi tarjeta controladora, funciona con caracteres ascii, y no con numeros, cada caracter ascii corresponde a un servo y cada caracter, corresponde a un avance positivo o negativo del servo. Hasta el dia de hoy he estado utilizando minicom, sin embargo para hacer almacenamiento de valores, lo hacia desde la tarjeta, lo cual hasta cierto punto la eeprom del micro, un pic16F628A funciona, pero pues queda muy limitado; debido a lo anterior, utilizaré un programa hecho en GAMBAS para hacer estas tareas y quitarle carga al micro, esto de momento.
veamos como irá quedando nuestro proyecto y tambien espero que a alguien del foro que se vaya interesando en usar GAMBAS, le sirvan estas breves notas como referencia y ayuda.
Gracias por su atencion
Última edición por maigke el Miér 8 Jul 2009 - 21:26, editado 1 vez

maigke- Participante Activo

- Cantidad de envíos: 46
Fecha de inscripción: 12/04/2009
Edad: 32
Localización: Mexico
Re: GAMBAS Almenos es basic- Puerto Serie - PIC16F628A
Aqui coloco un vínculo para cargar el programa anterior en openSuse, DESCARGA AQUI
Saludos
un detalle en la instalacion, bueno, si bien al probar el paquete de instalacion en mi maquina todo funciona bien, al tratar de instalar el paquete en una openSuse que puse en una maquina virtual, me marca errores de dependencias
, sin embargo estas parece que se pueden retirar mediante la instalacion de gambas2-runtime sin embargo como es una verion 11, pues ya me puso a actualizar todo el sistema, asi que dejaré la maquina aqui descargando y ya veré al ratillo
Si desean probar, supongo que en ubuntu haria lo mismo, solo instala el runtime del gambas 2 y listo!!, o bueno al menos eso debería

Saludos

un detalle en la instalacion, bueno, si bien al probar el paquete de instalacion en mi maquina todo funciona bien, al tratar de instalar el paquete en una openSuse que puse en una maquina virtual, me marca errores de dependencias
, sin embargo estas parece que se pueden retirar mediante la instalacion de gambas2-runtime sin embargo como es una verion 11, pues ya me puso a actualizar todo el sistema, asi que dejaré la maquina aqui descargando y ya veré al ratillo
Si desean probar, supongo que en ubuntu haria lo mismo, solo instala el runtime del gambas 2 y listo!!, o bueno al menos eso debería

maigke- Participante Activo

- Cantidad de envíos: 46
Fecha de inscripción: 12/04/2009
Edad: 32
Localización: Mexico
Re: GAMBAS Almenos es basic- Puerto Serie - PIC16F628A
Saludos a la lista, les presento la interfaz que me estoy armando, acepto sugerencias!!!, no coloque un panel para configurar el puerto ya que, mi tarjeta tiene por defecto ciertos parametros como baudrate 115200, paridad ninguna, 8 bits de datos y sin control de flujo.

[img][/img]

[img][/img]
Última edición por maigke el Miér 8 Jul 2009 - 21:28, editado 2 veces

maigke- Participante Activo

- Cantidad de envíos: 46
Fecha de inscripción: 12/04/2009
Edad: 32
Localización: Mexico
Re: GAMBAS Almenos es basic- Puerto Serie - PIC16F628A
Igual que tu yo anduve experimentando con Gambas, y la neta que es muy bueno y fácil de usar.
Ya hace tiempo que porte un programita de un tutorial de meta (Puerto serie con PIC16F84A controlado por Visual C#) a GNU/Linux con Gambas, y ahora estoy escribiendo la documentación al estilo del tutorial de meta, pero para serte sincero creo voy a tardar demasiado, soy muy flojo, jejeje.

Ya hace tiempo que porte un programita de un tutorial de meta (Puerto serie con PIC16F84A controlado por Visual C#) a GNU/Linux con Gambas, y ahora estoy escribiendo la documentación al estilo del tutorial de meta, pero para serte sincero creo voy a tardar demasiado, soy muy flojo, jejeje.

aztk- Participante

- Cantidad de envíos: 17
Fecha de inscripción: 08/06/2009
Edad: 21
Localización: Tenochtitlan
Re: GAMBAS Almenos es basic- Puerto Serie - PIC16F628A
Que tal maigke?
Oye... muy bien los ejemplos, seguro que nos viene bien a más de uno.
A mi los paquetes .deb me instalan sin problema, pero claro... yo ya tengo instalado Gambas2.
Una cosa, las imágenes yo no las puedo ver, solo aparece la miniatura, pero no hace nada al darle... mi a ver si puedes comprobar esto para poder darte opiniones.
Oye... muy bien los ejemplos, seguro que nos viene bien a más de uno.
A mi los paquetes .deb me instalan sin problema, pero claro... yo ya tengo instalado Gambas2.
Una cosa, las imágenes yo no las puedo ver, solo aparece la miniatura, pero no hace nada al darle... mi a ver si puedes comprobar esto para poder darte opiniones.

Pikitin- veterano

- Cantidad de envíos: 309
Fecha de inscripción: 26/11/2008
Re: GAMBAS Almenos es basic- Puerto Serie - PIC16F628A
Gracias por sus amables respuestas aztka y pikitin y sobretodo por comprobar el estado de los paquetes deb, y pues creo que si es necesario que este instalado gambas para que pueda correr, por cuestiones de dependencias, ahace un rato tambien probe con opensuse, y al instalar el runtime, pues no jalo, solo quito esa dependencia pero me pide tambien dependencias de gambas2.gb y delas gui.
Sip es cierto lo que me comentas pikitin,voy a ver que onda con las imagenes y gracias por comentar!
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Listo!!!! ya están corregidos los vínculos de las imagenes, ahora si espero sus comentarios, por cierto le hice un pequeño cambio, usando en lugar de GTK, use Qt, me gusto mas la forma que les da la libreria Qt, es muy estilizada
ya que Gambas permite hacer ese cambio de una manera muy express!!
Sip es cierto lo que me comentas pikitin,
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Listo!!!! ya están corregidos los vínculos de las imagenes, ahora si espero sus comentarios, por cierto le hice un pequeño cambio, usando en lugar de GTK, use Qt, me gusto mas la forma que les da la libreria Qt, es muy estilizada

maigke- Participante Activo

- Cantidad de envíos: 46
Fecha de inscripción: 12/04/2009
Edad: 32
Localización: Mexico
Re: GAMBAS Almenos es basic- Puerto Serie - PIC16F628A
Bueno... podrías comentar un poco como funcionaría el tema, para que sirve cada cosa y que se consigue al final.
Puestos a sugerir cosas mi opinión es que se podrían organizar los elementos algo mas "ordenados", por ejemplo como en dos bloques: los botones graba y salir ponerlos debajo del cuadrado de abierto y cerrado; así queda un bloque a la izquierda: foto + abierto/cerrado + botones y otro bloque a la derecha con los deslizanbtes y eso.
Solo es una opinión estética aunque también se dividen las cosas que tienen relacion en cada bloque...
Ya nos contarás como funciona el tema y para que es cada cosa.
Puestos a sugerir cosas mi opinión es que se podrían organizar los elementos algo mas "ordenados", por ejemplo como en dos bloques: los botones graba y salir ponerlos debajo del cuadrado de abierto y cerrado; así queda un bloque a la izquierda: foto + abierto/cerrado + botones y otro bloque a la derecha con los deslizanbtes y eso.
Solo es una opinión estética aunque también se dividen las cosas que tienen relacion en cada bloque...
Ya nos contarás como funciona el tema y para que es cada cosa.

Pikitin- veterano

- Cantidad de envíos: 309
Fecha de inscripción: 26/11/2008
Re: GAMBAS Almenos es basic- Puerto Serie - PIC16F628A
Estaría bien que se hicieran los mismos proyectos (o parecidos), pero en distintos lenguajes, para en un futuro tener varias alternativas y variedad de soluciones a la hora de realizar nuestros proyectos.
Por ahorita manejo el C,C++,Pascal(freepascal),Lazarus (Delphi), C# (Mono), Gambas, octave (estilo matlab), y los que vengan y se dejen.
Por ejemplo ahorita tengo funcionado en una PC un programa en C++ que manda pedir la lectura de temperatura a un PIC12f683 por medio del RS232 guarda la lectura en una base de datos de MySQL, genera una página web que contiene la lectura, los máximos y míninimos que han ocurrido durante el día, y además genera una gráfica del comportamiento a lo largo del día, y con el cron lo ejecuto cada 5 minutos. Y en otra PC tengo un 12f675 que toma la lectura de una foto-resistencia, para medir los luxes, hace lo mismo que el anterior programa, excepto lo de guardar los datos en MySQL y generar gráfica (tomo la lectura cada minuto).
También tienes tu Acer One

Por ahorita manejo el C,C++,Pascal(freepascal),Lazarus (Delphi), C# (Mono), Gambas, octave (estilo matlab), y los que vengan y se dejen.
Por ejemplo ahorita tengo funcionado en una PC un programa en C++ que manda pedir la lectura de temperatura a un PIC12f683 por medio del RS232 guarda la lectura en una base de datos de MySQL, genera una página web que contiene la lectura, los máximos y míninimos que han ocurrido durante el día, y además genera una gráfica del comportamiento a lo largo del día, y con el cron lo ejecuto cada 5 minutos. Y en otra PC tengo un 12f675 que toma la lectura de una foto-resistencia, para medir los luxes, hace lo mismo que el anterior programa, excepto lo de guardar los datos en MySQL y generar gráfica (tomo la lectura cada minuto).
También tienes tu Acer One

tsk- Participante

- Cantidad de envíos: 11
Fecha de inscripción: 02/06/2009
Re: GAMBAS Almenos es basic- Puerto Serie - PIC16F628A
gracias por las recomendaciones tanto de pikitin como de tsk
bien pues haciendo un poco de caso, acabo de cambiar a Qt, como lo mencioné mas arriba y siguendo las recomendaciones de Pikitin la distribución de la interfaz quedó de la siguiente manera

Bien con respecto a esto ahora va un poco de como estoy pensando esto:
Es una tarjeta controladora de 5 servos con un pic16f628A programado en CCS con un Xtal a 20Mhz y comunicacion serial a 115200bps, para mover cada servo en la tarjeta esta implementado de la siguiente manera
) de 1° .
Cada slider como se ve en la imagen incrementará o decrementará la posición de un servo a la vez con solo recorrerlo de una lado hacia otro, y en el spinner será visualizada de forma numérica la posición del servo ( bueno en realidad el valor que leerá del slider), si quisieramos un ajuste mas fino, a veces con el slider no es muy sencillo, modicaremos únicamente el valor numérico del spinbox
, esta idea la tomé del ejemplo que les mostre de los colores
Ahora en la seccion grabado de posiciones, cuando tenga las posiciones adecuadas de los servos, usar el boton grabar, así será guardadas en un array el número de caracteres ascii que tienen que ser enviados por el puerto serie, este número será visualizado en las etiquetas, por el momento creo conveniente solo guardar dos posiciones, pero supongo que será necesario que más adelante tenga un número mayor de posiciones
Espero que no haya sido mucho texto!
Saludos, ahora a seguir con la progra

Ya nos contarás como funciona el tema y para que es cada cosa.
Bien con respecto a esto ahora va un poco de como estoy pensando esto:
Es una tarjeta controladora de 5 servos con un pic16f628A programado en CCS con un Xtal a 20Mhz y comunicacion serial a 115200bps, para mover cada servo en la tarjeta esta implementado de la siguiente manera
- Iniciar en el centro todos los servos
- para mover cada servo usamos un caracter predefinido en el microcontrolador
Cada slider como se ve en la imagen incrementará o decrementará la posición de un servo a la vez con solo recorrerlo de una lado hacia otro, y en el spinner será visualizada de forma numérica la posición del servo ( bueno en realidad el valor que leerá del slider), si quisieramos un ajuste mas fino, a veces con el slider no es muy sencillo, modicaremos únicamente el valor numérico del spinbox
Ahora en la seccion grabado de posiciones, cuando tenga las posiciones adecuadas de los servos, usar el boton grabar, así será guardadas en un array el número de caracteres ascii que tienen que ser enviados por el puerto serie, este número será visualizado en las etiquetas, por el momento creo conveniente solo guardar dos posiciones, pero supongo que será necesario que más adelante tenga un número mayor de posiciones
Espero que no haya sido mucho texto!
Saludos, ahora a seguir con la progra


maigke- Participante Activo

- Cantidad de envíos: 46
Fecha de inscripción: 12/04/2009
Edad: 32
Localización: Mexico
Página 1 de 3. • 1, 2, 3 
Permiso de este foro:
No puedes responder a temas en este foro.




