用Python控制Arduino实现Blink

第一种方法:用pyFirmata实现

1.安装pyFirmata包

    执行命令:pip install pyFirmata

   在python2.7或python3.X下都可以执行。

   pyFirmata包实现了python对Arduino进行控制的功能,它与Arduino之间通信遵循的是Firmata协议

   如果pyton下运行from pyfirmata import Arduino不报错,证明安装成功

2.在Arduino IDE中为Arduino写入程序Standard Firmata.

3. 在Python IDEL中编写下面的程序

 

from pyfirmata import Arduino, util  
import time
board = Arduino('COM8')                #Arduino所在串口是COM8,这是windows下的表示

while 1:
     board.digital[13].write(0)           #向端口13写入0
     time.sleep(1)
     board.digital[13].write(1)          #向端口13写入1
     time.sleep(1)

 

运行程序,可见13引脚led闪烁。

 

pyFirmata程序的说明文档    https://github.com/tino/pyFirmata

第二种方法:用pymata_aio来实现

 pymata_aio功能更强,它可以实现对舵机,超声模块的控制

1,安装pymata_aio

   pymata_aio在python3上能顺利运行,在python2上不能顺利安装

   执行命令:  pip3 install pymata_aio

  安装完成后,在python命令行下执行from pymata_aio.pymata3 import PyMata3,如果不报错,说明安装成功。

  2,上传程序firmataplus.ino到Arduino

 3,   串口连接电脑和Arduno

4,  实例程序

from pymata_aio.pymata3 import PyMata3
from pymata_aio.constants import Constants

BOARD_LED = 13
board = PyMata3(com_port="/dev/ttyACM0")            #连接串口

 

def setup():
    board.set_pin_mode(BOARD_LED, Constants.OUTPUT)      #声明引脚为输出
    #board.enable_analog_reporting(0)
    board.set_pin_mode(0,Constants.ANALOG)                          #设置A0, 读模拟信号

def loop():

    try:
        print("LED On")
        board.digital_write(BOARD_LED, 1)                                        #写为数字1
        board.sleep(1.0)                                                                       #等待1秒
        print("LED Off")
        board.digital_write(BOARD_LED, 0)                                        #写为数字0
        board.sleep(1.0)

    
        print( board.analog_read(0) )                                                    #读A0,结果为0-1023的一个数

   except:

       board.shutdown()                                                                      #关闭连接, 很有必要

if __name__ == "__main__":
    setup()
    while True:
        loop()
 

5, pymata_aio网址:

https://github.com/MrYsLab/pymata-aio

  • 3
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值