こんにちは、エンジニアのオオバです。
今回はArduinoを使ったシリアル通信をやってみようと思います。
![](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20181115/20181115005920.png#1024.0__821.0)
完全初心者向けArduinoで最も簡単なはじめの一歩
Arduinoを始めよう!(1)シリアル通信編 | Think IT(シンクイット)
基本はコチラの記事の内容をそのまま使わせてもらうわけですが、それだけだと芸がないのでUnityからArduinoへのシリアル通信もやってみようと思います。
ArduinoコンソールからArduinoへのシリアル通信
このコードは、文字列n
を送信するとLEDが点灯し、f
を送ると消灯するというシンプルな処理です。
Arduinoエディタから文字列を送信するためには、シリアルモニタを使用します。
![UnityからArduinoへのシリアル通信_0](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20181115/20181115020640.png#750__278)
この矢印部分をクリックします。
![UnityからArduinoへのシリアル通信_1](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20181115/20181115020807.png#750__281)
シリアルモニタ内の、右下のボーレートをソースコード側と合わせます。
※今回は9600bps
![UnityからArduinoへのシリアル通信_2](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20181115/20181115023957.gif)
文字列を入力して送信ボタン or エンターキーで送信できます。
UnityからArduinoへシリアル通信
こちらは以前作成したSerialPortWrapperというライブラリを使用して実装します。
Unityの実装コードはコチラ
SerialSample.cs · GitHub
ポイントはSerialPortWrapperのコンストラクタの第1引数にポート名
、第2引数にボーレート
を渡します。
ボーレートはArduino側のソースコードと合わせる必要があるので、9600を設定します。
ポート名は以下のコマンドを実行して出力された文字列を入力します。
ls /dev/cu.*
画面上のnボタン、fボタンを押下することでLEDの点灯と消灯を実行することができます。
![UnityからArduinoへのシリアル通信_3](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20181115/20181115023931.gif)
このようにSerialPortWrapperを使用することで、簡単にUnityから文字列を送信することができました。
以上
GitHub - baobao/SerialPortWrapper
![](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20181115/20181115024630.png#1024.0__629.0)
この記事が気に入ったらフォローしよう
- macOS Mojave 10.14
- Arduino Genuino 1.8.7
- Arduino/Genuino Uno