Right-click the ArduinoCtrl C# Script and select Open C# Project. This opens the script in Visual Studio so that you can edit the code.
In the Visual Studio window, copy and paste the C# code from below into the ArduinoCtrl file. Then, Save the file.
// SPDX-FileCopyrightText: 2022 Liz Clark for Adafruit Industries // // SPDX-License-Identifier: MIT using System.Collections; using System.Collections.Generic; using System.IO.Ports; using UnityEngine; using UnityEngine.UI; public class arduinoCtrl : MonoBehaviour { // replace with your board's COM port SerialPort stream = new SerialPort("COM52", 9600); public Transform t; void Start() { stream.Open(); } void Update() { Vector3 lastData = Vector3.zero; string UnSplitData = stream.ReadLine(); print(UnSplitData); string[] SplitData = UnSplitData.Split('|'); float AccX = float.Parse(SplitData[1]); float AccY = float.Parse(SplitData[2]); float AccZ = float.Parse(SplitData[3]); lastData = new Vector3(AccX, AccY, AccZ); t.transform.rotation = Quaternion.Slerp(t.transform.rotation, Quaternion.Euler(lastData), Time.deltaTime * 2f); } }
Update the SerialPort
object with your Arduino board's port name. You can find this information in the Arduino IDE under Tools - Port.
stream = new SerialPort("COM19", 9600);
In the main Unity project window, click on Edit and then Project Settings... Click on Player and scroll down to the Configuration settings under Other Settings. Change the Api Compatibility Level* to .NET Framework. This allows all of the expected Unity Visual Studio libraries to work as expected in the C# script.
In the Asset window, drag the ArduinoCtrl file to the 3D object in the Hierarchy window. You'll see the ArduinoCtrl script appear in the object's Inspector window.
In the T box, click on and select your 3D object from the list. This applies the script to the object to control its rotational movement.
Page last edited January 16, 2025
Text editor powered by tinymce.