Forum: PC Hard- und Software '2d' Liste in Python


von Tristan M. (antimodes)


Lesenswert?

Hi

genau genommen geht es um micropython ich bin mir nicht sicher in wie 
weit das einen Unterschied macht.
Weil ich ein paar Wochen außer Gefecht bin, spiele ich etwas mit dem 
o.g. Thema und bin vor ein Problem gestoßen.
Es gibt einen Treiber für Neopixel. Ich habe bis jetzt nur noch nicht 
herausgefunden, wie man die RGB Daten sinnvoll intern speichert.

Ich weiß wohl, dass es eine Liste von Liste gibt und ich dort meine 
Werte speichern kann. Vorausgesetzt, dass ich einigermaßen 
eigenverantwortlich vorgehe und nicht Mist in dieser Liste speicher, 
wenn ich Elemente ändere.

1
liste_1 = [[0,0,0],[255,255,255],.....[R,G,B]]
2
3
#liste[0] ist dann das erste Pixel. Die Daten kann man dann an die Neopixel schicken. Aber da muss ich ja jeden Pixel ein mal in die Hand nehmen...
4
5
liste_2 = [[0,0,0] for pix in range(16)]
6
#hier werden die benötigten pixel angelegt und dunkel initialisiert. Ich glaube so würde ich schon weiterkommen, aber Frage s.u. - wie 'richtig'

Also im Moment habe ich einen Neopixel Ring, eine Liste von RGB Listen 
wäre also richtig. Für ein Display braucht man als Komfort eine x/y 
indizierung.

Wie mache ich das aber einigermaßen geschickt bzw. Python-genormt? Ein 
2d Array am besten von der Größe her vordefinieren.
Wenn ich teilweise Code sehe bin ich von der ästhetik angetan und alles 
scheint logisch zu sein, aber selber komme ich noch nicht dahinter.

Ich danke euch für eine Anschubhilfe - wie würdet ihr so etwas machen.

von Norbert (der_norbert)


Lesenswert?

Tristan M. schrieb:
> wie würdet ihr so etwas machen.

Ich hätte die Doku lesen.
Dann hätte ich mir die ganzen Kapriolen sparen können.

Ein eindimensionales Array (zB. values), immer je drei Werte für R,G,B.
Da die LEDs alle in Serie geschaltet sind, schiebt man einfach das 
komplette Array mit einem values.write() hinein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.