Tôi muốn có thể nâng cấp phần mềm trên một arduino mà không cần chạm vào thiết bị hoặc xâu dây cáp. Nó có thể được thực hiện?
Sẽ chọn giao thức không dây làm cho nó dễ dàng nhất.
Tôi muốn có thể nâng cấp phần mềm trên một arduino mà không cần chạm vào thiết bị hoặc xâu dây cáp. Nó có thể được thực hiện?
Sẽ chọn giao thức không dây làm cho nó dễ dàng nhất.
Câu trả lời:
Giải pháp tốt nhất và dễ dàng nhất mà tôi tìm thấy là sử dụng EZ-Link Bluefan từ Adafbean. Họ có một mô-đun bạn cắm vào các chân Nối tiếp / Nguồn / đặt lại ( liên kết tại đây ) hoặc tấm chắn cho uno ( liên kết tại đây ). Họ cũng đã có một mô tả tuyệt vời và hướng dẫn cách làm ( liên kết tại đây ) khá hay. Về cơ bản, nó xuất hiện dưới dạng một liên kết bluetooth nối tiếp trong IDE arduino và bạn lập trình nó như bình thường. Nó có thêm lợi ích của việc sử dụng không chỉ cho lập trình, mà còn cho việc gửi và nhận dữ liệu.
Chúng tôi đã thực hiện cập nhật từ xa trên Arduino Pro Mini (ATMega328P) bằng cách đặt lệnh "khởi động" vào phần sụn thông thường. Cách thức hoạt động là:
Điều này không yêu cầu bộ tải khởi động hoặc phần cứng mới. Tuy nhiên, đây không phải là một giải pháp tốt cho các thiết bị thương mại, vì nếu phần sụn đã tải lên bị hỏng, bo mạch sẽ không thể được đưa vào chế độ bộ tải khởi động mà không cần thiết lập lại cứng.
Một số thiết bị comms không dây, chẳng hạn như XBees, có GPIO có thể được bật từ xa. Thay vào đó, việc kết nối với pin reset Arduino sẽ cho phép bo mạch được đặt lại vào bộ tải khởi động.
Các Arduino Yun có thể được reflashed từ xa (hoặc thông qua wifi hoặc cáp mạng): bạn sẽ phải chọn địa chỉ IP của mình theo "Tools> Ban" menu của Arduino IDE và sau đó nhấn vào nút tải lên như bình thường.
Có thể viết một bộ tải khởi động chạy trong RAM (hoặc thậm chí trong Flash, có thể trong một khối khởi động đặc biệt - phụ thuộc vào vi điều khiển).
Bộ tải khởi động này phải có khả năng thiết lập giao tiếp không dây, hiểu giao thức và xóa / ghi bộ nhớ Flash.
Về cơ bản có hai cách tiếp cận để nâng cấp phần mềm:
Giao thức bạn chọn gần như không liên quan. Chỉ cần đảm bảo rằng có đủ tài nguyên để giữ nó trong RAM / Flash. Trên Arduino Do - ví dụ - có quá nhiều tài nguyên cho bất kỳ triển khai nào như vậy.
Các bảng Spark.io cũng rất đẹp cho các thiết bị lập trình giống như Arduino. Tôi có một cái và thấy nó khá dễ làm việc.