Posts by Bra!nPa!N

    Guten Morgen zusammen,


    vielen Dank für die Hinweise. Bezüglich der Variablen versuche ich mich nochmal an Klassen. Irgendwie hatte das in meinem ersten Versuch zu genausovielen Funktionsparametern geführt. Dabei werden einige Parameter zunächst gar nicht benötigt, sondern erst wenn eine bestimmte andere Funktion aufgerufen wird.


    Grundsätzlich:

    Teil das weiter auf, in kleiner Funktionen. Diese if-elf Kaskaden sind echt gruselig und unübersichtlich. Ich wetter auch drauf, wenn du den Code weg legst und in 6 Monaten noch mal drauf guckst, blickst du das selber nicht mehr.
    Funktionsnamen werden in Python klein geschrieben,


    Ja, der Code ist in der Tat etwas unübersichtlich, was primär durch die verschiedenen Menüpunkte zustande kommt. Ich habe eine Exceltabelle, die mir die menu_id übersetzt. Hier ist mir nicht klügeres eingefallen. Die Schreibweise von Funktionsnamen werde ich mir hinter die Ohren schreiben ;)


    Warum malst du deinen eigene GUI mit PIL statt was fertiges wie Tkinter oder Kivy oder ... oder meinetwegen auch pygame zu nehmen?


    Ich muss gestehen, dass ich mir diese gar nicht angeschaut habe, da ich immer angenommen habe, dass Tkinter & Co. nur für TFT-Monitore oder Touch Screen ist. Hab ihr nen Tip wo es eine gute Einführung in die Thematik gibt?


    Vielen Dank nochmal!:danke_ATDE:


    Gruß

    Bra!nPa!N

    Guten morgen zusammen,


    hatte schon länger keine Frage mehr, aber jetzt weiß ich nicht mehr weiter. Mein Code macht drei Dinge:

    • OLED-Display mit Menü
    • Menüführung durch Taster
    • Je nach Auswahl eine Funktion durchführen (Kamera auslösen, Kamerabelichtung einstellen und dann auslösen, Intervallauslösung)

    Grundsätzlich kann ich alles ausführen und starten, aber wenn ich einmal das Intervall gestartet habe, kann ich nichts mehr machen. Mindestens möchte ich es aber unterbrechen können, noch lieber sogar Intervallparameter ändern können. Der folgende Codeschnippsel starten das Intervall (Ganzer Code im Anhang ;))

    Nun zu meinen Fragen:

    Ist Threading da der richtige Weg?

    Wenn ja, wie kann man einen laufenden Thread beenden oder pausieren?


    Fragen zu einem Nebenkriegsschauplatz:

    Bekommt man die übergaben von Variablen eleganter hin, als in jeder Funktion alles Variablen immer mitzugeben?


    Ich hoffe ich habe einigermaßen verständlich schreiben können was mein Problem ist. Ich habe lange recherchiert und komme zu keiner Lösung.


    Vielen Dank und viele Grüße

    Bra!nPa!N


    P.S.: Ignoriert die Funktion "Driver1()" in dem angehängten Script, die ist noch in keiner Weise irgendwo angebunden oder ähnliches.

    Vielen Dank Hofei, das klingt vielversprechend. Werde denke ich das ganze selbst programmieren (In der Hoffnung mich nicht zu übernehmen :fies:) Unter dem von mir geposteten Link habe ich ja einen ersten Ansatz, den ich "nur noch" auf den TMC2100 ummüntzen muss. Werde meine Lösung, wenn sie dann mal fertig ist, hier nochmal posten.

    Guten Morgen doing,


    viele Dank für die Informationen und die zum Teil auch berechtigte Kritik. Ich hoffe du kannst mir nachsehen, dass ich in Sachen Elektronik absoluter Anfänger bin und als Bürolstuhlakrobat in einer Bank noch nicht mal im Ansatz beruflich etwas damit zu tuen habe. Aus diesem Grund habe ich die Schlussfolgerung in Bezug auf den Pololu A4988 gar nicht gezogen. Auf die RpiMotorLib bin ich sogar tatsächlich gestoßen, habe diese aber verworfen, da sie auf RPi.GPIO aufbaut und ich hier mehrfach darauf hingewiesen wurde diese nicht mehr zu benutzen, da RPi.GPIO nicht mehr gepflegt wird und veraltet ist. Dies hat bereits dazu geführt, dass ich mein Skript auf gpiozero umgeschrieben habe und auch super zufrieden damit bin. Oder wird das RPi.GPIO-Thema heißer gekocht als gegessen und man kann es doch noch ohne schlechtes Gewissen nutzen?


    Auf jeden Fall vielen Dank für den Hinweis auf den A4988. Werde meine Recherche diesbezüglich vertiefen.


    Gruß

    Bra!nPa!N


    EDIT: Jetzt habe ich auch endlich den Linkzur Schrittmotorsteuerung mit gpiozero gefunden. Sieht zwar improvisiert aus, aber das war der Grund warum ich gpiozero in betracht gezogen habe.

    Guten Morgen Zusammen,


    nachdem ihr mich mit guten Gründen von RPi hin zu gpiozero gelockt habt und ich echt zufrieden bin habe ich nun in Bezug auf die Schrittmotorsteuerung eine Frage:


    Welche Bibliothek ist zur Schrittmotorsteuerung besser geeignet, gpiozero oder pigpio? Welche Vorteile haben die Bibliotheken?:conf:


    Vorteil von gpiozero wäre, dass ich es bereits in dem Skript benutze. Dafür existieren für pigpio bereits sehr gute Beispiele hinsichtlich der Programmierung.


    Vielen Dank und viele Grüße

    Bra!nPa!N

    Dessen bin ich mir bewusst, die möchte ich aber auch extern versorgen. Wobei es natürlich trotzdem klüger gewesen wäre die mit zwecks Flexibilität die 3,3V-5V-Variante zu nehmen. Sobald ich alles am laufen habe werde ich einen Schaltplan inkl. Code posten. Ich wäre nur noch dankbar für Tipps hinsichtlich pigpio oder gpiozero. Was ist das besser geeignet? (gpiozero nutze ich bereits für Taster innerhalb des Scriptes)

    Hallo Zusammen,


    eigentlich dachte ich, dass ich meinen Optokoppler richtig verdrahtet habe, da alles funktioniert und bisher noch nichts kaputt gegangen ist. Der Aufbau sieht wie folgt aus:

    Die Vorwiderstand habe ich wie folgt berechnet: Vf =1,25V (lt. Datenblatt) If = 10mA (max. Belastung GPIO entnommen hier) (3,3-1,25)/0,01=205 Ohm. Jetzt habe ich zufällig bei Recherchen zu meinem gestern eröffneten Thread auf den Forumskonsens gestoßen wonach ein GPIO nicht mit mehr als 2mA belastet werden sollte. Als totaler Anfänger würde ich behaupten, dass der Optokoppler mit 2mA nicht läuft (Würde 1.000 Ohm als Widerstand bedeuten) und ich einen Transistor hinzunehmen müsste. Kurz gesagt, ich bin verwirrt.:conf:


    Um die Schaltung einfach zu halten würde ich gerne auf unnötige Verdrahtungen verzichten. Was ist eure Meinung dazu?


    P.S.: Ich habe vergeblich nach einem bestehenden Thread gesucht, der dieses Thema ausführlich behandelt.:(

    Vielen Dank für die schnelle Antwort Animefan!


    Zu STEP: Ist es richtig, dass du mit dem steuern über das Programm Methoden wie sleep etc. meinst?

    zu EN: Hier ist mir nicht wirklich klar, wie ich das über den Pi steuern soll, wenn der Pi nicht an EN angeschlossen wird. EDIT: Die Frage habe ich mir soeben selbst beantwortet: HIGH = inaktiv und LOW = aktiv.

    Guten Morgen Zusammen,


    ich möchte gerne einen Nema17 Schrittmotor mit dem SilentStepStick (TMC2100) von Watterrott betreiben und habe ein kleines Verständnisproblem mit dem Anschluss am Pi. Verwendung soll das ganze später in einem Slider zur Kameraführung finden. Laut der Beschreibung von Watterrott werden die folgenden Anschlüsse für die Motorkontrolle mit GIPOs des Pis verbunden:

    1. STEP
    2. DIR
    3. EN

    zu 1) Bei STEP fange ich schon ein wenig an zu schwimmen. Soweit ich das verstehe, ist dieser für die Geschwindigkeit zuständig oder? Macht es dann Sinn diesen an ein PWM-Pin anzuschließen um variabel die Geschwindigkeit einstellen zu können?

    zu 2) Die Verwendung von DIR ist mir denke ich klar und kann mit einem beliebigen GIPO-Pin verbunden werden um die Laufrichtung zu bestimmen.

    zu 3) Bei diesem Anschluss bin ich mir total unsicher wofür er gut ist. Soweit ich verstehe kann darüber gesteuert werden ob bei Stillstand eine Haltemoment geben wird oder nicht.(?) Laut der Herstellerseite gibt es folgende drei Möglichkeiten:

    • GND=on
    • VIO=off
    • OPEN=Auto-Power-Down

    Verstehe ich es richtig, dass bei Verbindung mit GND am TMC2100 immer volle Power gegeben wird, bei Verbindung mit VIO am TMC2100 kein Haltemoment entsteht und beim offen lassen die automatische Steuerung durch den TMC2100 übernommen wird? Wenn ich das so richtig sehe würde ich EN mit VIO verbinden, da dich dank selbsthemmenden Schneckengetriebe keinen Haltemoment im Stillstand brauche und so Energie gespart wird.


    Und zu guter Letzt noch eine Frage ob ich zur Ansteuerung via Python besser die Bibliothek gipozero oder pigpio verwenden soll. Erstere hätte den Charm, dass ich diese bereits für diverse Taster in meinem Script verwende und letztere, dass ich dazu wenigstens mal ein Beispiel gefunden habe.


    Ich freue mich über jede Anregung :danke_ATDE:


    Viele Grüße und vielen Dank

    Bra!nPa!N

    Du hast Recht, ist auch bei der D5200 der Zubehöranschluss :wallbash: Habe irgendwie gedacht das Wäre das selbe. Da ich meine Kamera noch nicht an den Pi anschließen möchte, dient für Testzwecke eine LED als Kamera (Grade gestern fertig gestellt). Damit kann ich einfach und Platzsparen testen ob alles Läuft. Der nächste Schritt wäre die USB-Verbindung, die ich mir jetzt sparen kann. Vielen Dank für den Hinweis, freut mich wen gefunden zu haben, der schon Erfahrung gesammelt hat.


    Das Problem mit dem Kabelsalat habe ich noch gar nicht bedacht. Aber Endlos drehen in einem Zeitraffer macht aus meiner Sicht auch wenig Sinn oder? Mal sehen was ich mir da einfallen lasse. Jetzt erst mal die Elektronik mit dem Auslöser, dann die Motorsteuerung.

    Natürlich auch mit einem Kabel. Der Standardanschluss für Fernauslöser ist, wenn ich mich nicht irre, bei meiner D5200 auch die USB-Schnittstelle. Mein Ziel ist es letztlich den USB-Anschluss des Pi mit der Auslöselogik zu verbinden. Dadurch möchte ich gewährleisten, dass ich die sichere Auslöselogik des Pi zusammen mit qDSLRdashboard (Holy Grail bzw. manuelle Nachjustierung der Kamera) nutzen kann. Da die D5200 kein WLAN hat bzw. die von mir ins Auge gefasste D7500 nur snapbridge , verschaffe ich mir über den Pi sogar noch einen WLAN-Zugang zur Kamera.


    Weiß aber noch nicht ob das wirklich funktioniert, bisher habe ich nur die Optokopler-Schaltung auf dem Steckbrett (siehe Bild - Als Optokkopler verwende ich diesen).

    Die USB-Verkabelung fehlt noch. Hoffe nicht, dass die Idee zu naiv von mir gedacht ist :D


    P.S.: Bitte verzeih mir die Grafik, aber ich habe momentan nur Excel zur Verfügung :blush:

    Ja ist eine DSLR von Nikon. Vielen Dank für den Hinweis. Finde die Lösung sehr interessant aber die Funkauslösung scheidet für mich aus zwei Gründen aus:

    1. Es wird ein zusätzliches Gerät benötigt

    2. Autofokussignal wird meines Wissens nach immer mit gesendet

    3. Blockiert den USB-Eingang der Kamera


    Bastle grade an einer Optokoppler-Lösung mit der ich die Anschlüsse für Shutter und Focus mittels Schalter entweder zusammen schalte (Autofokussignal geht unter) oder aber getrennt (Autofokus wird ausgeführt - Nur im Einzelfotomodus sinnvoll). Verbunden wird die Kamera und der Pi da mit dem Standard-Auslöserkabel. Wenn ich das Projekt fertig haben werde ich es hier im Forum auch mal posten.


    Edit: Habe mir grade deinen Funkauslöser angeschaut. Auch wenn ich ihn nicht verwenden werde: Hut ab, das sieht nach nem feinen Teil aus!!!

    Ich verwende diesen (Affiliate-Link) Motor. Dieser benötigt 12V sowie 2A. Als Motorsteuerung setzte ich den DRV8825 ein, den habe ich nicht eingezeichnet. Mir geht es hier ausschließlich um die Energieversorgung. Anbei nochmal das genauere Schema.


    Wenn ich fred0815 müsste das so passen, aber mir fehlen da die Kenntnisse und ich habe mich schon dumm und dämlich gesucht ;(:helpnew:


    Vielen Dank für den Hinweis von hinten anzufangen :) Habe ich auch überlegt, aber insgesamt soll der Raspi dann mehr als nur die Motoren steuern. Über ihn läuft auf DDServer sowie eine Kameraauslösung über gpios. Gesteuert wird das ganze über Taster und ein OLED-Display. Letztlich soll das ganze komplett autark ohne zusätzliches Gerät laufen (Außer man nutzt DDServer, dann benötigt man natürlich das Handy). Die Elektronik hat mich da zunächst mehr gereizt :cool:

    Habe auch nochmal recherchiert und bin auf die Powerbank Goal Zero Sherpa 50 oder mit etwas mehr Leistung Goal Zero Sherpa 100 gestoßen mit 215 € bzw. 329 € kein Schnapper. Hätte aber den Charm, dass ich die größeren Motoren verwenden könnte. Damit sollte ich bis zu 8kg (i.d.R. wohl ehr 3kg) bewegen können und dank Schneckengetriebe sollte dann auch bei Stromausfall nichts abstützen :)


    Und nochmal für mich als Laien, kann ich die Energieversorgung nach dem angehängten Schema aufbauen?

    Okay, das stimmt. Ich tue mich echt schwer mit dieser Materie.


    Den vierten Motor lasse ich glaube ich lieber weg, so dass nun noch drei Motoren übrig bleiben. Ziel ist es, dass nach jeder Auslösung der Kamera die Motoren diese für eine vorher definierte Strecke auf bis zu drei Achsen zu bewegen. In der Regel nur für wenige Millimeter. Je nach Länge des Intervalls variiert die Zeit, die die Motoren für die Strecke haben. Wird daraus in etwa klar was ich erreichen möchte?


    Aus meiner Sicht gibt es hierfür drei Möglichkeiten


    Möglichkeit 1 (von mir präferiert):

    Die Möglichkeit mit einer Powerbank (da portabel) 3x 12V mit 2A zu liefern. Eine solche habe ich aber bisher nicht finden können.


    Möglichkeit 2:

    Die Motoren nacheinander fahren zu lassen. Dies würde bedeuten, dass jeweils nur 2A benötigt werden. Bei sehr kurzen Intervallen oder aber langen Strecken ist dies unter Umständen zu langsam.


    Möglichkeit 3:

    Motoren mit geringerem Strom. Noch machbar, weil ich mir bis jetzt nur einen zugelegt habe. Würde aber bedeuten, dass ich ein Schneckengetriebe brauche, damit die Kamera in den Pausen nicht absackt.


    Ich tute mich wie gesagt in der Materie echt schwer und freue mich über jeden Ratschlag.