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" 之后的数字可能会改变。
我在 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" 之后的数字可能会改变。