能够做一副对讲机其实一直是我小时候的梦想,今天就来和大家分享一个小哥做的号称“世界上第一台”罐头对讲机项目。
62f2d35291674a82a60c5ad6f5f9c273.png
最后的内部结构大概是这个样子:
1363c0f782c24418897a266090549065.png

起因

227fa78d28c3416a9d71639ca9ea9acf.png
项目的主人公是个逗比,制作罐头对讲机的初衷是因为自己的香蕉电话坏了,导致错过了一个非常重要的电话,一生气,决定升级一下自己的电话。
d49e24ce4ab44cf2a265f106683170d2.png
准备工具和材料
工具

  • 电钻
  • 铁皮剪
  • 热熔胶枪
  • 尖嘴钳
  • 圆头锤

材料

  • DFRduino Uno R3
  • Gravity IO 扩展板(可选)
  • 模拟声音传感器(麦克风)
  • 386AMP音频放大器模块(扬声器)
  • 6xAA电池座,带DC2.1电源插孔(5号电池6枚)
  • NRF24L01 + PA + LNA(带天线)
  • 按钮开关
  • 铝制罐头
  • 跳线

处理罐头
在连接电子设备之前,我们需要在罐头上先打两个孔。
一个用于天线,另一个用于按钮。
先来给天线钻孔。把天线板放到罐头里面,测量好距离,并用白板笔做好标记,然后在需要钻孔的地方压出一个小凹痕,方便等下钻孔。
根据你使用的天线的不同,需要钻的孔的大小也可能不一样,为了确保尺寸合适,我拿天线上的螺纹和钻头的尺寸进行了比较。
一旦确定好了尺寸、标记好了孔的位置,用电钻快速钻进去,但不要太用力。罐头的壁很薄,钻完之后可以用铁皮剪清理一下孔的边缘,注意手不要被割到。
接下来是给按钮开关钻孔,具体操作如下:
85fd7f65a6ad429ea1cf9e41d4e269fb.png
在五个红色叉叉的位置打孔。
6bd8c2a1b8c74c2d9917fdbe3e25e14a.png
df3c313164d74224bd69c30362ad41b9.png
用铁皮剪剪掉多余的部分,最后剪成一个圆圈的形状。
7c702eae901043fa82bdf7b7a0760d7d.png
852aa789c007443ca780d994c3bfc91c.png
我们预计达到的效果是这样的:
b995d01b9bce427685ba24473d3169d7.png

粘合组件
4acdde0117f84767acf34f48f71e669c.png
现在让我们把组件粘上!
先插上热胶枪,等它热起来,这个时候可以放点音乐。
然后,用胶枪把天线固定在罐体上。
这里建议在天线的金属部分涂上胶水,这样它就不会直接与罐子接触。
注意:
  对于所有这些组件,可以多用一点热熔胶,不要让任何模块有机会与罐子接地。如果测试的时候听到嗡嗡声或哔哔声,则可能是接地故障。
将DFRduino Uno粘到罐子的底部,然后装上电池组。这是所有部件中最重的部分,建议将胶水涂在边缘上,然后把罐子放到你想放的地方,保持天线朝上。
为了方便和美观,我们把扬声器模块粘在电池组的一边,麦克风模块粘在另外一边,像这样:
54cbc75c61234dc99edf45fca40e7bf4.png
这边需要重点强调的一点是一定要多用点胶水,保证没有任何引脚与罐头直接接触。
电路接线
ebaf16f6ce364422bb82dff51b17071d.png
c11289c3395b4c6584476618bfad2116.png
模块都牢牢地粘好之后,我们开始接线。
根据上面的原理图,将所有的跳线连接到相应的引脚。(下面提供基于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引脚;
  • 这里使用的音频放大器不管它插在哪里,只要有电就行。重要的是你用于音频传输的电线,它默认910引脚(用于左音频和右音频);
  • 天线的CECSE引脚总是分别连接到引脚78(允许两个方向的无线电信号)。
希望这些信息可以帮助你在任何电路板上都有可以连接好电路。

烧录代码
f70ea9c1cd2241c58c023d5433b1607a.png
d4be69d384b64d1e94228128992d1dda.png
借助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变暗。
如果上面的情况都出现了,那么程序正确运行了,说明各个模块的连接也没有问题。

实地测试
6aeb47a988404bfe934438bec069741d.png
为了测试它,我们需要把两个罐头的开关都打开。按下其中一个罐子上的按钮,使麦克风发出一些噪音。你能听到另一个罐子传来的声音吗?
同样在另一个罐子上也试试。
听到什么了吗?如果听到了,说明你成功了!

注意:

  如果出现干扰或嗡嗡声,请检查接地问题。确保没有任何引线接触到罐子,并且组件之间有足够的胶水。尽量避免相互缠绕,因为这会增加干扰。
我还建议用电工胶带覆盖天线的金属部分,以防止它接地到罐子上。
如果你测试下来有效的话,接着测试一下距离。
如果没有任何阻挡信号的东西,通信的有效距离应该可以达到1000米。
d0e0917c13f0475e8562e2a754ede1b7.png
bc187ca41b634c1caa9b4a2f7de1af53.png

参考资料
[1] 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/
项目作者:Facio Ergo Sum
译:Roy
转载请注明作者名称及出处!