Diferencia entre revisiones de «LibStargate»

De WikiRobotics
Saltar a: navegación, buscar
(Versión 1.2)
 
(No se muestran 57 ediciones intermedias de 3 usuarios)
Línea 1: Línea 1:
 +
[[Image:stargate_logo1.png|right|Logo del PICP]]
 +
 
== Introducción ==
 
== Introducción ==
  
[[LibStargate]] es la librería de comunicación con los servidores Stargate, previamente cargados mediante [[libIris]] o gráficamente con [[Iris]]. Una vez hecho esto, este módulo ofrece una serie de clases.
+
[[LibStargate]] es la librería de comunicación con los servidores del proyecto [[Stargate]] que se encuentran en un hardware externo y se comunican con el PC mediante el puerto serie, a una velocidad de 9600 bps.
 +
 
 +
== Características ==
 +
 
 +
* '''Licencia''': GPL
 +
* Lenguaje: Python
 +
* '''Multiplataforma''': Linux y Windows
 +
 
 +
== Autores ==
 +
[[Juan_Gonzalez:Main |Juan González]], (c) 2007 : Creación de la librería
 +
*  [http://rafael.trevino.menendez.googlepages.com/ Rafael Treviño], (c) 2007 : Mejora y ampliación de la librería.
 +
 
 +
== Agradecimientos ==
 +
* A [http://www.iearobotics.com/personal/andres/ Andrés Prieto-Moreno] y [http://www.iearobotics.com/personal/ricardo Ricardo Gómez] por las pruebas en plataformas Windows
  
* Stargate: Clase genérica de las que las demás heredan.
+
== Ejemplos de Utilización ==
* Generic: Clase para la comunicación con el servidor genérico que permite leer y escribir en la memoria del microcontrolador.
 
* Servos8: Clase para la comunicación con el servidor servos8 para controlar hasta 8 servos.
 
* PICP: Clase para la comunicación con el servidor PICP para grabar una [[Skypic]] esclava a través de la [[Skypic]] que tiene este servidor instalado.
 
  
La comunicación se hace a través del puerto serie a 9600 bps.
+
Se muestran dos ejemplos utilizando la [[Skypic|tarjeta Skypic]]. Son muy sencillos y no realizan ninguna gestión de errores. Se utiliza el dispositivo serie '''/dev/ttyUSB0''' de una máquina linux. Para máquinas Windows habría que cambiarlo por el puerto '''COM''' corresponiente
  
== Características ==
+
=== Accediendo al led de la Skypic ===
 +
Ejemplo de cómo acceder al '''puerto B''' de la [[Skypic|tarjeta Skypic]] para controlar el led que está conectado en el bit 1. En la tarjeta debe estar grabado el [http://www.iearobotics.com/proyectos/stargate/servidores/sg-generic/sg-generic.html servidor genérico].
 +
 
 +
<span style="color: #804000;">import</span> time
 +
<span style="color: #804000;">import</span> libStargate.Generic
 +
<span style="color: #804000;">from</span> libStargate.pic16f876 <span style="color:  #804000;">import</span> *
 +
 
 +
<span style="color: #800000;">#-- Abrir la conexion</span>
 +
g=libStargate.Generic.Open_session("<span style="color: #006000;">/dev/ttyUSB0</span>")
 +
   
 +
<span style="color: #800000;">#-- Configurar bit 1 del puerto B como salida</span>
 +
g[TRISB]=0xFD
 +
 
 +
<span style="color: #800000;">#-- Encender el led</span>
 +
g[PORTB]=0x02
 +
 +
<span style="color: #800000;">#-- Esperar 2 segundos</span>
 +
time.sleep(2)
 +
 +
<span style="color: #800000;">#-- Apagar el led</span>
 +
g[PORTB]=0x00
  
* '''Licencia''': GPL
+
'''Ejemplos del repositorio:'''
* '''Autor''':
+
* [http://svn.iearobotics.com/libStargate/libstargate-1.2/test-generic/test-generic.py test-generic.py] Hacer parpadear el led de la Skypic. Se gestionan los errores
**  Juan González, (c) 2007 : Creación de la librería
+
* [http://svn.iearobotics.com/libStargate/libstargate-1.2/test-generic/boton.py boton.py]. Lectura del pulsador de pruebas de la Skypic
**  Rafael Treviño, (c) 2007 : Mejora y ampliación de la librería.
 
  
== Utilización de libStargate ==
+
=== Posicionamiento de un servo con la Skypic ===
 +
Ejemplo de cómo posicionar un servo del tipo '''Futaba 3003''' o compatible conectado a la [[Skypic]]. En la tarjeta debe estar grabado el [http://www.iearobotics.com/proyectos/stargate/servidores/sg-servos8/sg-servos8.html servidor servos8]
  
La utilización es muy sencilla. Basta con instanciar una clase (pasándole el puerto serie a utilizar) y después ir invocando a los servicios que ofrece el propio servidor como si de llamadas locales se tratase. De todo lo demás se encarga la librería. Además tiene una comunicación con [[libIris]] de forma que, si no tenemos instalado el servidor que acabamos de instanciar, se encarga de bajarlo de Internet e instalarlo en la [[Skypic]].
+
<span style="color: #804000;">import</span> time
 +
<span style="color: #804000;">import</span> libStargate.Servos8
 +
 +
<span style="color: #800000;">#-- Abrir la conexion y devolver el stargate generico</span>
 +
s=libStargate.Servos8.Open_session("<span style="color: #006000;">/dev/ttyUSB0</span>")
 +
   
 +
<span style="color: #800000;">#-- Habilitar servo 1</span>
 +
s.enable(0x01);
 +
 +
<span style="color: #800000;">#-- Mover servo 1 a un extreno</span>
 +
s[1]=-90
 +
 +
<span style="color: #800000;">#-- Esperar</span>
 +
time.sleep(2)
 +
 
 +
<span style="color: #800000;">#-- Mover servo 1 al otro extremo</span>
 +
s[1]=90
  
Para utilizar libStargate con libIris, debemos tener libIris en el mismo directorio. Si ésta no está, entonces la librería libStargate funcionará correctamente, pero sin las capacidades de libIris.
+
'''Ejemplos del repositorio''':
 +
* [http://svn.iearobotics.com/libStargate/libstargate-1.2/test-servos8/test-servos8.py test-servos8.py]. Posicionamiento de un servo
  
 
== Descargas ==
 
== Descargas ==
  
=== Versión 1.0 ===
+
=== Versión 1.2 ===
 
{|{{tablabonita}}
 
{|{{tablabonita}}
 
!Fichero!!Descripción
 
!Fichero!!Descripción
 
|--------------------
 
|--------------------
| [[Imagen:LibStargate-1.0.tgz | libStargate-1.0.tgz]]
+
| [http://www.iearobotics.com/wiki/images/f/f7/Libstargate-1.2.zip Libstargate-1.2.zip]
|| Librería libStargate.
+
|| Fuentes
 +
|--------------------
 +
| [http://www.iearobotics.com/downloads/packages/python-libstargate_1.2-1_i386-ubuntu-10.04.deb python-libstargate_1.2-1_i386-ubuntu-10.04.deb]
 +
|| Paquete para '''Ubuntu 10.04'''
 +
|-------------------
 +
| [http://www.iearobotics.com/downloads/packages/python-libstargate_1.2-1_i386-ubuntu-9-04.deb python-libstargate_1.2-1_i386-ubuntu-9-04.deb]
 +
|| Paquete para '''Ubuntu 9.04 (Jaunty Jackalope)'''
 +
|--------------------
 +
| [http://www.iearobotics.com/wiki/images/d/df/Python-libstargate_1.2-1_i386.deb Python-libstargate_1.2-1_i386.deb]
 +
|| Paquete para '''Debian/Etch''' y '''Ubuntu 7.10'''
 +
|--------------------
 +
| [http://www.iearobotics.com/downloads/libstargate-1.2.win32.exe libstargate-1.2.win32.exe]
 +
|| '''Windows XP'''. Autoinstalable.
 
|}
 
|}
  
 
== Acceso al repositorio ==
 
== Acceso al repositorio ==
* SVN del proyecto: [http://svn.iearobotics.com/libstargate/ http://svn.iearobotics.com/libstargate/]
+
* SVN del proyecto: [http://svn.iearobotics.com/libStargate/ http://svn.iearobotics.com/libStargate/]
 
* La última versión se puede obtener así:
 
* La última versión se puede obtener así:
  svn co http://svn.iearobotics.com/libstargate/
+
  svn co http://svn.iearobotics.com/libStargate/
 +
* La '''versión 1.2''' se puede bajar así:
 +
svn co http://svn.iearobotics.com/libStargate/libstargate-1.2
 +
 
 +
== Historia ==
 +
 
 +
=== Versión 1.2 ===
 +
La versión 1.2 es una reestructuración de la 1.1. Los cambios son:
 +
* Modularización: un módulo por cada clase para cada servidor
 +
* Programas de prueba para cada módulo
 +
* Pruebas en Linux/Windows
 +
* Paquetes para Linux/Windows
 +
 
 +
=== Versión 1.1 ===
 +
La siguiente versión fue una migración al '''lenguaje python''' y el impulsor fue '''Rafael Treviño'''. Esta versión se utilizó de forma experimental para comprobar su viabilidad. No se llegó a hacer una release oficial, sino que evolucionó directamente a la versión 1.2.
 +
 
 +
Los '''cambios''' con respecto a la versión 1.0 son:
 +
 
 +
* Soporte para el servidor de movimiento de servos [http://www.iearobotics.com/proyectos/stargate/servidores/sg-servos8/sg-servos8.html SERVOS8]
 +
* Soporte para el servidor de grabación de pics [[Stargate:PICP|PICP]]
 +
* Diseño orientado a objetos
 +
* Lenguaje python
 +
 
 +
=== Versión 1.0 ===
 +
La primera [http://www.iearobotics.com/proyectos/stargate/clientes/libstargate/libstargate.html versión (1.0)] estaba implementada en '''lenguaje C'''. La última versión es de Julio de 2006.
 +
 
 +
 
 +
== Noticias ==
 +
* '''13/Jun/2010''': Añadido paquete para Ubuntu 9.10
 +
* '''29/Jul/2009''': Añadido paquete para Ubuntu 9.04
 +
* '''13/Enero/2008''': Liberada version 1.2
  
  
 +
----
  
 +
[[Categoría:Stargate]]
 
[[Categoría:PIC]]
 
[[Categoría:PIC]]
 
[[Categoría:Software]]
 
[[Categoría:Software]]
 
[[Categoría:Python]]
 
[[Categoría:Python]]
 +
[[Categoría:SVN]]
 +
[[Categoría:Skypic]]

Revisión actual del 02:25 13 jun 2010

Logo del PICP

Introducción

LibStargate es la librería de comunicación con los servidores del proyecto Stargate que se encuentran en un hardware externo y se comunican con el PC mediante el puerto serie, a una velocidad de 9600 bps.

Características

  • Licencia: GPL
  • Lenguaje: Python
  • Multiplataforma: Linux y Windows

Autores

Agradecimientos

Ejemplos de Utilización

Se muestran dos ejemplos utilizando la tarjeta Skypic. Son muy sencillos y no realizan ninguna gestión de errores. Se utiliza el dispositivo serie /dev/ttyUSB0 de una máquina linux. Para máquinas Windows habría que cambiarlo por el puerto COM corresponiente

Accediendo al led de la Skypic

Ejemplo de cómo acceder al puerto B de la tarjeta Skypic para controlar el led que está conectado en el bit 1. En la tarjeta debe estar grabado el servidor genérico.

import time
import libStargate.Generic
from libStargate.pic16f876 import * 
 
#-- Abrir la conexion
g=libStargate.Generic.Open_session("/dev/ttyUSB0")
   
#-- Configurar bit 1 del puerto B como salida
g[TRISB]=0xFD
 
#-- Encender el led
g[PORTB]=0x02

#-- Esperar 2 segundos
time.sleep(2)

#-- Apagar el led
g[PORTB]=0x00

Ejemplos del repositorio:

  • test-generic.py Hacer parpadear el led de la Skypic. Se gestionan los errores
  • boton.py. Lectura del pulsador de pruebas de la Skypic

Posicionamiento de un servo con la Skypic

Ejemplo de cómo posicionar un servo del tipo Futaba 3003 o compatible conectado a la Skypic. En la tarjeta debe estar grabado el servidor servos8

import time
import libStargate.Servos8

#-- Abrir la conexion y devolver el stargate generico
s=libStargate.Servos8.Open_session("/dev/ttyUSB0")
    
#-- Habilitar servo 1
s.enable(0x01);

#-- Mover servo 1 a un extreno
s[1]=-90

#-- Esperar
time.sleep(2)
 
#-- Mover servo 1 al otro extremo
s[1]=90

Ejemplos del repositorio:

Descargas

Versión 1.2

Fichero Descripción
Libstargate-1.2.zip Fuentes
python-libstargate_1.2-1_i386-ubuntu-10.04.deb Paquete para Ubuntu 10.04
python-libstargate_1.2-1_i386-ubuntu-9-04.deb Paquete para Ubuntu 9.04 (Jaunty Jackalope)
Python-libstargate_1.2-1_i386.deb Paquete para Debian/Etch y Ubuntu 7.10
libstargate-1.2.win32.exe Windows XP. Autoinstalable.

Acceso al repositorio

svn co http://svn.iearobotics.com/libStargate/
  • La versión 1.2 se puede bajar así:
svn co http://svn.iearobotics.com/libStargate/libstargate-1.2

Historia

Versión 1.2

La versión 1.2 es una reestructuración de la 1.1. Los cambios son:

  • Modularización: un módulo por cada clase para cada servidor
  • Programas de prueba para cada módulo
  • Pruebas en Linux/Windows
  • Paquetes para Linux/Windows

Versión 1.1

La siguiente versión fue una migración al lenguaje python y el impulsor fue Rafael Treviño. Esta versión se utilizó de forma experimental para comprobar su viabilidad. No se llegó a hacer una release oficial, sino que evolucionó directamente a la versión 1.2.

Los cambios con respecto a la versión 1.0 son:

  • Soporte para el servidor de movimiento de servos SERVOS8
  • Soporte para el servidor de grabación de pics PICP
  • Diseño orientado a objetos
  • Lenguaje python

Versión 1.0

La primera versión (1.0) estaba implementada en lenguaje C. La última versión es de Julio de 2006.


Noticias

  • 13/Jun/2010: Añadido paquete para Ubuntu 9.10
  • 29/Jul/2009: Añadido paquete para Ubuntu 9.04
  • 13/Enero/2008: Liberada version 1.2