这篇文章主要介绍“如何使用FirmATA操作硬件”,在日常操作中,相信很多人在如何使用FirmATA操作硬件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用FirmATA操作硬件”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的孟津网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
现有两个Python Firmata库:
pyduino:http://code.google.com/p/pyduino/(依赖于pySerial,实现v2.0)
pyFirmata:https://github.com/tino/pyFirmata(依赖pySerial,实现v2.1,支持Python3)
目测了两者代码。pyduino的库pyduino.py只有10KB,最近更新时间为2009年(可以作为重要的参考)。更像MCU开发者编写的。
而pyFirmata更加完整一些,最近更新时间为2013年,似乎使用了一些高级Python技巧。比如自动测试一类的。并可以定制BOARDS参数。更加适合我们测试使用。因为LPC812MiniKit可以支持多个Profile。
两者都定义了Arduino类,不过我们可以参考pyFirmata实现GAPmini类。虽然Firmata的确是为Arduino定制的。但是如果拓展到其他平台的话,应该起一个独立性强一些的名称。
在boards.py和__init__.py中增加LPC812Min/LPC812Max/LPC812MixMin几种电路板配置(Profile)。
感谢pyFirmata的作者Tino(荷兰籍)提供了几种测试程序。
最基本的测试程序LPC812_Firmata_Blink.py:
from pyfirmata import LPC812Min, util from pyfirmata import BOARDS import time print '>>>> 5 second delay for firmata initial' print '>>>> Press reset to go' board = LPC812Min('COM27', baudrate=115200) print '>>>>',str(board) board.sp.setDTR(1) # set LOWtime.sleep(0.1) board.sp.setDTR(0) # set HIGH, LOW to High to reset layout = BOARDS['lpc812_min'] print ">>>> Board layout" print str(layout) board.setup_layout(layout) (major,minor) = board.get_firmata_version() print ">>>> Version: %d.%d"%(major,minor) print ">>>> Firmware name: %s"%(board.firmware) pin17 = board.get_pin('d:17:o') while True: try: pin17.write(1) board.pass_time(2) pin17.write(0) board.pass_time(2) except KeyboardInterrupt: print ">>>> User interrupt." board.exit() print 'Exit it.'
目前已经测试通过基本的Firmata通讯。
【更新】
已经完成基本的Digital In(可用于键盘处理)和Digital Out(用于LED闪烁)。PWM输出(如LED亮度和颜色变化)和模拟输入(如ADC采样)需要再更新固件支持。
到此,关于“如何使用FirmATA操作硬件”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!