Uhlhorn Geschrieben February 28, 2019 at 22:20 Geschrieben February 28, 2019 at 22:20 Moin, irgendwie scheinen in den meisten Sachen Bugs drin zu sein (oder ich habe eine besondere Fähigkeit diese zu finden). Das OLED 128x64 Bricklet 2.0 funktioniert nicht wie erwartet: Das ist mein Aufbau: Master (A)——— PTC (B)——— OLED ©——— (D)——— (An den Master sind ein OLED und ein PTC Bricklet angeschlossen) Wenn ich das erste Beispielprogramm von aus der Tinkerforge-Doku ausführe, bleibt der Bildschirm leer. Python - OLED 128x64 Bricklet 2.0 Ändere ich hingegen die Zeile der Ausgabeposition des Textes auf 3, dann wird „Hello World“ korrekt ausgegeben. oled.write_line(3, 0, "Hello World") In den Zeilen 0, 1 und 2 kann man keinen Text ausgeben. Zitieren
borg Geschrieben March 1, 2019 at 08:47 Geschrieben March 1, 2019 at 08:47 Das kann ich nicht reproduzieren. Wenn du per Brick Viewer oben Text sendest (line 0, pos 0), funktioniert das? Das ist auch in Python geschrieben und nutzt intern auch write_line. Zitieren
Uhlhorn Geschrieben March 1, 2019 at 19:24 Autor Geschrieben March 1, 2019 at 19:24 Mit dem BrickViewer geht es, mit dem Script von der Website nicht. Zitieren
borg Geschrieben March 1, 2019 at 20:53 Geschrieben March 1, 2019 at 20:53 Ich bin ratlos. Das macht keinerlei Sinn. Der Brick Viewer nutzt wie gesagt die ganz normalen Python Bindings die wir auch veröffentlicht haben. Zitieren
Uhlhorn Geschrieben March 1, 2019 at 23:37 Autor Geschrieben March 1, 2019 at 23:37 Tja, es funktioniert aber trotzdem nicht. Ich kann ja mal davon ein Video machen. Zitieren
Uhlhorn Geschrieben March 2, 2019 at 00:49 Autor Geschrieben March 2, 2019 at 00:49 Ich habe jetzt mal das Script auf dem Red Brick laufen lassen, mit dem selben Ergebnis. (Ich habe es gefilmt und lade es später hoch.) Jetzt nehme ich mal ein anderes Brick und schließe dort das OLED an. Zitieren
Uhlhorn Geschrieben March 2, 2019 at 00:56 Autor Geschrieben March 2, 2019 at 00:56 Also, auch am Stepper Brick und am CD Brick zeigt das OLED nicht richtig an. Ich habe auch verschiedene Bricklet-Anschlüsse getestet. Es ist egal. Wenn ich das Programm vom Red Brick laufen lassen (ohne PC), ist es derselbe Fehler. Manchmal verschwinden sogar andere Zeilen. Hier das Programm, was ich getestet habe. Es beschreibt die Zeilen 7 bis 0 nacheinander. Dann baut es mit 8 Befehlen 8 Zeilen gleichzeitig auf. Schließlich beginnt es von vorn. #!/usr/bin/env python # -*- coding: utf-8 -*- HOST = "localhost" PORT = 4223 UID = "Hhh" # Change XYZ to the UID of your OLED 128x64 Bricklet 2.0 from tinkerforge.ip_connection import IPConnection from tinkerforge.bricklet_oled_128x64_v2 import BrickletOLED128x64V2 import time if __name__ == "__main__": ipcon = IPConnection() # Create IP connection oled = BrickletOLED128x64V2(UID, ipcon) # Create device object ipcon.connect(HOST, PORT) # Connect to brickd # Don't use device before ipcon is connected # Clear display oled.clear_display() # Write "Hello World" starting from upper left corner of the screen while True: line = 7 while line >= 0: oled.clear_display() Text = str(line)+": Hello World" print(Text) oled.write_line(line, 0, Text) line = line-1 time.sleep(0.2) oled.write_line(0, 0, "0: Hello World") oled.write_line(1, 0, "1: Hello World") oled.write_line(2, 0, "2: Hello World") oled.write_line(3, 0, "3: Hello World") oled.write_line(4, 0, "4: Hello World") oled.write_line(5, 0, "5: Hello World") oled.write_line(6, 0, "6: Hello World") oled.write_line(7, 0, "7: Hello World") time.sleep(3) print() input("Press key to exit\n") # Use input() in Python 3 ipcon.disconnect() Zitieren
Uhlhorn Geschrieben March 2, 2019 at 02:06 Autor Geschrieben March 2, 2019 at 02:06 Hier das Video zu dem Programm: Zitieren
borg Geschrieben March 2, 2019 at 08:36 Geschrieben March 2, 2019 at 08:36 Das Bricklet ist nicht defekt (es funktioniert mit dem Brick Viewer) und dein Program ist OK. Es muss also an den Bindings liegen die du verwendest? Gibt ja keine andere Möglichkeit . Hast du die bei uns von der Homepage geladen und händisch installiert? Oder per pip? Welche Version? Zitieren
Uhlhorn Geschrieben March 2, 2019 at 18:04 Autor Geschrieben March 2, 2019 at 18:04 Hast du die bei uns von der Homepage geladen und händisch installiert? Oder per pip? Ich bin in Python ein Newbee! Ich habe früher (80er Jahre) mal BASIC und 6502-Assembler programmiert, später ein bisschen PHP und AppleScript. Was für Bindings? Ich habe mir PyCharm installiert und damit geht das alles. Vielleicht ist das ja auch das Problem bei dem Stepper Brick? Wie kann ich es denn besser machen? Zitieren
Uhlhorn Geschrieben March 2, 2019 at 18:34 Autor Geschrieben March 2, 2019 at 18:34 Nachtrag: Du meinst diesen Ordner hier, oder? Zitieren
borg Geschrieben March 2, 2019 at 19:27 Geschrieben March 2, 2019 at 19:27 Mit Bindings meine ich die API, die Library. Das wo die "write_line"-Funktion drin steckt. Du hast da einen Order "tinkerforge_python_bindings_2_1_21". Ich nehme an du hast den "tinkerforge"-Order der da drin ist einfach auf das gleiche Level im Dateisystem wie die Beispiele gelegt? Das wäre OK. Ich versuche das nochmal zusammenzufassen: Deine ganzen Probleme sind denke ich alle das gleiche Problem (Nachrichten gehen verloren). Das ist hier definitiv der Fall und die Exception in dem "image_data[0,0]"-Thread ist ja auch wieder eine TimeoutException. Genauso wie die Exception beim Stepper Brick. Die Hardware scheint zu funktionieren (Du kannst z.B. Zeile 0 mit dem Brick Viewer setzen). Es funktioniert mit deinem Programm auch nicht wenn du das Bricklet an einen anderen Brick anschließt (d.h. es liegt höchstwahrscheinlich auch nicht an einem defekten Brick). Die Bindings haben die aktuellste Version. Ich hab im Moment keine gute Idee mehr. Kannst du mir vielleicht deinen ganzen Order zippen und schicken in dem das OLED-Beispiel ist welches das Problem erzeugt? Inklusive dem "tinkerforge"-Ordner. Dann schaue ich ob ich es damit reproduzieren kann. Zitieren
Uhlhorn Geschrieben March 5, 2019 at 01:48 Autor Geschrieben March 5, 2019 at 01:48 Kannst du mir vielleicht deinen ganzen Order zippen und schicken in dem das OLED-Beispiel ist welches das Problem erzeugt? Ja, das mache ich gerne. Allerdings sind die ganzen Scripte etwas unaufgeräumt, da ich ständig daran rumgebastelt habe. Falls also dazu Fragen sind, einfach fragen. ;-) (Ist als PM raus, weil da möglicherweise urheberrechtlich geschütztes Material drin ist.) Zitieren
borg Geschrieben March 5, 2019 at 10:12 Geschrieben March 5, 2019 at 10:12 Ich konnte das Problem zwar nicht reproduzieren, aber ich denke ich hab etwas gefunden. Kannst du einmal deine OLED128x64-Firmware auf die neueste Version aktualisieren und nochmal testen? Zitieren
Uhlhorn Geschrieben March 5, 2019 at 19:43 Autor Geschrieben March 5, 2019 at 19:43 Ja, werde ich gleich mal ausprobieren. Nachtrag: Ja, das Problem ist behoben! :-) Ich hatte schon als Kind einen „grünen Daumen“ für alles technische. Und wenn etwas einen Bug hat, dann finde ich ihn schnell. Es gibt Software, wenn ich sie benutze, dann finde ich innerhalb von Minuten ein gutes Dutzend Bugs. :-) Seit einigen Tagen kenne ich auch den Grund für diese Fähigkeit und werde mit diesem Wissen meine Fähigkeiten erweitern können. Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.