Можно ли подключить несколько arduino uno к одному компьютеру?
У нас много плат Arduino, и мы поместим каждую из них в отдельную ячейку. Все они подключены только к одному ПК. ПК будет выступать в качестве сервера, на котором вы сможете управлять своим Arduino.
@, 👍7
Обсуждение4 ответа
Да, вы можете подключить несколько плат Arduino UNO (USB) к одному ПК. Есть простой и более сложный способ управления им.
Простой способ — подключить несколько плат, но использовать только одну Arduino Software
IDE для одновременного управления одной платой. (IDE = интегрированная среда разработки. В некоторых элементах системы Arduino используются нестандартные технические термины.) Используйте Инструменты > Port
, чтобы выбрать одну из подключенных плат для управления. Выбранный тип платы и порт отображаются в нижней правой строке состояния.
Более продвинутый способ управления несколькими платами — открыть несколько экземпляров Arduino Software IDE — каждый экземпляр имеет свои собственные независимые Инструменты > Настройка порта
. После этого вы сможете редактировать, проверять и загружать два разных «скетча» (программы) на две разные платы, не теряя своего места и без необходимости постоянно менять настройки «Инструменты» > «Порт». Это было бы удобно, если бы вы разрабатывали протокол связи между двумя или более платами.
Этот метод с несколькими портами не будет работать, если вы не запустите еще один экземпляр Arduino Software IDE, не закрыв первый. Недостаточно использовать Файл
, чтобы открыть другое окно, потому что тогда вы просто получите другое окно с тем же Инструменты > Настройка портов
. Изменение настройки портов в одном окне изменяет настройку во всех окнах, принадлежащих этому экземпляру. Для одновременной поддержки нескольких плат вам нужно снова запустить Arduino Software IDE, не закрывая первую, чтобы создать второй экземпляр.
Обычно предполагается, что каждое окно представляет собой уникальный документ, и все они связаны с приложением. Но Arduino Software IDE имеет скрытую зависимость между своими окнами. Всякий раз, когда вы перезапускаете IDE, открывается новый и невидимый экземпляр IDE, где он запоминает настройки платы и порта. Если вы используете меню "Файл" для открытия нового окна, это новое окно по-прежнему является частью той же IDE. Таким образом, изменение Инструменты > Параметр Port
для одного окна изменяет этот параметр для всех окон, принадлежащих этому экземпляру IDE.
Но если вы перезапустите Arduino Software IDE (например, меню «Пуск» Windows > Arduino-1.6.0), не закрыв ранее открытую IDE, вы получите второй экземпляр. Если вы обратите внимание на параметр порта, отображаемый в нижней правой строке состояния каждого окна, вы сможете различить, какие окна принадлежат какому экземпляру IDE.
Каждый раз, когда вы запускаете Arduino Software IDE, вы запускаете новый экземпляр программного обеспечения, который может взаимодействовать с одной платой. Каждый экземпляр IDE может иметь неограниченное количество окон, но все они имеют один и тот же параметр «Инструменты» > «Порт». Если вы снова запустите Arduino Software IDE, не закрывая ее сначала, вы получите второй экземпляр, который может иметь другую настройку «Инструменты»> «Порт» и, таким образом, одновременно управлять другой платой.
Проверено в Windows 7, Arduino Software IDE 1.6.0, с двумя платами Arduino UNO версии R2 (версия прошивки 0001), драйвером устройства Arduino 1.0.0.0.
Я не думаю, что ОС накладывает какие-либо искусственные ограничения на количество экземпляров — это точно так же, как и любое другое программное обеспечение, если речь идет о компьютере. Установленное оборудование ограничивает количество *полезных* экземпляров, которые вы можете открыть., @MarkU
Обратите внимание, что среда разработки Arduino **вероятно, не** лучший способ связи с платами *во время выполнения* — в лучшем случае это инструмент для разработки и тестирования программирования, но, вероятно, его не следует использовать для программирования массового развертывания. И это почти наверняка не то, что нужно для связи во время выполнения - вместо этого выберите надежное стандартное или пользовательское последовательное приложение., @Chris Stratton
@ChrisStratton, а какое серийное приложение вы думаете?, @Cătălina Sîrbu
Я столкнулся с тем же вопросом только на Mac, поэтому на случай, если кто-то с Mac столкнется с этим: можно подключить и использовать несколько ардуино к Mac одновременно. Для этого запустите $ open -n /Applications/Arduino.app/
, который откроет второй экземпляр Arduino IDE, и вы сможете выбрать плату и порт каждого из них и открыть несколько Серийные окна. Обратите внимание, что каждое последовательное окно имеет путь к последовательному устройству, что поможет вам узнать, какое окно подключено к какому Arduino.
Я подключаю несколько Arduino к своей системе Ubuntu. Я использую текстовый редактор для написания кода, загрузки кода и чтения вывода с терминала.
Список устройств Arduino
$ ls /dev/ttyACM*
/dev/ttyACM0 /dev/ttyACM1
Чтобы загрузить код в Arduino
# to arduino 1
$ arduino --port /dev/ttyACM0 --board arduino:avr:uno --upload bt/bt.ino
# to arduino 2
$ arduino --port /dev/ttyACM1 --board arduino:avr:mega --upload bt/bt.ino
Чтобы проверить вывод
$ screen /dev/ttyACM1 115200
$ screen /dev/ttyACM0 9600
да, вы ограничены только количеством портов USB, однако вы должны учитывать, что это лучший способ добиться того, что вы пытаетесь сделать. Вы можете получить устройство ESP8266, такое как nodemcu, или что-то, что дает вам беспроводное соединение. Благодаря этому вы можете подключить бесконечное количество устройств к центральному ПК по беспроводной сети. Модуль Bluetooth также является хорошей идеей, все зависит от вашего бюджета и того, чего вы пытаетесь достичь.
- Как разделить входящую строку?
- Как вывести несколько переменных в строке?
- В чем разница между Serial.write и Serial.print? И когда они используются?
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Программы построения последовательных данных
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Очистить существующий массив при получении новой последовательной команды
Чуть более тривиальный в недавнем [Linux](http://wirespeed.xs4all.nl/mediawiki/index.php/Udev_rules_file_for_Arduino_boards), не знаю о Windows или OSX., @jippie
С современным драйвером устройства FTDI должно быть все в порядке, это сообщение на форуме от 2009 года. Пока каждая Arduino получает уникальный номер COM-порта, я не понимаю, почему это не сработает., @MarkU
Если вы можете проверить эту идею, используя два arduino, она должна масштабироваться до любого числа (при условии, что в исходном коде IDE arduino нет искусственных ограничений. Дни COM1/2/3/4 давно прошли, они должны перечислять номера портов из ОС вместо того, чтобы гадать.) Попробуй и увидишь?, @MarkU