Edited at

Unityをmicro:bitとのシリアル通信でコントロール(mac)

More than 1 year has passed since last update.

micro:bitからUnityで作ったコンテンツを操作する手順です。

通信はシリアルになりますがmicro:bitを2台使って無線での操作にします。

bluetoothはよくわからなかったのでこの方法にしました。

↓完成形



micro:bit(操作側)

micro:bitのエディターにアクセスして、

下記スクリーンショットの様にグループの指定(なんでもいいです)と通信の際のトリガーを指定します。

アイコン表示は無くてもいいです。

送信する文字列も、文字じゃ無くてもなんでもいいです。

FireShot Capture 490 - Microsoft MakeCode for micro_bit - https___makecode.microbit.org__lang=ja.png


micro:bit(受信側)

受信側も最初にグループの指定をします。

グループ番号は送信側と合わせます。

送信側からのデータを受信したら、今度はシリアル通信で文字列を書き出す様にします。

FireShot Capture 491 - Microsoft MakeCode for micro_bit - https___makecode.microbit.org__lang=ja.png


Unity

今回はParticle SystemをPlayしてるので下記の様になります。

SerialPortの引数はmicro:bitを接続しているポート名とボーレート(115200)を指定します。

ボーレートは他の記事を参考にこの値を入れています。

※以下のコードではシリアル通信の文字列の判定はしていません。

using UnityEngine;

using System.Collections;
using System.IO.Ports;
using UnityEngine;
using System.Collections;
using System.IO.Ports;

public class Serial : MonoBehaviour
{
SerialPort stream = new SerialPort("/dev/cu.usbmodem1422", 115200);
public ParticleSystem p;
// Use this for initialization
void Start()
{
stream.ReadTimeout = 10;
stream.Open();
stream.DiscardInBuffer();

}

// Update is called once per frame
void Update()
{
try
{
p.Play();
}
catch (System.Exception)
{
}
}
}