超声波测距模块相信大家都玩过吧,超声波定义为频率大于20KHZ以上的声波,也可以用在通信方面,海洋探测;海洋渔业;水下救援;水下遥控等

主要材料

超声波探头(防水,两个)
stm32f103rct6最小系统板(两块)
lm386芯片(一个)
lm393电压比较器(一个)
max232芯片(一个)
蓝牙模块(一个)

一、实验流程

本系统的通信过程首先从用户端通过手机蓝牙发送给蓝牙模块,再以串口的方式传给STM32单片机,经过单片机解算拆解出数据,利用PWM信号去控制驱动电路实现对信号的调制发送;超声波在经过水下传播后在接收端的超声波探头收到微弱的接收信号,经由放大整形电路实现对信号的解调,并通过单片机还原数据通过OLED屏显示和串口打印出数据。

二、电路部分

2.1发射电路

在发射电路中,首先通过蓝牙串口获取来自用户端的数据消息,并利用单片机的定时器输出端口PA1和PA0对外进行PWM互补输出,将电路的输出接到MAX232芯片电路之中,发射电路原理图如下
这部分主要是利用MAX232芯片的倍压功能,实现对单片机电路的0–5V压差,转为-10~+10V的20V压差。利用电荷泵的原理来实现的倍压。这样驱动超声波探头可以实现更远的传输。

2.2 接收电路

利用LM386音频放大电路实现对微小信号的放大,并通过二极管RC包络检波电路实现对电路的包络线还原,最后再经过LM393比较电路实现对电压的裁决,还原出原始信号,再将其输出口接到单片机,进行解调。系统框图如下

三、编码方式

选用ASK的调制方式,首先本超声波探头的最佳工作频率在40KHZ左右,所以发射端是产生40KHZ的驱动信号,设定帧数据的周期为12ms,2ms的时间发射脉冲定义为码元0;4ms的时间发射脉冲定义为码元1;8ms的时间发射脉冲定义为帧头信号。示意图如下

上图左边为发射端的驱动信号示意图,右边为接收端放大-检波-整形还原后的信号。

四、实物图及视频

4.1实物


管道水下通信环境

实物总体图

4.2视频链接

录得一个简单展示的视频,欢迎大家点赞https://www.bilibili.com/video/BV1g34y1h7Fa?share_source=copy_web

五、结束语

感谢大家的阅读,这是本人的一个毕设,难度不是很大(大佬勿喷),这个项目还是比较有意思的,适合通信的学习入门实验,从器件选择到电路设计,再到整个通信建立都是很有成就感的。

简易版 水下超声波通信相关推荐

  1. Qt网络编程-简易版UDP组播通信入门Demo(5)

    Qt网络编程-简易版UDP组播通信入门Demo(5)

  2. 基于Zookeeper实现简易版服务的注册与发现机制

    一.功能要求 基于Zookeeper实现简易版服务的注册与发现机制 启动2个服务端 将服务端IP和端口信息注册到Zookeeper上 启动1个客户端 从Zookeeper中获取2个服务端节点信息 客户 ...

  3. 智能停车场[简易版]

    智能停车场[简易版] 项目简介 开发环境 功能简介 停车场收费管理 停车场停车位管理 网页端 功能实现 Socket通信 数据库相关知识 本地数据库操作 pymysql数据操作 web开发中的数据库操 ...

  4. android 实现qq动画,Android项目:简易版QQ的实现

    简易版QQ实现涉及的三个功能模块 引导界面 splash界面(静态) 1.作用:初始化服务器端的一些数据,初始化成功后跳转到主界面 2.页面的延迟跳转: //在主线程中: new Handler(). ...

  5. 51单片机入门项目总结:简易版防盗报警器

    好久没有更新博客了,今天开始有时间就写写博客,总结一下之前做过的项目,以及对一些技术的思考.因为目前做过的项目都是为了学习单片机的某个知识点而做的,完成程度并不完整,后面也会对这些做过的项目进行完善和 ...

  6. 盘点Python编程的简易版自动化工具——ADB史上全操作

    点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 今 日 鸡 汤 仰天大笑出门去,我辈岂是蓬蒿人. 大家好,我是皮皮,今天给大家讲讲A ...

  7. node.js——麻将算法(六)简易版麻将出牌AI1.0

    普通麻将的出牌AI如果不是要求特别高的话,其实蛮容易实现的,毕竟大多数人打牌都只是看自己的手牌. 所以作为简易版的AI,出牌的策略只要奔着胡牌去就可以了.我们能想到的就是把相邻或相同的牌凑到一起,把单 ...

  8. 从封装函数到实现简易版自用jQuery (一)

    温馨提示 本文阅读对象: 对 JavaScript 有一定的了解,如果你没有学过或者忘记 JavaScript 某些操作,请看 阮一峰 JavaScript 教程 . 导语 DOM 有许多 API , ...

  9. 利用python实现简易版的贪吃蛇游戏(面向python小白)

    前言 这篇文章主要给大家介绍了关于如何利用python实现简易版的贪吃蛇游戏的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学 ...

最新文章

  1. python查看函数定义_从函数内函数定义看python的函数实现
  2. 回馈读者:赠花书一本!
  3. php 微信公众号 记录数据库,PHP构建微信公众号关键字数据库多图文回复
  4. WatchOS系统开发大全(6)-WKInterfaceLabel
  5. hibernate oracle驱动,出错场景是升级oracle驱动,将版本从ojdbc14升级到ojdbc6,hibernate执行原生态sql语句会报如下错误...
  6. js动态添加meta标签
  7. Android开发之Java的IO流读写的十种方法
  8. 简单的libevent例子
  9. 安装rvm的时候提示curl证书的问题..
  10. 运用incremental backup恢复归档GAP的DG-上篇
  11. 知识图谱关系抽取 python_知识图谱关系抽取
  12. 动态规划:挖金矿问题
  13. 评价类(观点)题和理解类题目的辨析 区别一:审题干信息和题目要求。
  14. 主题 02:如何设计系统预案(Preplan)?
  15. JXLS导出Excel表格实战教程
  16. java 求tan的角度_Java StrictMath tan()用法及代码示例
  17. 【回溯】leetcode37.解数独
  18. jQuery日历记事插件SimpleCalendar(附源代码)
  19. Qt实现读Html文件并替换里面的标签内容
  20. 洛谷 Golden Sword(dp,优先队列优化【含板子】)|| 补充练习:洛谷 跳房子

热门文章

  1. GamePlay架构
  2. Hololens官方教程精简版 - 08. Sharing holograms(共享全息影像)
  3. 微信公众平台版面设计需要服务器,公众号版面设计,微信公众号中排版怎么弄...
  4. 优雅使用Jsdelivr/CDN加速博客访问速度
  5. Ubuntu18.04 + RTX2080Ti + CUDA +cudnn 环境配置
  6. 有关热敏打印机接口程序
  7. 七日之都账号服务器,永远的7日之都服务器数据互通吗_永远的7日之都iOS和安卓能一起玩吗_玩游戏网...
  8. centos7 下greenplum 安装初始化使用
  9. GSEA介绍--鹏鹏原创,必是精品
  10. 安卓逆向(Android)之二__《全民捕鱼》游戏内购破解