安卓通过USB控制Arduino
玩了几两个月的安卓。正好朋友最近送了个酷比魔方的平板给我玩,还送了OTG线。想试着用平板控制Arduino。
国内的网站上资料挺少,大部分通信都是用蓝牙。翻墙去找资料,几乎所有的Project都弄的特别复杂。要么是安卓程序开发时要用第三方的lib,要不就是板子限制为UNO或者Mega,涉及特定板子的库函数。想想USB-Serial的通信不应该那么复杂吧。花了几天看官网的资料和别人的代码,终于写了最简单的程序。
Arduino板子用的是Duemilanove。连接6个LED。平板式酷比魔方U25GT,应该是最便宜的平板吧。不过不影响我继续玩下去。
Arduino和安卓平板的双向通信都没问题。但是我在安卓的编程经验不多,还不会做Message Listener。所以只做了单向的控制,数据有从Arduino回发,但选择了不接收。等以后更新了再分享一次。
视频链接:
http://v.youku.com/v_show/id_XNjM1NzY3NDgw.html
http://www.youtube.com/watch?v=10ipoMyAIWo
这里是Arduino代码:
int ledpin[6]={3,5,6,9,10,11};
String rx="";
byte b = 0;
char c = 'a';
boolean rx_done = false;
void setup(){
pinMode(3,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
Serial.begin(9600);
}
void loop(){
while(Serial.available()){
char c = (char) Serial.read();
rx += c;
delay(2);
}
if(rx != ""){
int pin_number = rx.charAt(0)-48;
int pin_state = rx.charAt(1)-48;
digitalWrite(ledpin[pin_number],pin_state);
Serial.println(rx);
rx ="";
}
delay(1000);
}