こんばんは!
今回は「Arduino Voice Control」というアプリとArduinoを使って音声でLEDを制御してみたいと思います。
使用するもの
・Arduinoメインボード(https://amzn.to/2vkPIUH)
・USBケーブル(https://amzn.to/2UHhntl)
・ジャンパワイヤ (https://amzn.to/39uBU8T)
・LED×3(青赤黄)(https://amzn.to/2sN4LSe)
・100Ω抵抗(https://amzn.to/2FRFG1o)
・HC-06(https://amzn.to/3cp7yGD)
アプリ「Arduino Voice Control」(https://play.google.com/store/apps/details?id=appinventor.ai_cempehlivan92.Arduino_Sesli_Kontrol&hl=ja)
配線
まず、配線からやっていきます。
以下の図のように配線していきます。
デジタル0番、1番ピンはマイコンボードへの書き込みが終了してから接続してください。
プログラム
次にArduino IDEを起動して次のコードを書き込んでください。
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 | String voice; const int red = 7; const int yellow = 6; const int blue = 5; void RedOn() { digitalWrite (red, HIGH); } void RedOff() { digitalWrite (red, LOW); } void YellowOn() { digitalWrite (yellow, HIGH); } void YellowOff() { digitalWrite (yellow, LOW); } void BlueOn() { digitalWrite (blue, HIGH); } void BlueOff() { digitalWrite (blue, LOW); } void allon() { digitalWrite (red, HIGH); digitalWrite (yellow, HIGH); digitalWrite (blue, HIGH); } void alloff() { digitalWrite (red, LOW); digitalWrite (yellow, LOW); digitalWrite (blue, LOW); } void setup() { Serial.begin(9600); pinMode(red, OUTPUT); pinMode(yellow, OUTPUT); pinMode(blue, OUTPUT); } void loop() { while (Serial.available()) { delay(15); char c = Serial.read(); if (c == '#') { break; } voice += c; } if (voice.length() > 0) { Serial.println(voice); if (voice == "on") { allon() ; } else if (voice == "off") { alloff() ; } else if (voice == "red") { RedOn(); } else if (voice == "red off") { RedOff(); } else if (voice == "yellow") { YellowOn(); } else if ( voice == "yellow off" ) { YellowOff(); } else if (voice == "blue" ) { BlueOn(); } else if (voice == "blue off") { BlueOff(); } voice = ""; } } |
今回のこのコードはこちらの動画を参考に記述しました。
アプリから「on」を受信すると3つ全てのLEDをON、「OFF」を受信すると3つ全てのLEDをOFF、「red」を受信すると赤のLEDをON、「red off」を受信すると赤のLEDをOFFにします。青色、黄色のLEDについても同様の処理を記述しています。
コードを記述したらメインボードに書き込んでください。
アプリの設定
Googleプレイストアで「Arduino Voice Control」というアプリをインストールしてください。
こちらのURLから直接飛べます。↓
ダウンロードしたらスマホの言語設定を「English」に変更してください。
次にアプリの左上の「connect」ボタンをクリックし、リストからHC-06を選択して接続してください。
接続するとこのような画面になります。
実行
アプリの設定が終わったら真ん中のマイクボタンを押して話してみてください。
プログラム通りに処理が実行されているのがわかると思います。
ちなみに自分は英語の発音が悪いせいでなかなか認識してくれませんでした(´;ω;`)
「yellow」と言っているつもりなのですが…
17回目で成功しました…(-_-;)
スマホの設定言語が日本語のままだと文字化けしてしまうので必ず「English」にしてください。
まとめ
今回はスマホの音声認識を使ってArduinoとBluetooth接続してみました。
音声で動くロボットなど、応用するものが色々あると思うので今後試していきたいですね。