我正在使用语音识别模块 - 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
。串行似乎颠倒了字节顺序。另一方面,文档没有说明位字节序,所以它也可能是问题所在。