Buscar este blog

agosto 21, 2010

Python + compartir archivos a la red local


Esta información fue tomada del usuario Mohadip Lama <mohadip@dragonjar.org> en GnewBook:
truco para compartir rápidamente una carpeta de tu pc con tus compañeros de oficina es el siguiente.
  • Abres un terminal y en consola te diriges hasta el directorio que quieres compartir.
cd /home/jose/Documentos
  • Ahora desde ahi, ejecutas:
python -m SimpleHTTPServer
  • Y abras creado un servidor web, que permite a otros usuarios acceder al contenido de tu carpeta desde un navegador si utilizan la siguiente URL: http://IP_de_tu_equipo:8000
  • Rapido y muy util!!
  • Solo podrán ver los documentos, nunca editarlos.
  • Nota: lo puedes probar localmente con http://localhost:8000
Direccion del articulo

agosto 09, 2010

Python + Robotica

Primeramente el Robot que se va a utilizar es el P3-DX, se va a trabajar con ARIA que el modulo encargado de los movimientos de robot viéndolo de la manera mas simple como se lo esta utilizando para este ejemplo; el programa tiene algunas fallas en la utilización de API de ARIA ya que puede ser mejorado, pero sirve para mostrar hasta donde se puede encontrar Python "También esta para C y Java de SUN (ORACLE si claro) ".
Foto tomada la de pagina de mobilerobots
Foto tomada la de pagina de mobilerobots
Las librerías necesarias se las puede encontrar en http://robots.mobilerobots.com/wiki/ARIA
No olvidar en el codigo que esta acontinuacion respetar las sangrias en condicionantes if y en las declaraciones de funciones
Mas adelante subire un video de este ejemplo funcionando (Apenas lo encuentre)

from AriaPy import *
import sys

def posicion():
robot.lock()
pose = robot.getPose();
print "La posicion del robot: (", pose.x, ",", pose.y, ",", pose.th, ")"
robot.unlock()
def movimiento(movi):
robot.lock()
print "El robot se va a mover "+str(movi)+" mm"
robot.move(movi)
robot.unlock()
def rotar(rot):
robot.lock()
print "El robot va a rotar "+str(rot)+" grados"
robot.setHeading(rot)
robot.unlock()
def activaMotores():
robot.lock()
robot.enableMotors()
robot.unlock()
# Global library initialization, just like the C++ API:
Aria.init()

# Create a robot object:
robot = ArRobot()


# Create a "simple connector" object and connect to either the simulator
# or the robot. Unlike the C++ API which takes int and char* pointers,
# the Python constructor just takes argv as a list.
print "Connecting..."

con = ArSimpleConnector(sys.argv)
if not con.parseArgs():
con.logOptions()
sys.exit(1)

if not con.connectRobot(robot):
print "Could not connect to robot, exiting"
sys.exit(1)


# Run the robot threads in the background:
print "Running..."
robot.runAsync(1)
print "El voltaje de la vateria es: "+str(robot.getBatteryVoltage())
activaMotores()
posicion()
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000) #Son 5 seg
rotar(-45)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000) #Son 5 seg
rotar(-90)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000) #Son 5 seg
rotar(225)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000) #Son 5 seg
rotar(180)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000) #Son 5 seg
rotar(135)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000)
rotar(90)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000)
rotar(45)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000)
rotar(0)
ArUtil.sleep(5000) #Son 5 seg
posicion()
print "Fin!"
Aria.shutdown()