API

De Proyecto Butiá
Revisión del 17:53 24 feb 2013 de AlanJAS (Discusión | contribuciones) (API del Butiá en Python)

Saltar a: navegación, buscar

Butiá puede utilizarse de muchas formas, como un servicio consumible mediante la red como es el caso de bobot server utilizando directamente la biblioteca bobot o mediante diferentes APIs de programación como C, Java, Python.

API del Butiá en Python

Descripción de las funciones y algunos ejemplos.


Instanciar la clase:

robot = butiaAPI.robot()


robot.abrirButia()


Versión:

getVersion Devuelve la versión del firmware de la placa con el que estamos trabajando

ver = robot.getVersion()
print ver


Cerrar:

cerrar Cierra la comunicación con el servidor bobot


robot.cerrar()


Conexión/Desconexión con el servidor:

reconnect Conecta o Reconecta al bobot en address:port


robot.reconnect (address, port)

Módulos

listarModulos:

devuelve la lista de los modulos disponibles en el firmware de la placa


modulos = robot.listarModulos()
print modulos


abrirModulo:

Apertura de modulos, abre el modulo "moduloname"


robot.abrirModulo (moduloname)


llamarModulo:

Operacion de llamada de una funcion de un modulo (CALL)


robot.llamarModulo(modulename, function , params = "")


Para conocer la lista de funciones de un módulo y sus parametros puede ejecutarse en un terminal:

telnet localhost 2009 
DESCRIBE nombre_de_modulo

A futuro hay que exportar este servicio en la API


Funciones Varias

isPresent

Retorna si esta presente el modulo


robot.isPresent (moduloname)


abrirLback

Abrir módulo loopBack: modulo de ayuda presente en el butia (open)


robot.abrirLback()
datoRet = butiabot.loopBack("hola")


loopBack:

envia un mensaje a la placa y espera recibir exactamente lo que fue enviado


robot.loopBack(data)


Motores

Operaciones solicidatas al driver motores.lua


abrirMotores:

robot.abrirMotores()


setVelocidadMotores

robot.setVelocidadMotores(self, sentidoIzq = "0", velIzq = "0", sentidoDer = "0", velDer = "0")


sentido: 0: adelante, 1: atras velocidad: 0..1023


Detiene los 2 motores:

robot.setVelocidadMotores("0", "0", "0", "0")


robot.setVelocidadMotores("0", "500", "1", "500") - gira a la izquierda

robot.setVelocidadMotores("1", "500", "1", "500") - va hacia atrás

robot.setVelocidadMotores("0", "500", "0", "500") - va hacia adelante

robot.setVelocidadMotores("1", "500", "0", "500") - gira a la derecha



setVelMotor

robot.setVelMotor(self, idMotor = "0", sentido = "0", vel = "0")


idMotor: 0: motor derecho, 1: motor izquierdo


Va hacia adelante:

robot.setVelMotor("1","1","500") 
robot.setVelMotor("0","1","500")


Va hacia atrás:

robot.setVelMotor("1","0","500") 
robot.setVelMotor("0","0","500")


Sensores

Operaciones solicitadas al driver de los sensores


abrirSensor()

getValSenAnalog(pinAnalog = "0")

getValSenDigital(pinDig = "0")


butiabot.abrirSensor()
sen1 = robot.getValSenAnalog("2")
print sen1
sen2 = robot.getValSenAnalog("4")
print sen2
sen3 = robot.getValSenDigital("5")
print sen3


Operaciones solicitadas al driver boton

abrirBoton(self)

getBoton(self)

getLuzAmbiente(self)

getDistancia(self)

getEscalaGris(self)

getTemperature(self)

getVibration(self)

getTilt(self)

getContactoCapacitivo(self)

getInduccionMagnetica(self)

setLed(self, nivel = 255)



Operaciones solicitadas al modulo de la placa, driver butia.lua

abrirButia() ping()


Carga de batería

Esta operacion nos devuelve la carga aproximada del pack de pilas del robot con un error de 1 volt.

getCargaBateria()


carga = robot.getCargaBateria()
print carga