TL; DR -
У вас є можливості BlueTooth або XBee (серед інших: ІЧ, наприклад?) Для бездротового завантаження. Однак я вважаю, що одночасно може бути завантажена лише одна дошка, тому вам потрібно буде обходити плати по черзі, див. Програмування декількох ATMegas / Arduinos одночасно .
Завантажуючи ескіз або використовуючи програміст (для ескізу чи завантажувача), програмне забезпечення не просто записує код, воно фактично спілкується з мікроконтролером.
Ви не можете запрограмувати їх відразу. Але ви можете запрограмувати їх по черзі деяким автоматичним способом.
Ваше запитання є дуже цікавим, і він задає питання, на який я впевнений, що я ніколи б не замислювався над цим, але був би надзвичайно корисним та економією праці, особливо якщо в мене є, як і я, багато сенсорних точок, що контролюються Arduino, розташованих навколо будинок. Ось одне досить неелегантне рішення, яке, можливо, варто спробувати.
Обладнання для бездротового завантаження
Якщо ви використовуєте BlueTooth для бездротового завантаження ескізів, то це рішення може бути корисним програмою бездротового завантаження в Arduino без кабелю USB . Зауважте, що це рішення пов'язує шпильки D0 і D1:
Але будьте обережні, що це, можливо, не сумісне з деякими проектами, які потребують використання D0 і D1 як апаратних UART TX, RX. Тому що бездротовому програмісту потрібно постійно займати два штирі.
Дивлячись на це, у ньому є спеціальний програміст бездротового зв'язку Arduino , до якого ви, можливо, посилалися у своєму запитанні. Однак не обманюйте ім'я, це просто щит Bluetooth. Це в основному BT HC-05 (або подібний) пристрій, прикріплений на Arduino, див. Також Bluetooth Wireless Upload .
Крім того, за допомогою BlueTooth ви можете використовувати пристрої XBee , див. Бездротове програмування Arduino . Перевага використання XBees полягає в тому, що вам не доведеться проходити через цикл нового сполучення пристроїв (див. Нижче), що потрібно для використання BT. Натомість вам просто доведеться проїхати ідентифікатори мережі XBee.
Однак, крім цього, вам знадобиться автоматизувати комутацію BT-пристроїв, вибираючи відповідний порт і завантажуючи до кожного Arduino по черзі, оскільки ви не в змозі транслювати ескізи . (Якщо я помиляюся, то хтось, будь ласка, виправить мене).
Вибір порту та завантаження ескізу
Ви можете використовувати сценарій разом з версією командного рядка ID Arduino для вибору порту, до якого підключений BT-пристрій, перед кожним завантаженням. Як це буде залежати від будь-якої платформи, яку ви збираєте, див. Командний рядок Arduino, який збирає та завантажує? Це можна зробити за допомогою змінної середовища ARDUINO_COMPORT
(див. Можливо застарілу збірку командного рядка Windows ) або опції рядка cmdu arduino --port <portname>
(див. Сторінку man ). Потім ескіз буде завантажено за допомогою опції --upload <filename>
. Ви можете зробити це одним махом:
arduino --upload --port <portname> FILE.ino
Зауважте, що в Windows ви повинні використовувати arduino_debug.exe
.
Або ви можете використовувати Ino , якщо ви не використовуєте ПК з Windows ..., але це може зробити наступну частину, яка стосується циклу, більш складною, ніж це потрібно.
Вибір кожного з Arduinos (тобто пристроїв BT)
Далі вам потрібно буде додати цикл до сценарію, який підключає ПК до кожного пристрою BT по черзі і після цього викликає ID Arduino для вибору порту та завантаження. На жаль, це взагалі не буде агностиком платформи, а вимагатиме іншого рішення для будь-якої платформи, яку ви використовуєте. Погляньте на Bluetooth з командного рядка , але для Windows вам, ймовірно, знадобиться набір інструментів « Синій зуб» .
У ОС X вам, можливо, найкраще вдаватися до використання AppleScript, див. Підключення до пристрою Bluetooth (iPhone) за допомогою командного рядка на MacOSX , оскільки інструменти рядка cmd для керування BT здаються трохи мізерними - є BlueUtil , див. Як керувати бездротовим Bluetooth радіо з командного рядка? але це, здається, лише вимикає BT. Однак, прив’язання AppleScript до решти скрипту управління Arduino IDE швидко робить речі більш складними, хоча, ви можете просто ввести команду Arduino в AppleScript.