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 TypeList Element 0List Element 1List Element 2List Element 3
AnalogANALOG MODEPin NumberData ValueNot Applicable
DigitalDIGITAL MODEPin NumberData ValueNot Applicable
I2CI2C MODEI2C Device AddressData ValueNot Applicable
SonarTrigger PinDistance in CentimetersNot ApplicableNot Applicatble
EncoderEncoder MODEPin NumberData ValueNot Applicable
Latched AnalogLATCHED ANALOG MODEPin NumberData ValueTime Stamp
Latched DigitalLATCHED DIGITAL MODEPin NumberData ValueTime 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

其他

希望使用Python3.5的Linux用户的特别说明

pymata_aio is now available and for Python 3.5.

Check out the pymata_aio wiki!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用户界面java,使用gui连接到另一台计算机/服务器的文件系统   运行sbt的ubuntu返回错误:“javahome需要<path>参数”   java如何在Android中处理许多ImageView而不出现内存问题?   查询中非法字符的java相同URL失败   安卓取消引用可能会产生“java”。lang.NullPointerException'   java中的indexoutofboundsexception“java.lang.ArrayIndexOutOfBoundsException”错误   xml Java将dom保存到文件>文件在程序结束后由另一个进程打开   Java的垃圾收集器是如何工作的?   Java如何筛选值(列表)   java处理字符串我怎样才能像在真实的书籍中一样在上面部分生成“小数字”呢?   java SonarQube是否有一个API来获取所有项目分析的一部分?   java startActivity(intent)什么都不做   JAVAutil。扫描器类Java   java如何从Firebase更新电子邮件?UpdateMail方法已被弃用   java Hibernate。如何正确组织带有注释的onetomany关系?   在java中获得卷标和驱动器号之间的映射(而不是FileSystemView)的解决方法是什么   java查找文件的路径