ワイヤレスブロードキャストと同時に多くのArduinoをプログラミングする


9

相互に独立した多くのマイクロコントローラーベースのデバイスを用意しますが、すべて同じプログラムを実行します。

ワイヤレス放送で同時に全員に番組をアップロードしたい。理想的には、ユーザーは自分のコンピューターにUSBコントローラーを接続し、まるで1つのデバイスをプログラミングしているかのようにArduino環境からプログラムをアップロードします。

私が話していることをよりよく理解するには、このビデオをご覧ください。これはAtmelマイクロコントローラーで達成されましたが、カスタムメイドの非Arduinoブートローダーです。

「Arduino赤外線プログラミング」のGoogle検索から、この興味深いプロジェクトが思い付きました。主な欠点は、リセットボタンを手動で押す必要があることです。理想的には、デバイスがデフォルトで低電力状態になり、コントローラーからの信号を感知したときにプログラムを受信するためにウェイクアップすることを望みます。それでも、これは私にとって良い出発点になるかもしれません。

Arduinosに精通している人から、これが実現可能であると考えるかどうかについて、私が飛び込む前にいくつかの視点を知りたかっただけです。


2
このウェブサイトを確認してくださいlowpowerlab.com/blog/category/moteino/wireless-programming
Mikael Patel

スケッチをアップロードするためにどのプラットフォームを使用していますか?
Greenonline 2016

回答:


2

TL; DR-

ワイヤレスアップロードには、BlueToothまたはXBee(特にIRなど)のオプションがあります。ただし、一度にアップロードできるボードは1つだけなので、ボードを1つずつ循環させる必要があります。複数のATMegas / Arduinoを一度にプログラミングするを参照してください。

スケッチをアップロードするとき、またはプログラマー(スケッチまたはブートローダー用)を使用するとき、ソフトウェアはコードを記述するだけでなく、実際にはマイクロコントローラーと通信します。

一度にすべてをプログラムすることはできません。しかし、それらを1つずつ自動的にプログラムすることができます。


あなたの質問は非常に興味深いものであり、私が考えたことはないと思いますが、特に、私がそうであるように、周囲に多くのArduino制御センサーポイントがある場合は、非常に便利で省力化されます。家。試してみる価値のある、かなり洗練されていない解決策を1つ示します。

ワイヤレスアップロードハードウェア

BlueToothを使用してスケッチをワイヤレスでアップロードする場合、このソリューションは役に立ちます。USBケーブルなしでArduinoにワイヤレスアップロードプログラムを使用します。このソリューションはピンD0とD1を結び付けることに注意してください。

ただし、D0およびD1をハードウェアUART TX、RXとして使用する必要がある一部のプロジェクトと互換性がない可能性があることに注意してください。ワイヤレスプログラマは2つのピンを永久に占有する必要があるためです。

これを見ると、カスタムArduinoワイヤレスプログラマーが採用されています。ただし、名前に騙されないでください。これは単なるBluetoothシールドです。基本的にはBT HC-05(または同様の)デバイスであり、Arduinoにボルトで固定されています。Bluetooth ワイヤレスアップロードも参照してください。

または、BlueToothの代わりに、XBeeデバイスを使用することもできます。Arduinoのワイヤレスプログラミングを参照してください。XBeesを使用する利点は、BTを使用する場合に必要となるペアリングの新しいデバイスループ(下記を参照)を経由する必要がないことです。代わりに、XBeeネットワークIDを循環させるだけで済みます。

ただし、それに加えて、スケッチをブロードキャストできないため、BTデバイスの切り替えを自動化し、適切なポートを選択して各Arduinoに順番にアップロードする必要があります。(私が間違っている場合、誰かが私を訂正してくれますか?)

ポートを選択してスケッチをアップロードする

スクリプトをArduino IDEのコマンドラインバージョンと一緒に使用して、各アップロードの前に、BTデバイスが接続されているポートを選択できます。これをどのように行うかは、コンパイルするプラットフォームによって異なります。コマンドラインArduinoのコンパイルとダウンロードを参照してくださいこれは、環境変数ARDUINO_COMPORT(おそらく古いWindowsコマンドラインビルドを参照)、またはarduino cmdラインオプション--port <portname>マニュアルページを参照)を使用して行うことができます。次に、オプションを使用してスケッチをアップロードします--upload <filename>。あなたはこれを一気に行うことができます:

arduino --upload --port <portname> FILE.ino

Windowsではを使用する必要があることに注意してくださいarduino_debug.exe

または、Windows PCを使用していない場合はInoを使用することもできますが、ループ処理が必要以上に複雑になる次の部分になる可能性があります。

各Arduino(つまり、BTデバイス)の選択

次に、スクリプトにループを追加して、PCを各BTデバイスに順番にペアリングしてから、ポートの選択とアップロードのためにArduino IDEを呼び出す必要があります。残念ながら、これはプラットフォームにとらわれないわけではなく、使用しているどのプラットフォームにも異なるソリューションが必要になります。コマンドラインからBluetoothを見てください。ただし、Windowsの場合は、Blue Toothコマンドラインツールスイートが必要になるでしょう。

OS Xでは、AppleScriptを使用するのが最善の方法です。BTを制御するためのコマンドラインツールが少し不足しているように見えるため、MacOSXのコマンドラインを介してBluetoothデバイス(iPhone)に接続するを参照してください。BlueUtilがありBluetoothワイヤレスを制御する方法を参照してください。コマンドラインからラジオ?しかし、それはBTをオンまたはオフにするだけのようです。ただし、AppleScriptをArduino IDE制御スクリプトの残りの部分にボルトで固定すると、ArduinoコマンドをAppleScript内に配置することはできても、状況はより複雑になります。


0

ESP-LINKを使用して、WiFi経由でArduinoをプログラミングできます。

ESP8266は、Arduino IDEでプログラムできるシンプルで安価なWi-Fi MCUです。

ESP-LINKは、ESPをArduinoへのシリアル接続(USB)のように機能させるESP8266のファームウェアです。

ファームウェアは、ESP-LINK ESP8266にあります。


0

このようなものを使用できます。これは、NRF24L01 +無線モジュールを介してArduinoのコードを更新するカスタムブートローダーです。*

* Linuxマシンでのみ機能します。

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