AndroidとArduinoをUSBホストシールドを使って通信するMicroBridgeを利用して
チョロQを操縦するアプリのソースを公開しました。
先人の知恵をお借りすることで簡単に操縦が出来ました。
http://code.google.com/p/iwatan-lab/downloads/list
ArduinoにMicroBridgeのライブラリを追加する方法は
AndroidとArduinoをUSBホストシールドでつなぐ(非ADK編)
を参照してください。
Google Codeで公開しているのはAndroid側のアプリのソースです。
Arduino側のソースはここを参考にさせて頂いているので改変部分のみ公開します。
以下のソースに参考元からコピペで追加してください。
- void setch(byte bb)
- void setbit(byte bb)
- void execpwm()
- void setpwm(int pwm)
- void runpwm()
- void sendpwm()
#include <spi.h>
#include <adb.h>
#define LED 2
// Adb connection.
Connection * connection;
int data[15];
int g = 0;
byte b = B001111;
// Event handler for the shell connection.
void adbEventHandler(Connection * connection, adb_eventType event, uint16_t length, uint8_t * data) {
// Data packets contain two bytes, one for each servo, in the range of [0..180]
if (event == ADB_CONNECTION_RECEIVE) {
char ch = data[0];
Serial.println(ch, DEC);
if (ch < 0x20) {
setbit(ch);
} else {
setch(ch - 0x20);
}
}
}
void setup(){
Serial.begin(57600);
Serial.println("Ready");
pinMode(LED , OUTPUT);
// Initialise the ADB subsystem.
ADB::init();
// Open an ADB stream to the phone's shell. Auto-reconnect
connection = ADB::addConnection("tcp:4567", true, adbEventHandler);
}
void loop(){
// Poll the ADB subsystem.
ADB::poll();
}
ここまでやっておいてなんですが、やはり標準のコントローラーの方が操縦しやすいです。