Mac 上 Cinder 中的串行通信

Serial Communication in Cinder on Mac

我在 mac OSX 10.10 上使用 Cinder 0.8.6。我正在通过 USB 从 Arduino 获取串行数据。数据在 Arduino 的串行监视器中显示正常,但 Cinder SerialCommunication 示例给了我:

Device: cu.usbmodem1451
Device: tty.usbmodem1451
Device: cu.Bluetooth-Incoming-Port
Device: tty.Bluetooth-Incoming-Port
Device: cu.Bluetooth-Modem
Device: tty.Bluetooth-Modem
There was an error initializing the serial device!

我想知道接下来要采取什么步骤来解决这个问题,以便 Cinder 可以收集来自 Arduino 的串行数据。

UPDATE 我发现如果我关闭 arduino 串行监视器,Cinder SerialCommunication 应用程序加载,接管端口,我没有收到错误,但是它立即挂起。来自 Arduino 的数据如下所示:

E2: D=3  V=13
E2: D=2  V=15
E2: D=3  V=18
E2: D=3  V=21
E3: D=-1  V=-1
E3: D=1  V=0
E3: D=-1  V=-1
E3: D=1  V=0
E3: D=-1  V=-1
E1: D=3  V=3
E1: D=3  V=6
E1: D=4  V=10
E1: D=4  V=14
E1: D=5  V=19
E1: D=6  V=25

这看起来像你的 Arduino:

Device: cu.usbmodem1451
Device: tty.usbmodem1451

您可能需要在示例的设置函数中调整此部分:

Serial::Device dev = Serial::findDeviceByNameContains( "tty.usbserial" );

成为这样的人:

Serial::Device dev = Serial::findDeviceByNameContains( "tty.usbmodem" );

例如

try {
        Serial::Device dev = Serial::findDeviceByNameContains( "tty.usbmodem" );
        mSerial = Serial::create( dev, 9600 );
    }
    catch( SerialExc &exc ) {
        CI_LOG_EXCEPTION( "coult not initialize the serial device", exc );
        exit( -1 );
    }

或者您可以显式使用完整路径:

Serial::findDeviceByName("tty.usbmodem1451");

但这可能不太灵活,因为如果您在 OSX 上使用不同的 USB 端口,"tty.usbmodem" 之后的数字可能会改变。