Nâng cấp trên không?


8

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.


Hãy nhìn vào Moteino .
Gerben

Trông rất là đẹp.
Julian Ernst

Tôi đã đặt mua một vài chiếc Moteinos và hy vọng sẽ đi xung quanh để thử nâng cấp trong vài ngày tới.
Julian Ernst

Câu trả lời:


6

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.


4

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à:

  • Máy chủ gửi lệnh "khởi động" đến Arduino từ xa.
  • Arduino nhảy vào bộ tải khởi động (địa chỉ chương trình 0x3C00 cho Pro Mini)
  • Máy chủ gửi phần sụn mới qua liên kết bằng avrdude (giao thức AVR109)

Đ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.


3

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.


2

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:

  1. Bộ tải khởi động xem xét khởi động cho lệnh "nâng cấp phần mềm". Nếu nó được nhận, nó chờ trình tự lập trình. Nếu nó không được nhận, nó khởi động ứng dụng.
  2. Ứng dụng có thể nhận lệnh như vậy và cấp quyền điều khiển cho bộ nạp khởi động.

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.


Ah! Bạn có thể biết một số mã có sẵn miễn phí đã triển khai loại điều đó ở đâu đó không?
Julian Ernst

1

Có, nó có thể được thực hiện. Lowpowerlab.com có ​​Moteino có thể được lập trình OTA.


1

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.

https://www.spark.io/

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.