Да, во многом Edison похож на маленький сервер с Linux. Хотя, в Edison есть еще MCU :)
Если стоит задача работать с ядром Linux, то возможно вас заинтересуют несколько пунктов из анонса IoT Developer Kit v1.5:
(1) New Intel Edison images + Open Source
Upgraded Yocto to 1.7.2 and new feature to read onboard battery level
Open sourced Intel Edison u-boot on Github*. For detailed information, please visit here
Open sourced Intel Edison kernel on Github*. For detailed information, please visit here
I2C поддерживается в MCU с помощью функций i2c_read и i2c_write (подробнее). В документации есть пример взаимодействия по I2C с сенсором MPU6050. Для инициализации I2C нужно будет запустить скрипт init_i2c8.sh из Linux.
Вы правы, код с использованием прерываний был бы теоретически более правильным для данной задачи. Данная заметка — это скорее «hello world» для MCU; простейший код, показывающий как с ним взаимодействовать.
Прерывания поддерживаются в MCU и настраиваются с помощью функции gpio_register_interrupt (подробнее, пример).
Edison Compute Module — вычислительная часть (CPU и MCU)
Edison Arduino Board — или другая плата расширения, которая даст возможность работать с логическим уровнем 5В.
плюс 4 проводка.
Вся программная часть для считывания расстояния — в программе для MCU SDK. Из-за специфики Edison Arduino Board еще нужно вызвать 2 команды ./init_DIG.sh для конфигурирования портов.
ADB может работать через TCP/IP. Если у виртуальной машины есть IP адрес, то с помощью adb connect <ip-адрес> её можно подключить. После этого виртуальная машина должна появится в списке, выдаваемом командой adb devices. Ну, а дальше как обычно: adb install file.apk.
Теоретически getevent/sendevent может записать и воспроизвести последовательность событий с акселерометра. На практике — зависит от устройства. Еще есть некий SensorSimulator, но на практике я его не пробовал.
Robolectric — это скорее инструмент для unit-тестов, а не функционального тестирования. Насколько я понял, Robolectric не позволяет запустить приложение на конкретном устройстве.
ADB и MonkeyRunner могут работать как с физическими устройствами, так и с эмуляторами. Поэтому большинство перечисленных способов должны работать применительно к эмулятору. На эмуляторе можно тестировать, например, какое-нибудь экзотическое разрешение экрана.
Если стоит задача работать с ядром Linux, то возможно вас заинтересуют несколько пунктов из анонса IoT Developer Kit v1.5:
i2c_read
иi2c_write
(подробнее). В документации есть пример взаимодействия по I2C с сенсором MPU6050. Для инициализации I2C нужно будет запустить скрипт init_i2c8.sh из Linux.Прерывания поддерживаются в MCU и настраиваются с помощью функции
gpio_register_interrupt
(подробнее, пример).плюс 4 проводка.
Вся программная часть для считывания расстояния — в программе для MCU SDK. Из-за специфики Edison Arduino Board еще нужно вызвать 2 команды
./init_DIG.sh
для конфигурирования портов.Например:
www.seeedstudio.com/depot/Intel-Edison-for-Arduino-p-2149.html?cPath=6_7 — $97.95
www.sparkfun.com/products/13097 — $99.95
www.linuxcenter.ru/shop/ops_hard/Edison/EDI2ARDUIN.AL.K — 8673 руб.
Grove starter kit plus – Intel IoT Edition for Intel Galileo Gen 2 and Edison — $79
www.seeedstudio.com/depot/Grove-starter-kit-plus-Intel-IoT-Edition-for-Intel-Galileo-Gen-2-and-Edison-p-1978.html
Итого: примерно $180 без учета доставки.
adb connect <ip-адрес>
её можно подключить. После этого виртуальная машина должна появится в списке, выдаваемом командойadb devices
. Ну, а дальше как обычно:adb install file.apk
.