Raspberry pi Windows IoT Arduino USB 通信

Raspberry pi Windows IoT Arduino USB communication

我有一个 Arduino 通过 USB 连接到我的 Raspberry Pi 2 并在其上安装了 Windows 10 IOT。我在 Visual Studio 中制作了一个通用应用程序,它可以在 Pi 上运行。我需要包含哪个参考资料才能通过 USB 与 Arduino 通信?

此代码允许 PC 通过 USB 与 Arduino 通信。 Arduino 上的 USB 并不是真正的 USB。是连续的。

http://arduino.cc/playground/Csharp/SerialCommsCSharp.

只需将您的 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 协议从 Raspberry PI 在 Windows IoT Core 上轻松控制 Arduino。 我试过了,效果很好!

https://www.arduino.cc/en/Reference/Firmata

https://github.com/ms-iot/serial-wiring

问题是 Arduino 没有在 win iot 上被检测到,所以串行通信是不可能的,因为从物联网的角度来看不存在串行端口。 任何在 windows 物联网上正确检测 Arduino 的测试解决方案将不胜感激。