Jump to content

Search the Community

Showing results for tags 'python'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Deutsch
    • Allgemeine Diskussionen
    • Anfängerfragen und FAQ
    • Software, Programmierung und externe Tools
    • Hardware
    • Projektvorstellungen und Projektideen
    • WARP Charger
  • English
    • General Discussion
    • Project introductions and project ideas

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me

Found 7 results

  1. Hallo, aktuell werden bei uns die CanOpen Geräte mit dem Raspberry Pi über den RS485 Can Hat angesprochen. Dieser war recht einfach kompatibel, mit der Python-canopen Library, sodass es mehr oder weniger Plug & Play war. Hat jemand Erfahrung, ob dies auch mit den Can Bricklets 2.0 problemlos möglich ist? Mir ist klar, dass ich die CanOpen Geräte auch direkt, also ohne die python-canopen Library ansprechen kann. Allerdings wäre es deutlich angenehmer und mit weniger Änderungsaufwand verbunden, wenn wir die gleiche Library benutzen könnten.
  2. Hallo Zusammen, kann jemand sagen warum folgender Code kein Temperaturwert für die Kerntemperatur des IMU 2.0 Bricks zurück gibt? #!/usr/bin/env python # -*- coding: utf-8 -*- HOST = "localhost" PORT = 4223 UID = "6rGa5o" import time from tinkerforge.ip_connection import IPConnection from tinkerforge.brick_imu_v2 import BrickIMUV2 Liste = ["X","X","X","X","X","X"] def cb_quaternion(w, x, y, z): Liste[1] = (w/16383.0) Liste[2] = (x/16383.0) Liste[3] = (y/16383.0) Liste[4] = (z/16383.0) def cb_temperature(temperature): Liste[5] = temperature def main(): ipcon = IPConnection() imu = BrickIMUV2(UID, ipcon) ipcon.connect(HOST, PORT) imu.register_callback(imu.CALLBACK_QUATERNION, cb_quaternion) imu.register_callback(imu.CALLBACK_TEMPERATURE, cb_temperature) imu.set_quaternion_period(100) imu.set_temperature_period(100) time.sleep(1) i = 0 while i < 20: Liste[0] = i print("Übersicht Werte in Liste:") print("Wert 1:" + str(Liste[0])) print("Wert 2:" + str(Liste[1])) print("Wert 3:" + str(Liste[2])) print("Wert 4:" + str(Liste[3])) print("Wert 5:" + str(Liste[4])) print("Wert 6:" + str(Liste[5])) print("") i = i+1 time.sleep(0.5) ipcon.disconnect() if __name__ == "__main__": main() Benutze ich cb_all_data wie in den Beispielen gezeigt, kommt der Temperaturwert mit. Möchte ich ihn einzeln haben, so wie hier in meinem Beispiel, bekomme ich ihn nicht aufgerufen. Vielleicht hat jemand ne Idee, woran das liegen könnte?! Hintergrund ist, das mein IMU regelmäßig aussteigt, und ich die Vermutung habe, dass ihm ein bisschen zu warm ums Herz ist 😉 Das führt mich zu einer weiteren Frage: Gefühlt gibt es ein Performance-Unterschied zwischen: Alle Werte per Callback erheben, diejenigen die ich benötige loggen zu: Nur diejenigen per Callback erheben und loggen, die ich benötige liege ich da richtig? Und wenn ja, was sind so die gängigen Tricks und Kniffe, um ein möglichst hochfrequentes Loggen von spezifischen Werten zu realisieren ? Vielen Dank an alle Tinkerforger da draussen :) Grüße Tipsy
  3. Liebe Tinkerforge Community, nun habe ich mein erstes Python Script erstellt und die Funktionen der einzelnen Bausteine verifiziert. Sicher gibt es da noch einiges an Verbesserungsmöglichkeiten aber es tut was es soll und das ist für mich als Maschinenbauer, Ende Fünfzig schon einmal ein Erfolg. Über Hinweise und Tipps freue ich mich natürlich. Nun hätte ich es gern so, dass wenn der Raspberry Pi startet das Script ebenfalls gestartet wird. Von den vielen Methoden dies zu erreichen habe ich zwei ausprobiert (rc.local und systemd) mit ähnlichem Misserfolg. In die rc.local habe ich folgende Zeile vor exit 0 eingetragen: python /home/pi/MyFirstScript.py >/tmp/MyFirstScript.log 2>&1 & Die im Verzeichnis tmp erstellte Datei MyFirstScript.log liefert folgendes: Traceback (most recent call last): File "/home/pi/MyFirstScript.py", line 12, in <module> from tinkerforge.ip_connection import IPConnection ImportError: No module named tinkerforge.ip_connection Bei der Methode systemd listet der Befehl sudo systemctl status myscript.service eine ähnliche Fehlermeldung. Sicher habt ihr dafür Lösungsvorschläge. Vielen Dank im voraus! Euer Max Mustermann MyFirstScript.py
  4. Ich würde gerne von dem auf dem Red-Brick-Image 1.15 verfügbaren Python 3.5.3 auf Python 3.8 aktualisieren -- auch was die Versionsauswahl im "New Program"-Wizard betrifft (Step 3). Mit gewisser Mühe habe ich Python 3.8.6 auf dem Red Brick installiert, aber wie kriege ich das hin, dass diese aktuelle Version im Wizard neben 2.7.13 und 3.5.3 angeboten wird? Andernfalls wünsche ich mir ein Red-Brick-Image, das Python3 in einer Version >= 3.6 bringt... f-Strings und aktuelles Pandas brauchen mindestens diese Version. md
  5. Hallo Zusammen 🙂 Besteht die Möglichkeit, den RED Brick aus einem python-Script heraus zu rebooten? Wenn ja, wie ? Besteht die Möglichkeit, den Alarm aus dem "Real-Time Clock Bricklet 2.0" zu benutzen, um einen reboot auszulösen? Und aller guten Dinge sind 3: Besteht die Möglichkeit, irgendwie zu erkennen, das sich der RED aufgehängt hat, um ihn dann zu rebooten? Klingt irgendwie widersprüchlich, aber ihr versteht schon...🤣 Vielleicht hat wer Hinweise, wie ich diese Fragestellungen lösen kann, oder hat Recherchehinweise die mich weiter bringen. Grüßle, Tipsy
  6. Bei meinem jetzigen Projekt bin ich über folgendes gestolpert: Ich lese Werte vom Rotary Encoder ein, die zwischen 0 und 1280 liegen sollen. Wenn ich den Encoder aber weiter drehe (positiv oder negativ), zählt es intern weiter. Also wenn ich nach meinem Einlesen von "0" negativ weiter drehe, kommt bei der ersten Umdrehung Richtung "1" gar nichts. Ich muss drehen, bis der interne Count wieder bei "0" ist. Leider gibt es den Befehl "set_count" nicht, um bei meiner unteren oder oberen Grenze stehen zu bleiben. Irgendeine Idee, wie man (nach zehn negativen Umdrehungen) bei der ersten positiven Umdrehung wieder bei "0" anfängt? Danke Malik
  7. Hallo zusammen, ich habe folgendes Problem: Ich habe einen DualButton und möchte Testweise die linke LED mit Python einschalten. Ich habe das Beispielprogramm genommen und erweitert, aber es will nicht so wie ich will. HOST = "localhost" PORT = 4223 UID_dualButton = "MeA" # Change XYZ to the UID of your Dual Button Bricklet 2.0 from tinkerforge.ip_connection import IPConnection from tinkerforge.bricklet_dual_button_v2 import BrickletDualButtonV2 def cb_state_changed(dualbutton_l, dualbutton_r, led_l, led_r): # Callback function for state changed callback if dualbutton_l == BrickletDualButtonV2.BUTTON_STATE_PRESSED: print("Linker Button: gedrückt") elif dualbutton_l == BrickletDualButtonV2.BUTTON_STATE_RELEASED: print("Linker Button: nicht gedrückt") if dualbutton_r == BrickletDualButtonV2.BUTTON_STATE_PRESSED: print("Rechter Button: gedrückt") elif dualbutton_r == BrickletDualButtonV2.BUTTON_STATE_RELEASED: print("Rechter Button: nicht gedrückt") print("") if __name__ == "__main__": ipcon = IPConnection() # Create IP connection db = BrickletDualButtonV2(UID_dualButton, ipcon) # Create device object ipcon.connect(HOST, PORT) # Connect to brickd # Don't use device before ipcon is connected #------------------------------ Dies sind meine Versuche #db.setLEDState(BrickletDualButton.LED_STATE_ON, BrickletDualButton.LED_STATE_OFF) # db.set_selected_led_state(BrickletDualButtonV2.LED_STATE_OFF, BrickletDualButtonV2.LED_STATE_ON) #db.BrickletDualButtonV2.set_selected_led_state(0, 2) #print(BrickletDualButtonV2.get_led_state()) # BrickletDualButtonV2.set_selected_led_state(0, 2) # BrickletDualButtonV2.set_led_state(2, 2) #----------------------------- # Register state changed callback to function cb_state_changed db.register_callback(db.CALLBACK_STATE_CHANGED, cb_state_changed) db.set_state_changed_callback_configuration(True) # Enable state changed callback input("Press key to exit\n") ipcon.disconnect() Wo ist da der Fehler? Vielen Dank im Voraus.
×
×
  • Create New...