使用Linux编写的网页控制机械臂



首先,我不再是一名学生,目前正在为一位朋友帮忙。我正在制作一个网站,它有一个机器人手臂的实时视频馈送和一个设置按钮,允许用户与机器人手臂进行基本交互。

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

我已经完成了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"

所以我需要找到一种通过网站界面编辑数据包行的方法。感谢您的帮助!我使用的是Windows 7安装程序,但可以访问vmware

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


这里有一个很好的Python和CGI模块教程。