超声波测距+python数据处理+可视化实时图像绘制_超声波测距可视化(1)

在这里插入图片描述

如果上述方法安装失败,可能需要下载下来再安装。

https://pypi.org/project/pyserial/#files 中,有在这里插入图片描述

Windows下下载这个wheel格式的文件。关于wheel文件
如果你已经安装了pip,那么你需要把它升级到最新版本。
以管理员身份运行cmd
转到Python安装目录的Scripts目录下:

cd C:\Program Files\Python36\Scripts
pip install wheel
pip install 路径\文件名.whl: 
pip install C:\Users\0AQZ0\Downloads\matplotlib-2.1.2-cp27-cp27m-win_amd64.whl

以上经验来源于:EmbededDriver的博客https://blog.csdn.net/u012308586/article/details/89449004

matplotlib库的安装

一、一般方法
1.Win+R输入cmd进入到CMD窗口下,执行python -m pip install -U pip setuptools进行升级。
在这里插入图片描述

2.输入python -m pip install matplotlib进行自动的安装,系统会自动下载安装包在这里插入图片描述
3.进入到python idle中,运行import matplotlib,如下图所示,如果没有报错,就证明安装成果。在这里插入图片描述
输入以下代码运行成果证明安装没问题

import matplotlib.pyplot as plt
labels='frogs','hogs','dogs','logs'
sizes=15,20,45,10
colors='yellowgreen','gold','lightskyblue','lightcoral'
explode=0,0.1,0,0
plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.1f%%',shadow=True,startangle=50)
plt.axis('equal')
plt.show()

在这里插入图片描述

以上方法来源于:猪猪侠喜欢躲猫猫的博客:最简单的matplotlib安装教程
二、特殊方法
我建议大家用exe文件安装matplotlib,我使用setuptools安装,没安装成功,提示一堆错误。所以我推荐还是exe安装,我把matplotlib的exe安装文件列表写在下面的参考资料里。你找到对应版本的下载就可以,这里是安装过程:
1、首先,我们下载了适合自己的版本
在这里插入图片描述
2、打开它,就会看到安装界面,点击下一步
在这里插入图片描述

3、这里,输入python的安装目录,点击下一步在这里插入图片描述
4、安装过程的截图在这里插入图片描述
5、现在就安装好了,引入一下,看看是否出现了错误,没有错误就说明安装成功。
在这里插入图片描述
错误参考:

如果提示错误:ImportError: matplotlib requires dateutil,你可以看这篇文章:http://jingyan.baidu.com/article/aa6a2c14d5aa7f0d4c19c4e2.html

如果提示错误:ImportError: matplotlib requires
pyparsing,你可以看这篇文章:http://jingyan.baidu.com/article/e4d08ffdd3b9690fd2f60de2.html

以上经验来源于百度经验:Python教程:[55]matplotlib安装下载方法https://jingyan.baidu.com/article/154b46315523b428ca8f41e2.html

python读取串口数据代码

import serial
 
ser=serial.Serial("COM3",115200,timeout=0.5)	#打开串口
 
while (1):
	ch=ser.read()
	str1=ch.decode("iso-8859-15")	#bytes转str
 
	if(str1):	#判断数据是否为空,很重要
		l=ord(str1)		#str转int,方便数据计算和处理
		print("%x" % l)	
 
	pass

python进行图像绘制的程序代码

import matplotlib.pyplot as plt

ax = []                    # 定义一个 x 轴的空列表用来接收动态的数据
ay = []                    # 定义一个 y 轴的空列表用来接收动态的数据
plt.ion()                  # 开启一个画图的窗口
i=1
while i<1000:
	#print(b)
	if b == "":
		b = 0
		#print(b)
	else:
		b = float(b)
		#print(b)

		ax.append(i)           # 添加 i 到 x 轴的数据中
		i=i+1
		ay.append(b)        # 添加 i 的平方到 y 轴的数据中
		plt.clf()             		 # 清除之前画的图
		plt.plot(ax,ay)        # 画出当前 ax 列表和 ay 列表中的值的图形
		plt.pause(0.1)         # 暂停一秒
		plt.ioff()             # 关闭画图的窗口




绘制的图像如下图在这里插入图片描述

整体代码

arduino代码:

int TrgPin = A0;
int EcoPin = A1;
float dist;
void setup()
{   
  Serial.begin(9600);
  //设置TrgPin为输出状态
  pinMode(TrgPin, OUTPUT);
  // 设置EcoPin为输入状态
  pinMode(EcoPin, INPUT);
}
void loop()
{
  digitalWrite(TrgPin, LOW);
  delayMicroseconds(8);
  digitalWrite(TrgPin, HIGH);
  // 维持10毫秒高电平用来产生一个脉冲
  delayMicroseconds(10);
  digitalWrite(TrgPin, LOW);
  // 读取脉冲的宽度并换算成距离
  dist = pulseIn(EcoPin, HIGH) / 58.00;
  Serial.print("Distance:");
  Serial.print(dist);
  Serial.println("cm");
  delay(300);
}

python代码:

import matplotlib.pyplot as plt
import serial

serialPort = "COM4"  # 串口
baudRate = 9600  # 波特率
ser = serial.Serial(serialPort, baudRate, timeout=0.1)
#print("参数设置:串口=%s ,波特率=%d" % (serialPort, baudRate))


ax = []                    # 定义一个 x 轴的空列表用来接收动态的数据
ay = []                    # 定义一个 y 轴的空列表用来接收动态的数据
plt.ion()                  # 开启一个画图的窗口
i=1

while i<1000:
	str1 = ser.readline()
	str1 = str(str1)
	b = str1.lstrip("b'")
	b = b.lstrip("Distance:")
	b = b.rstrip("'")
	b = b.replace('\\n', '').replace('\\r', '')
	b = b.lstrip()
	b = b.replace('cm', '')
	b = b.lstrip()
	#print(b)
	if b == "":
		b = 0
		#print(b)
	else:
		b = float(b)
		#print(b)

		ax.append(i)           # 添加 i 到 x 轴的数据中
## 最后

**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**

**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/e08797824e24c756632991ffa01bc749.png)

![img](https://img-blog.csdnimg.cn/img_convert/be5db37f2d4effa0541f66d3efada553.jpeg)

![img](https://img-blog.csdnimg.cn/img_convert/7f47fbc8858b7259ff02c259aced79bc.png)

 ![img](https://img-blog.csdnimg.cn/img_convert/a344049601d9e128d0cbce699541c40b.png)

![img](https://img-blog.csdnimg.cn/img_convert/4b990aec1e42999faf95f802f0057b64.png)

![img](https://img-blog.csdnimg.cn/img_convert/57117d5b5fb9351437586155dd283844.png)

![](https://img-blog.csdnimg.cn/img_convert/482a703ce042b6e38a9bfd6703e26b10.png)

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!


7037)]

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值