如何使Android和Arduino在没有无线模块的情况下进行通信


How to make Android and Arduino communicate without a wireless module

我开发了一个Arduino应用程序,可以通过串行监视器控制LED 13。

也就是说,

  • 如果我在串行监视器中键入0,则引脚13上的LED将亮起
  • 如果我在串行监视器中键入1,LED将熄灭

现在我想用我的安卓手机做这一切。我遇到的问题是:

  • 首先,如何创建一个PHP服务器来解决所有这些问题
  • 如何在我的Android设备上打开本地主机,使其像本地服务器一样运行
  • 如何使服务器与串行端口进行交互

我并不是要所有的代码和项目,只是给我指路,我会没事的。

大多数Android和Arduino设备在直接"开箱即用"时无法相互通信-需要对附加硬件和/或系统软件进行修改。

有多种选择

0)蓝牙相当干净,现在在20美元的范围内,所以它既是最具成本效益的选择之一,也是最不可能损坏手机硬件的选择之一——但你说过你不想要这样。

1) G1等一些手机具有低电压串行端口,可以通过[扎根并]安装自定义内核来启用。你需要电平转换电路,因为arduino的输出电压在低电平时仍然太高,手机无法处理。您还需要通过修改完整的耳机适配器或从类似sparkfun的地方获得一个特殊的HTCUSB连接器。

2) 一些手机可以通过[扎根并]安装自定义内核来充当usb主机。它们不提供usb总线电源,但有了arduino,你就可以把所有东西都放在外面,所以布线一个单独的电源应该相当简单。最近的一些平板电脑具有开箱即用的usb主机模式编辑:对于更高版本的Android,可能会提供非根USB主机API和USB总线电源,但这因型号而异,并且不一致

3) 您可以在arduino上使用USB主机屏蔽,如果设备运行Android 2.3.4或更高版本,则使用Gooogle的官方ADK协议与Android设备上的软件进行对话;如果android版本更早,那么有一些非官方项目会讨论ADB协议,应该可以与大多数设备配合使用(可能需要进行小的修改)。两者都被设计为保留在安卓设备上的非特权用户空间中——没有根,没有内核修改。

4) 你可以建立一个低波特率的调制解调器,并通过其耳机插孔与安卓设备通话,使用安卓侧的软件调制解调器。

5) 您可以在arduino 上安装无线以太网屏蔽

我个人没有使用Arduino的经验。但Cellbots的人有很多项目使用安卓手机作为小型机器人的大脑,他们在大多数项目中使用Arduino。所有的东西都是开源的,你可能会找到对你有帮助的例子。

相关文章: