Saya ingin dapat meningkatkan perangkat lunak pada Arduino tanpa menyentuh perangkat secara fisik atau merangkai kabel. Bisakah itu dilakukan?
Akan memilih protokol nirkabel yang membuatnya paling mudah.
Saya ingin dapat meningkatkan perangkat lunak pada Arduino tanpa menyentuh perangkat secara fisik atau merangkai kabel. Bisakah itu dilakukan?
Akan memilih protokol nirkabel yang membuatnya paling mudah.
Jawaban:
Solusi terbaik dan termudah yang saya temukan adalah menggunakan Bluefruit EZ-Link dari Adafruit. Mereka memiliki modul yang Anda tancapkan ke pin Serial / Power / reset ( tautan di sini ) atau pelindung untuk uno ( tautan di sini ). Mereka juga punya deskripsi yang bagus dan panduan cara ( tautan di sini ) yang cukup bagus. Ini pada dasarnya muncul sebagai tautan bluetooth serial di arduino IDE dan Anda memprogramnya seperti biasa. Ini memiliki manfaat tambahan karena tidak hanya digunakan untuk pemrograman, tetapi juga untuk mengirim dan menerima data.
Kami telah mengimplementasikan pembaruan jarak jauh pada Arduino Pro Mini (ATMega328P) dengan memasukkan perintah "boot" ke dalam firmware normal. Cara kerjanya adalah:
Ini tidak memerlukan boot loader atau perangkat keras baru. Ini bukan solusi yang baik untuk perangkat komersial, karena jika firmware yang diunggah rusak, papan tidak akan dapat dimasukkan ke mode boot loader tanpa hard reset.
Beberapa perangkat komunikasi nirkabel, seperti XBees, memiliki GPIO yang dapat diubah dari jarak jauh. Menghubungkan ini ke pin reset Arduino akan memungkinkan board untuk diatur ulang ke boot loader.
The Arduino Yun bisa jarak jauh reflashed (baik melalui wifi atau kabel jaringan): Anda harus memilih alamat IP-nya di bawah "Tools> Board" menu dari Arduino IDE dan kemudian tekan tombol upload seperti biasa.
Dimungkinkan untuk menulis bootloader yang berjalan di RAM (atau bahkan di Flash, mungkin di blok boot khusus - tergantung pada mikrokontroler).
Bootloader ini harus dapat membangun komunikasi nirkabel, memahami protokol dan menghapus / menulis memori Flash.
Pada dasarnya ada dua pendekatan untuk peningkatan perangkat lunak:
Protokol apa yang Anda pilih hampir tidak relevan. Pastikan ada cukup sumber daya untuk menyimpannya di RAM / Flash. Pada hak karena Arduino - misalnya - ada lebih dari cukup sumber daya untuk implementasi semacam itu.
Papan Spark.io juga sangat bagus untuk perangkat mirip Arduino yang dapat diprogram OTA. Saya punya satu dan menemukannya cukup mudah untuk dikerjakan.