文字列として数字を送ります
Unity側(要SerialHandler)
using UnityEngine; using System.Collections; using System;//use for time using UnityEngine.UI;//use for UI public class serialSend : MonoBehaviour { public SerialHandler serialHandler; // Use this for initialization void Start () { serialHandler.OnDataReceived += OnDataReceived; } // Update is called once per frame void Update () { } public void sendBtn(){ serialHandler.Write ("2"); } void OnDataReceived(string message){ } }
Canvasでボタンを作成し,public void sendBtn()をアサインしてください
Arduino側
int i = 0; // 文字数のカウンタ void setup() { Serial.begin(9600); pinMode(13, OUTPUT); } void loop() { if (Serial.available()) { byte var = Serial.read(); var = var - 0x30; switch (var) { case 1: //hoge(var); Serial.println('1'); digitalWrite(13, HIGH); delay(1000); // wait for a second digitalWrite(13, LOW); break; case 2: //hoge(var); Serial.println('2'); digitalWrite(13, HIGH); delay(2000); // wait for 2 second digitalWrite(13, LOW); break; case 3: Serial.println('3'); break; } } }
文字列の扱いをcharでやると面倒なので(今回は数字だけなので)byteでやってみる
byteの数字は0が0x30らしいので,1(0x31)を送ってそれをひくと1になるらしい,,,
参考
シリアルモニタからArduinoへ数値を送る方法 – Qiita
シリアルモニタから数値を送り、Arduinoに数値に応じた処理をさせたいときがあります。しかし、以下のコードを書き込んでもちっとも反応してくれません。 sample1.ino void setup() { Serial.begin(9600); } void loop() { byte var = Serial.read(); switch (var) { case 1: //hoge(var); Serial.pr…” name=”description