我正在使用Unityscript在Unity中进行一场比赛,我用lego mindstorms EV3机器人进行了操纵。我让te机器人通过蓝牙向游戏发送信息,但我找不到如何做到这一点。 我已经有蓝牙运行和运行C#的代码,但知道我需要知道如何将它转换为unityscript。 我已经尝试在谷歌上找到它,但我似乎只是得到了一些软件来破解机器人,但是没有用unityscript中的代码来连接转向器。
这里有C#代码:
// EV3: The EV3Messenger is used to communicate with the Lego EV3.
private EV3Messenger ev3Messenger;
// EV3: Create an EV3Messenger object which you can use to talk to the EV3.
ev3Messenger = new EV3Messenger();
// EV3: Connect to the EV3 serial port over Bluetooth.
// If the program 'hangs' on a call to ev3Messenger.Connect,
// then your EV3 is not paired with your PC yet/anymore.
// To pair: Remove the EV3 from the Windows Bluetooth device list and add it again.
ev3Messenger.Connect("COM3"); // Hardcoded serial port: put the serial port
// of the Bluetooth connection to your EV3 here!
}
/// <summary>
/// UnloadContent will be called once per game and is the place to unload
/// all content.
/// </summary>
protected override void UnloadContent()
{
// Unload any non ContentManager content here
// EV3: Disconnect
if (ev3Messenger.IsConnected)
{
ev3Messenger.Disconnect();
}
}
// EV3: send Brake message to mailbox with name "MakeNoise"
if (ev3Messenger.IsConnected)
{
ev3Messenger.SendMessage("MakeNoise", "Brake");
}
// Game can be controlled by both the arrow keys and the Steer, gas and brake paddle of the connected EV3
UpdatePaddlePositionUsingKeys();
UpdatePaddlePositionUsingEV3();
base.Update(gameTime);
}
///Steer update
private void UpdatePaddlePositionUsingEV3()
{
if (ev3Messenger.IsConnected)
{
// EV3: Receive a new command from mailbox "COMMAND" of the EV3
// and use it to change the direction of the paddle or to exit the game.
EV3Message message = ev3Messenger.ReadMessage();
if (message != null
&& message.MailboxTitle == "Command")
{
if (message.ValueAsText == "")
{
}
{
ev3Messenger.Disconnect();
Exit();
}
}
}
}
我希望你知道我在哪里可以做到这一点,甚至可以帮助我。 如果你想从我获得灵感的小乒乓游戏的原始代码,只需评论它。
我希望你能帮助我。
答案 0 :(得分:2)
以下是一些有关EV3固件文档的有用链接:
特别是,您需要了解如何发送direct commands,然后将其用于read and write bluetooth mailboxes。
使用javascript与COM端口进行通信,只需进行一些搜索即可。例如,我发现this SO question有很多不同的想法。
答案 1 :(得分:0)
作为c4ev3的一部分,我们开源了我们的EV3 uploader,它也可用于向设备发送与连接无关的命令。
以下是如何在Perl中移动电机(Complete version):
use IPC::Open2;
print open2(\*EV3OUT, \*EV3IN, "ev3 tunnel") or die "couldn't find: %!";
print EV3IN "0900xxxx8000 00 A3 00 09 00\n";
print EV3IN "0C00xxxx8000 00 A4 00 09 50 A6 00 09\n";
这将探测可通过USB,蓝牙或WiFi访问的EV3并连接到它,然后发送与转动电机相关的直接消息。有关直接命令协议的更多信息,请查看LEGO的Communication Developer Manual和David Lechner的答案。
或者,您可以使用c4ev3为EV3编写C程序并与之通信。这样你就可以使用更好看的C-API。