Arduinoを使った無線Bluetooth制御ロボット
このプロジェクトでは、Arduinoを使って無線Bluetooth制御ロボットを作り、Androidアプリで制御する方法を学びます。
概要
このプロジェクトでは、Arduinoを使って無線Bluetooth制御ロボットカーを作る方法を学びます。 ロボットカーは、スマートフォンを介してワイヤレスで制御することができます。 スマートフォンは、ユーザーがロボットに直接コマンドを送信することができ、それを通してAndroidアプリを持っています。 ロボットは、前方、後方、左、および右に移動することができ、また停止することができます。
ArduinoのBluetooth制御ロボットカーは、BluetoothモジュールHC-05またはHC-06とインタフェースされています。 私たちは、携帯電話にインストールされているAndroidアプリを介してロボットに特定の音声コマンドを与えることができます。 受信側では、Bluetoothトランシーバモジュールがコマンドを受信してArduinoに転送するため、ロボットカーが制御されます。
以前は、いくつかの他のロボットプロジェクトを作りました。 そのうちのいくつかを以下で確認できます:
1。 加速度計&Arduino
を使用したワイヤレスジェスチャー制御ロボット2. Arduinoを使った無線音声制御ロボットカー
3. ESP8266
部品表
を使用したWiFi制御ロボットこのプロジェクトに必要なコンポーネントは以下のとおりです。 これらのすべてのcoponentsはAmazoonリンクから購入することができます。
S.N. | Components | Description | Quantity | |
---|---|---|---|---|
1 | Arduino UNO | Arduino UNO R3 Development Board | 1 | https://amzn.to/388eC7D |
2 | Bluetooth Module | HC-05/HC-06 Bluetooth Module | 1 | https://amzn.to/2MjYbi4 |
3 | Motor Driver IC | L293D H-Bridge Motor Driver IC | 1 | https://amzn.to/2Z6WsyG |
4 | Motors | 12V DC Geared Motors, 300 RPM | 2 | https://amzn.to/2L2dusP |
5 | 電池 | 9V充電可能な電池 | 1 | https://amzn.to/2L2dusP |
6 | ロボットチャシス&ホイール&ネジ | – | 1 | https://amzn.to/2WGk4eg |
7 | 接続線 | ジャンパー線 | 10 | https://amzn.to/2L8Xc1p |
8 | ブレッドボード | – | 1 | https://amzn.to/2YM6YyS |
ブロック図
Arduino Wireless Voiceのブロック図 制御されたロボットは以下の通りである。
Arduinoの無線音声制御ロボットは、送信機と受信機のセクションで構成されています。 送信機の端はSmartphone Bluetoothおよびそれに取付けられている人間の特徴をもつappから成っている。 同様に、受信機部にはプロセッサとしてArduinoボード、無線通信モジュールとしてHc-05Bluetoothモジュール、モータを駆動するためのL293D、移動ロボットの部品として対
回路図&接続
回路は、Arduino UNOボード、HC-05/HC-06Bluetoothモジュール、L293DモータドライバIC、200RPMのDCギヤードモータのペアと9Vバッテリーで構成されています。
ArduinoのTX、RXピンはBluetoothモジュールのRx、Txピンに接続されています。 同様に、左DCモーターはL293Dのピンno3&6に接続され、右DCモーターはL293Dのピンno14&11に接続されています。 Arduinoデジタルピン2,3,4,5は、それぞれL293D2,7,10,15に接続されています。
L293DのICピン2、5、12、13はGNDピンであり、9、1、16は5Vで供給されますが、L293Dのピン8は直接9Vで供給されます.
Androidアプリ
このプロジェクトのアプリは以下のとおりです。 MIT App Inventorを使用して設計されています。 UIは次のようになります。
AndroidアプリがBluetoothでロボットをワイヤレスで制御できるように、内部アーキテクチャとプログラミングも実装されています。
最終的なデザインの後、Androidアプリは次のようになります。 以下からAPKファイルをダウンロードして、スマートフォンに直接インストールすることができます。
プロジェクトの作業
上記のようにApp Logicコマンドは電話で処理されます。 コマンドは、Bluetooth経由で受信機側に送信されます。 Bluetooth経由で受信したコマンドは、Uartシリアル通信プロトコルを使用してArduino Unoボードに転送されます。 Arduinoのコードは、受信したコマンドをチェックします。 コマンドが一致する文字列であるときはいつでも、Arduinoはロボットの動きを前方、後方、右回り、左回り&Stopでそれに応じて制御します。
ロボットカーを適切に制御するための回路のさまざまな段階での信号論理レベルを以下に示します。
ソースコード/プログラム
ワイヤレスBluetoothロボットArduinoのソースコードを以下に示します。 コードをコピーしてArduinoボードに直接アップロードすることができます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
文字列readvoice;
int k=0;
void setup(){
シリアル。開始(9600);
pinMode(2,出力);
pinMode(3,出力);
pinMode(4,出力);
pinMode(5,出力);
}
void loop(){
while(Serial.利用可能())
{
遅延(3);
char c=シリアル。read();
readvoice+=c;
}
もし(readvoice.長さ() > 0)
{
連載。println(readvoice);
if(readvoice==”forward””)
{
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
k=1;
}
if(readvoice==”後方へ””)
{
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
k=2;
}
if(readvoice==”右”)
{
if(k==2)
{
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
(1000);
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
}
その他
{
digitalwrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
delay(1000);
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
}
}
if(readvoice==”左”)
{
if(k==2)
{
digitalwrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
delay(1000);
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
}
その他
{
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
遅延(1000);
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
}
}
if(readvoice==”停止””)
{
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
}
}
readvoice=””;
}
|