2017-05-04 3 views
3

Je tente de porter du code sur AndroidThings. Actuellement, il utilise "GPIO 3 (SCL)" comme une broche sur le Raspberry Pi. https://github.com/mattdh666/rpi-led-matrix-panel/blob/master/RgbMatrix.h#L206Portage périphérique à AndroidThings - sélection de broches

Cependant sur AndroidThings la même broche est « I2C1 (SCL) » je ne peux pas faire référence à l'aide peripheralManService.openGpio("BCM3") see here for Pinout diagram

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

Dois-je déplacer mon fils à utiliser une autre broche sur le Raspberry Pi qui est étiqueté pour GPIO? Y at-il des conséquences à ce que:/mon périphérique veut utiliser BCM3 comme il est l'horloge série

enter image description here

Une explication plus visuelle de la broche sélectionnée si nécessaire:

enter image description here

enter image description here

Répondre

1

Le code que vous transférez suppose que toutes les broches connectées sont des broches GPIO pures. Il pilote explicitement toutes les transitions de broche pour chacun. À cet égard, vous avez simplement besoin de 13 ports GPIO disponibles pour vous connecter à la matrice RVB. Vous devez juste faire les ajustements appropriés à votre câblage pour faire correspondre les numéros de broche dans l'exemple avec les ports que vous avez choisis à la place.

Ce n'est pas la manière la plus efficace de gérer la communication depuis Android Things (beaucoup d'allers-retours et de bouclage sur les E/S), mais cela devrait fonctionner comme un début. Idéalement, vous devez piloter les données série cadencées à partir d'un bus SPI ou I2C (si les protocoles correspondent) pour réduire les frais généraux et améliorer le taux de transfert.