Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Serial port Javascript到Python到串行_Serial Port_Arduino - Fatal编程技术网

Serial port Javascript到Python到串行

Serial port Javascript到Python到串行,serial-port,arduino,Serial Port,Arduino,我需要解决我的问题。我正在建造一个arduino机器人,我计划连接到Openwrt路由器。计划是通过浏览器控制机器人。我在路由器和Web服务器上运行python和pyserial。第一种选择是使用php进行串行(我在打开和关闭LED之前就已经这样做了)解决方案的问题是,我不能只按住按钮/键,因此电机正在转动,我只能按下按钮,然后命令电机再次转动一段距离,但不能连续运动。希望你明白我的意思,如果我错了,请纠正我 因此,另一个计划是使用Javascript来检测按键何时被按下,以及类似这样的keyd

我需要解决我的问题。我正在建造一个arduino机器人,我计划连接到Openwrt路由器。计划是通过浏览器控制机器人。我在路由器和Web服务器上运行python和pyserial。第一种选择是使用php进行串行(我在打开和关闭LED之前就已经这样做了)解决方案的问题是,我不能只按住按钮/键,因此电机正在转动,我只能按下按钮,然后命令电机再次转动一段距离,但不能连续运动。希望你明白我的意思,如果我错了,请纠正我

因此,另一个计划是使用Javascript来检测按键何时被按下,以及类似这样的keydown事件

    function checkKey(e) {
switch (e.keyCode) {
case 40:
    //alert('down');
    $('#cube').animate({
        top: "+=20px"
    })
    break;
case 38:
    //alert('up');
    $('#cube').animate({
        top: "-=20px"
    })
    break;
case 37:
    //alert('left');
    $('#cube').animate({
        left: "-=20px"
    })
    break;
case 39:
    //alert('right');
    $('#cube').animate({
        left: "+=20px"
    })
    break;
default:
    alert('???');
}
}

$(document).on("keyup", function() {
$("#cube").stop(true);
});

 if ($.browser.mozilla) {
    $(document).keydown(checkKey);
} else {
$(document).keydown(checkKey);
} 
但这里的问题是,我不知道如何将变量从javascript发送到python


如果我的问题有解决办法,请告诉我。谢谢。

javascript是客户端,phyton是服务器端,所以每次需要传递数据时都需要发送表单。正如您所看到的,这非常慢,因为每个请求都必须进行http调用。事实上,http协议在实时性方面并不好

您可以通过TCP或UDP编写自定义服务器/客户机协议,因为这些协议提供几乎实时的响应,因为使用TCP可以启动连接并使其保持活动状态,而UDP是无连接的。然后,您可以在http页面中使用套接字(ajax就是这么做的),但要保持其流畅性和功能性,还需要很多技巧