こんにちわ、オオバです。

完全初心者向けArduinoで最も簡単なはじめの一歩

今回はArduinoを使ったシリアル通信をやってみようと思います。

Arduinoを始めよう!(1)シリアル通信編 | Think IT(シンクイット)
基本はコチラの記事の内容をそのまま使わせてもらうわけですが、それだけだと芸がないのでUnityからArduinoへのシリアル通信もやってみようと思います。

ArduinoコンソールからArduinoへのシリアル通信

serial.ino · GitHub

このコードは、文字列nを送信するとLEDが点灯し、fを送ると消灯するというシンプルな処理です。
Arduinoエディタから文字列を送信するためには、シリアルモニタを使用します。

UnityからArduinoへのシリアル通信_0

この矢印部分をクリックします。

UnityからArduinoへのシリアル通信_1

シリアルモニタ内の、右下のボーレートをソースコード側と合わせます。
※今回は9600bps

UnityからArduinoへのシリアル通信_2

文字列を入力して送信ボタン or エンターキーで送信できます。

UnityからArduinoへシリアル通信

こちらは以前作成したSerialPortWrapperというライブラリを使用して実装します。

micro:bitとUnityを無線通信するためにSerialPortWrapperを作成

Unityの実装コードはコチラ
SerialSample.cs · GitHub

ポイントはSerialPortWrapperのコンストラクタの第1引数にポート名、第2引数にボーレートを渡します。
ボーレートはArduino側のソースコードと合わせる必要があるので、9600を設定します。

ポート名は以下のコマンドを実行して出力された文字列を入力します。

ls /dev/cu.*  

画面上のnボタン、fボタンを押下することでLEDの点灯と消灯を実行することができます。

UnityからArduinoへのシリアル通信_3

このようにSerialPortWrapperを使用することで、簡単にUnityから文字列を送信することができました。

以上

GitHub - baobao/SerialPortWrapper

オススメ記事
2021秋 Asset Refreshセール
100以上のアセットがなんと50%OFF!!オオバもいくつか買いました!
期間 : 10月2日午後3時59分まで
検証環境