用Python Tkinter控制arduino UNO
本帖最后由 gada888 于 2024-10-13 14:58 编辑python由于有更大的延展性,丰富的AI套件库。因此在AI领域拥有着比其他语言,如C语言压倒性的优势。如果执行效率更近一步提升的话。那会成为控制硬件的语言首选,所以学会用python控制硬件可以认为是大势所趋。
Tkinter模块是Python的标准的GUI工具包.
此外,tkinter.tix提供了更丰富的窗口组件。
在Tk接口的附加模块中,Tkinter包含了一些Python模块,保存在标准库的一个子目录里,称为 tkinter。tkinter可以制作窗体,相当于提供了前端给用户来做互动。很适合触控屏幕的用户操作。
今天用到两个重要的模块,一个是Tkinter自己,另一个叫做tk-tools,后者把窗体的功能更加具象化,从而方便我们开发互动性更强的项目。
此外,Tkinter项目可以方便的部署在行空板这种可以方便移动的设备上。为小型商品展示更好的呈现。
所有必要的解释的在视频里了。我想没有比看视频更快的学习方式了。于是做了代码部分完整的解释。
完整的视频教程如下:
https://www.bilibili.com/video/BV1sh22YwEYz/
窗体显示效果。用来开关LED灯。
编程环境是友好的Mind+。
我们这mind+里选择python模式
建立一个111.py的文件
在库管理中选择安装必要的运行库。如pinpong库,tkinter库等
下面是代码
'''
This sketch is made by gada888 for Educational porpose
This is a demo sketch of a series tutorials
'''
import time
from pinpong.board import Board,Pin
import tkinter
import tk_tools
Board("uno","COM3").begin() #windows下指定端口初始化
light = Pin(Pin.D6, Pin.OUT) #引脚初始化为电平输出
#函数呼叫开灯
def led_on():
light.write_digital(1)
led.to_red(True)#反光红色
button_on.config(state = "disabled") #断开
button_off.config(state = "normal") # 启用
#函数呼叫关灯
def led_off():
light.write_digital(0)
led.to_grey() #反光灰色
button_off.config(state = "disabled") #断开
button_on.config(state = "normal") #启用
#函数呼叫关窗体
def close_window():
#arduino.close() #断开串口连接
window.destroy() #断开窗口
# MAIN
window = tkinter.Tk() #创建tk窗口
window.title("Led Control") #名称
window.configure(background="grey") #设置背景颜色
#创建按钮
button_on = tkinter.Button(window, text="开",
font= ('Verdana',55), padx=50, pady =20,
bg="red",fg="blue",
command = led_on)
button_off = tkinter.Button(window, text="关",
font=('Verdana',55), padx=50, pady =20,
bg="yellow",fg="blue",
command = led_off)
button_exit = tkinter.Button(window, text="退出",
font=('Verdana',26),
padx=130, pady =20,
command = close_window)
#按钮设定
button_on.grid(row=1,column=1)
button_off.grid(row=1,column=2)
button_off.config(state = "disabled")
button_exit.grid(row=2,column=1, columnspan =2)
#用窗体工具写互动窗口
led = tk_tools.Led(window, size=200)
led.to_grey()
led.grid(row=0,column=1, columnspan =2)
#跳出循环
window.mainloop()
下面是arduino UNO 连线图,D6接LED
页:
[1]