124 lines
3.3 KiB
Python
124 lines
3.3 KiB
Python
import tkinter as tk
|
|
import serial.tools.list_ports
|
|
import functools
|
|
import tkinter.ttk as ttk
|
|
|
|
import labrobot as lrb
|
|
|
|
|
|
ports = serial.tools.list_ports.comports()
|
|
serialObj = serial.Serial()
|
|
|
|
root = tk.Tk()
|
|
root.config(bg='#b7f731')
|
|
|
|
|
|
def serial_ports():
|
|
return serial.tools.list_ports.comports()
|
|
|
|
def on_select(event=None):
|
|
serialObj.port = cb.get().split(' ')[0]
|
|
serialObj.baudrate = 115200
|
|
serialObj.open()
|
|
|
|
cb =ttk.Combobox(root,values=serial_ports())
|
|
cb.grid(row=0,column=0,stick="we")
|
|
cb.bind('<<ComboboxSelected>>',on_select)
|
|
|
|
scb =tk.Scrollbar(root)
|
|
scb.grid(row=1,column=1,rowspan=10,sticky='ns')
|
|
txt = tk.Text(root,height=20,width=50)
|
|
txt.grid(row=1,column=0,rowspan=10)
|
|
scb.config(command=txt.yview)
|
|
txt.config(yscrollcommand=scb.set)
|
|
txt.tag_configure('small',font=('Verdana',8),foreground='black')
|
|
|
|
|
|
## init Labrobot
|
|
lpb = lrb.LabPipBlock(15,1,70,50,5,108,86)
|
|
pip = lrb.LabPip(vol=1000,top=22)
|
|
pip.fe =5000
|
|
|
|
def homeAll():
|
|
serialObj.write(b'<G28>\n')
|
|
def homeX():
|
|
serialObj.write(b'<JX>\n')
|
|
def homeY():
|
|
serialObj.write(b'<JY>\n')
|
|
def homeZ():
|
|
serialObj.write(b'<JZ>\n')
|
|
def homeP():
|
|
serialObj.write(b'<JP>\n')
|
|
def getPos():
|
|
serialObj.write(b'<J2>\n')
|
|
def do_gcode():
|
|
s = e1.get()
|
|
s = s + '\n'
|
|
print(s)
|
|
serialObj.write(s.encode('utf-8'))
|
|
|
|
def upTip():
|
|
serialObj.write(pip.up().encode('utf-8'))
|
|
|
|
def downTip():
|
|
serialObj.write(pip.down().encode('utf-8'))
|
|
|
|
def nextTip():
|
|
upTip()
|
|
serialObj.write(pip.get_tip(lpb.next()).encode('utf-8'))
|
|
downTip()
|
|
|
|
|
|
b1 = tk.Button(root,bg='#000000',
|
|
fg='#b7f731',
|
|
relief='flat',text='Home All',width=12,command=homeAll)
|
|
b1.grid(row=0,column=2,sticky='nw')
|
|
b2 = tk.Button(root,bg='#000000',
|
|
fg='#b7f731',
|
|
relief='flat',text='Home X',width=12,command=homeX)
|
|
b2.grid(row=1,column=2,sticky='nw')
|
|
b3 = tk.Button(root,bg='#000000',
|
|
fg='#b7f731',
|
|
relief='flat',text='Home Y',width=12,command=homeY)
|
|
b3.grid(row=2,column=2,sticky='nw')
|
|
b4 = tk.Button(root,bg='#000000',
|
|
fg='#b7f731',
|
|
relief='flat',text='Home Z',width=12,command=homeZ)
|
|
b4.grid(row=3,column=2,sticky='nw')
|
|
b6 = tk.Button(root,bg='#000000',
|
|
fg='#b7f731',
|
|
relief='flat',text='Home P',width=12,command=homeP)
|
|
b6.grid(row=4,column=2,sticky='nw')
|
|
b7 = tk.Button(root,bg='#000000',
|
|
fg='#b7f731',
|
|
relief='flat',text='Get Position',width=12,command=getPos)
|
|
b7.grid(row=5,column=2,sticky='nw')
|
|
|
|
l1 = tk.Label(root,bg='#000000',
|
|
fg='#b7f731',
|
|
relief='flat',text="Enter G-Code")
|
|
l1.grid(row=0,column=3)
|
|
|
|
e1 = tk.Entry(root)
|
|
e1.grid(row=0,column=4)
|
|
b5 = tk.Button(root,bg='#000000',
|
|
fg='#b7f731',
|
|
relief='flat',text='Send Code',command=do_gcode)
|
|
b5.grid(row=1,column=4,sticky="ne")
|
|
|
|
b8 = tk.Button(root,bg='#000000', fg='blue',relief='flat',text='Next Tip',command=nextTip)
|
|
b8.grid(row=2,column=4,sticky='ne')
|
|
|
|
def checkSerialPort():
|
|
if serialObj.isOpen() and serialObj.in_waiting:
|
|
recentPacket = serialObj.readline()
|
|
recentPacketString = recentPacket.decode('utf')
|
|
txt.insert('0.1',recentPacketString,'small')
|
|
|
|
|
|
while True:
|
|
root.update()
|
|
checkSerialPort()
|
|
|
|
|