能够做一副对讲机其实一直是我小时候的梦想,今天就来和大家分享一个小哥做的号称“世界上第一台”罐头对讲机项目。

▲ 文末有完整视频
最后的内部结构大概是这个样子:
项目中的硬件由DFRobot友情赞助!
起因

项目的主人公是个逗比,制作罐头对讲机的初衷是因为自己的香蕉电话坏了,导致错过了一个非常重要的电话,一生气,决定升级一下自己的电话。

准备工具和材料
工具
-
电钻 -
铁皮剪 -
热熔胶枪 -
尖嘴钳 -
圆头锤
材料
-
DFRduino Uno R3 -
Gravity IO 扩展板(可选) -
模拟声音传感器(麦克风) -
386AMP音频放大器模块(扬声器) -
6xAA电池座,带DC2.1电源插孔(5号电池6枚) -
NRF24L01 + PA + LNA(带天线) -
按钮开关 -
铝制罐头 -
跳线
处理罐头
在连接电子设备之前,我们需要在罐头上先打两个孔。
一个用于天线,另一个用于按钮。
先来给天线钻孔。把天线板放到罐头里面,测量好距离,并用白板笔做好标记,然后在需要钻孔的地方压出一个小凹痕,方便等下钻孔。
根据你使用的天线的不同,需要钻的孔的大小也可能不一样,为了确保尺寸合适,我拿天线上的螺纹和钻头的尺寸进行了比较。
一旦确定好了尺寸、标记好了孔的位置,用电钻快速钻进去,但不要太用力。罐头的壁很薄,钻完之后可以用铁皮剪清理一下孔的边缘,注意手不要被割到。
接下来是给按钮开关钻孔,具体操作如下:
在五个红色叉叉的位置打孔。
用铁皮剪剪掉多余的部分,最后剪成一个圆圈的形状。

我们预计达到的效果是这样的:
粘合组件
现在让我们把组件粘上!
先插上热胶枪,等它热起来,这个时候可以放点音乐。
然后,用胶枪把天线固定在罐体上。
这里建议在天线的金属部分涂上胶水,这样它就不会直接与罐子接触。
注意:
对于所有这些组件,可以多用一点热熔胶,不要让任何模块有机会与罐子接地。如果测试的时候听到嗡嗡声或哔哔声,则可能是接地故障。
将DFRduino Uno粘到罐子的底部,然后装上电池组。这是所有部件中最重的部分,建议将胶水涂在边缘上,然后把罐子放到你想放的地方,保持天线朝上。
为了方便和美观,我们把扬声器模块粘在电池组的一边,麦克风模块粘在另外一边,像这样:
这边需要重点强调的一点是一定要多用点胶水,保证没有任何引脚与罐头直接接触。
电路接线
模块都牢牢地粘好之后,我们开始接线。
根据上面的原理图,将所有的跳线连接到相应的引脚。(下面提供基于Gravity扩展板的引脚接法)
天线
-
MI -> MISO -
MO -> MOSI -
SCK -> SCK -
CE -> Pin 7 -
CSE -> Pin 8 -
GND -> GND -
5V -> 5V
注意:
NRF24L01是一项出色的技术,但它对电流非常敏感。确保仅使用3.3V的电压为其供电。当使用扩展板时,只能连接到5V,否则会烧坏天线。
模拟声音传感器
-
Gravity Pins -> A0
扬声器
-
+(扬声器输入端) -> 9 或 10 (左或右音频) -
-(扬声器输入端) -> GND -
Gravity pins -> D0
按钮开关
-
NO -> A1 -
COM -> GND
因为我们用的是RF24Audio库[1],所以麦克风、扬声器、按钮开关和天线的引脚排列也是特定的:
-
麦克风的信号引脚总是对应A0引脚;
-
开关总是对应A1引脚;
-
这里使用的音频放大器不管它插在哪里,只要有电就行。重要的是你用于音频传输的电线,它默认9和10引脚(用于左音频和右音频);
-
天线的CE和CSE引脚总是分别连接到引脚7和8(允许两个方向的无线电信号)。
希望这些信息可以帮助你在任何电路板上都有可以连接好电路。
烧录代码
借助RF24Audio库,这个项目的程序非常简单。它甚至不到10行代码!
//Include Libraries
#include <RF24.h>
#include <SPI.h>
#include <RF24Audio.h>
RF24 radio(7,8); // Set radio up using pins 7 (CE) 8 (CS)
RF24Audio rfAudio(radio,1); // Set up the audio using the radio, and set to radio number 0.
void setup() {
rfAudio.begin(); // The only thing to do is initialize the library.
}
这里就不具体解释它是如何工作的了,如果你想了解有关Arduino IDE的更多信息以及此代码的含义,请查看此链接[2]。
你还需要安装RF24和RF24Audio库,可以在这里下载[3]。
安装好Arduino IDE后,下载提供的Arduino程序并打开代码。查看"Tools(工具)"下拉列表。确保将 "Programmer(编程器)" 设置为 AVR ISP,并将 “开发板” 设置为Arduino UNO(或您使用的任何板卡)。还要确认你的端口正确(应该显示"ArduinoUnoonCom#")
现在我们已经准备好烧录代码了。将USB电缆插入Arduino和计算机,然后单击IDE左上方的上载箭头。
代码上传,你可能会听到安静的嗡嗡声。
试着按下按钮,看看嗡嗡声是否会改变音调。
它还应使IO扩展板上的LED变暗。
如果上面的情况都出现了,那么程序正确运行了,说明各个模块的连接也没有问题。
实地测试
为了测试它,我们需要把两个罐头的开关都打开。按下其中一个罐子上的按钮,使麦克风发出一些噪音。你能听到另一个罐子传来的声音吗?
同样在另一个罐子上也试试。
听到什么了吗?如果听到了,说明你成功了!
注意:
如果出现干扰或嗡嗡声,请检查接地问题。确保没有任何引线接触到罐子,并且组件之间有足够的胶水。尽量避免相互缠绕,因为这会增加干扰。
我还建议用电工胶带覆盖天线的金属部分,以防止它接地到罐子上。
如果你测试下来有效的话,接着测试一下距离。
如果没有任何阻挡信号的东西,通信的有效距离应该可以达到1000米。
参考资料
RF24Audio库: https://tmrh20.github.io/RF24Audio/
[2]Arduino IDE的更多信息: https://www.arduino.cc/en/Guide/HomePage
[3]RF24和RF24Audio库: https://github.com/nRF24/RF24Audio
[4]项目来源: https://www.instructables.com/id/How-to-Make-a-Wireless-Tin-Can-Telephone-Arduino-W/
译:Roy
转载请注明作者名称及出处!
硬件军火库
项目制作涉及硬件可在军火库中找到
点击了解详情👆
大家有什么想法,或是对文章的指正,都欢迎在下方留言反馈!
欢迎大家点击阅读原文,到社区讨论关于项目的内容!
往期回顾
点击阅读👆
赶紧动手👇

