0

我为 arduino 编写了一个简单的固件,以将它通过串行接收到的任何传入数据复制到串行输出。像这样的东西: int serialData = 0;

void setup()
{
  Serial.begin(9600);  
}

void loop()
{
  if (Serial.available() > 0)
  {
    serialData = Serial.read();
    Serial.println(serialData);
  }  
}

现在我希望它使用 microUSB->OTG 电缆 + USB->microUSB 电缆连接到我在 Android 4.3 上运行的 Nexus 7。我安装了一个串行监视器应用程序(https://play.google.com/store/apps/details?id=jp.ksksue.app.terminal&hl=en)并希望在其上写入串行数据。

一旦我将它连接到平板电脑,我最终会收到键盘通知。Android 将此连接识别为键盘。这会折叠 android 键盘,因为它检测到外部键盘。但是我可以选择粘贴在输入框上。这似乎有效。

是否可以

  • 禁用在android中安装键盘。或者
  • 使 arduino 被识别为键盘以外的东西。
4

3 回答 3

2

编辑/usr/share/arduino/hardware/arduino/cores/arduino/USBDesc.h,并注释掉该行

#define HID_ENABLED

所以它改为:

/* #define HID_ENABLED */

这是编译到每个草图中以启用 USB 支持的代码的一部分,并且此更改将阻止 HID 支持被编译到未来的草图中。您需要成为 root 用户或使用 sudo 才能将更改写入文件。(进行此更改后是否需要重新启动 Arduino IDE?不确定。)在 Windows 或 OS X 上,您需要确定 Arduino 支持文件的安装位置并编辑类似文件。

关键字:连接 Arduino 时禁用 Android 软键盘

于 2014-02-18T01:10:16.547 回答
0

我想你有莱昂纳多,对吧?

AFAIK 您不能禁用 KeyboardEmulation 但您可以尝试以下方法之一:

  • 使用 USB -> 串行电缆并使用 Leonardo 的第二个串行端口
  • 如果您的手机已root,请尝试使用 adb 或 Shell Emulator 禁用 USB 键盘驱动程序
  • 修改 Arduino 固件并移除仿真部分(如果您有另一个 Arduino 来重新编程您的 Leonardo)

我想这就是你所能做的。

于 2013-10-08T13:31:32.830 回答
0

解决此问题的方法是安装另一个键盘应用程序,例如 Go 键盘或 swype。这会在将 arduinp 连接到 android 设备时发出通知,您可以从那里关闭外部硬件并重新打开屏幕键盘。不持久,但有效!

于 2013-10-09T20:19:07.120 回答