Портирование периферии на AndroidThings — выбор вывода

Я пытаюсь перенести некоторый код в AndroidThings. В настоящее время он использует «GPIO 3 (SCL)» в качестве контакта на Raspberry Pi. https://github.com/mattdh666/rpi-led-matrix-panel/blob/master/RgbMatrix.h#L206

Однако в AndroidThings тот же контакт — «I2C1 (SCL)», поэтому я не могу ссылаться на него, используя peripheralManService.openGpio("BCM3") см. здесь схему выводов

    try {
        gpioSerialClock = service.openGpio("BCM3"); // Throws Caused by: android.os.ServiceSpecificException: Unknown I/O name BCM3
    } catch (IOException e) {
        throw new IllegalStateException(e);
    }

Должен ли я переместить свой провод, чтобы использовать другой контакт на Raspberry Pi, помеченный как GPIO? Есть ли какие-либо последствия для этого: / мое периферийное устройство хочет использовать BCM3, поскольку это последовательные часы

введите здесь описание изображения

Еще несколько визуальных объяснений выбранного контакта, если это необходимо:

введите здесь описание изображения

введите здесь описание изображения


person Blundell    schedule 04.05.2017    source источник


Ответы (1)


Код, который вы портируете, предполагает, что все подключенные контакты являются чистыми контактами GPIO. Он явно управляет всеми переходами контактов для каждого из них. В связи с этим вам просто нужно 13 доступных портов GPIO для подключения к матрице RGB. Вам просто нужно внести соответствующие коррективы в свою проводку, чтобы номера контактов в примере соответствовали портам, которые вы выбрали вместо этого.

Это не самый эффективный способ взаимодействия с Android Things (множество циклов ввода-вывода), но для начала он должен работать. В идеале вы должны передавать синхронизированные последовательные данные с шины SPI или I2C (если протоколы совпадают), чтобы уменьшить накладные расходы и повысить скорость передачи.

person devunwired    schedule 04.05.2017