Python Protocol Abstraction Library for Ardouin Firmata
PyMata的Python项目详细描述
皮玛塔
pymata是一个高性能、多线程、无阻塞的python客户机,它支持firmata协议 完整的标准固件数据协议。
python 3.5的一个新版本pymata aio可以在here中找到。
可以在wiki上查看api
##主要功能
- 实现整个firmata 2.4.1协议。
- python 2.7+和python 3.4+通过共享代码集实现兼容性。(如果您在Linux上运行Python3.4,请参见下面的注释)。
- 易于使用且直观的api。您可以在documentation/html目录中查看PyMata API Documentation here或视图。
- 定制支持步进电机、声纳ping设备(hc-sro4)、压电设备和旋转编码器。
- 需要对pymata使用firmatplus-可以找到安装说明here。
- 为examples目录中的所有示例提供接线图。
- 数字和模拟通过数据锁存进行瞬态信号监测:
- 当数字或模拟管脚满足用户定义的阈值时,它们提供“一次性”通知。
- 模拟锁存器将每个数据更改与用户指定的值进行比较。
- 比较运算符是<;、>;、<;=和>;=
- 数字锁存器将数据变化与用户指定的高或低进行比较。
- 锁存器可以很容易地重新配置以检测下一个瞬态数据更改。
- 锁存可以手动读取,也可以将回调与锁存关联,以便立即通知。
- 可选的回调提供数据更新的异步通知。
回调
查看wiki上的示例代码。
- 数字输入管脚。
- 模拟输入引脚。
- 编码器改变。
- I2C读取数据更改。
- 声纳(HC-SR04)距离变化。
- 达到模拟锁存条件。
- 达到数字锁存条件。
- 回调以单一列表格式返回数据报告。
- 轮询方法和回调同时可用,可以在混合轮询/回调环境中使用。
- 回调返回单个列表中的数据。
回调数据返回值
Callback Type | List Element 0 | List Element 1 | List Element 2 | List Element 3 |
---|---|---|---|---|
Analog | ANALOG MODE | Pin Number | Data Value | Not Applicable |
Digital | DIGITAL MODE | Pin Number | Data Value | Not Applicable |
I2C | I2C MODE | I2C Device Address | Data Value | Not Applicable |
Sonar | Trigger Pin | Distance in Centimeters | Not Applicable | Not Applicatble |
Encoder | Encoder MODE | Pin Number | Data Value | Not Applicable |
Latched Analog | LATCHED ANALOG MODE | Pin Number | Data Value | Time Stamp |
Latched Digital | LATCHED DIGITAL MODE | Pin Number | Data Value | Time Stamp |
控制C信号处理器
下面是一个示例control-c信号处理程序,可以添加到pymata应用程序中。 它禁止由于用户输入control-c中止应用程序而报告异常。
importsysimportsignal# followed by another imports your application requires# create a PyMata instance# set the COM port string specifically for your platformboard=PyMata("/dev/ttyACM0")# signal handler function called when Control-C occursdefsignal_handler(signal,frame):print('You pressed Ctrl+C!!!!')ifboard!=None:board.reset()sys.exit(0)# listen for SIGINTsignal.signal(signal.SIGINT,signal_handler)# Your Application Continues Below This Point
其他
- 想扩展pymata吗?请参阅Our Instructables Article解释如何添加步进电机支持。使用它作为一个指南,根据您自己的需要定制pymata。
- Check Out Mr. Y's Blog Here所有最新消息!