在Python 2.7.2中设置端口以使用Arduino Uno

时间:2012-01-29 02:02:01

标签: python arduino

我正在研究激光切割机/雕刻机,这是Lasersaur开源激光切割机/雕刻机项目的一部分。我完成了硬件构建,没有意识到涉及到一些软件编程,在这种情况下是Python。我完全不了解Python以及我在C#中从头开始构建自定义CMS的编码经验。

这是我的设置。

电脑:东芝Satellite A-105

操作系统:Windows XP,SP3

代码:Python 2.7

开发板:Arduino Uno

Arduino客户端与Uno董事会谈话很好,所有测试和上传工作。使用Arduino网站上的入门指南,我能够设置一个COM端口供它使用,在这种情况下是COM7。问题是,当我运行Python GUI并编译Lasersaur提供的代码时,我收到此错误:

Traceback (most recent call last):
  File "C:\LASERSAUR\lasersaur_Grbl\stefanix-LasaurGrbl-dac1a86\flash.py", line 128, in <module>
    devices = os.listdir("/dev")
WindowsError: [Error 3] The system cannot find the path specified: '/dev/*.*'

Lasersaur的人说我需要在代码中设置COM端口。我只是不知道自己做得还是提出正确的问题。然而,经过大量的阅读和盯着我的屏幕,我相当确定我需要在这里设置端口:

## define serial port
##
if len(sys.argv) == 2:
    # (1) get the serial device from the argument list
    SERIAL_PORT = sys.argv[1]
    print "Using serial device '"+ SERIAL_PORT +"' from command line."
else:    
    if os.path.isfile(CONFIG_FILE):
        # (2) get the serial device from the config file
        fp = open(CONFIG_FILE)
        line = fp.readline().strip()
        if len(line) > 3:
            SERIAL_PORT = line
            print "Using serial device '"+ SERIAL_PORT +"' from '" + CONFIG_FILE + "'."



if not SERIAL_PORT:
    # (3) try best guess the serial device if on linux or osx
    devices = os.listdir("/dev")
    for device in devices:
        if device[:len(GUESS_PPREFIX)] == GUESS_PPREFIX:
            SERIAL_PORT = "/dev/" + device
            print "Using serial device '"+ SERIAL_PORT +"' by best guess."
            break

我相当肯定当我看到它时,这将是一个额头拍打答案。但任何帮助将不胜感激。如果您需要更多详细信息,请与我们联系。

1 个答案:

答案 0 :(得分:0)

从命令行运行此脚本时是否传递任何参数?好像你不是。 从命令行尝试:

    C:\>python flash.py COM7

如果仍然无效(或者这就是你一直在做的事情),那么你可能最好将#'s放在上面发布的代码中的每一行前面,并替换它与

    SERIAL_PORT = "COM7"