pande
[專題] 樹莓派IoT實作「透過網路-藍牙通訊遙控EV3機器人」
-樹莓派選用現成常駐裝置RPi400
-全程透過RealVNC遠端桌面進行
-在樹莓派上實作前次網頁上下左右鍵
-同步零星復習去年EV3RPi專題所學
-RPi端Python主程式: flask x serial_tx
-EV3端MINDSTORM程式:主機反應
pande
目前實作完成:
網頁(自網域)
→ 滑鼠游標點擊網頁上下左右鍵(更新提示client點擊方向)
→ EV3主機做出相對應的回應(出聲報出4個方向)
pande
IoT通訊的部分
程式的主架構已經完成
-透過陽春網頁(由樹莓派架設)→遙控EV3機器人

註:未實作仿真-開通網際網路的情況
註2:未實作機器人移動(因為還沒組裝機體)但要寫很快且確信
pande
展示的面向:尚需打磨

[說明] 先前「Xbox手把遙控EV3機器人」專題
是單向通訊:將「手把狀態」動態同步傳遞給機器人
而網頁的特性是靜態呈現+接續更新的型式
-點擊方向鍵只有「指定方向」沒有「點擊停止」的資訊
所以EV3機器人反饋相當矬,只會輸出拙劣的展示印象

可從Python方面或Javascript方面產生解決方案
不過無論哪一邊,對現階段都是很大課題(尚需學習)
pande
或是從HTML:專題構想的呈現樣式方面著手
網頁除了原本上下左右4個按鍵,多增加1個停止按鍵
用停止按鍵讓「按鍵狀態值」復原
即可完成基本的機器人可操控性for做最陽春展示
pande
[作業系統整合性方面的問題]

去年EV3RPi專題成果的藍牙通訊程式
會在系統建立一個rfcomm(無線電通訊虛擬裝置)檔案
EV3跟RPi透過虛擬裝置交換訊息

過去的「Xbox手把遙控EV3機器人」專題作品
是用ctrl-c (KeyboardInterupt)結束執行時
在程式碼最後結束前,用兩行程式碼將裝置關閉後刪除

所以能反復執行(開/關)→進行個人化玩賞or靈活展示
pande
而本專題應用到flask
主執行緒在flask掌管中
先前都是直接從外部-作業系統關閉程式

沒有釋放虛擬裝置
再次執行相同程式會跳出「裝置使用中」錯誤
無法再次執行程式,無法sudo系統刪除
只能重開機,重載作業系統來刪除,才可再次執行程式(一次)

目前對flask的學習尚在初學狀態
還不知道怎麼讓flask產生網路伺服app的同時
另外保留「執行結束了-釋放資源」標準程序
pande
從Python面向切入:
如何放入可操控的「執行結束了-釋放資源」標準程序
-try.. except.. 語法如何與flask運作相融?
-透過建立多重執行緒也是一個解決方案
都是重要的課題,尚需深度學習-提升Python基本功
pande
本次進度 [註2] 的部分完成
EV3機器人ready,多加一些即興創意(讓主機按鍵也可控
載入新的回覆