無線アップグレード?


8

デバイスに物理的に触れたりケーブルを張ったりせずに、arduinoのソフトウェアをアップグレードできるようにしたいのですが。できますか?

それを最も簡単にする無線プロトコルを選びます。


見ていMoteinoを
Gerben

とても素敵に見えます。
Johannes Ernst

私はいくつかのMoteinosを注文しました。うまくいけば、今後数日間でアップグレードを試すことができるでしょう。
ヨハネスエルンスト

回答:


6

私が見つけた最善かつ最も簡単なソリューションは、AdafruitのBluefruit EZ-Linkを使用することです。彼らはあなたがシリアル/電源/リセットピン(差し込むモジュール持ってここにリンク)やUNOのためのシールド(ここではリンクを)。彼らはまた、かなり良い説明とハウツーガイド(ここにリンク)を持っています。基本的にはarduino IDEではシリアルブルートゥースリンクとして表示され、通常のようにプログラムします。プログラミングだけでなく、データの送受信にも使用できるという追加の利点があります。


4

Arduino Pro Mini(ATMega328P)にリモートアップデートを実装するために、通常のファームウェアに「ブート」コマンドを入れました。仕組みは次のとおりです。

  • ホストはコマンド「boot」をリモートArduinoに送信します。
  • Arduinoはブートローダーにジャンプします(Pro Miniのプログラムアドレス0x3C00)
  • ホストはavrdude(AVR109プロトコル)を使用してリンク経由で新しいファームウェアを送信します

これは新しいブートローダーやハードウェアを必要としません。ただし、アップロードされたファームウェアが破損している場合、ハードリセットを行わないとボードをブートローダーモードにすることができないため、商用デバイスには適していません。

XBeesなどの一部のワイヤレス通信デバイスには、リモートで切り替え可能なGPIOがあります。これをArduinoリセットピンに接続すると、代わりにボードをブートローダーにリセットできます。


3

Arduinoのユンは、リモートから(どちらかWiFiまたはネットワークケーブルを介して)再フラッシュすることができます:あなたはArduinoのIDEの「ツール>ボード」メニューの下にそのIPアドレスを選択し、いつものように、アップロードボタンを押す必要があります。


2

RAMで実行されているブートローダー(またはフラッシュでも、特別なブートブロックにある可能性があります-マイクロコントローラーによって異なります)を書き込むことができます。
このブートローダーは、無線通信を確立し、プロトコルを理解し、フラッシュメモリを消去/書き込みできる必要があります。
ソフトウェアのアップグレードには、基本的に2つの方法があります。

  1. ブートローダーは、起動時に「ソフトウェアアップグレード」コマンドを探します。受信した場合は、プログラミングシーケンスを待ちます。受信しない場合はアプリケーションを起動します。
  2. アプリケーションは、このようなコマンドを受信して​​、ブートローダーに制御を与えることができます。

どのプロトコルを選択するかはほとんど関係ありません。RAM /フラッシュに保存するための十分なリソースがあることを確認してください。Arduino Due-例えば-には、そのような実装のための十分なリソースがあります。


ああ!どこかにそのようなことを実装した無料で入手できるコードを知っていますか?
Johannes Ernst


1

Spark.ioボードは、OTAプログラマブルArduinoのようなデバイスにも最適です。私はそれを持っています、そしてそれを扱うのはかなり簡単であることがわかりました。

https://www.spark.io/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.