我有一个Arduino连接到我的Raspberry Pi 2,通过USB和Windows 10 IOT安装在它上面。我在Visual Studio中制作了一个通用应用程序,它适用于Pi。我需要包含哪些参考,以便我可以通过USB与Arduino进行通信?
答案 0 :(得分:2)
此代码允许PC通过USB通过Arduino通信。 Arduino上的USB不是USB。它是连续的。
答案 1 :(得分: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。 我试过了,效果很好!
答案 2 :(得分:0)
问题是在win iot上没有检测到Arduino因此无法进行串行通信,因为从iot的角度来看不存在串行端口。 任何在Windows上正确检测Arduino的测试解决方案都将非常感激。