Hallo zusammen.
Ich bin gerade dabei, mir einen Fototeller mit einem Schrittmotor zu basteln. Die Hardware habe ich soweit schon richtig verdrahtet und es funktioniert auch ohne Probleme.
Da ich aber das ganze sehr gerne felxibel haben möchte, würde ich mir gerne eine GUI schreiben, in welcher ich eingeben kann, wie viele Stopps der Drehteller bei einer 360 Grad Umdrehung machen soll.
Aktuell ist es so, dass ich eine .py Datei habe, in welcher angegeben ist, dass der Teller sich um 15° dreht, dann 5 Sekunden pausiert und sich dann wieder um 15° dreht. Das Ganze dann 24 mal um eine 360° Drehung zu erzeugen.
Toll wäre es nun, wenn ich über eine GUI z.B in ein Eingabefeld 36 eingebe und dann automatisch das Ganze so angepasst wird, dass der Schrittmotor 36 Stopps macht. Also 10° Pause 10° Pause ect.
Klasse wäre natürlich auch, wenn ich auch noch eine Pausenzeit eingeben kann.
Kann mir eventuell jemand behilflich sein bei der Umsetzung?
Ich habe mir halt ein Video zur Erstellung einer GUI angesehen und diese steht soweit. Nun muss ich nur noch die Funktion dort implementieren.
Ich hoffe es findet sich einer der Experten, der mir ein wenig unter die Arme greifen kann.
Vorab lieben Dank
Gui
from tkinter import *
fenster = Tk() # Erzeugung eines Fensters
fenster.title("360 Grad Fotos")
fenster.geometry("500x800")
def ausgabe(): #Funktion zum Ausgeben eines Strings in der Konsole
print ("Aufnahme startet")
knopf1 = Button(fenster, text="Fotografie starten",command=ausgabe) # Erzeugung des Knopf1
knopf1.pack()
eingabe = Entry(fenster, text="Anzahl Aufnahmen")
eingabe.pack()
label1 = Label(fenster)
label1.pack()
def aufnahme():
label1.configure(text=(eingabe.get()))
knopf2 = Button (fenster, text="Anzahl Aufnahmen",command=aufnahme) # Knopf Aufnahmen
knopf2.pack()
eingabe1 = Entry(fenster, text="Pausen Dauer")
eingabe1.pack()
label2 = Label(fenster)
label2.pack()
def pause():
label2.configure(text=(eingabe1.get()))
knopf3 = Button (fenster, text="Pausen Dauer",command=pause) # Knopf Pausen
knopf3.pack()
mainloop ()
Alles anzeigen
Stepmotor
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
A = 7
B = 11
C = 13
D = 15
GPIO.setup(A, GPIO.OUT)
GPIO.setup(B, GPIO.OUT)
GPIO.setup(C, GPIO.OUT)
GPIO.setup(D, GPIO.OUT)
"""
1 2 3 4 5 6 7 8
Pin1 x x x
Pin2 x x x
Pin3 x x x
Pin4 x x x
"""
def GPIO_SETUP(a,b,c,d):
GPIO.output(A, a)
GPIO.output(B, b)
GPIO.output(C, c)
GPIO.output(D, d)
time.sleep(0.001)
def RIGHT_TURN(deg):
full_circle = 510.0
degree = full_circle/360*deg
GPIO_SETUP(0,0,0,0)
while degree > 0.0:
GPIO_SETUP(1,0,0,0)
GPIO_SETUP(1,1,0,0)
GPIO_SETUP(0,1,0,0)
GPIO_SETUP(0,1,1,0)
GPIO_SETUP(0,0,1,0)
GPIO_SETUP(0,0,1,1)
GPIO_SETUP(0,0,0,1)
GPIO_SETUP(1,0,0,1)
degree -= 1
def LEFT_TURN(deg):
full_circle = 512.0
degree = full_circle/360*deg
GPIO_SETUP(0,0,0,0)
while degree > 0.0:
GPIO_SETUP(1,0,0,1)
GPIO_SETUP(0,0,0,1)
GPIO_SETUP(0,0,1,1)
GPIO_SETUP(0,0,1,0)
GPIO_SETUP(0,1,1,0)
GPIO_SETUP(0,1,0,0)
GPIO_SETUP(1,1,0,0)
GPIO_SETUP(1,0,0,0)
degree -= 1
#MAIN #########################
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
time.sleep(5)
RIGHT_TURN(15)
GPIO_SETUP(0,0,0,0)
Alles anzeigen