gada888 发表于 2024-10-11 17:59:54

用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]
查看完整版本: 用Python Tkinter控制arduino UNO