2012-03-26 79 views
1

首先,我不再是一名学生,目前正在为一位朋友工作。我正在制作一个网站,其中有一个机器人手臂的实时视频馈送和一个启动按钮,可让用户进行机器人手臂的基本交互。使用一个网页来控制在Linux下编写的机器人手臂

我已经设置了网站和实时视频供稿。我确实有使用闪存媒体编码器和闪存服务器4.5的4秒延迟。对减少延迟时间有什么建议吗?

我已经完成了maplin机器人手臂所需的python代码,现在我卡住了,不知道如何将我的python代码与网页界面连接起来?任何人都可以说已经做到了这一点与代码,我可以编辑和学习提供前..

Python代码

import usb.core 
import usb.util 
import sys 
import time 

# This program is intended to control a robotic arm via USB from Linux 
# The code is written in Python by Neil Polwart (c) 2011 
# It is a work in progress and will improved! 

# locate the device device 

dev = usb.core.find(idVendor=0x1267, idProduct=0x0000) 

# assigns the device to the handle "dev" 
# can check the device is visible to Linux with command line command lsusb 
# which should report a device with the above vendor and id codes. 

# was it found? 

if dev is None: 
raise ValueError('Device not found')   # if device not found report an  error 


# set the active configuration 

dev.set_configuration() 

# as no arguments, the first configuration will be the active one 
# note as commands are sent to device as commands not data streams 
# no need to define the endpoint 

# defines the command packet to send 

datapack=0x80,0,0 

# change this packet to make different moves. 
# first byte defines most of the movements, second byte shoulder rotation, third   byte light 
# command structure in more detail: 
# http://notbrainsurgery.livejournal.com/38622.html?view=93150#t93150 

print "requested move",datapack # reports the requested movement to the user 

# send the command 

bytesout=dev.ctrl_transfer(0x40, 6, 0x100, 0, datapack, 1000) 

# outputs the command to the USB device, using the ctrl_transfer method 
# 0x40, 6, 0x100, 0 defines the details of the write - bRequestType, bRequest, wValue, wIndex 
# datapack is our command (3 bytes) 
# the final value is a timeout (in ms) which is optional 
# bytesout = the number of bytes written (i.e. 3 if successful) 

print "Written :",bytesout,"bytes" # confirm to user that data was sent OK 

# wait for a defined period 

time.sleep(1) # waits for 1 second whilst motors move. 

# now STOP the motors 

datapack=0,0,0 

bytesout=dev.ctrl_transfer(0x40, 6, 0x100, 0, datapack, 1000) 

if bytesout == 3: print "Motors stopped" 

所以,我需要找到一种方式来编辑通过网站界面datapack线。任何帮助表示赞赏!我正在使用Windows 7安装程序,但有权访问vmware

回答

1

我会设置一个带有mod_python的Apache服务器,并创建一个处理程序来导入脚本并运行必要的代码。您可以在JavaScript中设置AJAX脚本(有或没有jQuery)。每次你想运行Python脚本时,都需要向服务器发出请求。您可以通过HTTP根据需要来回传递任何信息。


这是Python和CGI模块的good tutorial

+0

无论如何,你可以给我一个更详细的指导或如何创建处理程序的例子?我已经将CDN链接到jQuery,使用jQuery更容易吗? – Student 2012-03-26 23:43:08

+0

jQuery使它更容易。如果您已经拥有该页面,则没有理由不使用它。我会看看我可以用指示做什么。 – FakeRainBrigand 2012-03-26 23:50:12

+0

非常感谢,我需要明天下午完成这个。想想今晚我会熬夜:| – Student 2012-03-27 00:10:04