我有一个通过 USB 连接到我的 Raspberry Pi 2 的 Arduino,并在其上安装了 Windows 10 IOT。我在 Visual Studio 中制作了一个通用应用程序,它可以在 Pi 上运行。我需要包含哪些参考资料才能通过 USB 与 Arduino 通信?
问问题
3516 次
3 回答
2
此代码允许 PC 通过 USB 与 Arduino 通信。Arduino 上的 USB 并不是真正的 USB。它是串行的。
于 2016-04-16T11:31:39.537 回答
0
只需将您的 Arduino 连接到 Raspberry PI 的 USB 端口之一。
此方法将尝试查找已连接的 Arduino 并向串口写入内容。
private async void ConnectToArduino()
{
//Enumerate devices.
var devices = DeviceInformation.FindAllAsync(SerialDevice.GetDeviceSelector()).AsTask();
devices.Wait();
//This will probably get you the connected arduino. (You can also use vendor id to be more accurate).
var serialDevice = devices.Result.FirstOrDefault(x => x.Name == "USB Serial Device");
if (serialDevice != null)
{
Debug.WriteLine("Found Arduino: " + serialDevice.Name + " " + serialDevice.Id);
// Create a serial port.
var serialPort = await SerialDevice.FromIdAsync(serialDevice.Id);
serialPort.WriteTimeout = TimeSpan.FromMilliseconds(1000);
serialPort.ReadTimeout = TimeSpan.FromMilliseconds(1000);
serialPort.BaudRate = 9600;
serialPort.Parity = SerialParity.None;
serialPort.StopBits = SerialStopBitCount.One;
serialPort.DataBits = 8;
//Write to serial port.
DataWriter writer = new DataWriter(serialPort.OutputStream);
writer.WriteString("Hello World!");
await writer.StoreAsync();
//Done.
writer.DetachStream();
}
else
{
Debug.WriteLine("Arduino not found!");
}
}
将以下功能添加到您的 Package.appxmanifest 文件。
<Capabilities>
<DeviceCapability Name="bluetooth" />
<DeviceCapability Name="serialcommunication">
<Device Id="any">
<Function Type="name:serialPort" />
</Device>
</DeviceCapability>
</Capabilities>
此外,请查看此项目,了解如何使用 Firmata 协议从 Windows IoT Core 上的 Raspberry PI 轻松控制 Arduino。我试过了,效果很好!
于 2017-07-14T12:20:25.510 回答
0
问题是在 win iot 上未检测到 Arduino,因此无法进行串行通信,因为从 iot 的角度来看不存在串行端口。任何在 windows iot 上正确检测 Arduino 的测试解决方案都将非常感激。
于 2018-01-15T16:08:40.717 回答