pc端通过python与arduino实现通信

最近想做个项目,利用python抓取网页信息数据,然后根据数据分析来控制arduino实现相应的动作操作,首先需要实现的是电脑端与arduino的通信。
那么我们还是从最简单的点灯,实现电脑端与arduino的通信,控制LED灯一亮一灭。

一、软件安装

首先我们需要在电脑上安装python以及pycharm,相应的教程可以网上查找。
pycharm安装可参考:https://www.51zxw.net/show.aspx?id=78219&cid=711
在这里插入图片描述
安装完成后,最重要的一步是需要在pycharm上配置python运行环境。
在这里插入图片描述
在这里插入图片描述
找到python.exe文件。
在这里插入图片描述

二、模块安装

我们运行主要是通信,需要安装serial,但是python对应的模块是pyserial。在pycharm软件File-settings中找到Project Interpreter,然后双击pip,在弹出栏里面搜索pyserial,找到后选中,点击Install package即可
在这里插入图片描述

三、通信测试

相应的软件环境已经准备完成,接下来我们来写一段程序,测试下串口通信功能。
新建一个文件,输入下面代码:如果没有相应python基础可上网自学
主要功能:
1、检测是否有可用端口
2、如果有可用端口,循环发送字符o和c,间隔1秒

# coding:utf-8

import serial.tools.list_ports
import time
plist = list(serial.tools.list_ports.comports())

if len(plist) <= 0:
        print("没有发现端口!")
else:
        plist_0 = list(plist[0])
        serialName = plist_0[0]
        serialFd = serial.Serial(serialName, 9600, timeout=60)
        print("可用端口名>>>", serialFd.name)
		while 1:
		        serialFd.write("o".encode())
		        time.sleep(1)
		        serialFd.write("c.encode())
		        time.sleep(1)

用arduionIDE给arduino控制板上传接收程序:当收到字符o(open的缩写)LED灯亮,收到字符c(close的缩写)LED灯灭

const int pinNumber = 11; //因为电路连接中用的是11好管脚作为输出

//这里就是定义 开和关
void setup(){  //arduino程序必须有的函数,用作初始化,设置管脚,调用库等等
    Serial.begin(9600); //这里要和树莓派中串口波特率一致
    pinMode(pinNumber,OUTPUT); //将10号管脚状态设置为输出状态
}
void loop() {
  char val = Serial.read();
  if(val == 'o')
  {
    digitalWrite(pinNumber,HIGH); 
    }
  if(val == 'c')
  {
    digitalWrite(pinNumber,LOW); 
    }
}

上传成功后,运行代码
在这里插入图片描述
然后就可以看到LED灯,一闪一闪了,现在通信部分原理跑通了,接下来就是爬取网络相应信息,做完处理后,给arduino发送控制信号即可

更多交流可加微信
在这里插入图片描述

  • 10
    点赞
  • 160
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
使用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 ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值