Zum Hauptinhalt springen

MicroPython-Bibliothek

Das Modul InputronicGrid kommuniziert über I2C mit dem ATtiny404 auf dem Board. Importieren Sie die Klasse InputronicGrid, erstellen Sie ein Objekt und lesen Sie mit dessen Methoden die Pads aus und setzen Sie die LEDs.

Noch nicht installiert? Folgen Sie vor den Funktionsseiten der Kurzanleitung.

Den I2C-Bus wählen​

InputronicGrid() ohne Argumente erstellt I2C(0, scl=Pin(22), sda=Pin(21)) selbst, und zwar auf den Ports, die das Modul erkennt: ESP32, ESP8266 und ein Soldered- Board. Auf einem Port, den es nicht erkennt, löst es eine Ausnahme mit der Meldung Board not recognized, pass an initialized I2C object aus. Dort oder bei anderen Pins erstellen Sie den Bus selbst und übergeben ihn mit InputronicGrid(i2c=i2c). Die Beispiele zeigen dies in zwei auskommentierten Zeilen am Anfang; entfernen Sie die Kommentarzeichen, passen Sie die Pin-Nummern an Ihr Board an und kommentieren Sie die einfache Zeile grid = InputronicGrid() aus.

Wie Pads und LEDs nummeriert sind​

  • Nach Zeile und Spalte. readPad(row, col) und setLED(row, col, ...) erwarten eine Zeile von 0 bis 3 (von oben nach unten) und eine Spalte von 0 bis 3 (von links nach rechts). Beide verweisen auf dasselbe Pad.
  • Nach Index. readButton(index) zählt die Tasten zeilenweise: index = row * 4 + col. setLEDByIndex(index, ...) zählt die LEDs in der Reihenfolge, in der sie an der Datenleitung liegen; diese verläuft in geraden Zeilen von links nach rechts und in ungeraden Zeilen von rechts nach links, sodass die beiden Indexnummern in den Zeilen 1 und 3 auf unterschiedliche Pads verweisen.
  • Als 16-Bit-Maske. readAllPads() liefert Bit i für Taste i, zeilenweise gezählt. setLEDMask(mask, r, g, b) schaltet für Bit i die LED i in Datenleitungsreihenfolge ein, dieselbe Nummerierung wie bei setLEDByIndex(), und schaltet alle anderen LEDs aus. In den Zeilen 1 und 3 verweisen ein Bit in der Maske von readAllPads() und dasselbe Bit in der Maske von setLEDMask() auf unterschiedliche Pads.

readButton(), readAllPads(), setLEDByIndex() und setLEDMask() sind in diesem Commit im Modul enthalten, aber noch kein Beispiel verwendet sie.

Funktionen​

Jede Seite beginnt mit einem geprüften Modulbeispiel und erklärt jede Funktion, die das Beispiel für dieses Ergebnis verwendet.