安裝 bCNC 來控制基於 GRBL 的自動控制設備

bCNC 是一套開源的自動控制程式平台,軟體基於Python程式語言,以及Python內建的視窗開發模組 TCL/Tk,能夠跨平台執行,在Linux、Windows、MacOS 作業系統下都可以執行 (目前主要支援 Python 2.x,Python 3.x 的初期版本也已經可以下載)。加上程式碼開源,可以更深入學習 GRBL 與 GCode 的自動控制方式,甚至修改程式碼。
使用者可以在 bCNC 程式之下,完成 CNC 機器調整、定位、控制的工作。並在這個程式下,調用在電腦輔助設計 CAD 軟體 (FreeCAD, LibreCAD, SolidWorks, AutoCAD) 或在向量圖繪製軟體 (Inkscape, Illustrator...) 繪製好的設計圖,對設計圖的上的外框線條,規劃 CNC 刀頭的雕刻、切斷、研磨的路徑。

bCNC下載連結:
https://github.com/vlachoudis/bCNC
點選右邊的 "Clone or download",就能將程式打包成 zip 壓縮檔下載。左邊 Branch 按鈕,則可以選擇其他版本的 bCNC,包含目前 (2019年5月)還沒有完全完成、支援 Python3 的版本。

Linux 作業系統

在 Linux 平台下,多半的套裝軟體 (Ubuntu, Debian, Fedora, CentOS,...) 都有預裝 Python 程式語言,安裝好一些額外的程式庫套件,就能夠正確執行。bCNC 是使用 Python 內建的 Tk/TCL 視窗架構,因此不需要額外安裝視窗的程式庫。
bCNC 需要以下額外幾個程式庫,需要另外加裝:
  1. pyserial 序列埠通訊
    安裝好 GRBL的Arduino主板與電腦之間,是利用 COM Port 序列埠連接通訊,bCNC 在電腦這頭持續送出字串命令與 GCode,給 Arduino 主板內的 GRBL 服務程式,來控制 CNC 機器,或者接收來自於 Arduino 這頭的回報結果。
  2. numpy 數學矩陣運算
    這種圖形化人機介面程式,多半會用到大量的矩陣運算,描繪空間中的每一個點。矩陣運算就是這個程式庫的主要功能。
  3. OpenCV 電腦視覺
    這個程式庫裡面,有許多圖像處理與多種圖形檔讀寫的功能,讓 bCNC 得以處理來自 CAD、繪圖軟體的設計圖,在螢幕繪製給使用者看。
  4. Pillow 影像處理
    對圖像進行合成、裁剪、過濾的功能,補足 OpenCV 沒有支援的功能。
在 Linux 的終端機畫面下,執行以下指令,來安裝以上幾個程式庫:
sudo pip install pyserial numpy opencv-python Pillow
若是要使用基於 Python3 的新版測試板,在一些 Linux 套裝軟體,由於同時有安裝 Python2 跟 Python3,可能需要執行以下指令:
sudo pip3 install pyserial, numpy, opencv-python, Pillow
安裝好程式庫之後,bCNC 就可以正確執行了。在bCNC 的檔案匣之下,執行以下指令,啟動bCNC:
python -m bCNC
或者執行目錄下的 shell 執行檔
bCNC.sh
記得檢查bCNC.sh 是否已經是可執行檔,如果不是,用下面指令設定成可執行檔:
chmod u+x bCNC.sh
Python 3 的版本,則可以用以下指令,避免一些 Python 2.x,3.x 共存的程式辨識問題:

python3 -m bCNCpython -m bCNC

Windows 作業系統

由於 Windows 作業系統本身沒有內建 Python 程式語言,因此需要先在 Windows 下安裝 Python。到這裡下載最新板的 Python 2.x 或者 Python 3.x
https://www.python.org/downloads/windows/
64位元的 Windows 10 或 Windows 7,下載 Windows x86-64 MSI installer 來安裝;32位元的 Windows XP 或者 Windows 7,可下載 Windows x86 MSI installer。
執行安裝時,將所有的套件都要打勾,全部安裝。包含最後一個 "Add python.ext to Path",這樣稍後執行 Windows「命令提示字元」App 時,不管在哪個資料夾下,都可以執行 Python,然會有找不到 Python 的錯誤。
安裝完成之後,啟用 Windows「命令提示字元」APP 程式。找不到的話,可以用搜尋的方式找到 (按鍵盤的 Windows + S 按鍵),然後打入「命令」兩個字就找得到。
接著,也需要安裝上面 Linux 一節,所提到的那些程式庫,在「命令提示字元」執行以下指令來安裝:
pip install pyserial, numpy, opencv-python, Pillow

Unicode 相容性問題

在 Windows 下,基於 Python 2.x 的 bCNC 在中文系統有相容性問題,開啟程式視窗之後,關閉程式會出現以下錯誤,並且程式無法關閉。一些操作也會有問題:
ERROR: 'ascii' codec can't encode character ...
問題的解決方法,是需要改動一下程式。
在bCNC 資料夾下 (bCNC-master),的 bCNC 子資料夾下,找到 __main__.py 這個程式,用文字編輯軟體打開 (記事本, Notepad++, ATOM 之類的軟體),然後找到 import sys 這行,在這行程式下面,加入兩行程式宣告:
reloads(sys)
sys.setdefaultencoding('utf-8')
存檔之後,bCNC就能正常執行了。這兩行強制 Python 跟作業系統有關的指令,以 UTF-8 編碼來讀寫。
bCNC 是一套很棒的 CNC 程式,尤其它是開源的,又是架構在簡單通用的 Python 語言之下,更改程式也不需要重新編譯,不會遇到其他惱人的問題。bCNC 無論是跨平台使用操作便利性,還是對於未來的更改程式功能、學習 CNC 控制的目的,會很有幫助。

mac OS 作業系統

筆者很久沒用這個作業系統,不太確定詳細的安裝過程。但基本上應該不會脫離上述的範疇。mac OS 跟 Linux 有些相似,因為早期 Mac OS 的前身,也是從 Unix 架構發展而來。因此安裝完 Python 之後,也是在終端機下,來執行這些指令。
mac OS 開啟終端機的方式,是點擊「放大鏡」功能,搜尋「terminal」,然後開啟終端機程式,之後的操作方式,請參閱上面 Linux 一節。

2 則留言:

  1. 你好.最近下了最新的bCNC.內容有寫用pip2 install --upgrade bCNC等更新操作了許久還是開不起最新版的.舊版的還是能開

    回覆刪除
    回覆
    1. 我沒有從舊版更新的經驗,抱歉幫不上你的忙。我猜測有可能是相關 Python 模組版本的問題。可以從錯誤訊息來判斷,然後看看是哪個模組出錯,試著更新新版的模組看看。比如:
      pip2 install --upgrade pyserial, numpy, opencv-python, Pillow

      刪除