Intereting Posts
Content Observer onChange метод, вызываемый дважды после 1 изменения курсора Google Play Store: приложения не требуют дополнительных специальных разрешений Правильное форматирование строки EditText Android.content.ActivityNotFoundException: активности не найдено для обработки Intent Android Shared Service? Странные артефакты графики в приложении для Android Android TaskStackBuilder startActivities открывает белый экран и иногда зависает на Samsung Galaxy S3 Android Camera2 API показывает обработанное изображение предварительного просмотра Как установитьTheme для активности во время выполнения? Он не работает с вызовом setTheme перед onCreate и setContentView Вам нужно добавить значок в APK при загрузке приложения в Google Play Как импортировать файлы в sdcard на эмуляторе в Android? Как загрузить любой тип файла в phonegap и jquery mobile? Как удалить представление родителя ребенка? андроид Пустой макет – eglSurfaceAttrib не реализован Получение допустимого указателя JNIEnv

Arduino ADK + android LED blink пример компиляции ошибок

Я пытаюсь сделать проект, используя плату arduino ADK http://arduino.cc/en/Main/ArduinoBoardADK и Android Ericsson Xperia Play, работающую под управлением Android 2.3.4. Для начала все, что я хочу сделать, это моргнуть водить от моего устройства Android, используя хороший учебник, который можно найти здесь http://allaboutee.com/2011/12/31/arduino-adk-board-blink-an-led-with- Your-phone-code-and-explain /. Мне удалось скомпилировать приложение для Android, но у меня большие трудности на эскизе arduino, я не могу разрешить импорт и не будет компилироваться в Windows7. Я понимаю, что есть некоторые проблемы с версией IDE arduino. Я пробовал компиляцию как на 0022, 0023, так и на 1.0. Чем дальше я мог бы пойти с кодом, я получал эти ошибки компиляции после редактирования AndroidAccessory.h :

 D:\arduino-0023\libraries\AndroidAccessory/AndroidAccessory.h:37: error: 'EP_RECORD' does not name a type D:\arduino-0023\libraries\AndroidAccessory/AndroidAccessory.h:50: error: 'EP_RECORD' has not been declared D:\arduino-0023\libraries\AndroidAccessory/AndroidAccessory.h:50: error: 'EP_RECORD' has not been declared D:\arduino-0023\libraries\AndroidAccessory/AndroidAccessory.h:64: error: 'USB_NAK_LIMIT' was not declared in this scope 

Я думаю, что прочитал всю документацию, и я не могу найти решение моей проблемы. Настройка этого – такая боль … Мне действительно нужно сделать эту работу. Заранее спасибо! 🙂

————————————————– ————————————————– ———————–

EDIT1: Решение, которое работало для меня, заключалось в компиляции эскиза на Linux (Ubuntu)

————————————————– ————————————————– ———————–

EDIT2: снова используя новейшую USB-библиотеку с сайта arduino, код НЕ компилируется. Я попытался скомпилировать IDE v22 и v1.0.2, работающие как с Windows 8, так и с Ubuntu 12.10 со следующими ошибками:

 E:\Development\arduino-1.0.2\libraries\UsbHost/AndroidAccessory.h: In function 'void setup()': E:\Development\arduino-1.0.2\libraries\UsbHost/AndroidAccessory.h:68: error: 'void AndroidAccessory::powerOn()' is private sketch_jan10a:16: error: within this context E:\Development\arduino-1.0.2\libraries\UsbHost/AndroidAccessory.h: In function 'void loop()': E:\Development\arduino-1.0.2\libraries\UsbHost/AndroidAccessory.h:66: error: 'int AndroidAccessory::read(void*, int, unsigned int)' is private sketch_jan10a:23: error: within this context 

Я думаю, если мы действительно знаем, что это EP_Record epRecord [8]; Все об этом может помочь. EP_Record не был объявлен в этом файле. Поэтому он не имеет типа. Когда я дал USB_NAK_LIMIT тип int, ошибка исчезла. Я не знаю, какой тип дать EP_Record? Единственное, о чем я могу думать, это то, что это может быть массив epRecord [8]; Выглядит как массив.

В то время как сайт разработчика Android полезен, он испытывает недостаток во многих отношениях. Один из них – это интерактивная справка для разработчиков. Кажется, это единственный источник ответов на вопросы, и большинство из них на самом деле не решают проблемы.

Библиотека была написана и протестирована в:

Arduino Alpha 0022

Вы пытались добавить это в ArduinoAccessory.h ?

 #if defined(ARDUINO) && ARDUINO >= 100 #include "Arduino.h" #else #include "WProgram.h" #endif 

Также я бы порекомендовал также прочитать это:

http://developer.android.com/guide/topics/usb/adk.html#installing

В нем конкретно упоминается, что вам нужна библиотека CapSense, а также для экрана Android на Arduino:

http://www.arduino.cc/playground/Main/CapSense

В нем также упоминается, что вам также необходимо установить avr-libc:

 sudo apt-get install avr-libc 

MAC OS X:

 fink install avr-libc avr-gcc avr-binutils avrdude 

EP_RECORD определяется как часть USB Host Shield 1.0. Тем не менее, он удаляется в библиотеке USB Host Shield 2.0.

См. Объявление здесь: http://www.circuitsathome.com/mcu/usb-host-shield-library-version-2-0-released

Таким образом, сообщения об ошибках, которые у вас есть с EP_RECORD, снова будут отображаться, если вы когда-либо обновляетесь до 2.0. Также ознакомьтесь с adk.h и adk.cpp с версии 2.0 на GitHub. Обновленный пример DemoKit 2.0 больше не использует AndroidAccessory.h / .cpp.

Звучит для меня, как будто вы просто пропускаете заголовок USB_Host_Shield / Usb.h , который определяет эти константы.

Поместите этот код, где другие определения указаны в Usb.h

 #define USB_NAK_LIMIT 32000 //NAK limit for a transfer. 0 means NAKs are not counted 

Поместите это сразу после typedef SETUP_PKT в Usb.h

 /* Endpoint information structure */ /* bToggle of endpoint 0 initialized to 0xff */ /* during enumeration bToggle is set to 00 */ typedef struct { byte epAddr; //copy from endpoint descriptor. Bit 7 indicates direction ( ignored for control endpoints ) byte Attr; // Endpoint transfer type. unsigned int MaxPktSize; // Maximum packet size. byte Interval; // Polling interval in frames. byte sndToggle; //last toggle value, bitmask for HCTL toggle bits byte rcvToggle; //last toggle value, bitmask for HCTL toggle bits /* not sure if both are necessary */ } EP_RECORD; 

Это звучит как вопрос, который я имел некоторое время назад. (Поэтому я использовал микромод, а не ADK с USBDroid) мне пришлось перейти в 3 библиотеки, сообщение об ошибке указало мне на них

// (Примечание: которые были скопированы в общую папку эскиза arduino, а не в обычное место для библиотек arduino). Это может быть ваша проблема?)

Затем я заменяю wiring.h на Arduino.h в каждом. (Примечание. Сделайте резервную копию всех, чтобы сохранить некоторую начинку, если это не ваша проблема). Скопируйте затем в папку с именем то же самое, но с номером перед именем таким образом, когда Вы перезагружаете программное обеспечение arduino, вы получите ошибку, игнорируете это и компилируете.

В результате работал USBdroid, как показано на http://www.youtube.com/watch?v=h7aa_6PNdRI. Продолжающаяся работа, но сделала меня счастливой. У меня все еще есть несколько проблем.

Привет, Аль

  1. Установите ArduinoADK BETA 001, который является последним ADK, доступным до настоящего времени.

  2. Разархивируйте его, и в папке arduino вы найдете библиотеки и библиотеки -V2.

  3. Если вы скопируете USB-хост в библиотеках, вы получите androidaccessory.h прочитайте приватную ошибку

  4. Скопируйте USB-хост из библиотек V 2, который вы сможете успешно скомпилировать. Я был.