基于ESP32与phyphox的DIS实验制作(4)-使用超声波位移传感器研究弹簧振子的运动

通过上一篇你应该已经了解了基于ESP32与phyphox的DIS实验大概是个什么模样了,只是上一篇里仅仅使用了ESP32自带的模数转换(也就是电压传感器),程序也是用了它自带的示例,感觉还缺点意思。那么这一篇,我们将会让ESP32连接外接的传感器,通过编写程序驱动传感器测量数据并发送到手机上的phyphox。
好了,还是和之前一样,先来段视频:
(观看视频请关注微信公众号:宁中物理创新实验室)
想不想也来一个视频中的位移传感器呢,跟着下面的教程,一起动手来制作吧!

1、超声波测距模块

(下图来自某宝截屏)
在这里插入图片描述
要注意一点,大家购买的时候一定要买标注了宽电压的,因为常见的模块都是5V电压的,但是ESP32其实是一个工作在3.3V电压下的单片机,不要觉得我们用USB给它供电的时候用的是5V,那是因为里面有个降压模块将5V降低到了3.3V。所以切记,一定要买能支持3.3V的超声波测距模块(其实貌似更便宜,我买的才2.7元一个,自己某宝去搜了,免得我给别人打广告)
首先呢,我们来学习一下这个超声波测距模块的原理。
“超声波:人类耳朵能听到的声波频率为280HZ~20KHz。当声波的振动频率大于20KHz或小于20Hz时,我们便听不见了。因此,我们把频率高于20000赫兹的声波称为“超声波”。因其方向性好,穿透能力强,易于获得较集中的声能,在水中传播距离远,可用于测距、测速、清洗、焊接、碎石、杀菌消毒等。
最常用的超声测距的方法是回声探测法,如下图,超声波发射器向某一方向发射超声波,在发射的同时计数器开始计时,超声波在空气中传播,途中碰到障碍物阻挡就立即反射回来,超声波接收器收到反射回的超声波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物面的距离s,即:s=340
t/2。*
在这里插入图片描述
超声波传感器HC-SR04上有4个针脚,分别是“VCC”、“Trig”、“Echo”和“GND”,“VCC”和“GND”不再解释,在“Trig”端施加一个10微秒高电压信号会触发超声波发射口发射8个超声波脉冲,当超声波接受口接收到超声波时“Echo”端会输出一段高电压,高电压持续的时间就是超声波从发射到接收的时间。”
以上内容来自我自己曾经写过的一本书(顺便做做书的广告了,有想买的同学自己去某宝或者某当,我手里的也是自己买来的,不过里面用的是Arduino,程序也是用图形化的,适合小学生或者刚入门者):
在这里插入图片描述
大概了解了这个模块的原理后,就可以想办法让ESP32来驱动它了,其实也很简单,就是让ESP32给模块的“Trig”端加一个10微秒的高电压信号,然后再读取一下模块"Echo”端口上高电压持续的时间就可以了。

2、ESP32驱动超声波测距模块

在做正式版之前我们先编一个小程序玩玩,让ESP32驱动超声波测距模块,然后将测得的时间转换成距离发送给电脑,最后在电脑上来显示这个距离值。下面便是程序:


int trig_pin=12,echo_pin=13;//将超声波模块的trig接P12端口,echo接P13
float dis;//定义一个用来记录距离的变量
float checkdistance() {
    //这里为带有返回值的自定义函数,用来完成超声波模块的测量
  digitalWrite(trig_pin, LOW);//将trig端拉低
  delayMicroseconds(2);//等待2微秒
  digitalWrite(trig_pin, HIGH);//将trig端拉高
  delayMicroseconds(10)
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
2022 / 01/ 30: 新版esptool 刷micropython固件指令不是 esptool.py cmd... 而是 esptool cmd... 即可;另外rshell 在 >= python 3.10 的时候出错解决方法可以查看:  已于2022年发布的: 第二章:修复rshell在python3.10出错 免费内容: https://edu.csdn.net/course/detail/29666 micropython语法和python3一样,编写起来非常方便。如果你快速入门单片机玩物联网而且像轻松实现各种功能,那绝力推荐使用micropython。方便易懂易学。 同时如果你懂C语音,也可以用C写好函数并编译进micropython固件里然后进入micropython调用(非必须)。 能通过WIFI联网(2.1章),也能通过sim卡使用2G/3G/4G/5G联网(4.5章)。 为实现语音控制,本教程会教大家使用tensorflow利用神经网络训练自己的语音模型并应用。为实现通过网页控制,本教程会教大家linux(debian10 nginx->uwsgi->python3->postgresql)网站前后台入门。为记录单片机传输过来的数据, 本教程会教大家入门数据库。  本教程会通过通俗易懂的比喻来讲解各种原理与思路,并手把手编写程序来实现各项功能。 本教程micropython版本是 2019年6月发布的1.11; 更多内容请看视频列表。  学习这门课程之前你需要至少掌握: 1: python3基础(变量, 循环, 函数, 常用库, 常用方法)。 本视频使用到的零件与淘宝上大致价格:     1: 超声波传感器(3)     2: MAX9814麦克风放大模块(8)     3: DHT22(15)     4: LED(0.1)     5: 8路5V低电平触发继电器(12)     6: HX1838红外接收模块(2)     7:红外发射管(0.1),HX1838红外接收板(1)     other: 电表, 排线, 面包板(2)*2,ESP32(28)  

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值