Lập trình nhiều Arduinos đồng thời với phát sóng không dây


9

Tôi sẽ có nhiều thiết bị dựa trên vi điều khiển sẽ độc lập với nhau, nhưng tất cả sẽ chạy cùng một chương trình.

Tôi muốn tải lên một chương trình cho tất cả chúng cùng một lúc với một chương trình phát sóng không dây. Lý tưởng nhất là người dùng sẽ cắm bộ điều khiển USB vào máy tính của mình và tải lên một chương trình từ môi trường Arduino như thể họ đang lập trình một thiết bị duy nhất.

Để hiểu rõ hơn về những gì tôi đang nói, xin hãy xem video này . Điều này đã đạt được với các bộ vi điều khiển Atmel nhưng là một bộ tải khởi động không phải Arduino tùy chỉnh.

Từ một tìm kiếm của Google cho "lập trình hồng ngoại Arduino" , dự án thú vị này đã xuất hiện . Hạn chế chính là nút đặt lại vẫn phải được nhấn bằng tay. Lý tưởng nhất là tôi muốn các thiết bị ở trạng thái năng lượng thấp theo mặc định và thức dậy để nhận chương trình khi chúng cảm nhận được tín hiệu từ bộ điều khiển. Tuy nhiên, đây có thể là một điểm khởi đầu tốt cho tôi.

Tôi chỉ muốn nhận được một số quan điểm từ những người quen thuộc với Arduinos về việc họ có nghĩ rằng điều này là khả thi trước khi tôi nhảy vào.



Bạn đang sử dụng nền tảng nào để tải lên bản phác thảo của mình?
Greenonline

Câu trả lời:


2

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.


0

Bạn có thể sử dụng ESP-LINK để lập trình Arduino qua WiFi.

ESP8266 là MCU Wi-Fi giá rẻ đơn giản có thể được lập trình với Arduino IDE.

ESP-LINK là phần sụn dành cho ESP8266, làm cho ESP hoạt động giống như kết nối nối tiếp (USB) với Arduino.

Phần sụn có thể được tìm thấy ở đây tại ESP-LINK ESP8266 .


0

Người ta có thể sử dụng một cái gì đó như thế này . Đây là một bộ tải khởi động tùy chỉnh để cập nhật mã của Arduino thông qua mô-đun radio NRF24L01 +. *

* Nó chỉ hoạt động dưới các máy Linux.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.