LED Strip ansteuern über microPython

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
QY666
User
Beiträge: 12
Registriert: Mittwoch 5. Januar 2022, 17:52

Moin,
Ich habe durch die Schule Interesse an microPython bekommen.

Nun möchte ich gerne mit Hilfe eines ESP8266 (D1 mini NodeMcu) einen LED Strip.
Ich hatte mir dann einen von AliExpress (WS2813) bestellt - und habe auch schon die ein oder andere Library ausprobiert.

Leider bekomme ich es nicht hin

LG
QY666
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Und was heisst "bekomme es nicht hin"? Explodiert der ESP, sind die Kabel zu steif, um sie zur Verkabelung zu benutzen, bekommst du Fehlermeldungen in Python, etc. pp? Ein bisschen mehr ausholen, was du genau machst, und was genau nicht geht, wird es sein muessen.
QY666
User
Beiträge: 12
Registriert: Mittwoch 5. Januar 2022, 17:52

Oke
Vorweg ich kenne mich noch nicht so gut mit Programmierung aus
außer LOGO und SPS
Ich programmiere mit VSCode und habe folgende Libary gefunden im Internet https://github.com/kamikaze/pyboard-exa ... /ws2813.py das Terminal hat mir
'>>> ♦Traceback (most recent call last):
File "<stdin>", line 10, in <module>
File "ws2813.py", line 39, in __init__
ValueError:
♦>'
ausgegeben

Hab dann mal in der Libary geschaut und dort Stand dann halt pyb, dies hab ich ersetzt durch machine
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wie sieht denn das aus, was du da aufrufst? Also die Zeile, mit der du WS2831 aufrufst?
QY666
User
Beiträge: 12
Registriert: Mittwoch 5. Januar 2022, 17:52

Code: Alles auswählen

from ws2813 import WS2813
from machine import Pin, SoftSPI,
spi_bus = SoftSPI(                                      
    sck=Pin(14),    # D5
    mosi=Pin(13),   # D7
    miso=Pin(12)    # D6
    )
chain = WS2813(spi_bus=1, led_count=11)
data = [
    (255, 0, 0),    # red
    (0, 255, 0),    # green
    (0, 0, 255),    # blue
    (85, 85, 85),   # white
]
chain.show(data
)
Hab jetzt nur den SPI Bus für den ESP8266 angepasst und den led=count.
Gestern habe ich wohl ein älteren Fehlercode kopiert, sorry.

Gerade wurde mir

Code: Alles auswählen

>>>
>>> ♦Traceback (most recent call last):
  File "<stdin>", line 10, in <module>
  File "ws2813.py", line 42, in __init__
  File "ws2813.py", line 53, in show
  File "ws2813.py", line 59, in send_buf
AttributeError: 'HSPI' object has no attribute 'send'
angezeigt.

Edit///
Habe mir zu test zwecken mal einen ws2812b bestellt und werde versuchen diese dann anzusteuern per NeoPixel
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du musst statt send write verwenden.

https://docs.micropython.org/en/latest/ ... achine-spi
QY666
User
Beiträge: 12
Registriert: Mittwoch 5. Januar 2022, 17:52

Vielen Dank das hat funktioniert :)
Bild

Ein Frage hätte ich noch, ich möchte jetzt gerne in der Libary eine Rainbow Funktion hinzufügen, geht das ohne weiteres ? Bzw sollte ich auf etwas achten

Lg
QY666
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Na wenn du die ansteuern kannst, dann hast du doch die Wahl welche Farben du da setzen moechtest. Oder was ist genau die Frage?
QY666
User
Beiträge: 12
Registriert: Mittwoch 5. Januar 2022, 17:52

Ich möchte das gerne in der Libary beschreiben und dann im Programm aufrufen
Muss ich dabei etwas beachten um die Funktion zu beschreiben ?
Hab noch nie eine libary geschrieben, daher diese vllt etwas blöde Frage
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich verstehe die Frage nicht. Meinst du, dass du eine Funktion schreiben willst? Man spricht aber nicht von beschreiben in diesem Zusammenhang. Eine Funktion schreibt man so wie in allen Tutorials beschrieben (da passt das Wort). Weisst du, wie du eine Funktion schreibst? Und wenn ja, was genau ist unklar jetzt in diesem Zusammenhang?
QY666
User
Beiträge: 12
Registriert: Mittwoch 5. Januar 2022, 17:52

Nein ich weiß nicht wie ich eine Funktion schreibe, wollte nur Fragen ob man auf iwas achten muss dabei was nicht unbedingt klar wird bei seinen Tutorial
Sorry für die unklare Ausdrucksweise
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Schau dir ein Tutorial an, und Versuch es. Wenn’s nicht geht, kannst du gerne fragen. Aber vorher bin meiner Seite aus antizipieren, was du da so alles verbocken könntest, ist ein ziemlich schwieriges Unterfangen.
QY666
User
Beiträge: 12
Registriert: Mittwoch 5. Januar 2022, 17:52

Oke
Ich werde es versuchen
Dir auf jeden Fall vielen Dank hast mir sehr geholfen :)
QY666
User
Beiträge: 12
Registriert: Mittwoch 5. Januar 2022, 17:52

Moin nochmal

Gibt es eine Möglichkeit eine Variable per Webserver zu bearbeiten ?
Möchte die LED Farbe schnell und unkompliziert ändern können
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Die Frage ist zu unspezifisch.
Ja, man Python im Netz einsetzen. Etablierte Frameworks sind Flask und Django.
Und ja klar - in den Programmen gibt es auch Variablen.
Zuletzt geändert von sparrow am Freitag 4. Februar 2022, 22:26, insgesamt 1-mal geändert.
QY666
User
Beiträge: 12
Registriert: Mittwoch 5. Januar 2022, 17:52

Ich suche nach eine Möglichkeit die Farben der LED Streifen zu ändern per Webserver den mein ESP Hoster und die Variable ändert oder die json
Ich meine gelesen zu haben, dass man dafür gerne JSON nutzt
Aber ich kenn mich da leider noch nicht so gut mit aus
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Was ist denn ein ESP Hoster?

Es ist wirklich völlig unverständlich, was du hier erzählst. Wie wäre es, wenn du dein eigentliches ziel mal beschreibst, ohne Rückgriff auf Begriffe, die du nicht wirklich verstehst. Sowas wie „ich will bei der Oma im Kühlschrank die Beleuchtung in RGB machen, und das von meiner Wohnung fernsteuern, damit sie morgens eine nette Farbe hat“.
QY666
User
Beiträge: 12
Registriert: Mittwoch 5. Januar 2022, 17:52

Sorry für die blöde Ausdrucksweise
Ich möchte meinen ESP 8266 gerne so um programmieren damit ich die Farben der LED jederzeit per Handy ändern kann.

Mein Gedanke war es auf dem ESP 8266 dann einen Webserver zu starten. Und mit diesem dann die Farbe einstellen zu können
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das geht zwar, ist aber mit wifi ziemlich anstrengend. Wenn du dir statt dem esp 8266 einen ESP32 besorgst, geht das via https://learn.adafruit.com/bluefruit-le ... t/features deutlich einfacher.
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

https://randomnerdtutorials.com/esp32-e ... eb-server/ ist ein Anfang für die HTTP Server basierte Lösung.
Antworten