Arduino IDE одновременно контролирует несколько USB-портов
Возможно ли одновременное отслеживание нескольких USB-портов в Arduino IDE при работе только с ОДНИМ экземпляром IDE?
Если нет, то какие альтернативные решения приходят на ум?
@tony gil, 👍0
Обсуждение4 ответа
Лучший ответ:
Если вас интересует только мониторинг вывода, можно запустить простой скрипт Python для мониторинга порта. В этом примере вводится номер порта (при условии, что они называются ttyUSB1, ttyUSB2 и т. д.). Или вы можете изменить его, чтобы он был жестко запрограммированным портом. Также убедитесь, что скорость передачи данных соответствует тому, что работает на вашей Arduino (115200 в пример)
Затем вы можете запустить этот скрипт в двух отдельных терминалах, по одному для каждого порта
#!/usr/bin/env python3
import serial
import sys
if len(sys.argv)<2:
print("Please give serial port number")
exit()
port=sys.argv[1]
ser= serial.Serial('/dev/ttyUSB'+port,115200,timeout=5)
while True:
try:
print(str(ser.readline().strip()))
except:
print(sys.exc_info())
ser.close()
exit()
Запустите программу так
python3 ./programName.py 1
(или ./programName.py 0
и т. д.)
Число указывает, какое из устройств ttyUSBx вы пытаетесь отслеживать (будет соответствовать тому, что вы видите в IDE arduino).
порт ставит меня в тупик. не прояснить? Я продолжаю получать «Пожалуйста, укажите номер серийного порта», @tony gil
запустите программу следующим образом: ./programName 1 или ./programName 0 число определяет, какое из устройств ttyUSBx вы пытаетесь отслеживать (будет соответствовать тому, что вы видите в arduino IDE), @Chad G
Точно! Идеально, элегантно, просто. ПРОГОЛОСОВАНО, ПРИНЯТО И ОБЕСПЕЧЕНО. :), @tony gil
@tonygil, чтобы скопировать ввод порта в вывод, вам не нужен python. скрипт python может отслеживать больше портов и печатать их другим цветом, @Juraj
это тоже очень полезно, спасибо @Juraj!, @tony gil
Короткий ответ: нет.
Длинный ответ: нееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееешееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееоееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееет, так как одно окно может работать только с одним arduino.
При этом, если вы открываете другой файл или создаете новый файл (Ctrl + N) в существующем окне, он не запускает другой процесс.
Он по-прежнему находится в единственном процессе javaw.exe, работающем на вашем компьютере (если его убить, оба окна исчезнут навсегда.)
Для упрощения:
- Дважды щелкните значок Arduino на рабочем столе, а затем еще раз дважды щелкните его, и он будет запущен как два отдельных процесса.
- Дважды щелкните значок Arduino на рабочем столе, а затем используйте команду «Открыть файл» или «Новый файл». Это не приведет к созданию другого процесса.
Но я думаю, что неправильно понял ваш вопрос. Если вы просите Arduino с несколькими USB-портами, да, одна IDE может видеть, куда вы ее подключаете.
Попробовал ваше предложение: 2 окна - 1 процесс. К сожалению, Ubuntu создает второй процесс., @tony gil
Sloeber, открытый Исходная IDE, основанная на Eclipse, в создании которой я горжусь своим вкладом, имеет эту функцию, но IDE Arduino ее не имеет.
Я использую Слобер. Это очень хорошая интеграция инструментов и пакетов сборки Arduino в Eclipse., @Juraj
Вы можете запустить несколько экземпляров Arduino IDE для одновременной работы с несколькими платами. Запустите IDE во второй раз с помощью меню "Пуск" или ярлыка на рабочем столе.
Конечно, вы также можете контролировать порт COM/tty с помощью обычной программы последовательного терминала.
ПОДТВЕРЖДЕН, потому что он решает основную проблему мониторинга нескольких плат. НЕ ПРИНИМАЕТСЯ, потому что необходимое решение зависит от одного и только одного экземпляра IDE. Спасибо!, @tony gil
- C++ против языка Arduino?
- avrdude ser_open() can't set com-state
- Как читать и записывать EEPROM в ESP8266
- Float печатается только 2 десятичных знака после запятой
- устаревшее преобразование из строковой константы в 'char*'
- Запрограммировать ATMega328P и использовать его без платы Arduino.
- Разница между print() и println()
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
Нет, это не так. Это слишком примитивно., @Majenko
спасибо Чад элегантно решил эту проблему с помощью скрипта на Python. легкий и простой в использовании., @tony gil