import serial
import tkinter as tk
from tkinter import messagebox
class Form1(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.title("TestiSerial")
self.geometry("500x600")
self.serial_port = serial.Serial()
self.components = None
self.create_widgets()
def create_widgets(self):
self.groupBox1 = tk.LabelFrame(self, text="Connection")
self.groupBox1.pack(pady=10)
self.disconnect = tk.Button(self.groupBox1, text="Disconnect",
command=self.disconnect_click)
self.disconnect.pack(pady=5)
self.connect = tk.Button(self.groupBox1, text="Connect",
command=self.connect_click)
self.connect.pack(pady=5)
self.comboBox1 = tk.StringVar()
self.comboBox1.set("COM1")
self.combo_box = tk.OptionMenu(self.groupBox1, self.comboBox1, "COM1",
"COM2", "COM3")
self.combo_box.pack(pady=5)
self.groupBox2 = tk.LabelFrame(self, text="Stepper ON/OFF")
self.groupBox2.pack(pady=10)
self.enable_all = tk.Button(self.groupBox2, text="Enable all",
command=self.enable_all_click)
self.enable_all.pack(pady=5)
self.checkJ6 = tk.Checkbutton(self.groupBox2, text="Enable J6")
self.checkJ6.pack(pady=5)
self.checkJ5 = tk.Checkbutton(self.groupBox2, text="Enable J5")
self.checkJ5.pack(pady=5)
self.checkJ4 = tk.Checkbutton(self.groupBox2, text="Enable J4")
self.checkJ4.pack(pady=5)
self.checkJ3 = tk.Checkbutton(self.groupBox2, text="Enable J3")
self.checkJ3.pack(pady=5)
self.checkJ2 = tk.Checkbutton(self.groupBox2, text="Enable J2")
self.checkJ2.pack(pady=5)
self.checkJ1 = tk.Checkbutton(self.groupBox2, text="Enable J1")
self.checkJ1.pack(pady=5)
self.groupBox3 = tk.LabelFrame(self, text="Jog joints")
self.groupBox3.pack(pady=10)
self.send_data = tk.Button(self.groupBox3, text="Drive joints to values",
command=self.send_data_click)
self.send_data.pack(pady=5)
self.J6Box = tk.Entry(self.groupBox3)
self.J6Box.pack(pady=5)
self.J5Box = tk.Entry(self.groupBox3)
self.J5Box.pack(pady=5)
self.J4Box = tk.Entry(self.groupBox3)
self.J4Box.pack(pady=5)
self.J6PlusBtn = tk.Button(self.groupBox3, text="J6 +",
command=self.J6_plus_btn_click)
self.J6PlusBtn.pack(pady=5)
self.J5PlusBtn = tk.Button(self.groupBox3, text="J5 +",
command=self.J5_plus_btn_click)
self.J5PlusBtn.pack(pady=5)
self.J4PlusBtn = tk.Button(self.groupBox3, text="J4 +",
command=self.J4_plus_btn_click)
self.J4PlusBtn.pack(pady=5)
self.J6MinusBtn = tk.Button(self.groupBox3, text="J6 -",
command=self.J6_minus_btn_click)
self.J6MinusBtn.pack(pady=5)
self.J5MinusBtn = tk.Button(self.groupBox3, text="J5 -",
command=self.J5_minus_btn_click)
self.J5MinusBtn.pack(pady=5)
self.J4MinusBtn = tk.Button(self.groupBox3, text="J4 -",
command=self.J4_minus_btn_click)
self.J4MinusBtn.pack(pady=5)
self.J3Box = tk.Entry(self.groupBox3)
self.J3Box.pack(pady=5)
self.J3PlusBtn = tk.Button(self.groupBox3, text="J3 +",
command=self.J3_plus_btn_click)
self.J3PlusBtn.pack(pady=5)
self.J2Box = tk.Entry(self.groupBox3)
self.J2Box.pack(pady=5)
self.J3MinusBtn = tk.Button(self.groupBox3, text="J3 -",
command=self.J3_minus_btn_click)
self.J3MinusBtn.pack(pady=5)
self.J1MinusBtn = tk.Button(self.groupBox3, text="J1 -",
command=self.J1_minus_btn_click)
self.J1MinusBtn.pack(pady=5)
self.J2PlusBtn = tk.Button(self.groupBox3, text="J2 +",
command=self.J2_plus_btn_click)
self.J2PlusBtn.pack(pady=5)
self.J1PlusBtn = tk.Button(self.groupBox3, text="J1 +",
command=self.J1_plus_btn_click)
self.J1PlusBtn.pack(pady=5)
self.J2MinusBtn = tk.Button(self.groupBox3, text="J2 -",
command=self.J2_minus_btn_click)
self.J2MinusBtn.pack(pady=5)
self.title("Form1")
self.geometry("857x706")
self.groupBox1 = ttk.LabelFrame(self, text="Connection")
self.groupBox1.pack()
self.disconnect = ttk.Button(self.groupBox1, text="Disconnect")
self.disconnect.pack(side=tk.LEFT)
self.connect = ttk.Button(self.groupBox1, text="Connect")
self.connect.pack(side=tk.LEFT)
self.comboBox1 = ttk.Combobox(self.groupBox1)
self.comboBox1.pack(side=tk.LEFT)
self.groupBox2 = ttk.LabelFrame(self, text="Serial Port")
self.groupBox2.pack()
self.serialPort1 = None
self.J1Box = ttk.Entry(self.groupBox2)
self.J1Box.pack()
self.groupBox3 = ttk.LabelFrame(self, text="Send Data")
self.groupBox3.pack()
self.sendData = ttk.Button(self.groupBox3, text="Send Data")
self.sendData.pack()
self.groupBox5 = ttk.LabelFrame(self, text="Connection status")
self.groupBox5.pack()
self.comPortStatus = ttk.Label(self.groupBox5, text="OFF", font=("Microsoft
Sans Serif", 20, "bold"), foreground="red")
self.comPortStatus.pack()
self.J1MinusBtn = ttk.Button(self, text="J1 -")
self.J1MinusBtn.pack()
self.J1PlusBtn = ttk.Button(self, text="J1 +")
self.J1PlusBtn.pack()
self.checkJ1 = ttk.Checkbutton(self, text="J1")
self.checkJ1.pack()
self.checkJ6 = ttk.Checkbutton(self, text="J6")
self.checkJ6.pack()
self.checkJ5 = ttk.Checkbutton(self, text="J5")
self.checkJ5.pack()
self.checkJ4 = ttk.Checkbutton(self, text="J4")
self.checkJ4.pack()
self.checkJ3 = ttk.Checkbutton(self, text="J3")
self.checkJ3.pack()
self.checkJ2 = ttk.Checkbutton(self, text="J2")
self.checkJ2.pack()
self.J3Box = ttk.Entry(self)
self.J3Box.pack()
self.J3PlusBtn = ttk.Button(self, text="J3 +")
self.J3PlusBtn.pack()
self.J2Box = ttk.Entry(self)
self.J2Box.pack()
self.J3MinusBtn = ttk.Button(self, text="J3 -")
self.J3MinusBtn.pack()
self.J2PlusBtn = ttk.Button(self, text="J2 +")
self.J2PlusBtn.pack()
self.J2MinusBtn = ttk.Button(self, text="J2 -")
self.J2MinusBtn.pack()
self.J6Box = ttk.Entry(self)
self.J6Box.pack()
self.J5Box = ttk.Entry(self)
self.J5Box.pack()
self.J4Box = ttk.Entry(self)
self.J4Box.pack()
self.J6PlusBtn = ttk.Button(self, text="J6 +")
self.J6PlusBtn.pack()
self.J5PlusBtn = ttk.Button(self, text="J5 +")
self.J5PlusBtn.pack()
self.J4PlusBtn = ttk.Button(self, text="J4 +")
self.J4PlusBtn.pack()
self.J6MinusBtn = ttk.Button(self, text="J6 -")
self.J6MinusBtn.pack()
self.J5MinusBtn = ttk.Button(self, text="J5 -")
self.J5MinusBtn.pack()
self.J4MinusBtn = ttk.Button(self, text="J4 -")
self.J4MinusBtn.pack()
self.Parameters = ttk.LabelFrame(self, text="Parameters")
self.Parameters.pack()
self.accelerationBar = ttk.Scale(self.Parameters, from_=1, to=100)
self.accelerationBar.pack()
self.label2 = ttk.Label(self.Parameters, text="Acceleration")
self.label2.pack()
self.label1 = ttk.Label(self.Parameters, text="Speed")
self.label1.pack()
self.speedBar = ttk.Scale(self.Parameters, from_=1, to=10)
self.speedBar.pack()
self.examplePicture = ttk.Label(self, image=None)
self.examplePicture.pack()
self.groupBox6 = ttk.LabelFrame(self, text="Example photo")
self.groupBox6.pack()
self.groupBox7 = ttk.LabelFrame(self, text="Calibrate joints")
self.groupBox7.pack()
self.calAll = ttk.Button(self.groupBox7, text="Auto calibrate all")
self.calAll.pack()
self.calJ6 = ttk.Button(self.groupBox7, text="Calibrate J6")
self.calJ6.pack()
self.calJ5 = ttk.Button(self.groupBox7, text="Calibrate J5")
self.calJ5.pack()
self.calJ4 = ttk.Button(self.groupBox7, text="Calibrate J4")
self.calJ4.pack()
self.calJ3 = ttk.Button(self.groupBox7, text="Calibrate J3")
self.calJ3.pack()
self.calJ2 = ttk.Button(self.groupBox7, text="Calibrate J2")
self.calJ2.pack()
self.calJ1 = ttk.Button(self.groupBox7, text="Calibrate J1")
self.calJ1.pack()
self.timer1 = None
self.SaveWP1 = ttk.Button(self, text="Save WP1")
self.SaveWP1.pack()
self.SaveWP2 = ttk.Button(self, text="Save WP2")
self.SaveWP2.pack()
self.PLAY = ttk.Button(self, text="PLAY")
self.PLAY.pack()
self.SaveWP3 = ttk.Button(self, text="Save WP3")
self.SaveWP3.pack()
self.disableAll = ttk.Button(self.groupBox7, text="Disable all")
self.disableAll.pack()
def disconnect_click(self):
self.serial_port.close()
messagebox.showinfo("Disconnected", "Serial port disconnected.")
def connect_click(self):
self.serial_port.port = self.comboBox1.get()
self.serial_port.baudrate = 115200
self.serial_port.open()
messagebox.showinfo("Connected", "Serial port connected.")
def enable_all_click(self):
self.checkJ6.select()
self.checkJ5.select()
self.checkJ4.select()
self.checkJ3.select()
self.checkJ2.select()
self.checkJ1.select()
def send_data_click(self):
j1_value = self.J1Box.get()
j2_value = self.J2Box.get()
j3_value = self.J3Box.get()
j4_value = self.J4Box.get()
j5_value = self.J5Box.get()
j6_value = self.J6Box.get()
# Send data to the serial port
def J6_plus_btn_click(self):
pass
def J5_plus_btn_click(self):
pass
def J4_plus_btn_click(self):
pass
def J6_minus_btn_click(self):
pass
def J5_minus_btn_click(self):
pass
def J4_minus_btn_click(self):
pass
def J3_plus_btn_click(self):
pass
def J3_minus_btn_click(self):
pass
def J1_minus_btn_click(self):
pass
def J2_plus_btn_click(self):
pass
def J1_plus_btn_click(self):
pass
def J2_minus_btn_click(self):
pass
if __name__ == "__main__":
app = Form1()
app.mainloop()