在这个项目中,我们将使用很久以前维修过的现有FM广播,借助Arduino和Processing,将其转换为使用Phone控制的智能无线FM广播。
我们可以使用相同的步骤将任何手动操作的电子设备转换为智能设备。每个电子设备都借助信号进行操作。这些信号可能是电压或电流。信号可以直接在用户交互的帮助下手动触发,也可以在无线设备的帮助下手动触发。
在该项目结束时,我们将能够将大多数常见的电子设备(例如按按钮工作的收音机)转换为可由无线智能手机通过蓝牙控制的智能无线小工具。为了实现这一目标,我们必须做两件事。
1.预测现有机械按钮系统中信号的产生方式。
2.借助一种小型附加电路,找出触发相同信号的方法。
所以,让我们开始吧…
所需组件:
对于该项目,可以选择旧的或未使用的电子设备,例如收音机,电视,CD播放器或家庭影院。实际组件可能会因您选择的设备而异。但是要使其成为无线设备,我们需要一个微控制器(它是Arduino)和无线介质(一个HC-05蓝牙模块)。
逆向工程:
好的,所以现在我选择了一个很久以前就停止工作的旧FM广播播放器。当我打开它时,我发现它上的按钮已经停止工作。这将是我们工作的理想设备,因为我们将不再需要任何按钮,因为我们将使其完全无线化。下图显示了我打开的收音机。
这是我收音机的按钮设置(上图)。如您所见,收音机有八个按钮可供输入。您还可以注意到板上有八个电阻。您可以从中得出什么结论?是的,每个电阻均连接至开关。现在,让我们看一下板子的背面:
您可以借助PCB迹线来找出连接,但是如果您仍然感到困惑,可以在连接中更多地使用毫米,并找出电路。该板具有三个端子(红色圆圈),这些端子将信号提供给主FM无线电板。这些引脚分别标记为S1,S2和1.7V。这意味着从主板向该板发送了1.7伏的恒定电压,并且当用户按下任何按钮时,相应电阻上的电压将下降,并且通过引脚S1和S2将可变电压发送回去。这就是我们电子设备中大多数按钮的工作方式。现在,既然我们已经弄清楚了它是如何工作的,那么让我们使其无线化。
工作说明:
因此,现在使其无线,我们只需在S1两端施加0-1.7V的电压并将主板接地即可。有几种方法可以用来模拟微控制器的按钮设置。
我们可以使用数字电位器,使其在编程时和需要时提供板上电阻。但这会使事情变得复杂和昂贵,因为与Digipot一起使用需要SPI,而Digipots则很昂贵。
我们还可以使用晶体管电阻器网络,其中每个不同值的电阻器都由晶体管激活,而晶体管又由微控制器本身控制。但是对于八个按钮再次执行此操作,电路将变得复杂。
这样做的简单方法是直接从微控制器生成所需的可变电压,并将其馈送到信号引脚。可悲的是,Arduino仅具有ADC而没有DAC。但是,幸运的是我们在Arduino中有PWM。借助于简单的RC低通滤波器,可以使该PWM用作可变电压。
上面显示了一个低通滤波器,这里的关键组件是电容器,该电容器将使整个脉动信号接地,并且将纯直流电作为输出发送。因此,来自Arduino的PWM信号必须通过低通滤波器发送,然后提供给FM收音机的信号板。
如上所示,该电路很容易构建在点板上。这里的黑线用于接地,左侧的蓝色和绿色线将被发送到我们的FM板S1(绿色)和S2(蓝色),而右侧的线将从Arduino的Pin 9和10(参见上图)并通过低通滤波器传递到FM板。蓝牙模块使用引脚11和12作为Rx和TX。
现在,我们可以生成0伏至1.7伏的PWM信号,并了解我们的无线电在不同电压水平下的表现。下一步是使该设备无线化。
电路连接:
该示意图显示了低通滤波器和HC-05蓝牙模块的完整设置,该模块已连接至Arduino Mega,用于蓝牙控制FM收音机。
Arduino程序:
Arduino的程序在下面的代码部分中给出。您也可以在此处使用此程序测试电子设备的可变电压范围。
在开始为电台构建自己的Android应用之前,建议先通过终端蓝牙监控器应用测试无线功能,如以下视频所示。查看本文以在Arduino上配置Bluetooth Terminal App。一旦对它的工作充满信心,我们就可以制作自己的Android应用。
使用处理功能制作Android应用程序:
使我们的设备成为无线设备很酷,但是我们也可以通过创建我们自己的Android应用程序为我们的设备添加一些个人风格。我们可以在自动安排的时间控制设备,也可以根据您的唤醒警报对其进行控制。回家后,您甚至可以使收音机播放您喜欢的频道。想象力是您的极限。但是目前,我们将使用处理功能创建一个简单的用户界面,该应用程序只有几个按钮,您可以使用这些按钮来控制FM收音机。
Processing 是开放源代码软件,艺术家可以使用它进行图形设计。该软件用于开发软件和Android应用程序。
此处给出了用于控制此无线FM广播的Android应用的处理代码:
- Android App处理代码以控制FM广播
首先,我们在PC上以JAVA模式构建了此应用,以对其进行正确测试,这是相同的处理代码。右键单击它,然后单击“将链接另存为..”以下载代码文件。然后在“处理”软件中打开文件,然后单击“运行”按钮以检查其在手机中的外观。您需要安装“处理”软件来打开*.pde文件。
在以JAVA模式测试了App之后,我们可以通过更改为Processing窗口右上角的Android选项卡,轻松将其转换为Android模式。为了使我们的Android Phone能够打开蓝牙并自动连接到HC-05模块,我们需要在现有的Java程序中添加以下代码,以使其成为Android应用。我们已经在上面的链接中提供了完整的Android代码,因此您可以直接使用它。
以下是一些启用蓝牙功能的头文件:
导入android.content.Intent; 导入android.os.Bundle; 进口ketai.net.bluetooth。*; 导入ketai.ui。*; 进口ketai.net。*; 导入android.bluetooth.BluetoothAdapter; 导入android.view.KeyEvent;
下面几行使用 Ketai 库与我们的电话蓝牙适配器进行通信,我们将适配器命名为 bt 。
BluetoothAdapter蓝牙= BluetoothAdapter.getDefaultAdapter(); Ketai蓝牙bt;
代码下面的部分将触发向用户发出请求,要求他们在应用程序启动时打开蓝牙。
//要在开始*********上启动BT无效onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState); bt = new KetaiBluetooth(this); } void onActivityResult(int requestCode,int resultCode,Intent data){bt.onActivityResult(requestCode,resultCode,data); } // ************
在这里,我们指示Android应用程序必须与之连接的蓝牙设备。行 bt.connectToDeviceByName(selection); 从我们的设置功能中获得一个设备名称。由于我们的蓝牙设备名为“ HC-05”,因此在设置中添加了以下行。该名称将根据您的蓝牙模块名称而有所不同。
//要选择蓝牙设备********** void onKetaiListSelection(KetaiList klist){字符串选择= klist.getSelection(); bt.connectToDeviceByName(selection); //现在处理列表klist = null; } // ************
bt.connectToDeviceByName(“ HC-05”);
您可以在PC的处理代码(Java模式)中进行这些更改,也可以直接使用上面链接中提供的我们的Android处理代码。然后使用数据线将手机直接连接到笔记本电脑,并在手机上启用USB调试。现在,在PC的处理窗口中单击“播放”按钮,该应用程序将直接安装在您的Android Phone上并自动启动。就是这么简单,所以继续尝试一下。
下图显示了我们的Android应用程序UI及其编码窗口。观看视频,了解并在Android Phone和计算机中运行代码。
就是这样,我们已经将旧的FM收音机变成了可以由Android应用程序控制的现代无线设备。我希望这会帮助人们上班,但是如果您像往常一样需要任何指导,可以使用评论部分,我们将很乐意为您提供帮助。