LEDを制御するBluetoothを搭載したArduino!
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 8 | ||||
| × | 1 |
アプリとオンラインサービス
> |
| |||
|
このプロジェクトについて
Arduino Bluetooth接続を確立します!
最近、ロボットを作るためのキットを購入しましたが、HC-05が付属していました。ラインフォローロボットを作っていたので、まだ必要ありませんでした。しかし、私はまだそれについてかなり興味があり、それを使いたいと思っていました-私はコンポーネントをテーブルに置いているだけでは欲しくありませんでした。そこで、MITのアプリ発明者が開発したモバイルアプリを使って、LEDを制御することにしました。
このリンクからMITアプリの発明者にアクセスできます:
https://appinventor.mit.edu/
また、モバイルアプリを使用してLEDのオンとオフを切り替えることができるのは非常に便利です。
これを行うには、事前の知識はまったく必要なく、非常に簡単に実行できます。
MIT App Inventorは、アプリを簡単に作成できるようにMITによって作成されています。これを行うには、プログラミングの知識はほとんど必要ありません。移動する必要があるのはブロックだけです。
これが機能する主な方法は、携帯電話のアプリのボタンをクリックしたときです。次に、Bluetooth通信を介してarduino unoに信号が送信され、arduinoがその信号を受信します。次に、この信号に基づいて動作するようにarduinoをプログラムできます。 MIT App Inventorを使用して、送信する信号を選択できます。この場合、「0」または「1」のテキストを送信することを選択しました。ただし、好きなものを送信するように変更できます。
Bluetoothモジュールは、Bluetoothを介して接続でき、シリアル通信を介して通信できます。したがって、RXピンとTXピンは重要です。これらのピンを使用したくない場合は、ソフトウェアシリアルライブラリを使用する必要があります。このチュートリアルではそれについては説明していません。
したがって、これを行う主な方法は、BluetoothモジュールとMITアプリの発明者も使用することです。 Bluetoothを使用してLEDを制御するには、アプリを作成する必要があります。アプリの作成プロセスをデモンストレーションします。
回路図
まず、接続が重要です。 Bluetoothモジュールには6つのピンがあります。このプロジェクトでは、真ん中の4つのピンのみを使用する必要があります。
画像は接続を正確に表したものです。ラベルは、HC-05Bluetoothモジュールの背面に記載されています。 RXピンはarduinoのTXに接続する必要があり、TXピンはarduinoのRXに接続する必要があります。残りは通常のコンポーネントと同じです:arduinoのGNDからGND、VCCから5ボルトの電源。
HC-05-> Arduino
RX-> TX
TX-> RX
GND-> GND
VCC-> 5v
ただし、安全にプレイするには、最初にRXを抵抗に接続し、次にArduinoのTXに接続することが重要です。次に、RXを別の抵抗に接続し、次にGNDに接続します。
HC-05からのGNDはこの抵抗に接続され、ArduinoのGNDに接続されます。したがって、HC-05のRXとGNDの両方がArduinoのGNDに接続されます。これにより、コンポーネントの障害が発生しなくなります。
ただし、ブレークアウトボード(電圧レギュレータが内蔵されている)を使用しているため、説明されている回路図に従わなくても、まったく問題はありません。
これは分圧回路と呼ばれ、抵抗のように機能して電圧を分圧します。次の画像はその概略図です。 Arduinoメガを使用して表示されていますが、ArduinoUnoにも適用できます。
HC-05-> Arduino
RX-> TX
RX-> GND
TX-> RX
GND-> GND
VCC-> 5v
LEDの短い脚をGNDに接続しながら、LEDの長いLEDをArduinoのピン5に接続します。 LEDが焼損しないように、ピン5から接続するときは抵抗を使用することをお勧めします。 LEDは一般的に5ボルトではなく1.7ボルトしか必要としません!ピン5をブレッドボードに接続し、抵抗を使用してLEDの長い脚に接続します。ピン5を選択しました。任意のピンを選択できますが、コードを適切に変更する必要もあります。
LED-> Arduino Uno
ポジティブレッグ(ロングレッグ)->好きなピン
ネガティブレッグ(ショートレッグ)-> GND
注:コードをアップロードするときは、arduinoのTXピンとRXピンに配線が接続されていないことを確認する必要があります。コードがアップロードされたら、それらのワイヤーを接続できます。 ArduinoはTXとRXを使用してコードをアップロードするため、そこにある別のワイヤーが干渉し、エラーが発生する可能性があります。
TXピンとRXピン以外のピンを使用する場合は、ソフトウェアシリアルライブラリを使用する必要があります。
アプリ
MITアプリの発明者に必要なブロックは次のとおりです。かなり簡単です。リストピッカー、2つのボタン、およびBluetoothクライアントが必要です。これらは、[デザイン]セクションから簡単に選択できます。
コンポーネントには好きな名前を付けることができます。ご覧のとおり、Button1やButton2のような単純な名前に固執しました。一番右にあるペインでコンポーネントの名前を変更できます。一番左のペインでコンポーネントとデザインを選択できます。
中央の2つのペインは、デザインとコンポーネントのリスト用です。ご覧のように、私は非常にシンプルなデザインを選びました。リストピッカーは不可欠です。これは私が「Bluetooth」と名付けたものです。
このボタンを押すと、近くにあるすべてのBluetoothデバイスが表示されるようにコーディングします。 Bluetoothクライアントは、リストされている中央のペインの1つに表示されます。ユーザーには表示されないため、画面には表示されませんが、他のBluetoothデバイスを追跡するものです。私が使用した「オン」と「オフ」はボタンです。
設計後、ブロックセクションに切り替える必要があります。これはページの右上で行うことができます。次に、次のようにブロックをドラッグする必要があります。私たちの電話では、リストピッカーで何かを選択する前に、電話上のすべてのBluetoothデバイスのリストが必要です。
そのため、listpicker1の要素を、Bluetoothクライアントが検出できるアドレスと名前に設定してから、何かを選択します。すべてのBluetoothデバイスのリストを表示するようにアプリに要求しました。
次に、選択肢を選択した後、それに接続します。次に、クリックしたボタンに応じて、「1」または「0」のいずれかを送信します。それはあなたが望むどんなキャラクターでもありえます。次に、受け取ったキャラクターに基づいて、LEDをオンまたはオフにするようにArduinoをプログラムします。 Button1に「1」のテキストを送信するように依頼しました。これは私の「オン」ボタンです。そこで、Arduinoを適切にプログラムします。
その後、残りは非常に簡単です! MITアプリの発明者コンパニオンアプリを携帯電話にダウンロードし、ウェブサイトからコードをスキャンするだけで、携帯電話にアプリをインストールできます。
Webサイトで作成したアプリを開き、[接続]をクリックして、AIコンパニオンを選択するだけです。次に、携帯電話のMITアプリからQRコードをスキャンするだけで、携帯電話にアプリが表示されますが、これは一時的なものです。使用するたびにスキャンする必要があります。しばらく開いたままになりますが、閉じるか、長時間非アクティブのままにすると接続が失われます。
次に、リストピッカーをクリックして、Bluetoothデバイスを選択します。 HC-05のパスワードは通常1234または0000です。HC-05に接続し、[オン]ボタンと[オフ]ボタンをクリックします(または名前を付けた場合)。接続している場合は機能します。正しく回路化してください!
Arduinoをプログラムすることを忘れないでください!それが最も重要なことです。コードはページの最後にあります。
これを学んだら、同じ原理を使用して、Bluetoothを使用して他のすばらしいプロジェクトを作成できます。モジュールからアプリを介してArduinoにテキストを送信し、Arduinoをプログラムして何かを実現することを忘れないでください!ボタンをプログラミングするのと同じくらい簡単ですが、プログラミング中は「int」ではなく「char」をテキストとともに使用するように注意する必要があります。私はその間違いを犯しました!次に、携帯電話から制御できるBluetooth制御のロボットを作る予定です。
コード
- HC-05とArduinoインターフェースのコード
HC-05とArduinoインターフェースのコード C / C ++
これは、ArduinoIDEに入力する必要のあるコードです。コメントは必要ありませんが、特にArduinoを始めたばかりの人のために、理解を深めるために多くのコメントをしました。/ *電話アプリを介してBluetooth経由でLEDを制御するコード。MukeshArvindhによるプロジェクト。 MukeshArvindhによるコード。* // *コードをコピーして貼り付ける場合は、使用しているスケッチからvoid setup()関数とvoid loop()関数を削除することを忘れないでください。関数は既に存在します。このスケッチでは。コメントをコピーして貼り付けると、結果やコードに変更が生じることはありません。* // *注:このコードは複数回コンパイルおよびチェックされており、正確であることが証明されています。製品も意図したとおりに動作します。* /// Bluetoothはシリアル通信を使用します。したがって、このスケッチでは//多くのシリアル関数を使用します。 const int LED =5; / * arduinoボードのピン5にLEDがあることを宣言します。これは変更しないため、constを使用します。 LEDという名前を付ける必要はありません。代わりに名前を付けることもできます。* / charswitchstate; / *文字値を保持するswitchstateという変数があることを宣言します。これは、arduinoにテキスト値を送信するアプリのプログラミングによるものです。 'char'の代わりに 'int'を使用すると、コードは正しく機能しません。* / void setup(){//ここでコードは1回だけ実行されます。Serial.begin(9600); / *一定の速度でシリアル通信を開始するには9600ビット/秒。これはとにかくデフォルトのレートです。* / pinMode(LED、OUTPUT); // LEDが出力であることを宣言します。} voidloop(){//このコードは繰り返されます。これがメインコードです。while(Serial.available()> 0){// Serial.available()> 0 /*Serial.available> 0が、HCからの読み取りがあるかどうかを確認する場合にのみ実行されるコード-05 Bluetoothmodule。* / switchstate =Serial.read(); / *以前に宣言した文字に値が割り当てられています-Serial.read()の値。* /// Serial.read() app.Serial.print(switchstate); //これは値をシリアルモニターに出力します。Serial.print( "\ n"); //これは新しい行ごとに次の行に移動しますPrinted.delay(15); / * 15ミリ秒の休憩を与えます。遅延は人間の目であり、一部のコンピューターは高速でクラッシュするため、一部のコンピューターの速度です。* / if(switchstate =='1'){//アプリからの値が '1'かどうかの確認digitalWrite(5、HIGH); //そうである場合は、コンポーネントをピン5(LED)のHighに書き込みます。 } else if(switchstate =='0'){//それ以外の場合、アプリからの値が '0'の場合、digitalWrite(5、LOW); //ピン5(LED)にコンポーネントを書き込みます。}}}
回路図
これは、HC-05とarduinoの間に回路を形成するための方法です。 製造プロセス