確保樹梅派已安裝 Ubuntu 20.04 或 22.04 後,遵循以下步驟安裝。
-
瀏覽至本地資料夾中,開啟終端機輸入以下指令安裝。
git clone https://github.com/pomelo925/wine-pourer-rpi.git
-
進入資料夾
wine-pourer-rpi
:cd wine-pourer-rpi
-
給予腳本
install.sh
權限:chmod +x install.sh
-
執行腳本,安裝環境。
./install.sh
-
執行程式腳本,開啟啤酒操作互動介面。
./app.sh
以下為此 repository 之資料結構說明,大部分程式碼中有註解。
├── esp32/ ## 樹梅派與 esp32 通訊之程式碼
└── current.csv/ # 紀錄當前 ESP32 傳遞資訊
└── write_fromESP32/ # 資訊流: ESP32 -> 螢幕介面
└── write_toESP32/ # 資訊流: 螢幕介面 -> ESP32
├── monitor/ ## 螢幕介面
# 資料夾
└── _pycache_/
└── materials/ # 啤酒圖文介紹
└── subpage/ # 子頁面(首層)
└── subsubpage/ # 子頁面(第二層)
└── _pycache_/
└── _init__.py
└── alcoholAngle.py # 介面設計:出酒角度設定頁面
└── ...
# 檔案
└── _init__.py
└── app.py
└── header.py # 介面設計:視窗最上方之橫條
└── mainpage.py # 定義介面邏輯
└── settings.csv # 設定檔
├── wine-pourer-esp32 # esp32 晶片燒錄程式碼
├── resources # 關於此次專案之附錄檔案
├── .gitignore
├── app.sh # 執行軟體程序
├── install.sh # 安裝軟體之依賴環境 (只須執行一次 )
├── README.md
創建一個新的 Python 文件(如 newpage.py
)並自定義新的 Frame
子類。
這個子類應該包含該介面所有的 widgets
和跳轉邏輯。
# newpage.py
import tkinter as tk
class NewPage(tk.Frame):
def __init__(self, master, controller):
tk.Frame.__init__(self, master)
self.controller = controller
label = tk.Label(self, text="This is the new page")
label.pack()
button = tk.Button(self, text="Return",
command=self.go_to_main)
button.pack()
def go_to_main(self):
from mainpage import MainPage
self.controller.show_frame(MainPage)
在主程序(通常是 app.py
)中,將此新的 Frame
子類加入到 self.frames
字典中。
# 在其他 imports 後面加上
from newpage import NewPage
# 在 App 類的 __init__ 方法中
for F in (MainPage, SettingsPage, TempPage, NewPage): # 添加 NewPage
frame = F(self, self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky="nsew")
在其他介面(如 MainPage
、SettingsPage
、 TempPage
)中,添加一個或多個按鈕或其他控件,以便用戶可以跳轉到這個新的介面。
# 例如,在 MainPage 中
button = tk.Button(self, text="New Page",
command=self.go_to_mainpage)
button.pack()
# 添加一個新方法來處理跳轉
def go_to_mainpage(self):
from subpage.settings import SettingsPage
self.controller.show_frame(SettingsPage)