Uduinoの謎の挙動集

#なんの記事？
この記事はUduinoに関する謎の挙動を集めたものです。

- 環境
    - ArduinoIDE 1.8.5
    - Arduino UNO
    - Unity 2.18.2.10f1
    - Uduino 2.1.8
    - MacBookPro

##謎1
Arduinoのスケッチのloop関数内の記述によって、Unityのインスペクタで、UduinoでDiscover ports（以下の写真の青いボタン）を押した時にArduinoを認識するか否かが異なった。

<img width="1440" alt="スクリーンショット 2018-11-19 18.08.10.png" src="https://qiita-image-store.s3.amazonaws.com/0/291645/4dacd9b5-6669-e0df-b7f5-a05421af9eb1.png">

```
//Arduinoのスケッチ
//認識しないもの
void loop()
{
  uduino.update();

  while(isPlay){
    analogWrite(pin, sinwave[indexer]);
    indexer ++;
    delayMicroseconds(50);
    if(indexer ==255){
      indexer = 0;
    }
  }
  
  while(!isPlay){
    analogWrite(pin, 0);
  }
}

```
```
//Arduinoのスケッチ
//　認識するもの
void loop()
{
  uduino.update();

  while(isPlay){
    analogWrite(pin, sinwave[indexer]);
    indexer ++;
    delayMicroseconds(50);
    if(indexer ==255){
      indexer = 0;
    }
  }
  
  analogWrite(pin, 0);

}
```
###備考
- 原因はわからない
- どちらもArduinoへの書き込みは成功した

##謎2
Arduinoのシリアルモニタを開いた状態でDiscover portsすると認識されない（以下のエラーコード）。

```
//Unityのconsoleへのerrorコード
Error on port <color=#2196F3>[/dev/tty.usbmodem143101]</color> : System.IO.IOException: Resource busy  at System.IO.Ports.SerialPortStream.ThrowIOException () [0x0000f] in <93cc5a601cf645d2a15a96c4600351ac>:0   at System.IO.Ports.SerialPortStream..ctor (System.String portName, System.Int32 baudRate, System.Int32 dataBits, System.IO.Ports.Parity parity, System.IO.Ports.StopBits stopBits, System.Boolean dtrEnable, System.Boolean rtsEnable, System.IO.Ports.Handshake handshake, System.Int32 readTimeout, System.Int32 writeTimeout, System.Int32 readBufferSize, System.Int32 writeBufferSize) [0x0001b] in <93cc5a601cf645d2a15a96c4600351ac>:0   at (wrapper remoting-invoke-with-check) System.IO.Ports.SerialPortStream..ctor(string,int,int,System.IO.Ports.Parity,System.IO.Ports.StopBits,bool,bool,System.IO.Ports.Handshake,int,int,int,int)  at System.IO.Ports.SerialPort.Open () [0x0006f] in <93cc5a601cf645d2a15a96c4600351ac>:0   at (wrapper remoting-invoke-with-check) System.IO.Ports.SerialPort.Open()  at Uduino.UduinoDevice_DesktopSerial.Open () [0x0005a] in /Users/kudoryu/github/UduinoTest/Assets/Uduino/Scripts/Boards/Devices/UduinoDevice_DesktopSerial.cs:87 
UnityEngine.Debug:Log(Object)
Uduino.Log:Info(Object, Boolean) (at Assets/Uduino/Scripts/Extra/UduinoDebug.cs:34)
Uduino.UduinoDevice_DesktopSerial:Open() (at Assets/Uduino/Scripts/Boards/Devices/UduinoDevice_DesktopSerial.cs:100)
Uduino.UduinoConnection_DesktopSerial:Discover(String[]) (at Assets/Uduino/Scripts/Boards/Finder/UduinoConnection_DesktopSerial.cs:84)
Uduino.UduinoConnection_DesktopSerial:FindBoards(UduinoManager) (at Assets/Uduino/Scripts/Boards/Finder/UduinoConnection_DesktopSerial.cs:19)
Uduino.UduinoManager:DiscoverPorts() (at Assets/Uduino/Scripts/UduinoManager.cs:453)
Uduino.UduinoManagerEditor:ArduinoSettings() (at Assets/Uduino/Editor/UduinoManagerEditor.cs:808)
Uduino.UduinoManagerEditor:OnInspectorGUI() (at Assets/Uduino/Editor/UduinoManagerEditor.cs:527)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
```
また、Discover portsして認識に成功した後にArduinoのシリアルモニタを開こうとすると以下のエラーが出て開けない。

```
//ArduinoIDEへのerrorコード
シリアルポート「/dev/cu.usbmodem143101」が開けません。 (Port busy)
```

###備考
- シリアルモニタとUduinoを同時に使うことはできないということ？

##謎３
Uduinoが以下の画像のように接続済の時に、Arduinoに書き込もうとすると、エラーが出てできない。<img width="271" alt="スクリーンショット 2018-11-19 18.52.05.png" src="https://qiita-image-store.s3.amazonaws.com/0/291645/1042fbf3-8cd3-8c1e-6e33-fb1c7005b26b.png">

```
//ArduinoIDEへのerrorコード
avrdude: ser_open(): can't open device "/dev/cu.usbmodem143101": Resource busy
```