デバイスに物理的に触れたりケーブルを張ったりせずに、arduinoのソフトウェアをアップグレードできるようにしたいのですが。できますか?
それを最も簡単にする無線プロトコルを選びます。
デバイスに物理的に触れたりケーブルを張ったりせずに、arduinoのソフトウェアをアップグレードできるようにしたいのですが。できますか?
それを最も簡単にする無線プロトコルを選びます。
回答:
Arduino Pro Mini(ATMega328P)にリモートアップデートを実装するために、通常のファームウェアに「ブート」コマンドを入れました。仕組みは次のとおりです。
これは新しいブートローダーやハードウェアを必要としません。ただし、アップロードされたファームウェアが破損している場合、ハードリセットを行わないとボードをブートローダーモードにすることができないため、商用デバイスには適していません。
XBeesなどの一部のワイヤレス通信デバイスには、リモートで切り替え可能なGPIOがあります。これをArduinoリセットピンに接続すると、代わりにボードをブートローダーにリセットできます。
Arduinoのユンは、リモートから(どちらかWiFiまたはネットワークケーブルを介して)再フラッシュすることができます:あなたはArduinoのIDEの「ツール>ボード」メニューの下にそのIPアドレスを選択し、いつものように、アップロードボタンを押す必要があります。
RAMで実行されているブートローダー(またはフラッシュでも、特別なブートブロックにある可能性があります-マイクロコントローラーによって異なります)を書き込むことができます。
このブートローダーは、無線通信を確立し、プロトコルを理解し、フラッシュメモリを消去/書き込みできる必要があります。
ソフトウェアのアップグレードには、基本的に2つの方法があります。
どのプロトコルを選択するかはほとんど関係ありません。RAM /フラッシュに保存するための十分なリソースがあることを確認してください。Arduino Due-例えば-には、そのような実装のための十分なリソースがあります。
Spark.ioボードは、OTAプログラマブルArduinoのようなデバイスにも最適です。私はそれを持っています、そしてそれを扱うのはかなり簡単であることがわかりました。