我知道已经有一段时间了,但无论如何,我做了一个简短的库来做到这一点。这是你如何使用它:
Arduino arduino = new Arduino(Context); @Override protected void onStart() { super.onStart(); arduino.setArduinoListener(new ArduinoListener() { @Override public void onArduinoAttached(UsbDevice device) { // arduino plugged in arduino.open(device); } @Override public void onArduinoDetached() { // arduino unplugged from phone } @Override public void onArduinoMessage(byte[] bytes) { String message = new String(bytes); // new message received from arduino } @Override public void onArduinoOpened() { // you can start the communication String str = "Hello Arduino !"; arduino.sendMessage(str.getBytes()); } }); } @Override protected void onDestroy() { super.onDestroy(); arduino.unsetArduinoListener(); arduino.close(); }
而Arduino方面的代码可能是这样的:
void setup() { Serial.begin(9600); } void loop() { if(Serial.available()){ char c = Serial.read(); Serial.print(c); } }
你可以检查一下 的 github上 强> 页面,如果你有兴趣。
您引用的项目 http://android.serverbox.ch/?p=549 在评论中只适用于最新的Arduino电路板,例如Uno(或其他使用其实现的CDC-ACM串行USB方案的电路板)。
较旧的Arduino电路板(例如您的终端电路板)使用FTDI USB串行芯片,这需要不同的USB操作。
你可能能找到一些关于FT232系列USB串行转换器与Android的USB主机api接口的东西(FTDI部件广泛用于嵌入式系统,所以你不会发现问题),或者你可以获得Uno板来尝试你已经拥有的代码。