TL; DR -
Bạn có các tùy chọn của BlueTooth hoặc XBee (trong số những người khác: IR chẳng hạn?) Để tải lên không dây. Tuy nhiên, tôi tin rằng mỗi lần chỉ có thể tải lên một bảng, do đó bạn sẽ cần phải quay vòng qua các bảng một lần, xem Lập trình nhiều ATMegas / Arduinos cùng một lúc .
Khi tải lên bản phác thảo hoặc sử dụng một lập trình viên (để phác thảo hoặc bộ nạp khởi động), phần mềm không chỉ viết mã, nó thực sự giao tiếp với vi điều khiển.
Bạn không thể lập trình tất cả chúng cùng một lúc. Nhưng bạn có thể lập trình từng cái một theo cách tự động.
Câu hỏi của bạn là một câu hỏi rất thú vị, và hỏi một câu hỏi mà tôi chắc chắn rằng tôi sẽ không bao giờ nghĩ tới, nhưng sẽ cực kỳ hữu ích và tiết kiệm sức lao động, đặc biệt là nếu tôi có, như nhiều điểm cảm biến điều khiển Arduino nằm xung quanh nhà ở. Đây là một giải pháp khá không phù hợp có thể đáng để thử.
Phần cứng tải lên không dây
Nếu bạn sử dụng BlueTooth để tải lên bản phác thảo không dây, thì giải pháp này có thể được sử dụng, chương trình tải lên không dây lên Arduino mà không cần cáp USB . Lưu ý rằng giải pháp này liên kết các chân D0 và D1:
Nhưng hãy cẩn thận rằng nó có thể không tương thích với một số dự án cần sử dụng D0 và D1 làm phần cứng UART TX, RX. Bởi vì lập trình viên không dây cần phải chiếm vĩnh viễn hai chân.
Nhìn vào nó, nó sử dụng một Lập trình viên không dây Arduino tùy chỉnh mà bạn có thể đã tham khảo trong câu hỏi của mình. Tuy nhiên, đừng để bị đánh lừa bởi cái tên, nó chỉ đơn giản là một lá chắn Bluetooth. Về cơ bản, nó là một thiết bị BT HC-05 (hoặc tương tự), được gắn vào Arduino, xem thêm Tải lên không dây Bluetooth .
Ngoài ra, thay vì BlueTooth, bạn có thể sử dụng các thiết bị XBee , xem Lập trình không dây của Arduino . Ưu điểm của việc sử dụng XBees là bạn sẽ không phải trải qua vòng lặp thiết bị mới ghép nối (xem bên dưới), điều này sẽ được yêu cầu khi sử dụng BT. Thay vào đó, bạn chỉ cần quay vòng qua ID mạng XBee.
Tuy nhiên, ngoài ra, bạn sẽ cần tự động hóa việc chuyển đổi các thiết bị BT, chọn cổng thích hợp và lần lượt tải lên từng Arduino, vì bạn không thể phát bản phác thảo . (Nếu tôi sai, thì ai đó sẽ làm ơn sửa cho tôi).
Chọn cổng và tải lên bản phác thảo
Bạn có thể sử dụng tập lệnh cùng với phiên bản dòng lệnh của Arduino IDE, để chọn cổng mà thiết bị BT được kết nối, trước mỗi lần tải lên. Làm thế nào bạn làm điều này sẽ thay đổi cho nền tảng mà bạn đang biên dịch, xem phần biên dịch và tải xuống dòng lệnh Arduino? Điều này có thể được thực hiện bằng cách sử dụng biến môi trường ARDUINO_COMPORT
(xem phần xây dựng dòng lệnh Windows có thể đã lỗi thời ) hoặc tùy chọn dòng cmd arduino --port <portname>
(xem trang hướng dẫn ). Bản phác thảo sau đó sẽ được tải lên bằng cách sử dụng tùy chọn --upload <filename>
. Bạn có thể làm điều này trong một cú trượt ngã:
arduino --upload --port <portname> FILE.ino
Lưu ý rằng trên Windows bạn nên sử dụng arduino_debug.exe
.
Hoặc bạn có thể sử dụng Ino , nếu bạn không sử dụng PC Windows ... nhưng điều đó có thể làm cho phần tiếp theo, liên quan đến việc lặp lại phức tạp hơn mức cần thiết.
Chọn từng Arduinos (tức là các thiết bị BT)
Tiếp theo, bạn sẽ cần thêm một vòng lặp vào tập lệnh, lần lượt ghép nối PC với từng thiết bị BT và sau đó gọi Arduino IDE, để chọn và tải lên cổng. Thật không may, đây hoàn toàn không phải là bất khả tri của nền tảng và sẽ yêu cầu một giải pháp khác cho bất kỳ nền tảng nào bạn đang sử dụng. Hãy xem Bluetooth từ Dòng lệnh , nhưng đối với Windows, bạn có thể sẽ yêu cầu bộ công cụ Dòng lệnh Răng xanh .
Trên OS X, bạn có thể sử dụng AppleScript tốt nhất, xem Kết nối với thiết bị bluetooth (iPhone) thông qua dòng lệnh trên MacOSX , vì các công cụ dòng cmd để kiểm soát BT có vẻ hơi ít - có BlueUtil , xem Cách điều khiển Bluetooth không dây đài phát thanh từ dòng lệnh? nhưng điều đó chỉ xuất hiện để tắt BT. Tuy nhiên, việc đưa AppleScript vào phần còn lại của tập lệnh điều khiển Arduino IDE nhanh chóng khiến mọi thứ trở nên phức tạp hơn, mặc dù bạn chỉ có thể đặt lệnh Arduino trong AppleScript, tôi đoán vậy.