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

时间:2011-05-26 15:12:28

标签: php android serial-port arduino

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

即,

  • 如果我在串行监视器中输入0,则指示灯13处的指示灯亮起
  • 如果我在串口监视器中输入1,则LED熄灭。

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

  • 首先,如何创建一个PHP服务器以实现所有这些功能
  • 如何在我的Android设备上打开localhost,使其像本地服务器一样
  • 如何使服务器与串口交互

我不是要求所有的代码和项目,只是告诉我的方式,我会没事的。

2 个答案:

答案 0 :(得分:5)

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

您有多种选择

0)蓝牙相当干净,目前处于20美元的范围内,因此它既是最具成本效益的选择之一,也是最不可能冒险破坏手机硬件的风险之一 - 但是你说你不希望这样。 / p>

1)某些手机(如G1)具有低压串行端口,可通过[rooting]安装定制内核来启用。你需要电平转换电路作为arduino的输出电压,而低电平仍然太高,手机无法处理。您还需要通过修改完整的耳机适配器或从某个地方(例如sparkfun)获取特殊的HTCUSB连接器。

2)有些手机可以通过[rooting和]安装自定义内核来充当usb主机。它们不提供usb总线电源,但是使用arduino你可以将所有东西都打开,所以连接一个单独的电源应该相当简单。一些最近的平板电脑开箱即用的USB主机模式。 编辑:对于以后的Android版本,可能会提供非root USB主机API和USB总线电源,但这种情况因型号而异,并且不一致

3)您可以在arduino上使用USB主机屏蔽,如果设备运行Android 2.3.4或更高版本,请使用Gooogle的官方ADK协议与Android设备上的软件通信;如果Android版本更早,那么有非官方项目可以与ADB协议进行对话,并且应该与大多数设备一起工作(可能只需要很少的修改)。两者都被设计为保留在Android设备上的非特权用户空间 - 没有生根,没有内核修改。

4)您可以使用android端的软件调制解调器构建一个低波特率调制解调器并通过其耳机插孔与Android设备通话。

5)你可以在arduino上放置一个无线以太网盾

答案 1 :(得分:3)

我个人没有Arduino的经验。但Cellbots以上的人有很多项目使用Android手机作为小机器人的大脑,他们在大多数人使用Arduino。一切都是开源的,你可以找到可以帮助你的例子。