Bluetooth経由でArduinoにスケッチをダウンロードする

Arduinoをプログラミングするときは、USBを介したコンピューターへの物理的な接続を省くことをお勧めします。たとえば:


インターネットでは、このトピックに関するいくつかの出版物を見つけることができますが、それらはすべて断片的であり、完全な解決策はありません。 また、設計の単純さと自明性にもかかわらず、イベント全体を混乱させる準備ができているいくつかの小さな困難があります。 それらを克服する方法については、この記事でお伝えしたいと思います。

ワイヤレスアップロード用にBluetoothモジュールに接続されたArduinoボード

「BluetoothモジュールHC-05(HC-06)」というわかりやすい名前の最も安価なBluetoothモジュールを使用しました。 ebayでは、200ルーブルから見つけることができます。 国内の店で-500ルーブルから。 「Arduino用」のアダプターにすでにはんだ付けされているモジュールを使用することをお勧めします。お金の差は最小限であり、インターフェース回路の組み立て時間を節約できます。

画像

また、アダプタカードのないモジュールを入手した場合はどうでしょうか?
この場合、アダプタ回路を自分で組み立てる必要があります。 指示はこちら


HC-05が必要ですが、視覚的に区別するのは非常に難しいため、パッケージに「HC-05」と表示されていても、HC-06が手元にある可能性があります。

画像

HC-05とHC-06を区別することは可能ですか?
Bluetoothモジュールのすべての脚がはんだ付けされていないか、手元にマルチメーターがある場合、外観を区別することができます。 HC-05では、脚31からの導体がモジュール自体にはんだ付けされたLEDに接続され、HC-06の場合は脚24から接続されます。

画像

写真は、列全体で唯一の24番目の脚がはんだ付けされていることを示しています。これは絶対的なHC-06モジュールです。


幸いなことに、HC-06はHC-05にフラッシュできますが、LPTポートを備えたコンピューターを見つけて数時間を費やす必要があります。 ここで点滅の指示を読むことができます 。 Windows7ではファームウェアが実行されなかったため、Windows XPをインストールし、BIOSでLPTポートモードをEPP 1.7に変更する必要があることを自分で追加します。

詳細なLPTポート設定
特にデバイスマネージャーでLPTポートモードと設定を切り替えるのにうんざりしているので、すぐに正しいスクリーンショットを提供します。 BIOS:
画像

ディスパッチャーで:
画像

なぜ再フラッシュするのですか?
HC-05ファームウェアは、HC-06とは異なり、接続が確立されると、32番目のピンの信号を変更します。これは、プログラム可能なArduinoをハードリセットし、充填プロセスを開始するために必要です。 再フラッシュすることはできませんが、充填する前に毎回ボード上のRESETボタンを押すと、適切な瞬間をキャッチする必要があり、これは非常に不便です。 こんな感じ


そのため、HC-05モジュールが手元にあります。 次に、彼に仕事のパラメータを設定する必要があります。 パラメータ設定モードに移行するには、最後の34番目の脚を3.3v電源にはんだ付けする必要があります。

画像

次に、USB-UART-TTLアダプターを介してコンピューターに接続し、ターミナルで次の一連のコマンドを入力します。

AT
AT +リセット
AT + ORGL
AT +ロール= 0
AT + POLAR = 1.0
AT + UART = 57600.0.0
AT + INIT
AT + INQ

ペアリングの標準パスワードを変更する場合は、さらに次を実行します。
AT + PSWD = 5678

デバイスの名前を変更する場合は、さらに次のことを行います。
AT + NAME = RemoteArduino

その後、モジュールを取り外し、34脚のジャンパーを取り外して、モジュールの最終開発に進みます。 これはHC-05ボードで直接行うことができますが、Mini Proに直接接続するためのアダプターボードの形でこれを行う方が便利だと思いました。

画像

接続を確立するときにArduinoを自動的にリセットするには、32番目のレッグをコネクタに接続する必要があります。そのため、不要な「WAKE-UP」出力を切断し、「RESET」と指定しました。 アダプタ回路は次のとおりです。

画像

LEDの点灯は、確立された接続を示します。

それはすべてはんだ付けですが、充填はまだ機能しません。 実際、スケッチを埋めようとするたびに、Arduino IDEはCOMポートバッファーをクリーンアップします。これにより、BlueTooth接続が閉じられ、ダウンロードがキャンセルされます。

これを回避するには、ファイルC:\ arduino \ hardware \ arduino \ boards.txtにあるArduino IDEの構成を修正する必要があります。 このファイルをテキストエディターで開き、使用しているボード(このPro Mini 5Vを持っています)に対応するセクションを探し、次の行を追加します。

pro5v328.upload.disable_flushing = true

行の最初の単語を変更することを忘れないでください。たとえば、Arduino Unoの場合は次のようになります。

uno.upload.disable_flushing = true

これで塗りつぶしが機能するはずです。 少し厄介な詳細が残っています-Arduino IDEメニューに移動して「ツール」項目を選択すると、プログラムが数秒間「フリーズ」します。 実際、このメニュー項目にアクセスするたびに、プログラムはシステムで使用可能なすべてのCOMポートを列挙しますが、最適な方法ではないため、大きな遅延が発生します。 この遅延を削除するには、rxtxSerial.dllライブラリを修正バージョンに置き換える必要があります 。これは、 ここから入手できます 。 問題の詳細に興味がある人は誰でもArduinoフォーラムのスレッドをチェックできます。

Arduinoの電源をオフにしてTX出力ボタンを使用する別のオプションを次に示します。

画像

2番目のオプションのスキーム(Bluetoothモジュールが異なるため、ピンの配置が異なり、Pro Miniはオリジナルではなく、「Deek-Robot」、ピンアウトはミラーのようです):

画像

回路は最小限のスペースを占有し、迅速に接続し、設定を必要としません。 また、Arduino IDEでシリアルモニターをオンにして、デバイスからデータを受信する機能は、USBで接続されているかのように残ります。

PS
そのような変換されたモジュールすでに用意されていることが判明し、おそらくいつか私たちの国で販売されるでしょう。

Source: https://habr.com/ru/post/J235727/


All Articles