百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

将令人激动的童年玩具对讲机的49MHz发射端改为WIFI连接

bigegpt 2025-02-14 22:21 26 浏览

将模拟无线电发射模块改为WIFI连接,曾经使用ESP8266方案失败后,这次作者用ESP32实验成功,今天和电台小叔BG5WKP一起围观。


ESP32 WALKIE-TALKIE,那些间谍对讲机的巅峰时刻

文:珍妮·李斯特(Jenny List)


对于喜欢冒险的1970或1980年代出生的孩子来说,最令人激动的童年玩具之一可能是玩具对讲机。它们是一个非常简单的AM低端VHF对讲机,通联距离约500m,这台对讲机还有有值得商榷的莫尔斯(Morse)电键,您可以与朋友秘密交谈,并成为更有说服力的间谍或突击队,或当前的游戏。Chris G用他的ESP32对讲机为成年人带来了某些记忆,它通过WiFi的魔力取代了摇晃的49MHz连接,并变得更加稳定。



硬件是自定义PCB上的一组模块,除了ESP32之外,还有一个I2S麦克风和I2S音频放大器,它们与电池和扬声器一起装在整齐的3D打印盒中。使用I2S是为了简单起见,但没有理由为什么只需更改一些代码就不能使用模拟组件。WiFi网络通过UDP进行连接,或者通过ESP-NOW的网络进行连接。我们不确定使用那些较小的板载芯片天线是否会达到理想的范围,但是如果要使用2.4GHz天线,那么如果库存项目令人失望,很可能会轻松实现更好的结果。



对于视频中的麦克风,我使用的是我自己的ICS-43434麦克风板,但它可以与INMP441麦克风板同样良好地工作。


这两个都是直接与ESP32交互的I2S麦克风。


I2S 3W放大器板来自Adafruit,并为扬声器供电。这也直接与ESP32交互。


对于ESP32开发板,我使用的是TinyPICO,但是可以使用任何通用开发板,因为我们在此项目中未使用任何特殊功能。


我使用的是定制PCB,我对这些板的外观感到非常满意。


我有很多音频项目,能够将所有东西连接在一起而不用担心电线到处都是很好,这真是太好了。我所做的仅有的一点遗漏是不会断开其余的GPIO引脚,因此,我认为我将尽快开发该板的版本2。



话虽如此,您实际上并不需要PCB,您可以轻松地将所有电路板连接到面包板上,而这正是我制作模型时所做的。


原理图非常简单,麦克风和扬声器都使用I2S板,这使它们与ESP32的接线非常简单。


当然,您可以修改代码以将内置ADC用于输入,将内置DAC用于输出。如果要使用模拟麦克风板和耳机插孔进行输出,则非常方便。


我在板上添加了一些额外的电路,以为麦克风创建干净的电源。如果您观看了我以前的一些视频,那么您会想起来,使用WiFi时,我们在麦克风上会听到很多噪音。


为解决此噪声问题,我们通过从电池直接馈电为麦克风创建干净的3.3v电源,我们使用LC滤波器对其进行滤波,然后将其传递至低压降稳压器。这为我们提供了一个非常好的,干净的麦克风电源,从而消除了很多噪音问题。


这个项目的主要挑战是如何将音频从一个对讲机连接到所有其他对讲机。


我已经以两种不同的方式实现了这一点。您可以使用简单的哈希定义轻松地在代码之间切换。


第一种方法是使用UDP广播。UDP广播是一种非常简单的机制。您将UDP数据包发送到一个特殊的IP地址,并且您的路由器将该数据包广播到网络上的所有其他设备。


我们可以安全地在UDP数据包中发送多达1436个字节,因此,如果我们以16KHz采样并使用大约90ms音频数据的8位采样。因此,我们需要每秒发送大约11个数据包。这完全在ESP32的功能范围内。


使用广播UDP的最大优点是,我们不需要了解对等方,我们只需广播一条消息,任何正在收听该消息的人都会收到它。我们也不需要所有都连接到的集中式服务器。所有繁重的工作都由路由器完成。


但是,我们应该意识到UDP的一些缺点:


UDP数据包的传递仅是最大的努力-无法保证有人会收到您发送的数据包。

也无法保证数据包的顺序-有人可能会完全随机地接收您发送的数据包。

对于这个项目,我选择忽略这两个问题。对于广播数据包,我们通常会停留在同一网络中,因此我们可能不会丢失太多数据包,并且我们的数据包也可能会以正确的顺序出现。如果他们不这样做,那么我们只会在音频上产生一点噪音和失真。


UDP广播的另一个主要优点是您可以在台式计算机或电话上接收数据包-因此创建不基于ESP32的其他客户端非常容易。


我实现传输的第二种方法是使用ESP-NOW。


ESP-NOW是Esppresif开发的协议,它使多个ESP设备无需WiFi即可相互通信。


与UDP选项相比,这给了我们一个很大的优势,因为我们不需要WiFi网络就可以使Walkie-Talkie正常工作。


ESP-NOW的缺点是它具有250字节的小得多的数据包大小。这意味着我们需要每秒发送64次数据包。


我们还具有与UDP相同的缺点-尽最大努力发送数据包,并且不能保证数据包将以什么顺序到达。


但是,在我的测试中,它的表现还算不错。


另一方面,我们有相同的传输监听数据包。每次接收到数据包时,它都会通过我们的I2S输出将数据排队等待播放。I2S输出只是将采样输出到I2S放大器。


为了允许数据包花费更长的时间到达,我们在传输和I2S输出之间有一个缓冲区。在开始播放样本之前,我们花了少量时间,这给了我们一些空闲时间以允许数据包抖动。确实要付出一些音频等待时间的代价,考虑到所有因素,音频在制作后大约半秒钟就会播放。


总而言之,尽管该项目可行。质量并不令人惊奇,但是对于一个业余项目来说肯定足够了。


我们喜欢这个项目,鉴于几年前我们在使用ESP8266的对讲机中不太成功,因此看到了这一潜力,这是一个特别令人高兴的项目。


曾经使用ESP8266的失败方案



自几年前问世以来,ESP8266已成为我们无线电社群中如此重要的项目。超高速处理器和无线网络都在同一芯片上并以零售价出售的组合是不可抗拒的推动其内部ADC以高信号速率采样音频,并通过wi-fi网络流式传输。


结果远远不能令人满意,尽管使用信号发生器的早期结果似乎不错,但实际上却无法使用。大量噪声进入通道,因此产生的音频难以理解。看来,运行无线网络会导致电源电流突然而非常短的尖峰,这会对音频ADC造成严重破坏。


这是一次失败。但这是一种不公平的描述,因为我们可以看到其中存在着一个非常好的想法的根源。ESP8266对讲机可能带有外部ADC或尚待确定的滤波方案,应作为其结论之一。


小叔来啦:


将普通对讲机改为WIFI对讲机,有火腿小伙伴进行过这样的DIY么?

相关推荐

VS Code上也能玩转Jupyter Notebook,这是一份完整教程

点击上方"码农真经"关注,星标或者置顶22点24分准时推送,第一时间送达来源:公众号机器之心|编辑:真经君码农真经(ID:coder_experience)第115次推文图源:...

看开发一款AR眼镜产品都需要那些东东?

开发AR眼镜应用时,使用的操作系统和编程语言主要取决于目标设备和开发平台。以下是主流AR眼镜的开发系统和语言总结:一、操作系统WindowsHolographic设备:微软HoloLens系列特点:...

ONNX Runtime 黑科技曝光:一行 C++ 代码让 ResNet 起飞,GitHub 已爆星

1.ONNXRuntime简介ONNXRuntime(ORT)是由微软开发的高性能推理引擎,支持跨平台(Windows/Linux/macOS)运行ONNX格式的深度学习模型。其核心优势...

海康工业相机SDK开发介绍

这篇文章,我来介绍一下海康工业相机SDK的使用方法。如果是老手,你可以跳过,如果是新手,可以看看,欢迎拍砖要使用海康的工业相机SDK,要先下载机器视觉工业相机SDKV3.2.0版本Runtime组...

深圳机器视觉相机USB3.0数字相机及千兆网口相机有什么特点?

四元数机器视觉相机的目的是将通过镜头投影到传感器的图像传送到能够储存、分析和(或者)显示的机器设备上。那么深圳机器视觉相机USB3.0数字相机及千兆网口相机有什么特点?相信不少人是有疑问的,今天深圳四...

蚁利智慧工地展厅控制系统:多媒体交互软件及中控系统开发方案

来源:蚁利科技以下是一篇关于隆兰智慧工地安全体验数字展厅多媒体互动软件及中控系统开发技术的技术方案框架,包含核心代码示例和实现思路:---#隆兰智慧工地安全体验数字展厅开发技术方案##一、系统架构...

C#程序员在工控行业到底有没有立足之地

当年忐忑的从互联网卷到工控圈时也一脸懵逼,结果发现咱C#程序员在工控界简直是万金油!今天就用我踩坑几年的经验给你们盘一盘转行路线。一、能撸哪些岗位?上位机开发工程师(工控圈入场券):天天和PLC、传感...

C#一行代码搞定OCR

本文将介绍如何使用C#代码来实现OCR功能。一、在VS中新建一个控制台应用,选择.net框架,.net6.0~8.0均可。创建好的项目如下图,然后在配置管理器中修改活动解决方案平台为x64,以及项目平...

在 C# WinForms 中 OpenCvSharp 进行边缘检测:Laplacian 算子介绍

边缘检测在计算机视觉和图像处理领域中具有非常重要的作用,它是物体识别、特征提取的基础。Laplacian算子是一种经典且常用的边缘检测方法,它对噪声非常敏感,能够很好地检测到图像中的细节和边缘。本文...

C# OpenCV机器视觉:对位贴合

在热闹非凡的手机维修街上,阿强开了一家小小的手机贴膜店。每天看着顾客们自己贴膜贴得歪歪扭扭,不是膜的边缘贴不整齐,就是里面充满了气泡,阿强心里就想:“要是我能有个自动贴膜的神器,那该多好啊,就可以让顾...

C# OpenCV机器视觉:缺陷检测

在一个阳光明媚的早晨,阿强正准备享受他的一杯咖啡,突然接到了老板的电话。“阿强,我们的生产线出现了问题!有几个产品的质量不合格,客户投诉不断!你能不能想办法解决这个问题?”阿强一听,心中一紧,随即灵光...

CHAPTER II 第二章

CHAPTERIICHAPTERII第二章Iresistedalltheway:anewthingforme...

万字图文,将"类加载器"与"双亲委派机制"一网打尽

引子大家想必都有过平时开发springboot项目的时候稍微改动一点代码,就得重启,就很烦网上一般介绍2种方式spring-boot-devtools,或者通过JRebel插件来实现"...

Java:Java中的微服务

  如果你想使用Java中的云原生微服务快速实现大规模可扩展性,那么不需要重新发明轮子。一些创新工具可以帮助你。通过Java培训课程,在Java(软件开发中最常用的编程语言)方面打下坚实的基础,更好地...

"类加载器"与"双亲委派机制"一网打尽

引子大家好,我是呼噜噜,大家想必都有过平时开发springboot项目的时候稍微改动一点代码,就得重启,就很烦网上一般介绍2种方式spring-boot-devtools,或者通过JRebel插件...