Настройка порта в Python 2.7.2 для работы с Arduino Uno - PullRequest
3 голосов
/ 29 января 2012

Я работаю над лазерным резаком / гравером, являющимся частью проекта лазерного резака / гравера с открытым исходным кодом Lasersaur. Я закончил сборку аппаратного обеспечения, не понимая, что было какое-то программирование, в данном случае Python. Я абсолютно ничего не знаю о Python и опыте написания кода на C # при создании собственной CMS с нуля.

Это мои настройки.

Компьютер: Toshiba Satellite A-105

ОС: Windows XP, SP3

Код: Python 2.7

Доска разработчика: Arduino Uno

Клиент Arduino нормально общается с платой Uno, и все тесты и загрузки работают. Используя руководство по началу работы с веб-сайта Arduino, я смог настроить для него COM-порт, в данном случае - COM7. Проблема в том, что когда я запускаю графический интерфейс Python и компилирую код, предоставленный 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 голосов
/ 29 января 2012

Передаете ли вы какие-либо аргументы при запуске этого скрипта из командной строки? Похоже, что вы не. Попробуйте это из командной строки:

    C:\>python flash.py COM7

Если это все еще не работает (или это то, что вы делали все это время), то вам, вероятно, лучше поставить #'s перед каждой строкой кода, который вы разместили выше, и заменить его на

    SERIAL_PORT = "COM7"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...