我正在使用语音识别模块 - Arduino Compatible。它说在那里使用 AccessPort,但因为我在 Mac OS X 上它不会工作。我不知道任何其他解决方案,但在我对任何其他有效的语言开放时用 Python 编写自己的解决方案。
我在这里找到了一些关于pySerial的解决方案,但到目前为止它似乎不起作用。
import serial
import struct
def C(val):
return struct.pack('H', val)
ser = serial.Serial(port='/dev/tty.PL2303-00001004', baudrate=9600, timeout=1)
ser.nonblocking()
ser.write(C(0xaa11))
print ser.read().__repr__()
ser.close()
它打开,写入两个字节并且不读取任何内容。0xaa11用于开始录制。由于红色LED快速闪烁,我的设备似乎处于等待模式。即使我这样做0xaa00,它也没有多大作用。我什至尝试将字节顺序更改为0x00aa,0x11aa等等,但我从未收到我的0xcc或0xe0错误代码。
在文档中它说以十六进制发送它,所以我的猜测是 accessport 将十六进制转换为Short使用两个字节的 a。0xaa00是一个两个字节的数字。我什至尝试将波特率更改为38400以防我之前的某个人将其设置为这个速度。
我很乐意从那个串口读取任何东西,因为到目前为止我可以写,它什么也不做,什么也不读......
截至目前,我将尝试使用交叉安装 AccessPort。如果它仍然不起作用,我将不得不找到一个 Windows 盒子。我什至可以用我的 Arduino 板编写自己的桥接器,因为我使用的驱动程序可能有问题。
以防万一,我使用的是 USB 转串行 PL2303。
编辑
我插入了输出和输入引脚来测试我的 USB 转串口。我确实阅读了我写的内容,因此驱动程序工作正常。
我将尝试直接使用 Arduino 进行设置并直接从那里进行测试。
发送
0xaa11不同于发送0xaa然后0x11。串行似乎颠倒了字节顺序。另一方面,文档没有说明位字节序,所以它也可能是问题所在。