IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 基于ESP32与phyphox的DIS实验制作(5)-基于无线光电门的速度传感器制作 -> 正文阅读

[嵌入式]基于ESP32与phyphox的DIS实验制作(5)-基于无线光电门的速度传感器制作

上两篇我们讲到了基于ESP32自带的电压传感器,以及外接创客常用的超声波测距模块。实验本身没有什么创意,仅仅是用自制的传感器来实现普通的DIS设备都能实现的功能。但是在这一篇,我们将会在自制DIS实验中引入创新的点子,所开发的实验也是普通的DIS设备无法完成的.
在使用传感器测量物理量时,位移是比较难测量的一个量,例如上一篇中的超声波测距仪,精度只有厘米级的,虽然改进后能勉强到毫米级,但是还是完全不够的;当然还有例如激光测距模块,虽然精度是提高了(其实还是不够高),但是采样率却很低,例如VL6180等,采样率只能达到10Hz左右,或许有更快更准的位移传感器,但是这价格不是我们普通老师所能承受的了。
既然位移很难测,我们能不能反过来呢?(注意,这就是创意诞生前的一刹那!)单片机测位移很弱,但是测时间却是个高手!那么我们岂不是可以先把位移确定下来,然后测物体经过特定位置时的时间,不是也照样能得到位移-时间图像啊!那如何做呢?答案很简单:用光电门,只是需要把光电门安装在小车上,然后在轨道上装上一列挡光片,所有挡光片的位置事先测量好,然后光电门就可以测出经过每个挡光片时的时间了,当然不是测挡光时间间隔,而是测经过一瞬间的时刻!这样,位移-时间图像是不是自动就出来了!当然今天我们索性就直接绘制速度-时间图像。
怎么样,是不是也挺简单的,但是简单中蕴含着创意啊!这在我最喜欢作品里排到第二,自我感觉还是不错的!
好了,还是和之前一样,先来段视频吧:
(视频观看请关注微信公众号:宁中物理创新实验室。)
是不是很迫不及待的想要自己动手做一个了呢!跟着下面的教程,一起来动手吧!

1、自制光电门

本实验首先需要一个光电门,为了写这篇我专门从某宝买了一个回来,其实以前我都是自己做的,但是考虑到大家刚开始学,本想省略自制光电门这一步,直接买一个,没想到…直接看图吧,这货居然要17元一个,我还买了两个,心痛死我了,直接进垃圾桶了。里面居然只有两个5mm的红外二极管,而且通光孔开的贼大,并且最关键是没有电压比较器之类的芯片啊,不到1块钱成本卖我17块!!!
在这里插入图片描述
当然你也可以从学校已有的设备中拆几个来玩玩,但是要注意不同DIS实验设备中的光电门都不太一样,例如我校最早的GQY的DIS设备里的,它最简单,可以直接为我们所用,但是后来的朗威的就不能直接用了,当然Pascal的也可以直接用,但是因为这货太贵了,我舍不得拿来玩。
好了,其实自己做一个光电门也非常简单的,就一个红外发光二极管和红外接收二极管加上几个电阻就够了,当然最关键的是要设计一对正对着的小孔,孔径自然是越小越好,但是当孔径过小时,就需要三极管或者电压比较器之类的芯片来帮忙了。这篇就先来个简单的,不加芯片了。我用激光切割的薄木板设计了一个光电门,先测试发现当不挡光时接收管的电阻较小,挡光时电阻变大了很多。所以就可以设计个简单的电路,将这种电阻变化转换成电压的变化,我们设计了不挡光时电压为低,挡光时电压为高,具体电路问物理老师:)。具体制作请看视频:
(视频观看请关注微信公众号:宁中物理创新实验室。)

2、ESP32与光电门的连接和对应的程序

连线只有一根,光电门输出端直接接在ESP32上的P14端口。下面是程序,本程序实现了发送速度和时间两个量,注意程序中双蓝牙通道的设置。

#include <phyphoxBle.h>  //加载phyphoxble.h库函数
int IN_PIN = 14;    // ESP32的25号端口作为电压输入端
int i=0;
float tpi,tmb,tm0,tm,v;
void setup() {
  Serial.begin(115200);
  pinMode(14,INPUT);
  PhyphoxBLE::start("速度传感器");  //蓝牙搜索时出现的名字
  PhyphoxBleExperiment Voltmeter;
  Voltmeter.setTitle("速度传感器实验");  //app界面中实验的名字
  Voltmeter.setCategory("宁中物理创新实验室");   //app界面中的实验分类名称
  Voltmeter.setDescription("这个实验会绘制速度-时间图像.");    //在app中会显示的提示语
  PhyphoxBleExperiment::View firstView;
  firstView.setLabel("Rawdata"); //创建一个视图
  //绘图
  PhyphoxBleExperiment::Graph firstGraph;      //开始绘制一个图像
  firstGraph.setLabel("速度-时间图像");       //图像名字
  firstGraph.setUnitX("s");              //x轴的单位
  firstGraph.setUnitY("m/s");              //y轴的单位
  firstGraph.setLabelX("时间");          //x轴的物理量名称
  firstGraph.setLabelY("速度");          //y轴的物理量名称
  firstGraph.setChannel(1, 2);              //打开双蓝牙通道
  firstView.addElement(firstGraph);            //将图像加载到视图中
  Voltmeter.addView(firstView);                //将视图显示出来
  PhyphoxBLE::addExperiment(Voltmeter);        //添加电压变量通过蓝牙输出 
}
void loop() {
    tpi=pulseIn(IN_PIN, HIGH);//pulseIn函数用来测量挡光的时间间隔
    if(tpi>50)//如果tpi读到了时间
    {
    if(i==0)//经过第一个挡光片时
    { 
    v = 5000/tpi;//计算速度
    tmb=(millis()-tpi/2000)/1000;//计算了挡光片中点时刻时的系统时间  
   tm=0;//此时时刻为0
     delay(1);
   PhyphoxBLE::write(v,tm);    //发送速度和时间给phyphox
   i=1;
    }
    else if(i>0&&i<10)//经过第二个一直到第十个挡光片时
    {
     v = 5000/tpi;
    tm0=(millis()-tpi/2000)/1000;   //计算了挡光片中点时刻时的系统时间
    tm=tm0-tmb;//计算此刻的时刻
    delay(1);
    PhyphoxBLE::write(v,tm);    
    i++;
    }
    else //超过了10个挡光片后不再测量,主要是为了第二次绘制V-t图时时间可以从0开始,
    {
    delay(1000);
    i=0;
   }  
   }  
}

3、ESP32的供电

由于整个设备都要安装在小车上,用充电宝供电就太大了,所以我直接使用了3.2V(注意不要买3.7V的普通锂电池哦!!)磷酸铁锂电池对ESP32进行供电,电池的正极接ESP32的3V3端口,负极接ESP32的GND端口即可,这里需要注意的是由于是非标准电压供电,所以此时的ADC(模数转换)误差较大,需要校准后使用,但是对于本篇的光电门计时影响不大。
将所有的设备固定在激光切割的木板上,然后再将设备安装到小车上,在轨道上安装一列5mm的挡光片就可以进行实验了。
在这里插入图片描述
速度传感器可以很方便的绘制出速度时间图像,也可以很快得出匀变速直线运动的加速度,在之后牛二定律实验中我们会继续用到。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-12-28 23:05:40  更:2021-12-28 23:06:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 15:53:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码