Bonjour à tous,
je commence à m'arracher les cheveux sur ce problème, j'ai besoin de vos lumières =(
je possède une carte Arduino Mega ADK et le module "Mega Sensor Shield" de Tinkerkit.
J'essaie de faire fonctionner le programme DemoKit avec un téléphone Samsung Galaxy Nexus.
Le programme Android tourne sur le Nexus, sur la carte Arduino j'ai mis un programme "light" du DemoKit" avec une seule Led branchée sur le O1 et que j'allume ou éteint depuis le Nexus (en appuyant sur le bouton On/Off Relay1 de la page "Out" pour ceux qui connaissent l'appli DemoKit).
Voici le programme que j'utilise :
#include <Max3421e.h>
#include <Usb.h>
#include <AndroidAccessory.h>
#define LED1 10
AndroidAccessory acc("Google, Inc.", // Manufacturer
"DemoKit", // Model
"DemoKit Arduino Board", // Description
"1.0", // Version
"http://www.android.com", // URI
"0000000012345678"); // Serial
void setup();
void loop();
void init_led()
{
pinMode(LED1, OUTPUT);
}
void setup()
{
Serial.begin(115200);
Serial.print("\r\nADK Started\r\n");
init_led();
// Power On Android Accessory interface and init USB controller
acc.powerOn();
}
void loop()
{
byte data[3];
if (acc.isConnected()) {
int len = acc.read(data, sizeof(data), 1);
if (len > 0) {
if (data[0] == 0x3) {
if (data[1] == 0x0) {
digitalWrite(LED1, data[2] ? HIGH : LOW);
Serial.print("Toggle LED\r\n");
}
}
}
}
delay(10);
}
Tout fonctionne correctement si j'utilise la version "Arduino1.0-Beta 1"
Si j'utilise le même code sur la version "Arduino1.0" j'obtiens ces erreurs à la "vérification" :
In file included from sketch_mar09c.cpp:3:
C:\Documents and Settings\[...]\WP1\IO android\arduino-1.0\libraries\AndroidAccessory/AndroidAccessory.h:71: error: conflicting return type specified for 'virtual void AndroidAccessory::write(uint8_t)'
C:\Documents and Settings\[...]\WP1\IO android\arduino-1.0\hardware\arduino\cores\arduino/Print.h:48: error: overriding 'virtual size_t Print::write(uint8_t)'
Je précise que les 2 versions possèdent exactement les mêmes dossiers "AndroidAccessory" et "USB_Host_Shield" qui proviennent de l'"arduino_bundle_ADK" (comme indiqué ici : http://labs.arduino.cc/ADK/AccessoryMode) dans leur dossier "librairies".
Ainsi que le même dossier "CapSense", issu du "CapSense04.zip" censé être compatible avec la version 1.0.
Je comprend bien qu'il y a eu beaucoup de changements entre la version 0023 et la 1.0, mais pourquoi un programme qui fonctionne sur la 1.0beta ne fonctionne pas sur la 1.0 "officielle" ??? :~
Merci pour l'aide que vous pourrez m'apporter, c'est très important pour moi.