Wi-Fiシールドを使用してArduinoを再プログラムできますか?


9

私のArduinoは水族館のいくつかのライトに接続されており、LAN上のWebブラウザーからそれらを制御できます。ArduinoでプログラムをUSB経由でマシンに接続しなくても変更できるかどうかは、少し不便です。Wi-Fi接続を利用できる方法がいくつかあるはずです。

Pololuのwixelシールドを使用してプログラムをワイヤレスで送信しました(シリアルポートラジオとして機能するだけです)が、これは私のWiFiシールドとは異なるテクノロジです。

WiFiでこれを行う方法を誰かが知っていますか?WiFiシールドのフラッシュメモリに新しいコードをアップロードすると、フラッシュメモリからブートロードされる可能性がありますか?どうすればいいのか、それが可能かどうかわかりません。

おそらく、まったく異なるアプローチの方が簡単でしょうか?

回答:


8

理論的には可能ですが、実際には簡単ではありません。新しいスケッチをArduinoにロードするコードの一部は、ブートローダーと呼ばれます。私が知っているすべての人気のあるブートローダーのバージョンは、シリアル/ USBベースです。WiFiシールドを介してスケッチをロードするには、シリアルではなくWiFiシールドと通信するようにブートローダーを書き換える必要があります。これには多少の作業が必要ですが、実際には不可能ではありません。

スケッチをWiFiシールドに保存するか(これは難しいと思います:これが可能かどうかは不明です)、Arduinoに直接スケッチをアップロードするかどうかに関係なく、これを行う必要があることに注意してください:ブートローダーは、スケッチデータを読み取るためにシールドと通信する必要があります。


Arduinoをワイヤレスで簡単に再プログラムする方法があり、それはBluetoothです。Bluetoothモジュール(Bluetoothシールドが機能するかどうかはわかりません)を入手して、ハードウェアシリアルポートに接続する必要があります。Arduinoにあるブートローダーはすでにシリアル通信ができるので、その問題は解決されています。ただし、他の2つの問題を(潜在的に)解決する必要があります。

  • Ebayで見つけた最も安価なBluetoothモジュールは3.3Vです。つまり、3.3Vの電力を供給する必要があり、Arduinoからの送信ラインを5Vから3.3Vに電圧シフトする必要があります。5V通信用に作成されたBluetoothモジュールを購入するか、Arduinoがそれを使用してBluetoothモジュールに電力を供給する3V3電力を持っている場合、最初の(電力)サブ問題を解決できます。5V対応モジュールも2番目の問題を解決します。または、この質問で説明されている手法のいずれかを使用して、Arduinoからの5V出力を電圧シフトすることができます。
  • Arduinoを自動的にプログラムするには、スケッチがアップロードされる直前にArduinoをリセットする必要があります。Arduinoが正常に実行されている場合、ブートローダーはアクティブではありません。Arduinoをリセットすると、ブートローダーがアクティブになり、新しいスケッチのアップロードが可能になります。Arduino USBでは、巧妙にDTRラインを使用してデバイスをリセットします。ただし、ほとんどのBluetoothシリアルモジュールはTS / RX出力のみを提供するため、リセット回路に接続するためにマーシャリングできるいくつかの信号出力をBluetoothモジュールで見つけられない限り、スケッチをアップロードするために手動でArduinoをリセットする必要があります。

2

今日、これを実現できる製品であるESP8266に気づきました。Wi-Fi接続を介してArduinoをプログラム/再プログラムすることができます。さまざまな会社がさまざまなブレークアウトボードの配置でチップのバージョンを製造しています。具体的には、ArduinoのWiFi AVRISPになる可能性があります。

また、Arduino SDKを使用してESP8266自体をプログラムすることもでき、ESP8266は独自の能力を十分に備えています。

ESP8266とArduino SDKを使いこなす方法の良い紹介については、whatimadetoday(私の投稿ではありません)を参照してください。SDKは、ESP8266をプログラムするように設定されたら、IDEのに閲覧することができますや「Arduino_Wifi_AVRISP」を見つけます。

あなたは約5ドルから15ドルの範囲の価格でボードを見つけることができます。

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