Gast pbachert Geschrieben July 7, 2015 at 18:20 Share Geschrieben July 7, 2015 at 18:20 Liebe Leute, ich komme nicht weiter mit meinem Servo Brick. Wenn ich meinen Servo mit dem Brickviewer teste, bewegt er sich einwandfrei. Aber weder das Callback- noch das Configuration-Example von Tinkerforge rufen irgendeine Reaktion hervor. Ebenso meine Programmierversuche. Die Beispiel-Programme selbst laufen ohne Fehlermeldung durch. Der Servo ist auf Position (0) am Brick eingesteckt, und ich habe die UID in den Beispielen durch die im Brickviewer für den Servo angegebene ersetzt. Muss ich sonst noch etwas machen bzw. habe ich etwas übersehen? Bin für jeden Hinweis dankbar. Patric Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
raphael_vogel Geschrieben July 7, 2015 at 18:33 Share Geschrieben July 7, 2015 at 18:33 Servo Kabel richtig herum eingesteckt? Externe Stromversorgung vorhanden? Eventuell ziehen die Servos zu viel Steom? Poste doch mal dein Code Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Gast pbachert Geschrieben July 7, 2015 at 18:54 Share Geschrieben July 7, 2015 at 18:54 Danke für die schnelle Antwort! Falsch herum eingesteckt oder Probleme mit der Stromversorgung kann ich mir eigentlich nicht vorstellen. Der Test mit dem Brickviewer funktioniert ja wie gesagt einwandfrei. Der Servo dreht sich genau wie angezeigt. Zum Code: Bei mir funktionieren selbst die von Tinkerforge bereitgestellten Code-Beispiele example_callback und example_configuration nicht. Das example_configuration sieht aus wie unten. Ich habe dort nur die UID geändert und "raw input" auf "input", da ich Python 3.4 nutze. Das Programm läuft ohne Fehlermeldung.Servo ist auf Position 0 eingesteckt. ############ #!/usr/bin/env python # -*- coding: utf-8 -*- HOST = "localhost" PORT = 4223 UID = "5VF7gc" # Change to your UID from tinkerforge.ip_connection import IPConnection from tinkerforge.brick_servo import Servo if __name__ == "__main__": ipcon = IPConnection() # Create IP connection servo = Servo(UID, ipcon) # Create device object ipcon.connect(HOST, PORT) # Connect to brickd # Don't use device before ipcon is connected # Configure two servos with voltage 5.5V # Servo 1: Connected to port 0, period of 19.5ms, pulse width of 1 to 2ms # and operating angle -100 to 100° # # Servo 2: Connected to port 5, period of 20ms, pulse width of 0.95 # to 1.95ms and operating angle -90 to 90° servo.set_output_voltage(5500) servo.set_degree(0, -10000, 10000) servo.set_pulse_width(0, 1000, 2000) servo.set_period(0, 19500) servo.set_acceleration(0, 1000) # Slow acceleration servo.set_velocity(0, 0xFFFF) # Full speed servo.set_degree(5, -9000, 9000) servo.set_pulse_width(5, 950, 1950) servo.set_period(5, 20000) servo.set_acceleration(5, 0xFFFF) # Full acceleration servo.set_velocity(5, 0xFFFF) # Full speed servo.set_position(0, 10000) # Set to most right position servo.enable(0) servo.set_position(5, -9000) # Set to most left position servo.enable(5) input('Press key to exit\n') # Use input() in Python 3 ipcon.disconnect() ############## Patric Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
photron Geschrieben July 8, 2015 at 14:55 Share Geschrieben July 8, 2015 at 14:55 Wenn es im Brick Viewer geht, dann kann es kein elektrisches Problem sein. Es muss also im Beispiel stecken. Das Beispiel tätigt viele Einstellungen die nicht unbedingt nötig sind. Daher jetzt mal ein einfacheres Beispiel, das den Servo nur ein paar mal hin und her bewegen lässt. Bevor du dieses Beispiel testest solltest du einmal den Servo Brick resetten, damit alle Einstellungen zurückgesetzt werden auf Standard. #!/usr/bin/env python # -*- coding: utf-8 -*- HOST = "localhost" PORT = 4223 UID = "5VF7gc" # Change to your UID from tinkerforge.ip_connection import IPConnection from tinkerforge.brick_servo import Servo import time if __name__ == "__main__": ipcon = IPConnection() # Create IP connection servo = Servo(UID, ipcon) # Create device object ipcon.connect(HOST, PORT) # Connect to brickd # Don't use device before ipcon is connected if servo.get_identity().device_identifier != Servo.DEVICE_IDENTIFIER: print("This is not a Servo Brick") else: servo.set_position(0, 9000) servo.enable(0) time.sleep(2) servo.set_position(0, -9000) time.sleep(2) servo.set_position(0, 9000) time.sleep(2) servo.set_position(0, -9000) input('Press key to exit\n') # Use input() in Python 3 ipcon.disconnect() Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Gast pbachert Geschrieben July 8, 2015 at 16:50 Share Geschrieben July 8, 2015 at 16:50 Photron, vielen Dank, mit dieser Datei funktioniert es (mit den Beispielen leider immer noch nicht, aber macht nichts). Ich baue jetzt den Code in eine kleine Steuerung ein. Bin mal gespannt. Viele Grüße Patric Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
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.