Arduino(アルドゥイーノ)とは、初心者でも使えるマイコンボードとして開発されました。Bluetoothモジュール 、イーサネットシールド 、温度センサー、超音波距離センサー などに応用可能です。Iot機器を簡単に作ることができます。今回はベトナムで超音波距離計センサーの値を取得してリアルタイムでUnityに表示します。
基本的なArduino回路基板
ソフトウェアは、Windows、Mac、Linuxで実行できるIDE開発環境であり、ユーザーはArduino用のプログラムをC / C ++で作成できます。
次の記事では、ArduinoをUnityに接続する方法、Arduinoボードに接続されているセンサーの値を取得する方法を示します。 Unityに接続すると、多くのアプリケーションに拡張できます。たとえば、BLE(Bluetooth Low Energy)を介してArduinoに接続されたMicrosoft Hololens(ホロレンズ)を使用して、周囲のデバイスを制御します。
Arduino R3ボード以外は、ESP8266またはESP32組み込みのBluetoothおよびwifiも含めて使用できます。 または、M5Stackの中にBluetooth、Wifi、加速度センサー、バッテリー、TFTスクリーンという統合モジュールを全部入って使用できます。 すべてがC ++およびArduinoIDEを使用してプログラミングまたはVisual Studioコードをプログラミングしますが、PlatformIOプラグインをインストールする必要があります。
ESP8266またはESP32またはM5Stackは、Bluetooth、WiFi、加速度センサー、バッテリー、TFTスクリーンで利用可能です。
1.Arduino(アルドゥイーノ)とは
Arduinoは、電子の興味を持つ人、学生、または専門家がセンサーで環境と相互作用するデバイスを作成するのを支援することを目的に構築されたオープンソースのハードウェアおよびソフトウェアプラットフォームです。 この記事の中でUSBゲートでArduinoボートとUnityと接続して超音波距離計センサーの値をUnityのUIに表示させるという簡単なデモを紹介したいと思います。 ハードウェアには、AVR Atmel 8ビットまたはARM Atmel 32ビットに基づいて設計された回路基板が含まれ、現在のモデルには1つのUSBポート、6ピンのアナログ、14ピンI / Oデジタルが装備されています。
基本的なArduino回路基板
ソフトウェアは、Windows、Mac、Linuxで実行できるIDE開発環境であり、ユーザーはArduino用のプログラムをC / C ++で作成できます。
次の記事では、ArduinoをUnityに接続する方法、Arduinoボードに接続されているセンサーの値を取得する方法を示します。 Unityに接続すると、多くのアプリケーションに拡張できます。たとえば、BLE(Bluetooth Low Energy)を介してArduinoに接続されたMicrosoft Hololens(ホロレンズ)を使用して、周囲のデバイスを制御します。
2.デバイス
次の記事では以下を使用します。
Arduino R3ボード以外は、ESP8266またはESP32組み込みのBluetoothおよびwifiも含めて使用できます。 または、M5Stackの中にBluetooth、Wifi、加速度センサー、バッテリー、TFTスクリーンという統合モジュールを全部入って使用できます。 すべてがC ++およびArduinoIDEを使用してプログラミングまたはVisual Studioコードをプログラミングしますが、PlatformIOプラグインをインストールする必要があります。
ESP8266またはESP32またはM5Stackは、Bluetooth、WiFi、加速度センサー、バッテリー、TFTスクリーンで利用可能です。
3.Arduino環境設定
Arduino IDEをインストールする
以下のリンクから、OSに適切なバージョンを選択してインストールをダウンロードします。 https://www.arduino.cc/en/Main/Software
Javaをインストールする
以下のリンクから、該当なOSバージョンを選択してインストールします。 今回の実例ではWindows-x64環境を使用しているので、画像のようなJavaバージョンを選択します。 https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
初期設定
- ArduinoIDEのインストール後、初期設定を行います。
- 「Tools」→「Board」→「Arduino Uno」を選択します。
- 「Tools」→「Serial Port」→「COM3」使用しているUSBポートを選択します。
- 最後「Tools」→「Programmer」→「AVR ISP」を選択します。
超音波距離計センサー・ボード設定
- 以下の画像のように設置します。
- ピン[GND] ↔ [POWER/-]
- ピン[VCC] ↔ [POWER/+]
- ピン[TRIG] ↔ [INPUT (digitalport)]
- ピン[ECHO] ↔ [OUTPUT (Analogport)]
ArduinoIDEでのプログラミング
const int trig = 12;
const int echo = 11;
void setup()
{
Serial.begin(9600);
pinMode(trig,OUTPUT);
pinMode(echo,INPUT);
}
void loop()
{
unsigned long duration;
int distance;
digitalWrite(trig,0);
delayMicroseconds(2);
digitalWrite(trig,1);
delayMicroseconds(5);
digitalWrite(trig,0);
duration = pulseIn(echo,HIGH);
distance = int(duration/2/29.412);
Serial.print(distance);
Serial.println("cm");
delay(200);
}
シリアルモニタで結果を確認
4. Unity環境へのArduinoを接続
- Unityを起動します。
- 「File」→「Build Settings…」→「Player Settings」→「Api Compatibility Level」を選択し、「Api Compatibility Level」 で「.NET2.0」を「.NET4.0」に変更します。
- UI背景を作るため、「Hierarchy」のラベルの下にある「Create」ボタンを選択し、「UI」→「Image」を選択します。
- そのままだと追加した「Image」は小さいので、全面に拡大します。
- Hierarchy」内の「Image」を選択し、右側の「Inspector」内に表示されている「Anchor」の画像を選択します。
- 「Alt」キーを長押ししたまま、下図に示す画像を選択します。
- 超音波センサの値を表示するため、UIの上にテキストを追加します。
- 背景を追加するステップと同様に、「Hierarchy」のラベルの下にある「Create」ボタンを選択し、「UI」→「Text」を選択します。
- そのままだと追加した「Text」は小さいので、下図赤枠内のように設定して「Text」を大きくしてください。
- 「Project」タブの下にある「Create」ボタンを選択し、「C# Script」を選択して「C# Script」ファイルを作成します。
- 任意のファイル名を設定してください。
- 以下のコードを記述します。
- 最後に「Canvas」オブジェクトに先ほど記述したスクリプトを追加します。
- 「Hierarchy」内の「Canvas」を選択し、右側に表示される「Add Component」ボタンを選択して先ほど作成したスクリプトを選択します。
- 再生ボタンを押下すると、センサ~対象物までの距離が結果として表示されます。






