python控制arduino模拟端口_用Python控制Arduino实现Blink

第一种方法:用pyFirmata实现

1.安装pyFirmata包python

执行命令:pip install pyFirmata

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

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

若是pyton下运行from pyfirmata import Arduino不报错,证实安装成功windows

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

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

from pyfirmata import Arduino, util

import time

board = Arduino('COM8')                #Arduino所在串口是COM8,这是windows下的表示ui

while 1:

board.digital[13].write(0)           #向端口13写入0

time.sleep(1)

board.digital[13].write(1)          #向端口13写入1

time.sleep(1)命令行

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

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网址:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Python控制Arduino,你需要先在Python环境中安装串口包。你可以在终端命令中输入"pip install serial"来下载串口包。然后,你可以使用以下代码来实现Python控制Arduino的功能: ```python import serial ser = serial.Serial('COM12', 9600) # 根据Arduino连接的端口和波特率设置串口 ser.write('1'.encode('ascii')) # 向串口发送1,并将其转化为ASCII码形式发送 # 如果你想发送其他命令,可以使用类似的方式 # ser.write('2'.encode('ascii')) # 向串口发送2,并将其转化为ASCII码形式发送 ``` 这段代码中,我们导入了serial包,并创建了一个串口对象ser。然后,我们使用ser.write()函数向串口发送命令。在这个例子中,我们发送了字符'1',并将其转化为ASCII码形式发送。你可以根据需要修改发送的命令。 需要注意的是,这只是一个简单的示例,实际上你需要根据你的具体情况来设置串口的端口和波特率。另外,你还需要确保Arduino上的程序能够正确接收并处理从串口发送过来的命令。 总结起来,Python控制Arduino的过程是通过串口通信来实现的。Python发送命令,Arduino接收并执行相应的操作。这种通信方式可以实现上位机对下位机的调配,也可以理解为一种自定义的通信协议。同时,PWM(脉冲宽度调制)可以用来模拟输出模拟量的效果,但如果要输出真正的模拟值,还需要在模拟引脚上执行相应的操作。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [python制作上位机控制Arduino下位机(自定义协议)](https://blog.csdn.net/qq_52408411/article/details/118345986)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [LattePanda&AI-Python控制Arduino LED灯](https://blog.csdn.net/weixin_39633276/article/details/111506432)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值