首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Arduino和Godot之间建立串口通信?

在Arduino和Godot之间建立串口通信?
EN

Stack Overflow用户
提问于 2020-02-21 14:32:30
回答 2查看 258关注 0票数 1

我想知道如何在Arduino Uno (作为我的输入)和Godot游戏引擎(作为我的输出)之间建立串口通信?上下文是,我正在尝试使用Arduino上的传感器来移动/放置Godot上的对象,因此我需要串行端口代码或如何实现该连接的指导。

感谢您的帮助,谢谢大家!

EN

回答 2

Stack Overflow用户

发布于 2020-02-26 21:58:29

你可以试试插件GDSerCommPlugin。但它正在进行中,我没有测试它,所以我不知道它是否可用。

票数 1
EN

Stack Overflow用户

发布于 2021-07-19 23:00:28

由于这个问题已经被提出很长时间了,我认为更新是受欢迎的。由于Godot3.0,C#是完全支持的,我使用的是Godot3.3.2,我对在Godot中处理串行通信的结论是:使用C#

您将保留Godot的所有多平台开发优势,而无需编写任何(低级)代码,下面是一个片段:

代码语言:javascript
复制
using System.IO.Ports; // for .NET SerialPort

然后在你的类中,如果你想打开端口(假设定义了"SerialPort端口“):

代码语言:javascript
复制
port = new SerialPort(portName, (Int32)baudRate, Parity.None, 8, StopBits.One);

然后,使用_Process读取数据

代码语言:javascript
复制
public override void _Process(float delta)
{
    if (port != null)
    {
        if (port.BytesToRead > 0)
        {
            string serData = port.ReadExisting();
            string[] str = serData.Split('\n'); // Just an example
            parseLines(str); // Your implementation
        }
    }
}

Note1:来自SerialPort的"DataReceived“事件不起作用(我不知道为什么,但我认为这是由于不同的上下文造成的),但是对于Godot,这个函数是无用的,因为你可以直接检查和解析_Process函数中的数据。

Note2:为了提高效率,在_Process函数的循环中使用ReadExisting()函数(并自己解析行)比使用Readline()函数更好。

Note3:立即发送到串行端口,例如:

代码语言:javascript
复制
port.Write("Hello\r");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60333254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档