procotol firmata的python接口
pyFirmata的Python项目详细描述
pyfirmata是用于Firmata协议的python接口。它是完全的 与Firmata 2.1兼容,并具有版本2.2的某些功能。它运行 在Python2.7、3.3和3.4上。
测试和覆盖状态:
安装
首选的安装方式是使用pip:
pip install pyfirmata
也可以使用python setup.py install从源安装。你会 需要安装setuptools:
git clone https://github.com/tino/pyFirmata cd pyFirmata python setup.py install
用法
基本用法:
>>> from pyfirmata import Arduino, util >>> board = Arduino('/dev/tty.usbserial-A6008rIF') >>> board.digital[13].write(1)
要使用模拟端口,启动迭代器线程可能很方便。 否则,电路板将继续向串行数据发送数据,直到它溢出:
>>> it = util.Iterator(board) >>> it.start() >>> board.analog[0].enable_reporting() >>> board.analog[0].read() 0.661440304938
如果您经常使用pin,那么使用get_pin方法是值得的 董事会成员。让我们用一个字符串来指定所需的pin,这个字符串由 “A”或“D”(取决于您是否需要模拟或数字管脚),管脚 数字和模式(“I”表示输入,“O”表示输出,“P”表示脉宽调制)。全部 由:分隔。例如,a:0:i表示模拟0作为输入,或d:3:p表示 数字管脚3作为脉宽调制。:
>>> analog_0 = board.get_pin('a:0:i') >>> analog_0.read() 0.661440304938 >>> pin3 = board.get_pin('d:3:p') >>> pin3.write(0.6)
电路板布局
如果您想使用与标准Arduino不同布局的电路板 或者ARDUIO MEGA(其中存在快捷类) pyfirmata.Arduino和pyfirmata.ArduinoMega,实例化电路板 使用字典作为layout参数初始化。这是布局指令 对于Mega,例如:
>>> mega = { ... 'digital' : tuple(x for x in range(54)), ... 'analog' : tuple(x for x in range(16)), ... 'pwm' : tuple(x for x in range(2,14)), ... 'use_ports' : True, ... 'disabled' : (0, 1, 14, 15) # Rx, Tx, Crystal ... }
待办事项
接下来我要做的是在 固定数据:
- pin状态查询,它允许用 硬件配置的精确表示 (http://firmata.org/wiki/Proposals#Pin_State_Query_.28added_in_version_2.2.29)