2013-10-06 55 views
0

我爲Arduino編寫了一個簡單的固件,用於將任何接收到的串口輸入數據複製到串行輸出。像這樣: int serialData = 0;Arduino被android公認爲鍵盤

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

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

現在我想將它連接到我的Nexus 7使用microUSB-> OTG線+ USB - > microUSB數據線在Android 4.3上運行。我安裝了一個串口監視器應用程序(https://play.google.com/store/apps/details?id=jp.ksksue.app.terminal&hl=en),並期望通過它編寫串行數據。

一旦我將它連接到平板電腦,我最終得到了鍵盤通知。 Android將此連接識別爲鍵盤。當它檢測到外部鍵盤時,這會摺疊安卓鍵盤。但是我可以選擇粘貼在輸入框上。這似乎工作。

是否有可能

  • 禁止安裝在機器人鍵盤。或
  • 使arduino被識別爲鍵盤以外的東西。

回答

0

解決此問題的方法是安裝另一個鍵盤應用程序,如Go鍵盤或Swype。這會導致在將arduinp連接到android設備時發出通知,從中可以關閉外部硬件並切換回屏幕鍵盤。不堅持,但工作!

0

我想你有萊昂納多吧?

AFAIK你不能禁用KeyboardEmulation但你可以嘗試以下操作之一:

  • 使用USB - >串行電纜並使用第二個串行端口萊昂納多
  • 的。如果你有一個根深蒂固電話,請嘗試使用亞行或shell模擬器
  • 修改Arduino的固件和刪除仿真部分禁用USB Keyboarddriver(如果您有其他的Arduino重新編程的萊昂納多)

我想這就是你所能做的。

+0

一個解決方法是,如果我安裝另一個鍵盤的應用,比如去或Swype的話,我得到一個通知,選擇輸入法。從那裏我可以禁用外部硬件,這將帶回我的鍵盤。適合我! – whizzzkid

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的軟鍵盤連接

+0

會試試這個,讓我們看看它是怎麼回事!.. – whizzzkid