Ich möchte mit dem Pico ein Nextion Display betreiben und habe bereits eine gute Lib gefunden. https://github.com/michel-cf/micropython-nextion/blob/master/nextion_lite/nextion.py Das Senden von Befehlen zum Nextion klappt auch super. Was ich aber überhaupt nicht hinbekomme ist die Rückrufmethode aufzurufen. In der Lib wird ein Fallback zur Verfügung gestellt. Ich komme hier aber nicht weiter dazu fehlen mir einfach noch die Kenntnisse. Gerne möchte ich von meinem Programm einen Button abfragen. Und eine Textdatei auslesen. Nutzen b1 und Textfeld T1 Ich wäre sehr Dankbar über ein kleines Beispiel wo ich die Vorgehensweise nachvollziehen kann. Ich bin noch ein sehr unerfahrener Pyhtonanfänger und auch nicht so gut mit der Formatierung.
1 | import machine |
2 | import utime |
3 | import nextion_dieter |
4 | n = nextion.Nextion(1) |
5 | |
6 | |
7 | def nextion_callback(command, page, id, touch_event): |
8 | print('command: %s page: %s id: %s, touch_event: %s' % (command, page, id, touch_event)) |
9 | x1= ('command: %s' % (command)) |
10 | print(x1) |
11 | |
12 | while True: |
13 | utime.sleep(1) |
14 | print("Läuft noch") |
15 | n.check_data(nextion_callback) |
Soweit läuft es. Aber es gibt trotzdem einige Probleme.
1 | while True: |
2 | utime.sleep(1) |
3 | print("Läuft noch") |
4 | n.check_data(nextion_callback) |
print("Läuft noch") nutze ich um zu sehen ob meine while Schleife noch im Sekundentackt abläuft. Wenn ich den Callback aufrufe steht meine Schleife still. Wenn ich den Button am Nextion Display etliche male betätige wird der Button erkannt und hin und wieder läuft meine schleife weiter aber nicht immer. Irgendwo hat die Lib Probleme vielleicht auch die UART.
[c] def check_data(self, callback): if self.any(): print(self.any()) chars = self.readinto(self.read_buffer, 11)# war auf 100 print(self.read_buffer) index = 0 while index < chars: [\c] zum Überprüfen hab ich die Prints eingefügt. print(self.any()) ergibt immer eins print(self.read_buffer) gibt eine Zeichenkette aus wenn jedoch wenn ich das erste Mal den callback ausführe wird nix ausgegeben, scheinbar steht hier dann das Programm. Wenn ich die Baut in der Lib erhöhe läuft es auch beim ersten callback. jedoch verarbeitet das Display nur 9600 baut zudem wir beim erhöhen nix mehr erkannt. Ich habe bereits überall im Netz nach einer Lib für Miropyhton gesucht habe aber nicht gefunden womit ein Anfänger was machen könnte. Das Daten zum Display schicken klappt jedoch mit dieser Lib hervorragend. Vieleicht ist ja jemand da der auch Erfahrungen mit dem Display hat und weiterhelfen kann.
Aber auch zur Info was überhaupt ich machen will. Ich baue ein Labornetzteil. Das Nextion Display gibt mir später sämtliche Daten aus. Das geht soweit ja auch super mit der Lib. Zur Steuerung von VOLT und AMPER und LEISTUNG. Gibt das Display auch Daten vor. Diese sollen mit dem callback der Lib verwirklicht werden. Wie genau ich den callback später verarbeite weiß ich noch nicht genau, vielleicht rufe ich ihn über einen Interrupt auf. Aber das momentane Problem ist erstmal das nach einen Aufruf zum callback meine schleife nicht zuverlässig weiterläuft. Das heißt für mich das mein Programm steht solange keine gültigen Angaben reinkommen. Für mein Projekt ist dies Display ideal, ich kann die vielen Ereignisse super schön darstellen und das was ich vom Display zurück haben möchte ist nicht viel, nur Ereignisse wenn das Display neue Volt und Amper vorgibt. Vom Prinzip 2 Textfelder oder Nummfelder oder Variablen. Steuern könnte ich die Ereignisse mit einen Aufruf der vom Display. Zum Beispiel über einen gedrückten Button oder ähnliches. Dies Ereigniss muss ich dann am Pico erkennen. Da das Display durch eigenen Code gesteuern werden kann, will ich hier die Übergabe auch gar nicht so groß gestalten. Das hat den großen Vorteil, daß ich jederzeit auch auf ein anderes System wechseln kann. zB. Adruino oder den Pico in C und nicht in Python......
Dieter Tepe schrieb: > Zur Steuerung von VOLT und AMPER und LEISTUNG. Und ich dachte immer das hiessen AMPERE. Wobei es hier ja auch Zeitgenossen geben soll die versuchen die Amper hoch zu skillen... Schöner Monolog übrigens..
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.