Posts by bernhardjunk

    Hallo an alle,

    erst mal vielen Dank an euch!

    Ich habe hier die Servos von Carson CS3 Reflex. Nach Herstellerangaben mit einer Zugkraft von 2 DaN angegeben und können kontinuierlich drehen.

    Mit meinem Servotester funktioniert das auch.

    Ich bin nicht der Guru bei Python und muss mich bei vielen Sachen noch einlesen. Ich programmiere sonst mit Step 7 oder TIA.

    Leider habe ich zu spät mit Python angefangen. Ich bin auch schon 78 Jahre alt und versuche doch noch was neues.

    Auch mit Tkinter bin ich noch Neuling.

    Damals nach meinem Studium an der RWTH habe ich Assembler programmiert, das war der Einstieg bei den meisten SPS-Programme.

    Das meiste davon habe ich inzwischen vergessen.

    Ich hoffe auf weitere Hilfe bei diesem Programm. Es soll einen Roboter steuern,

    Gruss

    Bernd

    wie werden die Daten aus Tkinter an python übergeben?

    Mein Programm:

    from __future__ import division

    import time

    import Adafruit_PCA9685

    from Tkinter import *


    # Standardadresse: (0x40).

    pwm = Adafruit_PCA9685.PCA9685(0x41)


    # Einstellen der Minimal- und Maximal-Pulslaengen

    servo_min = 250 # Minimale Pulslaenge

    servo_max = 750 # Maximale Pulslaenge

    pulse = 0

    channel = 0

    # Hilfsfunktion

    # set_servo_pulse(channel, pulse)

    def set_servo_pulse(channel,pulse):

    pulse_length = 1000000 # 1,000,000 us per second

    pulse_length //= 60 # 60 Hz

    print('{0}us per period'.format(pulse_length))

    pulse_length //= 4096 # 12 bits of resolution

    print('{0}us per bit'.format(pulse_length))

    pulse *= 1000

    pulse //= pulse_length

    print (pulse)


    # Bewege Servo auf Kanal

    def show_values():

    print (w1.get())


    def uebergabe1():

    show_values

    set_servo_pulse(0,w1.get)

    print "Angle1:"

    print w1.get()

    w1.get

    def uebergabe2():

    show_values

    set_servo_pulse(1,pulse)

    print "Angle2:"

    print w2.get()

    w1.get

    def uebergabe3():

    show_values

    set_servo_pulse(2,pulse)

    print "Angle3:"

    print w3.get()

    w3.get

    def uebergabe4():

    show_values

    set_servo_pulse(3,pulse)

    print "Angle4:"

    print w4.get()

    w4.get

    def uebergabe5():

    show_values

    set_servo_pulse(4,pulse)

    print "Angle5:"

    print w5.get()

    w5.get

    def uebergabe6():

    show_values

    set_servo_pulse(5,pulse)

    print "Angle6:"

    print w6.get()

    w6.get


    # GUI

    master = Tk()

    master.wm_title('Servo 1 - 6')

    w1 = Scale(master, from_=0, to=180, orient=HORIZONTAL, resolution=1, length=400)

    w1.set(1)

    w1.pack()

    Button(master, text='Show', command=uebergabe1).pack()

    w2 = Scale(master, from_=0, to=180, orient=HORIZONTAL, resolution=1, length=400)

    w2.set(1)

    w2.pack()

    Button(master, text='Show', command=uebergabe2).pack()

    w3 = Scale(master, from_=0, to=180, orient=HORIZONTAL, resolution=1, length=400)

    w3.set(1)

    w3.pack()

    Button(master, text='Show', command=uebergabe3).pack()

    w4 = Scale(master, from_=0, to=180, orient=HORIZONTAL, resolution=1, length=400)

    w4.set(1)

    w4.pack()

    Button(master, text='Show', command=uebergabe4).pack()

    w5 = Scale(master, from_=0, to=180, orient=HORIZONTAL, resolution=1, length=400)

    w5.set(1)

    w5.pack()

    Button(master, text='Show', command=uebergabe5).pack()

    w6 = Scale(master, from_=0, to=180, orient=HORIZONTAL, resolution=1, length=400)

    w6.set(1)

    w6.pack()

    Button(master, text='Show', command=uebergabe6).pack()

    master.mainloop()

    Nachtrag:

    i2c ist aktiviert.

    Wenn ich ein Moto-Pi aufstecke wird der mit Adresse 0x41 und 0x70 erkannt.


    sudo ls -l /dev/i2c*

    crw-rw---- 1 root i2c 89, 1 20. Apr 16:20 /dev/i2c-1


    sudo i2cdetect -y 1

    0 1 2 3 4 5 6 7 8 9 a b c d e f

    00: -- -- -- -- -- -- -- --

    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

    40: -- 41 -- -- -- -- -- -- -- -- -- -- -- -- -- --

    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

    70: 70 -- -- -- -- -- -- --

    Das ist die Antwort bei Einsatz des Moto-Pi


    Wenn ich jetzt einen PCA9685 anschliesse, wird er nicht erkannt.

    PCA Vcc-- Raspi- 3,3V Pin 1

    PCA scl -- Raspi-scl Pin 5

    PCA sda -- Raspi-sda Pin 3

    PCA GND -- Raspi GND Pin 9

    Wird nicht erkannt.

    Ich habe hier 5 Stück PCA9685 und alle werden nicht erkannt

    Hallo,

    habe das gleiche Problem! Nach Update und Upgrade bekomme ich kein Bild und die grüne LED blinkt beim Starten 4-mal.

    Ich habe hier 4 Raspis alle Raspi3 b+. Wenn ich die sd wechsele das gleiche am selben Raspi-4. Die SD geht an Raspi1-3 ohne Probleme.

    Kann es sein, dass das EEPROM auf dem Raspi-4 defekt ist? Wie kann ich das reparieren?

    Hallo Gemeinde,

    wie kann ich vier Stepper-Motoren anschliessen? Dafür bräuchte ich 16 GPIOs als Steuerleitung ( je 4 / Motor ).

    Ich habe hier 4 Stepper-Motoren 28BYJ-48 mit ULN2003a Boards. Die Versorgungsspannung wird extern über 12V versorgt. Muss ich wirklich 16 Steuerleitungen haben? Die Geschwindigkeiten sind bei Allen die Gleiche.

    Hallo Gemeinde,

    wie kann ich vier Stepper-Motoren anschliessen? Dafür bräuchte ich 16 GPIOs als Steuerleitung ( je 4 / Motor ).

    Ich habe hier 4 Stepper-Motoren 28BYJ-48 mit ULN2003a Boards. Die Versorgungsspannung wird extern über 12V versorgt.

    Muss ich wirklich 16 Steuerleitungen haben? Die Geschwindigkeiten sind bei Allen die Gleiche.

    Hallo Dale,

    ich weiss, dass es CodeSys für den Raspi gibt und hatte es auch mal installiert. Es braucht aber viele Resourcen und ist dann sehr langsam. Ich habe es hier auf einem Server laufen mit einem I7-Core und 64Gb Ram da läuft der sehr gut.

    Aber für eine I7-Core bekomme ich 30 Raspis. Ich würde die gerne mal clustern. Ich habe das irgenwo gelesen, dass einer 120 Raspis geclusterd hat. Vielleicht mache ich das mal nach.Dann kann da auch CodeSys drauf laufen.

    Ach ja, Bei BMW in München wollen sie nur noch TIA V13.1 mit SCL haben.

    bei

    if x=="S" soll der Motor angehalten werden

    if x=="f" soll der Motor vorwärts drehen

    if x=="b" soll der Motor rückwärts laufen

    if x=="r" soll der Motor starten

    Hast du das Programm verstanden?

    Bis auf die "oder" Stop_v und Stop_r läuft das Programm. Nur eben diese drei oder ( SL steht für schnell/Langsam) geht es nicht, weil die Eingänge nicht erkannt werden. Darum benötige ich eure Hilfe

    Bernd